C# проблема, как набрать сколько кг мне следует набрать - PullRequest
1 голос
/ 06 мая 2020

Имею компьютер MMI (индекс массы тела), по формуле вес (кг) / Pow (рост (м), 2). Я пробовал go дальше и написать код, который рекомендует на сколько кг сбросить вес или набрать вес в зависимости от оптимального bmi.

Для похудения работает хорошо, проблема в полноте, не доходит до такой же оптимальный bmi.

Пример. Если у меня 100 кг и 1,84 м, то вам нужно дойти до 29,5, вам нужно дойти до 24 часов, где-то до 87 кг. Пока все хорошо Но если у меня 30 кг и 1,84, тогда вам нужно дойти до 8,8, вам нужно дойти до 24, и вот проблема в том, что формула рекомендует 64 кг, что для 1,84, 64 кг ниже оптимального bmi.

using System;

namespace BMI_Calculator
{
    class Program
    {
        static void Main(string[] args)
        {
            // define variables
            double weight;
            double height;
            double optimalBmiMin = 18.5;
            double optimalBmiMax = 24;
            double bmiPointKg = 2.3;

            /*
            Console.WriteLine("BMI Calculator");
            Console.WriteLine("");
            Console.WriteLine("developer: dannybest");
            System.Threading.Thread.Sleep(5000);
            Console.Clear();
            */

            Console.WriteLine("Write your weight in kg:");
            weight = Convert.ToDouble(Console.ReadLine());
            Console.Clear();

            Console.WriteLine("Write your height in m:");
            height = Convert.ToDouble(Console.ReadLine());
            Console.Clear();

            // bmi formula rounded to two decimals
            double bmi = weight / Math.Pow(height, 2);

            // calculates the difference in kg;
            double weightDiffLose = (bmi - optimalBmiMax) * bmiPointKg;
            double weightDiffGain = (optimalBmiMax - bmi) * bmiPointKg;

            // calculates the recomanded kg for your height based on bmi score;
            double recLoseKg = weight - weightDiffLose;
            double recGainKg = weight + weightDiffGain;

            // if is under optimal BMI score, calculate how much you should gain
            if (bmi < optimalBmiMin)
            {
                if (bmi < 15)
                {
                    Console.WriteLine("Your BMI is: " + bmi);
                    Console.WriteLine("Health: Very serious underweight");

                }
                else if (bmi > 15.0 && bmi < 16.0)
                {
                    Console.WriteLine("Your BMI is: " + bmi);
                    Console.WriteLine("Health: Severely underweight");
                }
                else if (bmi > 16.0 && bmi < 18.5)
                {
                    Console.WriteLine("Your BMI is: " + bmi);
                    Console.WriteLine("Health: Underweight");
                }

                Console.WriteLine();
                Console.WriteLine("You should gain: " + weightDiffGain + " kg");
                Console.WriteLine("Recomanded kg for your height: " + recGainKg + " kg / " + height + " m");
            }
            // else if above optimal BMI score, calculate how much you should lose
            else if (bmi > optimalBmiMax)
            {
                if (bmi > 25 && bmi < 30)
                {
                    Console.WriteLine("Your BMI score is: " + bmi);
                    Console.WriteLine("Health status: Overweight");
                }
                else if (bmi > 30 && bmi < 35)
                {
                    Console.WriteLine("Your BMI is: " + bmi);
                    Console.WriteLine("Health: Obese Class I (moderately obese)");
                }
                else if (bmi > 35 && bmi < 40)
                {
                    Console.WriteLine("Your BMI is: " + bmi);
                    Console.WriteLine("Health: Obese Class II (strictly obese)");
                }
                else if (bmi > 40)
                {
                    Console.WriteLine("Your BMI is: " + bmi);
                    Console.WriteLine("Health: Obese Class III (very seriously obese)");
                }

                Console.WriteLine();
                Console.WriteLine("You should lose: " + weightDiffLose + " kg");
                Console.WriteLine("Recomanded kg for your height: " + recLoseKg + " kg / " + height + " m");
            }
            // else normal BMI score
            else
            {
                Console.WriteLine("Your BMI score is: " + bmi);
                Console.WriteLine("Health status: Normal (healthy weight)");
            }
        }
    }
}

1 Ответ

0 голосов
/ 06 мая 2020

божественная формула

            // Ideal Body Weight
            double heightInch = height / 0.0254;
            double ibwKg = 50 + 2.3 * (heightInch - 60);

            // calculates the diff
            double diffKg = ibwKg - weight;
using System;

namespace BMI_Calculator
{
    class Program
    {
        static void Main(string[] args)
        {
            // define variables
            double weight;
            double height;

            /*
            Console.WriteLine("BMI Calculator");
            Console.WriteLine("");
            Console.WriteLine("developer: dannybest");
            System.Threading.Thread.Sleep(5000);
            Console.Clear();
            */

            Console.WriteLine("Write your weight in kg:");
            weight = Convert.ToDouble(Console.ReadLine());
            Console.Clear();

            Console.WriteLine("Write your height in m:");
            height = Convert.ToDouble(Console.ReadLine());
            Console.Clear();

            // bmi formula
            double bmi = weight / Math.Pow(height, 2);

            // Ideal Body Weight
            double heightInch = height / 0.0254;
            double ibwKg = 50 + 2.3 * (heightInch - 60);

            // calculates the diff
            double diffKg = ibwKg - weight;

            // if is under optimal BMI score, calculate how much you should gain
            if (bmi < 18.5)
            {
                if (bmi < 15)
                {
                    Console.WriteLine("Your BMI is: " + bmi);
                    Console.WriteLine("Health: Very serious underweight");

                }
                else if (bmi > 15.0 && bmi < 16.0)
                {
                    Console.WriteLine("Your BMI is: " + bmi);
                    Console.WriteLine("Health: Severely underweight");
                }
                else if (bmi > 16.0 && bmi < 18.5)
                {
                    Console.WriteLine("Your BMI is: " + bmi);
                    Console.WriteLine("Health: Underweight");
                }

                Console.WriteLine();
                Console.WriteLine("You should gain: " + diffKg + " kg");
                Console.WriteLine("Recomanded kg for your height: " + ibwKg + " kg / " + height + " m");
            }
            // else if above optimal BMI score, calculate how much you should lose
            else if (bmi > 25)
            {
                if (bmi > 25 && bmi < 30)
                {
                    Console.WriteLine("Your BMI score is: " + bmi);
                    Console.WriteLine("Health status: Overweight");
                }
                else if (bmi > 30 && bmi < 35)
                {
                    Console.WriteLine("Your BMI is: " + bmi);
                    Console.WriteLine("Health: Obese Class I (moderately obese)");
                }
                else if (bmi > 35 && bmi < 40)
                {
                    Console.WriteLine("Your BMI is: " + bmi);
                    Console.WriteLine("Health: Obese Class II (strictly obese)");
                }
                else if (bmi > 40)
                {
                    Console.WriteLine("Your BMI is: " + bmi);
                    Console.WriteLine("Health: Obese Class III (very seriously obese)");
                }

                Console.WriteLine();
                Console.WriteLine("You should lose: " + diffKg + " kg");
                Console.WriteLine("Recomanded kg for your height: " + ibwKg + " kg / " + height + " m");
            }
            // else normal BMI score
            else
            {
                Console.WriteLine("Your BMI score is: " + bmi);
                Console.WriteLine("Health status: Normal (healthy weight)");
            }
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...