none
Calculo IMC em C# ( console Application) RRS feed

  • Pergunta

  • Sou iniciante em C# e meu professor pediu para que eu fizesse um programa para calcular o IMC, mas o programa da sempre a primeira opção.  O que está errado?<o:p></o:p>

    O código é esse:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;


    namespace Calculo_do_IMC
    {
        class Program
        {
            static void Main(string[] args)
            {
             float A, P, imc;
        
                Console.Write("Digite o seu peso:");
                P =float.Parse(Console.ReadLine());


                Console.Write("Digite o seu altura:");
                A = float.Parse(Console.ReadLine());
          
                imc=(P /(A*A ));
                
                  if(imc<18.5)
                {
                    Console.WriteLine("Peso abaixo do normal");
                }
                 else if ((imc ==18.5) || (imc  ==25))
                {
                    Console.WriteLine("Peso normal");
                }
                  if ((imc > 25) || (imc ==30))
     
                {
                    Console.WriteLine("Sobre o Peso");
                }
                  else if ((imc > 30) || (imc ==35))
                {
                    Console.WriteLine("Grau de Obesidade I");
                }
                  if ((imc > 35) ||  (imc ==40))
                {
                    Console.WriteLine("Grau de Obesidade II");
                }
                 else if (imc >40)
                {
                    Console.WriteLine("Obesidade Grau III");
                }
                
                Console.ReadKey();


            }
        }
    }

    <o:p></o:p>

    sábado, 11 de fevereiro de 2012 20:09

Respostas

  •  float A, P, imc;
    
                Console.Write("Digite o seu peso:");
                P = float.Parse(Console.ReadLine());
    
    
                Console.Write("Digite o seu altura:");
                A =  float.Parse(Console.ReadLine());
    
                imc = (P / (A *A));
    
                if (imc < 18.5)
                {
                    Console.WriteLine("Peso abaixo do normal");
                }
                else if ((imc > 18.5) && (imc < 25))
                {
                    Console.WriteLine("Peso normal");
                }
                else  if ((imc > 25) && (imc < 30))
                {
                    Console.WriteLine("Sobre o Peso");
                }
                else if ((imc > 30) && (imc < 35))
                {
                    Console.WriteLine("Grau de Obesidade I");
                }
                else if ((imc > 35) && (imc < 40))
                {
                    Console.WriteLine("Grau de Obesidade II");
                }
                else  if (imc > 40)
                {
                    Console.WriteLine("Obesidade Grau III");
                }
    
                Console.ReadKey();

    sábado, 11 de fevereiro de 2012 21:25

Todas as Respostas

  •  float A, P, imc;
    
                Console.Write("Digite o seu peso:");
                P = float.Parse(Console.ReadLine());
    
    
                Console.Write("Digite o seu altura:");
                A =  float.Parse(Console.ReadLine());
    
                imc = (P / (A *A));
    
                if (imc < 18.5)
                {
                    Console.WriteLine("Peso abaixo do normal");
                }
                else if ((imc > 18.5) && (imc < 25))
                {
                    Console.WriteLine("Peso normal");
                }
                else  if ((imc > 25) && (imc < 30))
                {
                    Console.WriteLine("Sobre o Peso");
                }
                else if ((imc > 30) && (imc < 35))
                {
                    Console.WriteLine("Grau de Obesidade I");
                }
                else if ((imc > 35) && (imc < 40))
                {
                    Console.WriteLine("Grau de Obesidade II");
                }
                else  if (imc > 40)
                {
                    Console.WriteLine("Obesidade Grau III");
                }
    
                Console.ReadKey();

    sábado, 11 de fevereiro de 2012 21:25
  • Agora só da peso normal !
    sábado, 11 de fevereiro de 2012 21:48
  • sábado, 11 de fevereiro de 2012 21:51
  • Agora deu certo :D Muito Obrigado


    sábado, 11 de fevereiro de 2012 22:49

  • Precisa de um ajuste, o programa não vai dar certo se o imc possuir valores exatamente iguais a 18.5 , 25, 30 , 35 e 40. São baixas as chances do cálculo resultar exatamente nesses valores mas é melhor corrigir a lógica.

    float A, P, imc;
    
                Console.Write("Digite o seu peso:");
                P = float.Parse(Console.ReadLine());
    
    
                Console.Write("Digite o seu altura:");
                A =  float.Parse(Console.ReadLine());
    
                imc = (P / (A *A));
    
                if (imc <= 18.5)
                {
                    Console.WriteLine("Peso abaixo do normal");
                }
                else if ((imc > 18.5) && (imc < 25))
                {
                    Console.WriteLine("Peso normal");
                }
                else  if ((imc >= 25) && (imc < 30))
                {
                    Console.WriteLine("Sobre o Peso");
                }
                else if ((imc >= 30) && (imc < 35))
                {
                    Console.WriteLine("Grau de Obesidade I");
                }
                else if ((imc >= 35) && (imc < 40))
                {
                    Console.WriteLine("Grau de Obesidade II");
                }
                else  if (imc >= 40)
                {
                    Console.WriteLine("Obesidade Grau III");
                }
    
                Console.ReadKey();

    Esta alteração foi proposta com base na wiki http://pt.wikipedia.org/wiki/%C3%8Dndice_de_massa_corporal

    Att;

    segunda-feira, 13 de fevereiro de 2012 15:52