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');
}