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