public float doOperation(Person persona)
 {
     if (persona.Age >= 18)
     {
         float grasa = -1;
         if (persona.IsMan)
         {
             grasa = 495 / (float)(1.0324 - 0.19077 * (Math.Log10(persona.Waist - persona.Neck)) + 0.15456 * (Math.Log10(persona.Height))) - 450;
         }
         else
         {
             grasa = 495 / (float)(1.29579 - 0.35004 * (Math.Log10((persona.Hip + persona.Waist) - persona.Neck)) + 0.22100 * (Math.Log10(persona.Height))) - 450;
         }
         persona.Fat = grasa;
         return grasa;
     }
     throw new NotSupportedException("Tienes que ser mayor de edad.");
 }
        public float doOperation(Person persona)
        {
            //float carbs = persona.BMR / 3.74f;
            //persona.Carbohidrate = carbs;
            if (persona.BMR==0.0f)
            {
                Calorias c= new Calorias();
                c.doOperation(persona);
            }
            float calorias = 130f * 3.74f;
            float carbs = 0;

            if ((calorias / persona.BMR) >= 0.40 && (calorias / persona.BMR) <= 0.65)
            {

                carbs = 130;
                //Console.WriteLine("Para mantener su peso debe consumir: 130 gramos de carbohidratos");

            }
            else if ((calorias / persona.BMR) < 0.30)
            {

                while ((calorias / persona.BMR) < 0.30)
                {
                    calorias++;
                }

                carbs = ((130 * calorias) / 487.5f);

            }
            else if ((calorias / persona.BMR) > 0.65)
            {

                while ((calorias / persona.BMR) > 0.65)
                {
                    calorias--;
                }
            }
            carbs = ((130 * calorias) / 487.5f);

            return carbs;
        }
        public float doOperation(Person persona)
        {
            float BMR = (float)((10 * persona.Weight) + ((6.25 * persona.Height) - (5 * persona.Age)));
            float calories = BMR;

            if(persona.IsMan)
            {
                BMR += 5;
            }
            else
            {
                BMR -= 161;
            }
            persona.BMR = BMR;

            switch(persona.NivelActividad)
            {
                case NivelActividad.nivelActividad.sedentario:
                    calories *= 1.2f;
                    break;
                case NivelActividad.nivelActividad.ligeramenteActivo:
                    calories *= 1.375f;
                    break;
                case NivelActividad.nivelActividad.moderadamenteActivo:
                    calories *= 1.55f;
                    break;
                case NivelActividad.nivelActividad.muyActivo:
                    calories *= 1.725f;
                    break;
                case NivelActividad.nivelActividad.extraActivo:
                    calories *= 1.9f;
                    break;
            }

            mostrarGuia(calories);
            persona.Calories = calories;

            return calories;
        }
        public void TestCarbohidratos()
        {
            RandomGenerator r = new RandomGenerator();
            Carbohidratos c = new Carbohidratos();
            var persons = Builder<Person>.CreateListOfSize(tests).
                    All().With(x => x.Age = r.Next(1, 100))
                         .And(x => x.Height = r.Next(90, 180))
                         .And(x => x.Weight = r.Next(10, 90))
                         .And(x => x.IsMan = r.Next())
                         .And(x => x.BMR = r.Next(100, 2000))
                         .Random(15).With(x => x.BMR = 0.0f)
                   .Build();
            foreach (Person p in persons)
            {
                Person p2 = new Person();
                p2.Age = p.Age;
                p2.Height = p.Height;
                p2.Weight = p.Weight;
                p2.NivelActividad = p.NivelActividad;
                p2.IsMan = p.IsMan;
                p2.BMR = p.BMR;

                if (p2.BMR == 0.0f)
                {
                    Calorias cal = new Calorias();
                    cal.doOperation(p2);
                }

                float calorias = 130f * 3.74f;
                float expected = 0;

                if ((calorias / p2.BMR) >= 0.40 && (calorias / p2.BMR) <= 0.65)
                {

                    expected = 130;

                }
                else if ((calorias / p2.BMR) < 0.30)
                {

                    while ((calorias / p2.BMR) < 0.30)
                    {
                        calorias++;
                    }

                    expected = ((130 * calorias) / 487.5f);

                }
                else if ((calorias / p2.BMR) > 0.65)
                {

                    while ((calorias / p2.BMR) > 0.65)
                    {
                        calorias--;
                    }
                }
                expected = ((130 * calorias) / 487.5f);
                float value = c.doOperation(p);
                Assert.AreEqual(expected, value);

            }
        }
Exemple #5
0
        static void Main(string[] args)
        {
            Person persona = new Person();

            Console.Write("Edad: ");
            persona.Age = int.Parse(Console.ReadLine());

            Console.Write("Sexo (m-f): ");
            persona.IsMan = Console.ReadLine().Equals("m");

            Console.Write("Altura: ");
            persona.Height = float.Parse(Console.ReadLine());

            Console.Write("Ancho de Cuello: ");
            persona.Neck = float.Parse(Console.ReadLine());

            Console.Write("Ancho de Cintura: ");
            persona.Waist = float.Parse(Console.ReadLine());

            Console.Write("Ancho de Caderas: ");
            persona.Hip = float.Parse(Console.ReadLine());

            Console.Write("Peso: ");
            persona.Weight = float.Parse(Console.ReadLine());

            Console.Write("Nivel de Actividad (s-la-ma-aa-ea): ");
            switch(Console.ReadLine())
            {
                case "s":
                    persona.NivelActividad = NivelActividad.nivelActividad.sedentario;
                    break;
                case "la":
                    persona.NivelActividad = NivelActividad.nivelActividad.ligeramenteActivo;
                    break;
                case "ma":
                    persona.NivelActividad = NivelActividad.nivelActividad.moderadamenteActivo;
                    break;
                case "aa":
                    persona.NivelActividad = NivelActividad.nivelActividad.muyActivo;
                    break;
                case "ea":
                    persona.NivelActividad = NivelActividad.nivelActividad.extraActivo;
                    break;
                default:
                    Console.WriteLine("Invalido");
                    break;

            }

            Calculadora calculadora = new Calculadora(persona);
            while (calculadora.estaActiva)
            {
                Console.WriteLine("Opciones: (1)Calorias - (2)Carbohidratos - (3)Peso Ideal - (4)Grasa Corporal - (5)Salir");

                if (!calculadora.seleccionarCalculadora(Console.ReadLine())) {
                    Console.WriteLine("Seleccione una Calculadora Valida.");
                }
                Console.ReadKey();
                Console.Clear();
            }

            //Console.ReadLine();
        }
 private String Guia(Person persona, float BMI)
 {
     if(persona.Age >= 18)
     {
         if(BMI >= 18.5f && BMI <= 25f)
         {
             return "Peso normal";
         }
         else if(BMI < 18.5f)
         {
             return "Bajo peso";
         }
         else if(BMI > 25f && BMI <= 29.9f){
             return "Sobrepeso";
         }
         else if(BMI > 29.9f){
             return "Obeso";
         }
     }
     if (persona.Age < 18 && persona.Age>1)
     {
         foreach (KeyValuePair<Range<float>, string> pair in niños[persona.IsMan][persona.Age])
         {
             if (pair.Key.ContainsValue(persona.Weight))
             {
                 return pair.Value;
             }
         }
     }
     return "Edad no Valida";
 }
        public float doOperation(Person persona)
        {
            float BMI = 0.0f;

            if(persona.Age >= 18)
            {
                BMI = (float)((persona.Weight) / (Math.Pow(persona.Height/100, 2)));
            }
            else
            {
                BMI = (float)(((persona.Weight) / (Math.Pow(persona.Height, 2)))*10000) ;
            }

            Console.WriteLine(Guia(persona, BMI)+".");
            persona.IdealWeight = BMI;

            return BMI;
        }
 public Calculadora(Person persona)
 {
     this.persona = persona;
     this.estaActiva = true;
 }