C++ :: Aufgabe #210
4 Lösungen

Body-Mass-Index (BMI)
Anfänger - C++
von hollst
- 20.11.2018 um 18:23 Uhr
Der BMI ist eine (umstrittene) Kenngröße zur Ermittlung des eigenen Über-/Untergewichtszustandes:
BMI = Körpermasse (kg) / Körpergröße zum Quadrat (m**2).
Er wird wie folgt interpretiert:
Starkes Untergewicht < 16
Mäßiges Untergewicht 16 – < 17
Leichtes Untergewicht 17 – < 18,5
Normalgewicht 18,5 – < 25
Präadipositas 25 – < 30
Adipositas Grad I 30 – < 35
Adipositas Grad II 35 – < 40
Adipositas Grad III ≥ 40
Man schreibe ein Programm, das die zwei Basisdaten (Körpermasse und Körpergröße) entgegennimmt und den
Zustand (Starkes Untergewicht, Mäßiges Untergewicht ... Adipositas Grad III) als Ergebnis mitteilt.
Viel Spaß!
BMI = Körpermasse (kg) / Körpergröße zum Quadrat (m**2).
Er wird wie folgt interpretiert:
Starkes Untergewicht < 16
Mäßiges Untergewicht 16 – < 17
Leichtes Untergewicht 17 – < 18,5
Normalgewicht 18,5 – < 25
Präadipositas 25 – < 30
Adipositas Grad I 30 – < 35
Adipositas Grad II 35 – < 40
Adipositas Grad III ≥ 40
Man schreibe ein Programm, das die zwei Basisdaten (Körpermasse und Körpergröße) entgegennimmt und den
Zustand (Starkes Untergewicht, Mäßiges Untergewicht ... Adipositas Grad III) als Ergebnis mitteilt.
Viel Spaß!
Lösungen:

#include <iostream> #include <cmath> using namespace std; float KM, KG, BMI; //BMI: Body-Mass-Index; KM:Koerpermasse; KG:Koerpergroeße // BMI = Körpermasse (kg) / Körpergröße zum Quadrat (m**2) int main() { cout << "KM und KG Eingeben:\n"; cin >> KM >> KG; BMI = KM / pow(KG, 2.0); if (BMI<16) cout << "Starkes Untergewicht\n"; else if(BMI>=16 && BMI<17) cout << "Mäßiges Untergewicht\n"; else if(BMI>=17 && BMI<18,5) cout << "Leichtes Untergewicht\n"; else if(BMI>=18,5 && BMI<25) cout << "Normalgewicht\n"; else if(BMI>=25 && BMI<30) cout << "Präadipositas\n"; else if(BMI>=30 && BMI<35) cout << "Adipositas Grad I\n"; else if(BMI>=35 && BMI<40) cout << "Adipositas Grad II\n"; else cout << "Adipositas Grad III\n"; return 0; }

#include "stdafx.h" #include <iostream> #include <math.h> using namespace std; int main() { double mass; double height; double bmi; cout << "Bitte gebe dein Koerpergewicht an: " << endl; cin >> mass; cout << "Bitte gebe deine Koerpergroesse ein: " << endl; cin >> height; bmi = mass / pow(height,2); //pow ist zur berechnung mit dem Exponenten einer Variable da //math.h muss aber #includet werden if (bmi < 16) { cout << "Sie haben durch " << bmi << " ein starkes Untergwicht" << endl; } else if (bmi > 16 && bmi < 17) { cout << "Sie haben durch " << bmi << " ein maessiges Untergwicht" << endl; } else if (bmi > 17 && bmi < 18.5) { cout << "Sie haben durch " << bmi << " ein leichtes Untergwicht" << endl; } else if (bmi > 18.5 && bmi < 25) { cout << "Sie haben durch " << bmi << " ein Normalgewicht" << endl; } else if (bmi > 25 && bmi < 30) { cout << "Sie haben durch " << bmi << " ein Praeadipositas" << endl; } else if (bmi > 30 && bmi < 35) { cout << "Sie haben durch " << bmi << " Adipositas Grad I" << endl; } else if (bmi > 35 && bmi < 40) { cout << "Sie haben durch " << bmi << " Adipositas Grad II" << endl; } else if (bmi > 40 && bmi < 45) { cout << "Sie haben durch " << bmi << " Adipositas Grad III" << endl; } else { cout << "nicht definierbar" << endl; } system("Pause"); return 0; }

#include <iostream> using namespace std; int main() { double gewicht; double groesse; cout << "Geben sie ihr gewicht ein: "; cin >> gewicht; cout << "Geben sie ihre groeße ein [m]: "; cin >> groesse; double bmi = gewicht / (groesse*groesse); cout << bmi << " sie haben "; if (bmi < 16) { cout << "Stakes Untergewicht"; } else if (bmi>= 16 && bmi < 17) { cout << "maessiges Untergewicht"; } else if(bmi >=17 && bmi < 18.5) { cout << "leichtes Untergewicht"; } else if (bmi >= 18.5 && bmi < 25) { cout << "normalgewicht"; } else if(bmi >=25 && bmi < 30) { cout << "Praeadipositas"; } else if(bmi >= 30 && bmi < 35) { cout << "Adipositas Grad I"; } else if (bmi >= 35 && bmi < 40) { cout << "Adipositas Grad II"; } else if(bmi >= 40) { cout << "Adipositas Grad III"; } else { cout << "Fehler!"; } return 0; }

// c++17 #include <iostream> #include <cmath> #include <string> using num_t = float; auto calc_bmi(num_t const kg, num_t const m) { return kg / std::pow(m, 2); } std::string bmi_to_text(num_t const bmi) { if (bmi < 16.0) { return "Starkes Untergewicht"; } if (bmi < 17.0) { return "Mäßiges Untergewicht"; } if (bmi < 18.5) { return "Leichtes Untergewicht"; } if (bmi < 25.0) { return "Normalgewicht"; } if (bmi < 30.0) { return "Päadipositas"; } if (bmi < 35.0) { return "Adipositas Grad I"; } if (bmi < 40.0) { return "Adipositas Grad II"; } return "Adipositas Grad III"; } int main() { std::cout << "Bitte Gewicht (kg) eingeben: "; num_t kg; std::cin >> kg; std::cout << "Bitte Größe in m eingeben: "; num_t m; std::cin >> m; auto const bmi{calc_bmi(kg, m)}; std::cout << "BMI ist " << bmi << " -> " << bmi_to_text(bmi) << std::endl; }