C++ :: Aufgabe #210
7 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; }

#include <iostream> using namespace std; //DEUTSCHE UMLAUTE___________________________________________ const unsigned char AE = static_cast<unsigned char>(142); const unsigned char ae = static_cast<unsigned char>(132); const unsigned char OE = static_cast<unsigned char>(153); const unsigned char oe = static_cast<unsigned char>(148); const unsigned char UE = static_cast<unsigned char>(154); const unsigned char ue = static_cast<unsigned char>(129); const unsigned char sz = static_cast<unsigned char>(225); //___________________________________________________________ int main() { //VARIABLEN___________________________________ float kg; float m; float bmi; //___________________________________________ //USEREINGABE: Körpermasse cout<<"Bitte geben sie Ihr Gewicht in \"Kg\" ein: "; cin>>kg; system("cls"); //USEREINGABE: Größe cout<<"Bitte geben Sie Ihre Gr"<<oe<<sz<<"e in \"M\" ein (z.B. \"1.8\"): "; cin>>m; system("cls"); //Berechnet den BMI bmi = kg / (m*m); //Rechenweg: BMI = kg / (m*m) cout<<kg<<"Kg / "<<m<<"m^2 = "<<bmi<<" BMI"<<endl; //If-Abfrage: Wählt die zum BMI passende Bewertung aus if (bmi<16) cout<<"Sie haben ein starkes Untergewicht!"<<endl; if (bmi == 16) cout<<"Sie haben ein m"<<ae<<sz<<"iges Untergewicht!"<<endl; if ((bmi > 16 ) && (bmi < 18.5)) cout<<"Sie haben ein leichtes Untergewicht!"<<endl; if ((bmi >=18.5 ) && (bmi <25)) cout<<"Sie haben ein normales Gewicht!"<<endl; if ((bmi >=25 ) && ( bmi <30)) cout<<"Sie haben Pr"<<ae<<"adipositas!"<<endl; if ((bmi >=30 ) && (bmi <35)) cout<<"Sie haben Adipositas Grad I!"<<endl; if ((bmi >=35 ) && (bmi <40)) cout<<"Sie haben Adipositas Grad II!"<<endl; if (bmi >=40) cout<<"Sie haben Adipositas Grad III!"<<endl; return 0; }

/* 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ß! */ #include <iostream> #include <string> #include <math.h> using namespace std; /* run this program using the console pauser or add your own getch, system("pause") or input loop */ float kgewicht = 0; float kgroesse = 0; bool jain = true; float BMI(){ return (kgewicht / pow(kgroesse, 2)); } int main(int argc, char** argv) { while(jain){ system("cls"); cout << "Bitte trage dein Koerpergewicht ein: " << endl; cin >> kgewicht; cout << "Bitte gebe deine Koerpergroesse an: " << endl; cin >> kgroesse; if(BMI() < 16){ cout << "Du bist stark untergewichtig dein BMI liegt unter 16" << endl; } else if(BMI() > 16 && BMI() <=17 ) { cout << "Du hast mäßiges Untergewicht dein BMI liegt zwischen 16 und 17! Iss was!" << endl; } else if(BMI() > 17 && BMI() <= 18.5) { cout << "Du hast leichtes untergewicht dein BMI liegt zwischen 17 und 18,5" << endl; } else if (BMI() > 18.5 && BMI() <= 25){ cout << "Du bist Normalgewichtig, glückwunsch!" << endl; } else if (BMI() > 25 && BMI() <= 30){ cout << "Du hast präadipositas! Bzw bist gut trainiert!" << endl; } else if (BMI() > 30 && BMI() <= 35){ cout << "Du hast Adipositas Grad I " << endl; } else if (BMI() > 35 && BMI() <= 40){ cout << "Du hast Adipositas Grad II " << endl; } else if (BMI() > 40 && BMI() <= 100){ cout << "Du hast Adipositas Grad III FETTSACK! " << endl; } cout << BMI() << "\n"<< endl; char yesno; cout << "Moechten Sie diesen Test wiederholen? Y/N" << endl; cin >> yesno; if(yesno == 'Y'){ jain = true; } else jain = false; } return 0; }

#include <iostream> #include <cmath> using namespace std; int main() { float height, kg, bmi; char c; do { do { cout << "Körpermasse (in kg): "; cin >> kg; cout << "Körpergröße (in m): "; cin >> height; if(kg <= 0 || height <= 0) { cout << "Fehlerhafte Eingabe\n\n"; } } while(kg <= 0 || height <= 0); bmi = kg / pow(height, 2); cout << "\nDein BMI: " << bmi << "\n"; if(bmi < 16) { cout << "Starkes Untergewicht\n"; } else if(bmi >= 16 && bmi < 17) { cout << "Mäßiges Untergweicht\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 if(bmi >= 40) { cout << "Adipositas Grad III\n"; } else { cout << "Fehler\n"; } cout << "\nWeitere Berechnung (j/n): "; cin >> c; cout << "\n"; } while(c != 'n'); }