C# :: Aufgabe #230

8 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 Philipp (160 Punkte) - 29.11.2018 um 21:14 Uhr
Quellcode ausblenden C#-Code
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");
            }
        }
    }
}
1 Kommentar
1x
vote_ok
von RevTreb (860 Punkte) - 03.12.2018 um 13:24 Uhr
Quellcode ausblenden C#-Code
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;
            }
        }
    }
}
1x
vote_ok
von Exception (7090 Punkte) - 27.12.2018 um 16:49 Uhr
Quellcode ausblenden C#-Code
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";
            }
        }
    }
}

vote_ok
von Supergoof (150 Punkte) - 18.02.2019 um 21:10 Uhr
Quellcode ausblenden C#-Code
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();
        }
    }
}
vote_ok
von t.wi (660 Punkte) - 12.06.2019 um 12:33 Uhr
Quellcode ausblenden C#-Code
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");
            }
        }
    }
}
vote_ok
von Kotgreifer (1100 Punkte) - 03.07.2019 um 10:25 Uhr
Quellcode ausblenden C#-Code
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();
        }
vote_ok
von charlyP (250 Punkte) - 26.03.2020 um 00:03 Uhr
Quellcode ausblenden C#-Code
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;

        }
    }
}
vote_ok
von DragStar (2000 Punkte) - 06.04.2020 um 13:56 Uhr
Quellcode ausblenden C#-Code
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);
        }
    }
}
2121033

Du scheinst einen AdBlocker zu nutzen. Ich würde mich freuen, wenn du ihn auf dieser Seite deaktivierst und dich davon überzeugst, dass die Werbung hier nicht störend ist.