C# :: Aufgabe #230
8 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:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApp27
{
class Program
{
static void Main(string[] args)
{
//Eingabeaufforderungen
Console.WriteLine("Der BMI Rechner!!");
Console.WriteLine("Bitte Gewicht in Kg eingeben:");
string gewichtInput = Console.ReadLine();
Console.WriteLine("Bitte die Körpergröße in meter eingeben");
string größeInput = Console.ReadLine();
Console.WriteLine("Ihr Zustand ist:");
//Aufruf der Berechnungsmethode
berechnung(gewichtInput, größeInput);
Console.WriteLine("Berechnungen abgeschlossen");
Console.ReadLine();
}
public static void berechnung(string gewicht, string größe)
{
//Umwandeln des Input
double gewichtDouble = Convert.ToDouble(gewicht);
double größeDouble = Convert.ToDouble(größe);
double bmiDouble = gewichtDouble / (größeDouble * größeDouble);
if (bmiDouble < 16)
{
Console.WriteLine("Starkes Untergewicht");
}
else if (bmiDouble > 16 && bmiDouble < 17)
{
Console.WriteLine("Mäßiges Untergewicht");
}
else if (bmiDouble > 17 && bmiDouble < 18.5)
{
Console.WriteLine("Leichtes Untergewicht");
}
else if (bmiDouble > 18.5 && bmiDouble < 25)
{
Console.WriteLine("Normalgewicht");
}
else if (bmiDouble > 25 && bmiDouble < 30)
{
Console.WriteLine("Präadipositas");
}
else if (bmiDouble > 30 && bmiDouble < 35)
{
Console.WriteLine("Adipositas Grad I");
}
else if (bmiDouble > 35 && bmiDouble < 40)
{
Console.WriteLine("Adipositas Grad II");
}
else if (bmiDouble > 40)
{
Console.WriteLine("Adipositas Grad III");
}
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
namespace AnalogDiscriminator
{
class Program
{
static void Main(string[] args)
{
double m = GetDouble("Masse [kg]: ");
double h = GetDouble("Groesse [cm]: ") / 100;
double bmi = m / (h * h);
Console.WriteLine(string.Format("==> BMI: {0:N2} ({1})", bmi, BMI.Resolve(bmi)));
Console.ReadLine();
}
static double GetDouble(string Text)
{
Console.Write(Text);
string eingabe = Console.ReadLine();
return Convert.ToDouble(eingabe);
}
static class BMI
{
static Dictionary<double, string> dict =
new Dictionary<double, string>
{
{ 0.0, "Starkes Untergewicht" },
{ 16.0, "Mäßiges Untergewicht" },
{ 17.0, "Leichtes Untergewicht" },
{ 18.5, "Normalgewicht " },
{ 25.0, "Präadipositas" },
{ 30.0, "Adipositas Grad I" },
{ 35.0, "Adipositas Grad II" },
{ 40.0, "Adipositas Grad III" }
};
internal static string Resolve(double TestKey)
{
string retval = string.Empty;
for (int index = 0; index < dict.Count; index++)
{
KeyValuePair<double,string> item = dict.ElementAt(index);
double itemKey = item.Key;
string itemValue = item.Value;
if (itemKey <= TestKey)
retval = itemValue;
}
return retval;
}
}
}
}
using System;
namespace BMI_230
{
class Program
{
private static double bmi;
private static double mass; // in kg
private static double height; // in m
static void Main(string[] args)
{
try
{
if(args.Length != 2)
{
throw new ArgumentException("Es müssen exakt zwei Parameter übergeben werden.");
}
if(!Double.TryParse(args[0], out Program.mass))
{
throw new Exception("Fehler beim Konvertieren der Körpermasse (in kg).");
}
if (!Double.TryParse(args[1], out Program.height))
{
throw new Exception("Fehler beim Konvertieren der Körpergröße (in m).");
}
Program.CalculateBMI();
Program.PrintResult();
}
catch (Exception ex)
{
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine(ex.Message);
Console.ResetColor();
}
Console.ReadKey();
}
private static void PrintResult()
{
Console.WriteLine("BMI:\t\t{0:f2}\nBezeichnung:\t{1}", Program.bmi, Program.getBmiTitle());
}
private static void CalculateBMI()
{
Program.bmi = Program.mass / Math.Pow(Program.height, 2);
}
private static string getBmiTitle()
{
if (Program.bmi < 16.0)
{
return "Starkes Untergewicht";
}
else if (Program.bmi < 17.0)
{
return "Mäßiges Untergewicht";
}
else if (Program.bmi < 18.5)
{
return "Leichtes Untergewicht";
}
else if (Program.bmi < 25.0)
{
return "Normalgewicht";
}
else if (Program.bmi < 30.0)
{
return "Präadipositas";
}
else if (Program.bmi < 35.0)
{
return "Adipositas Grad I";
}
else if (Program.bmi < 40)
{
return "Adipositas Grad II";
}
else
{
return "Adipositas Grad III";
}
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
/********************************
* Erstellt von Alexander Kiene *
* Email: alexander-kiene@gmx.de *
*********************************/
namespace body_mass_index_typ
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("BMI-Rechner\n");
Console.Write("Bitte das Körpergewicht eingeben (kg): ");
double kMasse = Convert.ToDouble(Console.ReadLine());
Console.Write("Bitte die Körpergrösse eingeben (m): ");
double kGrösse = Convert.ToDouble(Console.ReadLine());
double BMI = calculateBMI(kMasse, kGrösse);
printBMI(BMI);
Console.ReadLine();
}
static double calculateBMI(double masse, double groesse)
{
double ergebnis = masse / (Math.Pow(groesse, 2));
return ergebnis;
}
static void printBMI(double bmi)
{
Console.WriteLine();
Console.ForegroundColor = ConsoleColor.Yellow;
if (bmi < 16) Console.WriteLine("Starkes Untergewicht");
else if (bmi >= 16 && bmi < 17) Console.WriteLine("Mäßiges Untergewicht");
else if (bmi >= 17 && bmi < 18.5) Console.WriteLine("Leichtes Untergewicht");
else if (bmi >= 18.5 && bmi < 25)
{
Console.ForegroundColor = ConsoleColor.Green;
Console.WriteLine("Normalgewicht");
}
else if (bmi >= 25 && bmi < 30)
{
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine("Präadipositas");
}
else if (bmi >= 30 && bmi < 35) Console.WriteLine("Adipositas Grad I");
else if (bmi >= 35 && bmi < 40) Console.WriteLine("Adipositas Grad II");
else if (bmi >= 40) Console.WriteLine("Adipositas Grad III");
Console.ResetColor();
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Bmirechner
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Körpegröße in Meter:");
double height = Convert.ToDouble(Console.ReadLine());
Console.WriteLine("Körpergewicht in Kilogramm:");
double weight = Convert.ToDouble(Console.ReadLine());
double bmi = weight / (height*height);
Zustand(bmi);
Console.ReadLine();
}
private static void Zustand(double bmi)
{
if(bmi<16)
{
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine("Der BMI von " + bmi + " deutet auf Starkes Untergewicht hin");
}
else if(bmi >= 16 && bmi < 17)
{
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine("Der BMI von " + bmi + " deutet auf Mäßiges Untergewicht hin");
}
else if(bmi >=17 && bmi < 18.5)
{
Console.ForegroundColor = ConsoleColor.Yellow;
Console.WriteLine("Der BMI von " + bmi + " deutet auf Leichtes Untergewicht hin");
}
else if(bmi >= 18.5 && bmi < 25)
{
Console.ForegroundColor = ConsoleColor.Green;
Console.WriteLine("Der BMI von " + bmi + " deutet auf Normalgewicht hin");
}
else if(bmi >= 25 && bmi >30)
{
Console.ForegroundColor = ConsoleColor.Yellow;
Console.WriteLine("Der BMI von " + bmi + " deutet auf Prädipositas hin");
}
else if(bmi >= 30 && bmi <35)
{
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine("Der BMI von " + bmi + " deutet auf Adipositas Grad 1 hin");
}
else if(bmi >=35 && bmi <40)
{
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine("Der BMI von " + bmi + " deutet auf Adipositas Grad 2 hin");
}
else
{
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine("Der BMI von " + bmi + " deutet auf Adipositas Grad 3 hin");
}
}
}
}
static void Main(string[] args)
{
Console.Write("Größe in m: ");
double height;
double.TryParse(Console.ReadLine(),out height);
Console.Write("Gewicht in kg: ");
double weight;
double.TryParse(Console.ReadLine(), out weight);
double bmi = weight / (height * height);
Console.WriteLine(bmi + " ");
if (bmi < 16)
{
Console.WriteLine("Starkes Untergewicht!");
}
else if (bmi >= 16 && bmi < 17)
{
Console.WriteLine("Mäßiges Untergewicht.");
}
else if (bmi >= 17 && bmi < 18.5)
{
Console.WriteLine("Leichtes Untergewicht.");
}
else if (bmi >= 18.5 && bmi < 25)
{
Console.WriteLine("Normalgewicht!");
}
else if (bmi >= 25 && bmi < 30)
{
Console.WriteLine("Präadipositas.");
}
else if (bmi >= 30 && bmi < 35)
{
Console.WriteLine("Adipositas Grad I.");
}
else if (bmi >= 35 && bmi < 40)
{
Console.WriteLine("Adipositas Grad II");
}
else if (bmi >= 40)
{
Console.WriteLine("Adipositas Grad III");
}
else
{
Console.WriteLine("Fehler! Bitte überprüfen Sie ihre Eingaben noch einmal");
}
Console.Read();
}
using System;
namespace BMI_Rechner
{
class Program
/*******************************************************************************
* Das Programm ermittelt aus der Eingabe von Gewicht und Körpergröße den *
* BMI und gibt diese Daten zusammen mit dem entsprechenden Körperzustand aus. *
* Zusätzlich wird noch das der Körpergröße entsprechende Normalgewicht *
* berechnet und ausgegeben. Danach wartet das Programm auf eine neue Eingabe. *
* ****************************************************************************/
{
static void Main(string[] args)
{
// Endlosschleife
Loop:
string eingabeGewicht, eingabeGroesse, bmiText = null;
double gewicht, groesse, bmi, ideal1, ideal2 = 0;
// Eingabe Gewicht
Console.WriteLine("Bitte Ihr Gewicht eingeben [kg]:");
eingabeGewicht = Console.ReadLine();
// Umwandlung des Eingabestrings in eine Double-Zahl
try
{
gewicht = double.Parse(eingabeGewicht);
}
// Abfangen einer Eingabe, die eine Exception verursachen würde
catch (FormatException)
{
Console.WriteLine("Fehlerhafte Eingabe");
Console.WriteLine();
goto Loop;
}
// Eingabe Groesse
Console.WriteLine("Bitte Ihre Groesse eingeben [cm]:");
eingabeGroesse = Console.ReadLine();
// Umwandlung des Eingabestrings in eine Double-Zahl
try
{
groesse = double.Parse(eingabeGroesse) / 100;
}
// Abfangen einer Eingabe, die eine Exception verursachen würde
catch (FormatException)
{
Console.WriteLine("Fehlerhafte Eingabe");
Console.WriteLine();
goto Loop;
}
// Berechnung BMI
bmi = gewicht / Math.Pow(groesse, 2);
if (bmi < 16)
{
bmiText = "Starkes Untergewicht";
}
else if (bmi < 17)
{
bmiText = "Mäßiges Untergewicht";
}
else if (bmi < 18.5)
{
bmiText = "Leichtes Untergewicht";
}
else if (bmi < 25)
{
bmiText = "Normalgewicht";
}
else if (bmi < 30)
{
bmiText = "Präadipositas";
}
else if (bmi < 35)
{
bmiText = "Adipositas Grad I";
}
else if (bmi < 40)
{
bmiText = "Adipositas Grad II";
}
else if (bmi >= 40)
{
bmiText = "Adipositas Grad III";
}
// "Notbremse", sollte eigentlich nie auftreten können
else
{
Console.WriteLine("Unbekannter Fehler");
}
// Berechnung Idealgewicht
ideal1 = 18.5 * Math.Pow(groesse, 2);
ideal2 = 25 * Math.Pow(groesse, 2);
Console.WriteLine();
Console.WriteLine("Gewicht: " + Math.Round(gewicht, 2) + " , Körpergröße: " + Math.Round(groesse, 2) + " BMI: " + Math.Round(bmi, 1) + " " + bmiText);
Console.WriteLine("Ihr Idealgewicht liegt zwischen ca. " + Math.Round(ideal1, 0) + " und " + Math.Round(ideal2, 0) + " kg");
Console.WriteLine();
Console.ReadLine();
goto Loop;
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BMI-Rechner
{
class Program
{
static void Main(string[] args)
{
double koerpGewicht, koerpGroesse, bmi;
bool done = true;
Console.WriteLine("\t\t+ + + + + Hier können Sie Ihren BMI (Body-Maß-Index) berechnen + + + + +");
do
{
Console.Write("\nBitte Körpergewicht in Kilogramm eingeben: ");
koerpGewicht = Convert.ToDouble(Console.ReadLine());
Console.Write("\nBitte Körpergröße eingeben: ");
koerpGroesse = Convert.ToDouble(Console.ReadLine());
bmi = koerpGewicht / (koerpGroesse * koerpGroesse);
bmi = Math.Round(bmi, 0);
//Console.WriteLine(bmi);
if (bmi < 16)
{
Console.WriteLine("\nIhr BMI beträgt " + bmi + ". Sie haben starkes Untergewicht.");
}
else if (bmi == 16 || bmi < 17)
{
Console.WriteLine("\nIhr BMI beträgt " + bmi + ". Sie haben mäßiges Untergewicht.");
}
else if (bmi == 17 || bmi < 18.5)
{
Console.WriteLine("\nIhr BMI beträgt " + bmi + ". Sie haben leichtes Untergewicht.");
}
else if (bmi == 18.5 || bmi < 25)
{
Console.WriteLine("\nIhr BMI beträgt " + bmi + ". Sie haben Normalgewicht.");
}
else if (bmi == 25 || bmi < 30)
{
Console.WriteLine("\nIhr BMI beträgt " + bmi + ". Sie sind Präadipositas.");
}
else if (bmi == 30 || bmi < 35)
{
Console.WriteLine("\nIhr BMI beträgt " + bmi + ". Sie sind Adipositas Grad I.");
}
else if (bmi == 35 || bmi < 40)
{
Console.WriteLine("\nIhr BMI beträgt " + bmi + ". Sie sind Adipositas Grad II.");
}
else if (bmi >= 40)
{
Console.WriteLine("\nIhr BMI beträgt " + bmi + ". Sie sind Adipositas Grad III.");
}
} while (done);
}
}
}
