Buch Cover Buch Cover Buch Cover Buch Cover

Web-Code: - Webcode Help

Body-Mass-Index (Selektionen)

Der BMI (Body-Mass-Index) bewertet das Körpergewicht eines Menschen im Verhältnis zum Quadrat seiner Größe.

BMI = kg / m2

Folgende Indizien werden vorgeschlagen:

w m Klassifikation
< 19 < 20 Untergewicht
19-24 20-25 Normalgewicht
> 24 > 25 Übergewicht

Schreiben Sie ein Programm, bei dem der Anwender sein Geschlecht (w, m), seine Masse (in kg) und seine Körpergröße (in Metern) eingeben kann. Die Ausgabe soll dann neben dem BMI auch die Klassifikation (Untergewicht, Normalgewicht bzw. Übergewicht) enthalten.

Bemerkung: Der BMI berücksichtigt nicht den Körperfettanteil und kann daher nur begrenzt Aussagen zur Gesundheit machen. Ein moderneres Indiz zu Über- und Untergewicht liefert das Taille-zu-Höhe-Verhältnis (Waist to Height Ratio).

0 Kommentare

Bitte melde dich an um einen Kommentar abzugeben

13 Lösung(en)

/***** bmi.xhtml ******/


<?xml version="1.0" encoding="utf-8" ?>

<!DOCTYPE html

  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"

  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">



<html xmlns ="http://www.w3.org/1999/xhtml"

	lang = "en"

	xml:lang = "en">

  <head>

   <title>BMI</title>

   <script type = "text/javascript"

	src = "bmi.js" />

   <meta http-equiv = "Content.Type"

	content = "text/html;charset=utf-8" />

  </head>

  <body>

  <p>Ihr Gewicht <input id="gewicht" name="gewicht" type="text" size="15" /></p>

  <p>Ihre Grösse in m (z.B 1.62) <input id="groesse" type="text" size="15" /></p>

  <p>Ihr Geschlecht <input  name="geschlecht" type="radio" value="w" /> Weiblich

					<input  name="geschlecht" type="radio" value="m" /> Männlich </p>

  <p><input id="ausrechnen" name="ausrechnen" type="button" value="BMI ausrechnen" 

			onclick="ausrechnen()" /></p>

  <p>Ihr Bodymassindex beträgt: <input id="bmi" name="bmi" type="text" size="2" />

							   <input id="kommentar" name="kommentar" type="text" size="30" /> </p>

  </body>

</html>


/***************** File bmi.js ********************/

?/* Anja Gloor / ph. gressly: 11.Mai.2010*/



function ausrechnen()

{

  var groesseElement = document.getElementById("groesse");

  var groesse = groesseElement.value;

  var gewichtElement = document.getElementById("gewicht");

  var gewicht = gewichtElement.value;

  var geschlecht = leseGeschlecht();  


  

  var bmiElement = document.getElementById("bmi");

  var kommentarElement = document.getElementById("kommentar");

  

  bmiausgerechnet = gewicht / (groesse * groesse)

  

  bmiElement.value = bmiausgerechnet.toFixed(2);

  

  satz1 = ("Sie sind untergewichtig")

  satz2 = ("Sie sind normalgewichtig")

  satz3 = ("Sie sind übergewichtig")

  satz4 = ("Sie sind Adipositas")

  

  if ('w' == geschlecht)

  {

    if (bmiausgerechnet < 20)
    {

      kommentarElement.value = satz1;}

    else if (bmiausgerechnet < 25)

    {

      kommentarElement.value = satz2;}

    else if (bmiausgerechnet < 30)

    {

      kommentarElement.value = satz3;}

    else

    {

      kommentarElement.value = satz4;}

  }

  else // geschlecht = 'm'

  {

    if (bmiausgerechnet < 19)

	{

	kommentarElement.value = satz1;}

	else if (bmiausgerechnet < 24)

	{

	kommentarElement.value = satz2;}

	else if (bmiausgerechnet < 30)

	{

	kommentarElement.value = satz3;}

	else

	{

	kommentarElement.value = satz4;}

  }

  

}

function leseGeschlecht() {
  var alleInputFelder = document.getElementsByTagName("input");
  var i = 0;
  while(i < alleInputFelder.length) {
    if('radio' == alleInputFelder[i].type) {
      if(alleInputFelder[i].checked) {
        return alleInputFelder[i].value;
      }
    }
    i = i + 1;
  }
  return 'n';
}
                
   bmi = gewicht/(groesse*groesse)
    satz1 = 'Sie sind untergewichtig'
    satz2 = 'Sie sind normalgewichtig'
    satz3 = 'Sie sind übergewichtig'
    satz4 = 'Sie sind Adipositas'
    print 'Ihr BMI ist '+str(bmi)
    print ''

    if (gender == 'w'):
        if bmi < 19:
            print satz1
        else:
            if bmi < 24:
                print satz2
            else:
                if bmi < 29:
                    print satz3
                else:
                    print satz4

    if (gender == 'm'):
        if bmi < 20:
            print satz1
        else:
            if bmi < 25:
                print satz2
            else:
                if bmi < 30:
                    print satz3
                else:
                    print satz4
    else:
        print 'Sie haben das Geschlecht nicht korrekt eingegeben.'


gender = raw_input('Ihr Geschlecht [m/w]:')
gewicht = float(raw_input('Ihr Gewicht in kg:'))
groesse = float(raw_input('Ihre Grösse in m:'))
bmi(gewicht,groesse,gender)
                

Lösung von: Martin Guggisberg (Universität Basel / PH FHNW)

 /* Programmiersprache: PL/I */
 /* Autor: Bruno Keller      */

 A#3_7: proc() returns(bin fixed(31));

 dcl (index
     ,tally
     ,divide
     ,multiply
     ,round)   builtin;

 dcl theAnswer char(200) var;
 dcl RC        bin fixed(31)    init(0);

 dcl w         bit(1)           init('0'b);
 dcl Gewicht   dec fixed(7,3);
 dcl Groesse   dec fixed(3,2);
 dcl BMI       dec fixed(3);

 dcl BMI_pic   pic'zz9';
 dcl BMI_help  dec fixed(5,1);
 dcl Grenze_1  dec fixed(3);
 dcl Grenze_2  dec fixed(3);
 dcl Klassifikation(3) char(25) init('Sie sind untergewichtig. '
                                    ,'Sie sind normalgewichtig.'
                                    ,'Sie sind uebergewichtig. ');

 /*----------------*/
 /* Start Programm */
 /*----------------*/
 display('Body-Mass-Index');
 display('---------------');

 /*-----------------------*/
 /* Geschlecht übernehmen */
 /*-----------------------*/
 display('Geben Sie bitte Ihr Geschlecht ein (m/w):')
   reply(theAnswer);
 if index(theAnswer,'w')^=0 ! index(theAnswer,'W')^= 0
 then w = '1'b;
 else do;
    if index(theAnswer,'m')^=0 ! index(theAnswer,'M')^= 0
    then;
    else do;
       RC=-1;
       call ERROR_Msg(RC);
       return(RC);
    end;
 end;

 /*--------------------*/
 /* Gewicht übernehmen */
 /*--------------------*/
 display('Geben Sie bitte Ihr Koerpergewicht (in nnn.nnn kg) ein:')
   reply(theAnswer);
 if verify(theAnswer,'0123456789.')=0 & tally(theAnswer,'.')<2
 then Gewicht = theAnswer;
 else do;
    RC=-2;
    call ERROR_Msg(RC);
    return(RC);
 end;

 /*-------------------*/
 /* Grösse übernehmen */
 /*-------------------*/
 display('Geben Sie bitte Ihre Groesse (in n.nn Metern) ein:')
   reply(theAnswer);
 if verify(theAnswer,'0123456789.')=0 & tally(theAnswer,'.')<2
 then Groesse = theAnswer;
 else do;
    RC=-3;
    call ERROR_Msg(RC);
    return(RC);
 end;

 /*----------------------------*/
 /* BMI berechnen und ausgeben */
 /*----------------------------*/
 BMI_help = multiply(Groesse,Groesse,5,1);
 BMI_help = divide  (Gewicht,BMI_help,5,1);
 BMI      = round   (BMI_help,0);
 BMI_pic  = BMI;
 display('Ihr BMI betraegt: ' !! BMI_pic);

 /*-----------------------------------------*/
 /* Klassifikation durchführen und ausgeben */
 /*-----------------------------------------*/
 if w then do;
    Grenze_1 = 19;
    Grenze_2 = 24;
 end;
 else do;
    Grenze_1 = 20;
    Grenze_2 = 25;
 end;
 select;
    when(BMI  < Grenze_1)                   display(Klassifikation(1));
    when(BMI >= Grenze_1 & BMI <= Grenze_2) display(Klassifikation(2));
    other                                   display(Klassifikation(3));
 end;

 /*---------------*/
 /* Ende Programm */
 /*---------------*/
 display('Beenden Sie das Programm mit <Enter>.')
   reply(theAnswer);
 return(RC);

 /*----------------------------------*/
 /* Internes Unterprogramm ERROR_Msg */
 /*----------------------------------*/
 ERROR_Msg: proc(Fehler#);
 dcl Fehler# bin fixed(31);
 display('-------------------------------------');
 display('Fehler im Programm A#3_7:            ');
 select(Fehler#);
    when(- 1) display('Geschlecht nicht korrekt eingegeben. ');
    when(- 2) display('Gewicht nicht korrekt eingegeben.    ');
    when(- 3) display('Grösse nicht korrekt eingegeben.     ');
    other     display('Unbekannter Fehler.                  ');
  end;
 display('Starten Sie das Programm neu.        ');
 display('-------------------------------------');
 end ERROR_Msg;

 end A#3_7;

                

Lösung von: Bruno Keller (Santis Training AG)

// Language: Haskell / bmi.hs

data Sex = Male | Female 
	deriving (Eq, Show)

bmiTell :: (RealFloat a) => a -> a -> Sex -> String

bmiTell weight height Male | bmi < 20  = "Untergewicht"
			   | bmi < 25  = "Normalgewicht"
			   | otherwise = "Übergewicht"
				where bmi = weight / height ^ 2

bmiTell weight height Female | bmi < 19  = "Untergewicht"
			     | bmi < 24  = "Normalgewicht"
			     | otherwise = "Übergewicht"
				where bmi = weight / height ^ 2
                

Lösung von: Reto Hablützel (www.rethab.ch)

// phi@gress.ly April 2012

// Berechne BMI: Body Mass Index
function hauptprogramm() {
    // maennlich : boolean
    var maennlich = einlesenCheckedViaID("maennlich");
    var groesse   = einlesenZahlViaID   ("groesse"  );
    var gewicht   = einlesenZahlViaID   ("gewicht"  );;

    var bmi       = gewicht / (groesse * groesse);
    var meldung   = textAusBMI(bmi, maennlich);

    document.getElementById("ausgabe").innerHTML = meldung;
}

function textAusBMI(bmi, maennlich) {
    if(maennlich) {
	bmi = bmi - 1;
    }
    if(bmi <  19) { return "Untergewichtig"; }
    if(bmi <= 24) { return "Normalgewicht" ; }
                    return "Übergewicht"   ;
}

function einlesenZahlViaID(id) {
    var element = document.getElementById(id);
    var txt     = element.value;
    var zahl    = (+txt); // in Zahl umwandeln
    return zahl;
}

function einlesenCheckedViaID(id) {
    return document.getElementById(id).checked;
}

////////////////////////////// H T M L : /////////////////////////////////
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE html>
<!-- phi@gress.ly April 2012 -->
<html xmlns="http://www.w3.org/1999/xhtml">

  <head>
    <title>Vorlage</title>   
    <meta http-equiv = "Content-Type"
          content    = "text/html;charset=utf-8" />
    <link rel        = "stylesheet" 
          href       = "bmi.css" />
    <script src="bmi.js"></script>
  </head>

  <body>
    <h1>BMI</h1>
    <p>BMI = Body Mass Index</p>

    <p>Männlich: <input type="checkbox" 
                          id="maennlich" 
                       value="Maennlich"/> </p>
    
    <p>Gewicht (kg): <input type="text" id="gewicht" /></p>
    <p>Größe   ( m): <input type="text" id="groesse" /></p>

    <input type="button" value="Berechne BMI" onclick="hauptprogramm();" />

    <p id="ausgabe"></p>

  </body>

</html>

/////////////////////////////////////// C S S //////////////////////////////////
/* phi@gress.ly April 2012 */

body {
  background-color: silver;
}

p {
  font-family: verdana, arial, helvetica, sans;
  color: #009;
}

@media print {
  p {
    font-family: times, times-new-roman, palatino, serif;
  }
} /* end print */


h1 {
  font-size  :120%;
  font-family: sans, Arial, helvetica;
  text-decoration: underline;
}
                

Lösung von: Philipp G. Freimann (BBW (Berufsbildungsschule Winterthur) https://www.bbw.ch)

package ch.programmieraufgaben.selektion;

import java.util.Scanner;

public class BodyMassIndex {

	public static void main(String[] args) {
		new BodyMassIndex().top();
	}


	void top() {
		char   geschlecht = einlesenChar("Geschlecht");
		double hoehe      = einlesenDouble("Höhe in Metern");
		int    gewicht    = einlesenInt("Masse in kg");
		int    untergewichtsgrenze = 19;
		int    uebergewichtsgrenze = 24;
		String ausgabe = "Normalgewicht";

		if ('m' == geschlecht) {
			untergewichtsgrenze = 20;
			uebergewichtsgrenze = 25;
		}

		double bmi = gewicht / (hoehe * hoehe);

		if (bmi < untergewichtsgrenze) {
			ausgabe = "Untergewicht";
		}
		if (bmi > uebergewichtsgrenze) {
			ausgabe = "Übergewicht";
		}
		System.out.println(ausgabe);
	}

	// generelle Hilfsfunktionen
	Scanner sc = new Scanner(System.in);


	int einlesenInt(String wert) {
		meldung(wert);
		return sc.nextInt();
	}

	double einlesenDouble(String wert) {
		meldung(wert);
		return sc.nextDouble();
	}

	char einlesenChar(String wert) {
		meldung(wert);
		return sc.next().toLowerCase().charAt(0);
	}


	void meldung(String wert) {
		System.out.println("Bitte " + wert + " eingeben:");
	}

} // end of class Body Mass Index
                

Lösung von: Philipp G. Freimann (BBW (Berufsbildungsschule Winterthur) https://www.bbw.ch)

{$R+}
{$B+}

program BodyMass(input,output);
{FernUni Hagen}
{Bewertet Koerpergewich}

const
NORM = 'Normalgewicht';
UNTER = 'Untergewicht';
UEBER = 'Ubergewicht';

var
Gesch : string;
Masse,
Koerper,
BMI : integer;
begin
  Koerper := 0;
  Masse := 0;
  BMI := 0;
  write('Bitte geben Sie den Geschlecht ein: ');
  readln(Gesch);
  write('Bitte geben Sie Ihr Gewicht ein (kg): ');
  readln(Masse);
  write('Bitte geben Sie Ihre Koerpergroesse ein (m): ');
  readln(Koerper);
  BMI := Masse div (Koerper * Koerper);
  if (BMI < 19) and (Gesch ='Frau') then
  {Untergewicht bei Frauen}
  begin
    write(UNTER,' ','DMI-Index: ',BMI);
    readln(); {Nur um die Konsole ausgabe zu sehen!}
  end
  else
  if (BMI >= 19) and (BMI <=24) and (Gesch='Frau') then
  {Normalgewicht bei Frauen}
  begin
    write(NORM,' ','DMI-Index: ',BMI);
    readln(); {Nur um die Konsole ausgabe zu sehen!}
  end
  else
  if (BMI <20) and (Gesch = 'Mann') then
  {Utergewicht bei Manner}
  begin
    write(UNTER,' ','DMI-Index: ',BMI);
    readln(); {Nur um die Konsole ausgabe zu sehen!}
  end
  else
  if (BMI >= 20) and (BMI <= 25)and (Gesch='Mann')then
  {Normalgewicht bei Manner}
  begin
    write(NORM,' ','DMI-Index: ',BMI);
    readln(); {Nur um die Konsole ausgabe zu sehen!}
  end
  else
  if (BMI > 24) and (Gesch='Frau') then
  {Übergewicht bei Frauen}
  begin
    write(UEBER,' ','DMI-Index: ',BMI);
    readln(); {Nur um die Konsole ausgabe zu sehen!}
  end
  else
  if (BMI > 25) and (Gesch ='Mann')then
 {Übergewicht bei Mann}
  begin
    write(UEBER,' ','DMI-Index: ',BMI);
    readln(); {Nur um die Konsole ausgabe zu sehen!}
  end
end.
                

Lösung von: Name nicht veröffentlicht

import java.util.Scanner;
public class BMI {
	
	
	public static void main(String[] args) {
	new BMI().top();
	}

	private void top() {
		char geschlecht = einlesenChar("Geschlecht");
		int gewicht = einlesenInt("Gewicht in kg");
		double hoehe = einlesenDouble("Höhe in Metern");
		int uggrenze =  19;
		int uebggrenze = 24;
		double bmi = gewicht / (hoehe * hoehe);
		String resultat;
		
		if (geschlecht == 'm') {
			uggrenze =  20;
			uebggrenze = 25;
		}
		
		if (bmi < uggrenze) {
			resultat = "Untergewicht";
		}
		
		if (bmi > uebggrenze) {
			resultat = "Übergewicht";
			
		} else {
			resultat = "Normalgewicht";
		}
		
		System.out.println(resultat);
		
	}
	
	Scanner bmi = new Scanner (System.in);
	
	char einlesenChar(String wert) {
		popup(wert);
		return bmi.next().charAt(0);
		
	}
	int einlesenInt(String wert) {
		popup(wert);
		return bmi.nextInt();
		
	}
	double einlesenDouble(String wert) {
		popup(wert);
		return bmi.nextDouble();
		
	}

	private void popup(String wert) {
		System.out.println("Bitte " + wert + " eingeben:");
		
	}
}
                

Lösung von: Raphael Bosshart (ETH ZH)

geschlecht = input("Geschlecht m/w: ")
groesse = int(input("Groesse in cm: "))
gewicht = int(input("Gewicht in kg: "))

bmi = gewicht / (groesse/100 * groesse/100)

if geschlecht == "w":
    if bmi < 19:
        print("BMI:", round(bmi, 2), "-> Untergewicht")
    elif bmi <= 24:
        print("BMI:", round(bmi, 2), "-> Normalgewicht")
    else:
        print("BMI:", round(bmi, 2), "-> Übergewicht")
else:
    if bmi < 20:
        print("BMI:", round(bmi, 2), "-> Untergewicht")
    elif bmi <= 25:
        print("BMI:", round(bmi, 2), "-> Normalgewicht")
    else:
        print("BMI:", round(bmi, 2), "-> Übergewicht")

                

Lösung von: Peter Pan (Home Office)

function getBodyMassIndex(sex, weightInKg, heightInCm) {
  let bmi = weightInKg / (heightInCm / 100) ** 2;
  switch (sex) {
    case 'f':
      if (bmi < 19) return 'Untergewicht';
      if (bmi <= 24) return 'Normalgewicht';
      return 'Übergewicht';
    case 'm':
      if (bmi < 20) return 'Untergewicht';
      if (bmi <= 25) return 'Normalgewicht';
      return 'Übergewicht';
    }
  }

// eingabemaske
document.write(`
  <label>Geschlecht: </label>
  <select id="sex">
    <option value="m">männlich</option>
    <option value="f">weiblich</option>
  </select><br>
  <label>Gewicht (kg): </label><input type="number" id="weight"><br>
  <label>Größe (cm): </label><input type="number" id="height"><br>
  <button onclick="answer()">Berechnen</button><br>
  <div id="info"> </div>
`);
function answer() {
  document.getElementById('info').innerText =
    'Laut BMI haben Sie ' +
    getBodyMassIndex(document.getElementById('sex').value,
      document.getElementById('weight').value,
      document.getElementById('weight').value) + '.';
 }
                

Lösung von: Lisa Salander (Heidi-Klum-Gymnasium Bottrop)

// NET 6.x | C# 10.x | VS-2022

static string BMI(Sex sex, int weightKg, int heightCm) => (sex, weightKg / Math.Pow(heightCm / 100.0, 2)) switch
{
    (Sex.f, < 19) or (Sex.m, < 20) => "Untergewicht",
    (Sex.f, <= 24) or (Sex.m, <= 25) => "Normalgewicht",
    (_, _) => "Übergewicht"
};

Console.WriteLine(BMI(Sex.f, 70, 175));

enum Sex { f, m };
                

Lösung von: Jens Kelm (@JKooP)

// C++ 14 | VS-2022
#include <iostream>

enum sex {
    f, m
};

struct data {
    sex sex;
    double weight_kg, height_cm;
};

const auto get_bmi(data d) {
    const auto bmi{ d.weight_kg / pow(d.height_cm / 100.0, 2) };
    if (d.sex == sex::f && bmi < 19 || d.sex == sex::m && bmi < 20) return "Untergewicht";
    if (d.sex == sex::f && bmi <= 24 || d.sex == sex::m && bmi <= 25) return "Normalgewicht";
    return "Uebergewicht";
}

int main() {
    const auto bmi{ get_bmi({sex::m, 80, 185}) };
    std::cout << bmi << "\n";
}
                

Lösung von: Jens Kelm (@JKooP)

' VBA
Enum Sex
    female_
    male_
End Enum

Type Data
    sex_ As Sex
    weight_kg_ As Double
    height_cm_ As Double
End Type

Type Pair
    bmi_str_ As String
    bmi_dbl_ As Double
End Type

Function GetBMI(data_ As Data) As Pair
    Dim res As String
    Dim bmi As Double
    Dim pair_ As Pair
    bmi = Round(data_.weight_kg_ / WorksheetFunction.Power(data_.height_cm_ / 100#, 2), 1)
    pair_.bmi_dbl_ = bmi
    If data_.sex_ = Sex.female_ And bmi < 19 Or data_.sex_ = Sex.male_ And bmi < 20 Then
        res = "Untergewicht"
    ElseIf data_.sex_ = Sex.female_ And bmi <= 24 Or data_.sex_ = Sex.male_ And bmi <= 25 Then
        res = "Normalgewicht"
    Else
        res = "Übergewicht"
    End If
    pair_.bmi_str_ = res
    GetBMI = pair_
End Function

Sub Main()
    Dim data_ As Data
    Dim pair_ As Pair
    data_.sex_ = Sex.male_
    data_.weight_kg_ = 80
    data_.height_cm_ = 185
    pair_ = GetBMI(data_)
    Debug.Print pair_.bmi_dbl_, pair_.bmi_str_
End Sub
                

Lösung von: Jens Kelm (@JKooP)

Verifikation/Checksumme:

kg 20 50 50 62 62 20 80
meter 1 1.6 1.6 1.6 1.6 1.7 1.6
bmi 20 19.53 19.53 24.21 24.21 6.92 31.25
geschlecht w/m w m w m w/m w/m
Ausgabe Normal Normal Unter Über Normal Unter Über

Aktionen

Bewertung

Durchschnittliche Bewertung:

Eigene Bewertung:
Bitte zuerst anmelden

Meta

Zeit: 0.5
Schwierigkeit: k.A.
Webcode: 4du5-ufpz
Autor: Philipp G. Freimann (BBW (Berufsbildungsschule Winterthur) https://www.bbw.ch)

Download PDF

Download ZIP

Zu Aufgabenblatt hinzufügen