domingo, 15 de setembro de 2013

Aprendendo C - Parte 7 - Correção do exercício IMC

Boa noite pessoal. Demorou, mas aqui está a correção do exercício.
Basta copiar e colar no DEVC e testar.
Comparem com o código que vocês fizeram.

/*   PROGRAMA CÁLCULO DE IMC
     CURSO BÁSICO DE C DO BLOG VIAJEI NA MAGONESES
     UTILIZACAO DAS CONDIÇÕES IF E ELSE
     AUTOR : RAFAEL SCHNEIDER
     DATA: 12/09/2013
*/



#include<conio.h>          //bibliotecas padrão para entrada e saida, especificamente de MS-DOS
#include<stdio.h>          //biblioteca padrão de entrada e saída de dados.
#include<windows.h>        //biblioteca necessária para realização de comandos MS-DOS

 float peso, altura,IMC;   // declaração das variáves, todas float, separadas por vírgula e com ponto-e-vírgula no final
 int sexo;
main()                     // funçao principal, onde o compilador irá ler primeiro. Sempre será lido o main()  primeiro
{                          //inicia o bloco da função
      printf("Indique seu sexo:\n");
      printf("1-Feminino\n2-Masculino\n");
      scanf("%i",&sexo);
      printf("Digite seu peso: \n");    //imprimi na tela -- o \n significa "nova linha", o cursor estará na linha abaixo
      scanf("%f",&peso);                //lê o que o usuário digitou, e atribui á variável "peso";
      printf("Digite sua altura, em Metros: \n"); //imprimi na tela e solicita que usuário digite outro numero
      scanf("%f",&altura);                        // atribui este valor, á variável "altura"
      system("cls");                              // comando de DOS "cls" que limpa a tela
     
      IMC = peso /(altura*altura);              
      /* esta linha acima, esta realizando a fórmula
      esta realizando primeiro ( altura * altura ), pois sempre é realizado o parênteses primeiro
      após isso, ele divide o peso, pelo produto de ( altura * altura )
      e atribui tudo isso á IMC
      */
       /* TABELA USADA COMO REFERENCIA
                    HOMEM         MULHER
 ABAIXO NORMAL        -20          -19
 NORMAL               20 A 25       19 A 24
 OBESIDADE LEVE       25 A 30       24 A 29
 OBESIDADE MODERADA   30 A 40       30 A 39
 OBESIDADE MORBIDA     + 43            + 40*/  
         
         
         
         
           if ( sexo == 1 ){                        // Se o sexo for '1', então é Feminino
              if ( IMC < 19 ) {                      
                   printf("IMC :%f Sexo Feminino, abaixo do Normal", IMC);
                   }
              if ( IMC >= 19 && IMC < 24 ) {
                   printf("IMC :%f Sexo Feminino, esta Normal ", IMC);
                   }
              if ( IMC >= 25 && IMC < 29 ) {
                   printf("IMC :%f Sexo Feminino, esta com Obesidade Leve",IMC);
                   }
              if ( IMC >= 30 && IMC < 39 ) {
                  printf("IMC :%f Sexo Feminino, esta com Obesidade Moderada", IMC);
                  }              
              if ( IMC > 39 ) {
                  printf("IMC :%f Sexo Feminino, esta com Obesidade Morbida ", IMC);
               }
           }else {
              if ( IMC < 20 ) {
                   printf(" %f Sexo Masculino, esta abaixo do Normal", IMC);
                  }
              if ( IMC >= 20 && IMC < 25 ) {
                  printf(" IMC :%f Sexo Masculino, está Normal", IMC);
                  }
              if ( IMC >= 25 && IMC < 30 ) {
                   printf("IMC :%f Sexo Masculino, esta com Obesidade Leve", IMC);
                   }
              if ( IMC >= 30 && IMC < 40 ) {
                  printf("IMC :%f Sexo Masculino, esta com Obesidade Moderada",IMC);
                  }              
              if ( IMC > 40 ) {
                  printf("IMC :%f Sexo Masculino, esta com Obesidade Morbida ",IMC);
               }                  
           }
   
      // %0.2f - significa que o resultado é um numero float ( %f ), mas que conterá somente 2 casas depois da virgula (0.2)
      // nota-se que quando é fechado ás aspas duplas, existe uma vírgula e a variável IMC .
      // Isso significa que o %0.2f deve mostrar o valor de IMC, caso contrário, o programa não saberia de onde buscar a informação
      // Entenderam ??          
     
        getch();
       // Getch é um comando que aguarda uma ação do teclado, se não clicar, não acontece nada, se clicar, ele fecha;
      // se não utilizar este comando, o programa irá mostrar o resultado e fechar muito rapidamente que não será possível ver o resultado.


}// Fecha o Bloco




Era isso pessoal. Próximo capítulo do curso veremos laços de repetição : For e While;
Não pretendo entrar em vetores e matrizes ( a não ser que ocorra apelo popular ), justamente porque pretendo começar outro curso, com utilização de interface gráfica e acesso a banco.
Veremos como que ficará este curso e já iniciaremos outro....

Muito obrigado e Boa semana á todos.


Nenhum comentário:

Postar um comentário