sexta-feira, 30 de novembro de 2012

Programa calculando I.M.C

Talvez você esteja acima do peso ideal, ou quem sabe até mesmo
abaixo e não sabe, preocupado com isto foi que elaborei este programa
que calcula o "IMC", Índice de massa corporal, e descobri que estou um pouco acima,
ainda bem que não é muito, ufa!! Más já me serviu de alerta
para tomar os cuidados necessários. O programa é muito simples, mostra
primeiro um texto que foi introduzido num vetor de char, e depois de uma
fórmula simples, temos uma cadeia de ifs que é o ponto central do código
Perfeito para iniciantes dominarem o uso indispensável dos ifs.
Se você não domina a biblioteca conio2.h, terá dificuldades em compilar
este projeto, e se conseguir, tirando as funções gotoxy e textcolor
concerteza você verá uma porcaria, em fim, taí mais um código feito
exclusivamente para iniciantes em Linguagem C, que é minha paixão.

O código foi todo editado no eclipse e está rodando perfeitamente
sem nenhum waning.

Veja algumas imagens do Programa em execução:





Copie, cole e compile o código abaixo:

#include <stdio.h>
#include <conio.h>
void Janela5 ( ) {
     int n, c;
     c = 0;
     system ( "Color 00" );
     for ( n = 1; n < 24; n++ )
         for ( c = 2; c < 78; c++ ) {
              gotoxy ( c, n );
              textbackground ( WHITE );
              printf ( " " );
         }
}
void Janela6 ( ) {
     int lin, col;
     for ( lin = 2; lin < 23; lin++ )
         for ( col = 3; col < 77; col++ ) {
              gotoxy ( col, lin );
              textbackground ( 6 );
              printf ( " " );
         }
     for ( lin = 5; lin < 20; lin++ )
         for ( col = 6; col < 74; col++ ) {
              gotoxy ( col, lin );
              textbackground ( 16 );
              printf ( " " );
         }
     textcolor ( LIGHTRED );
     gotoxy ( 30, 3 );
     printf ( "PROGRAMA CALCULANDO I.M.C" );
}
char CALCULO_IMC [ 10 ] [ 70 ] = { {
         "Abaixo de 18,5 Voce esta abaixo do peso ideal" }, {
         "Entre 18,5 e 24,9 Parabens voce  esta em seu peso normal!" }, {
         "Entre 25,0 e 29,9 Voce  esta acima de seu peso (sobrepeso)" }, {
         "Entre 30,0 e 34,9 Obesidade grau I" }, {
         "Entre 35,0 e 39,9 Obesidade grau II" }, {
         "40,0 e acima Obesidade grau III" },
         { "PRESSIONE QUALQUER TECLA" } };
void Calcula_Imc ( ) {
     void termina ( );
     int i;
     float peso, altura, IMC;
     system ( "cls" );
     Janela5 ( );
     textcolor ( LIGHTRED );
     gotoxy ( 27, 3 );
     printf ( "PROGRAMA CALCULANDO I.M.C" );
     textcolor ( LIGHTBLUE );
     gotoxy ( 30, 5 );
     printf ( "OBSERVE A TABELA ABAIXO" );
     gotoxy ( 8, 5 );
     textcolor ( BLACK );
     for ( i = 0; i < 7; i++ ) {
         gotoxy ( 8, i + 5 );
         printf ( "%s", CALCULO_IMC [ i ] );
         if ( i == 6 ) {
//Isto foi usado para apagar a linha 6 
//da matriz de string
              textbackground ( WHITE );
              gotoxy ( 8, i + 5 );
              printf ( " " );
         }
     }
     textbackground ( WHITE );
     textcolor ( LIGHTRED );
     gotoxy ( 28, i + 15 );
     printf ( "%s", CALCULO_IMC [ 6 ] );
     getche ( );
     Janela6 ( );
     textbackground ( BLACK );
     textcolor ( LIGHTBLUE );
     gotoxy ( 20, 7 );
     printf ( "Digite seu Peso: " );
     scanf ( "%f", &peso );
     fflush ( stdin );
     textcolor ( LIGHTBLUE );
     gotoxy ( 20, 9 );
     printf ( "Digite sua Altura: " );
     scanf ( "%f", &altura );
     fflush ( stdin );
     IMC = peso / ( altura * altura );
     textcolor ( YELLOW );
     gotoxy ( 20, 11 );
     printf ( "Seu IMC e: %.2f", IMC );
     textcolor ( LIGHTRED );
     gotoxy ( 30, 3 );
     printf ( "PROGRAMA CALCULANDO I.M.C" );
     if ( IMC < 18.5 ) {
         textcolor ( LIGHTGREEN );
         gotoxy ( 20, 13 );
         printf ( "O seu indice de Massa Corporea e %.2f", IMC );
         textcolor ( LIGHTGREEN );
         gotoxy ( 20, 14 );
         printf ( "Voce este abaixo do peso ideal" );
     }
     if ( IMC >= 18.5 && IMC <= 24.9 ) {
         textcolor ( LIGHTGREEN );
         gotoxy ( 20, 13 );
         printf ( "O seu indice de Massa Corporea e %.2f", IMC );
         textcolor ( LIGHTGREEN );
         gotoxy ( 20, 14 );
         printf ( "Voce esta no seu peso Normal" );
     }
     if ( IMC >= 25 && IMC <= 29.9 ) {
         textcolor ( LIGHTGREEN );
         gotoxy ( 20, 13 );
         printf ( "O seu indice de Massa Corporea e %.2f", IMC );
         textcolor ( LIGHTGREEN );
         gotoxy ( 20, 14 );
         printf ( "Voce esta acima de seu peso ideal" );
     }
     if ( IMC >= 30 && IMC <= 34.9 ) {
         textcolor ( LIGHTGREEN );
         gotoxy ( 20, 13 );
         printf ( "O seu indice de Massa Corporea e %.2f", IMC );
         textcolor ( LIGHTGREEN );
         gotoxy ( 20, 14 );
         printf ( " Obesidade grau I" );
     }
     if ( IMC >= 35 && IMC <= 39.9 ) {
         textcolor ( LIGHTGREEN );
         gotoxy ( 20, 13 );
         printf ( "O seu indice de Massa Corporea e %.2f", IMC );
         textcolor ( LIGHTGREEN );
         gotoxy ( 20, 14 );
         printf ( "Obesidade grau II" );
     }
     if ( IMC > 40 ) {
         textcolor ( LIGHTGREEN );
         gotoxy ( 20, 13 );
         printf ( "O seu indice de Massa Corporea e %.2f", IMC );
         textcolor ( LIGHTGREEN );
         gotoxy ( 20, 14 );
         printf ( "Obesidade grau III" );
     }
     textcolor ( LIGHTRED );
     gotoxy ( 28, i + 14 );
     printf ( "%s", CALCULO_IMC [ 6 ] );
     getche ( );
     termina ( );
}
void inicio ( ) {
     int i;
     void Vetores ( );
     Janela6 ( );
     textbackground ( BLACK );
     do {
         textcolor ( YELLOW );
         gotoxy ( 22, 10 );
         printf ( "Programa desenvolvido por:" );
         textcolor ( LIGHTCYAN );
         gotoxy ( 49, 10 );
         printf ( "Samuel Lima" );
         textcolor ( LIGHTGREEN );
         gotoxy ( 30, 12 );
         printf ( "sa_sp10@hotmail.com" );
         textcolor ( LIGHTBLUE );
         gotoxy ( 21, 14 );
         printf ( "DIGITE " );
         textcolor ( LIGHTRED );
         printf ( "1 " );
         textcolor ( LIGHTBLUE );
         printf ( "PARA SAIR OU " );
         textcolor ( LIGHTRED );
         gotoxy ( 44, 14 );
         printf ( "2 " );
         textcolor ( LIGHTBLUE );
         printf ( "PARA CONTINUAR " );
         textcolor ( LIGHTRED );
         gotoxy ( 21, 16 );
         scanf ( "%d", &i );
         fflush ( stdin );
         if ( i == 1 ) {
              textcolor ( LIGHTBLUE );
              gotoxy ( 30, 20 );
              printf ( "MUITO OBRIGADO" );
              Sleep ( 1800 );
              exit ( 0 );
         }
         if ( i == 2 ) {
              system ( "cls" );
              Calcula_Imc ( );
              system ( "cls" );
         } else {
              textcolor ( LIGHTBLUE );
              gotoxy ( 30, 20 );
              printf ( "\aOPCAO ERRADA" );
              Sleep ( 1800 );
              inicio ( );
         }
     } while ( i );
}
void termina ( ) {
     int i;
     do {
         Janela6 ( );
         textcolor ( YELLOW );
         gotoxy ( 28, 8 );
         printf ( "O QUE DESEJA FAZER AGORA?" );
         textcolor ( LIGHTCYAN );
         gotoxy ( 16, 10 );
         printf ( "QUER OPERAR O PROGRAMA NOVAMENTE OU FINALIZA - LO ?" );
         textcolor ( LIGHTBLUE );
         gotoxy ( 33, 12 );
         printf ( "DIGITE NO TECLADO" );
         textcolor ( LIGHTRED );
         gotoxy ( 26, 14 );
         printf ( "[ 1 ]" );
         textcolor ( LIGHTMAGENTA );
         gotoxy ( 32, 14 );
         printf ( "PARA FINALIZAR" );
         textcolor ( LIGHTRED );
         gotoxy ( 26, 16 );
         printf ( "[ 2 ]" );
         textcolor ( LIGHTMAGENTA );
         gotoxy ( 32, 16 );
         printf ( "PARA UMA NOVA OPERACAO" );
         textcolor ( LIGHTRED );
         gotoxy ( 26, 18 );
         printf ( "[ 3 ]" );
         textcolor ( LIGHTMAGENTA );
         gotoxy ( 32, 18 );
         printf ( "PARA VOLTAR AO INICIO DO PROGRAMA" );
         gotoxy ( 26, 20 );
         scanf ( "%d", &i );
         fflush ( stdin );
         if ( i == 1 ) {
              textcolor ( LIGHTBLUE );
              gotoxy ( 30, 20 );
              printf ( "MUITO OBRIGADO" );
              Sleep ( 1800 );
              exit ( 0 );
         }
         if ( i == 2 ) {
              system ( "cls" );
              Calcula_Imc ( );
         }
         if ( i == 3 ) {
              inicio ( );
         } else {
              textcolor ( LIGHTBLUE );
              gotoxy ( 30, 20 );
              printf ( "\aOPCAO ERRADA" );
              Sleep ( 1800 );
              system ( "cls" );
         }
     } while ( 1 );
}
int main ( ) {
     system ( "title CALCULANDO IMC" );
     inicio ( );
}




Nenhum comentário:

Postar um comentário

Observação: somente um membro deste blog pode postar um comentário.