C++ :: Aufgabe #210

7 Lösungen Lösungen öffentlich

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ß!

Lösungen:

vote_ok
von ylreda (340 Punkte) - 25.11.2018 um 12:09 Uhr
Quellcode ausblenden C-Code
#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;
}
vote_ok
von Rayman (220 Punkte) - 05.01.2019 um 14:19 Uhr
Quellcode ausblenden C-Code
#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;
}
vote_ok
von kyurl (40 Punkte) - 13.01.2019 um 21:26 Uhr
Quellcode ausblenden C-Code
#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;
}
1x
vote_ok
von Mathes (130 Punkte) - 18.01.2019 um 18:11 Uhr
Quellcode ausblenden C-Code
// 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;
}
vote_ok
von guerilla (70 Punkte) - 24.02.2019 um 17:54 Uhr
Quellcode ausblenden C-Code
#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;
}
vote_ok
von LFresh (20 Punkte) - 23.04.2019 um 11:42 Uhr
Quellcode ausblenden C-Code

/*
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;
}

vote_ok
von basic (1310 Punkte) - 30.09.2020 um 02:36 Uhr
Quellcode ausblenden C-Code
#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');
}