C# :: Aufgabe #230

4 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 (800 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 (3860 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();
        }
    }
}