Czy w tym programie warto pomyśleć nad pobraniem danych w metodzie , czy lepiej zostawić jak jest. W każdym razie działa.
//Napisz program, który oblicza wskaźnik masy ciała BMI.Program ma prosić
//użytkownika o podanie wagi w kg oraz wzrostu w metrach.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace CS_AE_3._6
{
class Bmi
{
private int masa;
private double wzrost;
public double ObliczBmi()
{
return masa / (wzrost * wzrost);
}
public void Kategoria(double bmi)
{
//Funcja klasyfikuje stopień otyłości
if (bmi < 16.0)
Console.WriteLine("Jesteś wygłodzony!");
else if (bmi >= 16.0 && bmi <=16.99)
Console.WriteLine("Jesteś wychudzony!");
else if (bmi >=17.0 && bmi <= 18.49)
Console.WriteLine("Masz niedowagę!");
else if (bmi >= 18.5 && bmi < +24.99)
Console.WriteLine("Mieścisz się w normie!");
else if (bmi >= 30.0 && bmi <= 34.99)
Console.WriteLine("Masz I stopień otyłości");
else if (bmi >= 35.0 && bmi <=39.99)
Console.WriteLine("Masz II stopień otyłości(otyłość kliniczna)");
else if (bmi >= 40.0)
Console.WriteLine("Masz III stopień otyłości(otyłość skrajna)");
}
public Bmi(int masa, double wzrost)
{
this.masa = masa;
this.wzrost = wzrost;
}
}
class Program
{
static void Main(string[] args)
{
try
{
Console.WriteLine("Podaj ile ważysz w kg");
int kg = Int32.Parse(Console.ReadLine());
Console.WriteLine("Podaj twój wzrost w metrach");
double mtr = Double.Parse(Console.ReadLine());
Bmi o1 = new Bmi(kg, mtr);
double wynik = o1.ObliczBmi();
Console.WriteLine("BMI wynosi {0}", Math.Round(wynik, 2));
o1.Kategoria(wynik);
}
catch
{
Console.WriteLine("Wprowadzono nieprawidłowe wartości!");
}
Console.ReadKey();
}
}
}