Calculo calorico visando perca de gordura e definicao muscular

Publicado por Carlos Baldocchi 06/05/2009 (última atualizaçăo em 11/11/2011)

[ Hits: 10.155 ]

Download anabolismo.cpp

Download 1320719316.anabolismo.cpp (versăo 2)




Fiz esse programa para satisfazer minhas próprias necessidades. Ele faz todos os cálculos automáticos sobre percentual de gordura corporal, consumo diário calórico, e mais algumas coisas.

Não sou nenhum programador avançado, e sei apenas o básico de C que aprendi na faculdade e como hobbie. O interessante nesse programa é a metodologia que empreguei, tentando criar uma interface o mais intuitiva possível, clara e bem explicada
para o usuário.

Compilado em Windows: Dev-C++

  



Versőes atualizadas deste script

Versăo 2 - Enviado por Carlos Baldocchi em 08/11/2011

Changelog: Nova versăo! Agora com balanço calórico balanceado para dias de semana e finais de semana.

Download 1320719316.anabolismo.cpp


Esconder código-fonte

#include <stdio.h>
//#include <iostream>
#include <stdlib.h>
#include <conio.h>
#include <windows.h>

// by Carlos E. Baldocchi
// contato: carlos.baldocchi@gmail.com
// Agradecimento ŕ http://www.guiadohardware.net

char nome[101], sexo, metodo, none, tecla_espaco, tecla_enter;
int idade, controle, abc, menu;
float altura, massa, imc, massa_fim;
float massa_magra_ini, massa_magra_fim, massa_gorda_ini, massa_gorda_fim;
float calorias_dia, quilos_semana;
float perc_gord_ini, perc_gord_fim;
float calorias_diarias_teorico, calorias_diarias_real;

int subprog_ajuda ();
int subprog_printf_percentual ();
int subprog_calc_cintura ();
int subprog_gasto_calorico_diario ();
int subprog_salvar ();
int subprog_config_teclado ();

int main()
{
    char s_ou_n, pergunta_salvar, percentual;
    
    printf("=== Calculo calorico visando perca de gordura e definicao muscular ===");
    printf("\n===                                                Hipertrofia.ORG ===");
    printf("\n===                        by C.E.B - 02/05/2009 - versao: B 0.0.5 ===");
    printf("\n\nPressione [espaco] para selecionar e [ENTER] para continuar\n\n");
//    *************
    
    menu=1;
    do
    {
               if (menu==1) printf("(*) Configurar o teclado\n( ) Iniciar o programa\n( ) Ajuda\n( ) Sair");
               else if (menu==2) printf("( ) Configurar o teclado\n(*) Iniciar o programa\n( ) Ajuda\n( ) Sair");
               else if (menu==3) printf("( ) Configurar o teclado\n( ) Iniciar o programa\n(*) Ajuda\n( ) Sair");
               else if (menu==4) printf("( ) Configurar o teclado\n( ) Iniciar o programa\n( ) Ajuda\n(*) Sair");
               none=getch();
               
               if ((none==32)||(none==tecla_espaco))
               {
                               menu++;
                               if (menu==5) menu=1;
               }
               
               else if (!((none==13)||(none==tecla_enter))) printf("\nERRO! Pressione [espaco] para selecionar.\nSe o erro persistir pressione [ENTER] para configurar o teclado.");
               
               printf("\n\n");
               
    }while(!((none==13)||(none==tecla_enter)));
    
    if (menu==1) subprog_config_teclado();
    if (menu==3) subprog_ajuda();
    if (menu==4) goto AUTOR;
    
    {
        printf("Entre com seu nome: ");
        fgets (nome,100,stdin);
    }

    printf("\nEntre com seu sexo\n(Pressione [espaco] para selecionar e [ENTER] para continuar)\n:\n");
    menu=1;
    do
    {
               if (menu==1) printf("(*) Homem\n( ) Mulher");
               else if (menu==2) printf("( ) Homem\n(*) Mulher");
               none=getch();
               
               if ((none==32)||(none==tecla_espaco))
               {
                               menu++;
                               if (menu==3) menu=1;
               }
               
               else if (!((none==13)||(none==tecla_enter))) printf("\nERRO! Pressione [espaco] para selecionar.");
               
               printf("\n\n");
               
    }while(!((none==13)||(none==tecla_enter)));
    
    if (menu==1) sexo='H';
    if (menu==2) sexo='M';
    
//    do{
//    printf("\nEntre com seu sexo - H(homem) / M(mulher): ");
//    sexo=getche();
//    if ( (sexo!='H') && (sexo!='h') && (sexo!='M') && (sexo!='m') ) printf("\nERRO! Pressione apenas \"H\" ou \"M\".\n");
//    }while( (sexo!='H') && (sexo!='h') && (sexo!='M') && (sexo!='m') );
    
    do
    {
               printf("Entre com sua idade\n[unidade: anos - exemplo: 22]\n: ");
               scanf("%d",&idade);
               if ( (!((idade>0)&&(idade<=99))) ) printf("ERRO! Limitado entre 0 e 99 anos.\n\n");
    }while( (!((idade>0)&&(idade<=99))) );
    
    do
    {
               printf("\nEntre com sua altura\n[unidade: cm - exemplo: 180]\n: ");
               scanf("%f",&altura);
               if ( (!((altura>0)&&(altura<=250))) ) printf("ERRO! Limitado entre 0 e 250 cm.\n");
    }while( !( (altura>0) && (altura<=250) ) );
    
    do
    {
               printf("\nEntre com sua massa\n[unidade: kG - exemplo: 87.5]\n: ");
               scanf("%f",&massa);
               if ( (!((massa>0)&&(massa<=220))) ) printf("ERRO! Limitado entre 0 e 220 kG.\n");
    }while( (!((massa>0)&&(massa<=220))) );
    
    imc=(massa/((altura/100)*(altura/100)));
    
    VOLTA1:
    printf("\nVoce sabe seu percentual de gordura corporal?\n(Pressione [espaco] para selecionar e [ENTER] para continuar)\n:\n");
    menu=1;
    do
    {
               if (menu==1) printf("(*) Sim - utilizar o valor que possuo\n( ) Nao - utilizar o programa para calcular\n( ) Ajuda...");
               else if (menu==2) printf("( ) Sim - utilizar o valor que possuo\n(*) Nao - utilizar o programa para calcular\n( ) Ajuda...");
               else if (menu==3) printf("( ) Sim - utilizar o valor que possuo\n( ) Nao - utilizar o programa para calcular\n(*) Ajuda...");
               none=getch();
               
               if ((none==32)||(none==tecla_espaco))
               {
                               menu++;
                               if (menu==4) menu=1;
               }
               
               else if (!((none==13)||(none==tecla_enter))) printf("\nERRO! Pressione [espaco] para selecionar.");
               
               printf("\n\n");
               
    }while(!((none==13)||(none==tecla_enter)));
    
    if (menu==1) percentual='S';
    if (menu==2) percentual='N';
    if (menu==3) percentual='H';
//    do
//    {
//    printf("\nVoce sabe seu percentual de gordura corporal?\nS (sim - utilizar o valor que possuo)\nN (nao - utilizar o programa para calcular)\nPressione \"h\" para ajuda\n: ");
//    percentual=getche();
//    if ( (percentual!='S') && (percentual!='s') && (percentual!='N') && (percentual!='n') && (percentual!='H') && (percentual!='h') ) printf("\nERRO! Pressione apenas \"S\" ou \"N\" ou \"H\".\n");
//    }while( (percentual!='S') && (percentual!='s') && (percentual!='N') && (percentual!='n') && (percentual!='H') && (percentual!='h') );
    
    if ((percentual=='S')||(percentual=='s'))
    {
         do
         {
                  printf("Entre com seu atual percentual de gordura corporal\n[unidade: %% x 100 - exemplo: 22.5]\n: ");
                  scanf("%f",&perc_gord_ini);
                  if ( (!((perc_gord_ini>=0)&&(perc_gord_ini<100))) ) printf("ERRO! Limitado entre 0 e 100%%.\n\n");
         }while( (!((perc_gord_ini>0)&&(perc_gord_ini<100))) );
    }
    
    if ((percentual=='H')||(percentual=='h'))
    {
             subprog_printf_percentual ();
             goto VOLTA1;
    }
    
    if ((percentual=='N')||(percentual=='n')) subprog_calc_cintura();
    
    do
    {
         printf("\nEntre com seu desejado percentual de gordura corporal\n[unidade: %% x 100 - exemplo: 11.5]\nPressione \"0\" para ajuda\n: ");
         scanf("%f",&perc_gord_fim);
         if (perc_gord_fim==0) subprog_printf_percentual();
         if ( (!((perc_gord_fim>=0)&&(perc_gord_fim<100))) ) printf("ERRO! Limitado entre 0 e 100%%.\n");
    }while( (!((perc_gord_fim>0)&&(perc_gord_fim<100))) );
    
    if(perc_gord_fim>=perc_gord_ini)
    {
         printf("\nPercentual nao aceito!\nSeu percentual inicial e: %.0f%%\nSeu percentual desejado e: %.0f%%\nVoce deseja engordar!!!\n\n",perc_gord_ini,perc_gord_fim);
         system("pause");
         goto FINISH;
         return(1);
    }
    
    system("cls");
    
    printf("Voce sabe quantas calorias gasta diariamente?\n(Pressione [espaco] para selecionar e [ENTER] para continuar)\n:\n");
    menu=1;
    do
    {
               if (menu==1) printf("(*) Sim - utilizar o valor que possuo\n( ) Nao - utilizar o programa para calcular");
               else if (menu==2) printf("( ) Sim - utilizar o valor que possuo\n(*) Nao - utilizar o programa para calcular");
               none=getch();
               
               if ((none==32)||(none==tecla_espaco))
               {
                               menu++;
                               if (menu==3) menu=1;
               }
               
               else if (!((none==13)||(none==tecla_enter))) printf("\nERRO! Pressione [espaco] para selecionar.");
               
               printf("\n\n");
               
    }while(!((none==13)||(none==tecla_enter)));
    
    if (menu==1) s_ou_n='S';
    if (menu==2) s_ou_n='N';

//    do
//    {
//    if (u==0) printf("Voce sabe quantas calorias gasta diariamente?\nS (sim - utilizar o valor que possuo)\nN (nao - utilizar o programa para calcular)\n: ");
//    if (u==1) printf("\nVoce sabe quantas calorias gasta diariamente?\nS (sim - utilizar o valor que possuo)\nN (nao - utilizar o programa para calcular)\n: ");
//    u=1;
//    s_ou_n=getche();
//    if ( (s_ou_n!='S') && (s_ou_n!='s') && (s_ou_n!='N') && (s_ou_n!='n') ) printf("\nERRO! Pressione apenas \"S\" ou \"N\".\n");
//    }while( (s_ou_n!='S') && (s_ou_n!='s') && (s_ou_n!='N') && (s_ou_n!='n') );
        
    if ( (s_ou_n=='S')||(s_ou_n=='s') )
    {
         do
         {
         printf("Entre com o seu gasto calorico diario\n[unidade: kcal - exemplo: 1250]\n: ");
         scanf("%f",&calorias_diarias_real);
         if ( (!((calorias_diarias_real>0)&&(calorias_diarias_real<=12000))) ) printf("ERRO! Limitado entre 0 e 12000 kcal / dia.\n\n");
         }while( (!((calorias_diarias_real>0)&&(calorias_diarias_real<=12000))) );
    }
    if ( (s_ou_n=='N')||(s_ou_n=='n') ) subprog_gasto_calorico_diario();
        
    system("cls");
    
    printf("Selecione o metodo de calculo:\n(Pressione [espaco] para selecionar e [ENTER] para continuar)\n:\n");
    menu=1;
    do
    {
               if (menu==1) printf("(*) A - Quantidade calorica a ser perdida diariamente.\n( ) B - Quantidade massica a ser perdida por semana.\n");
               else if (menu==2) printf("( ) A - Quantidade calorica a ser perdida diariamente.\n(*) B - Quantidade massica a ser perdida por semana.\n");
               none=getch();
               
               if ((none==32)||(none==tecla_espaco))
               {
                               menu++;
                               if (menu==3) menu=1;
               }
               
               else if (!((none==13)||(none==tecla_enter))) printf("ERRO! Pressione [espaco] para selecionar.\n");
               
               printf("\n");
               
    }while(!((none==13)||(none==tecla_enter)));
    
    if (menu==1) metodo='A';
    if (menu==2) metodo='B';
    
//    do{
//             if (u==0) printf("Selecione o metodo de calculo:\nA - Quantidade calorica a ser perdida diariamente.\nB - Quantidade massica a ser perdida por semana.\n: ");
//             if (u==1) printf("\nSelecione o metodo de calculo:\nA - Quantidade calorica a ser perdida diariamente.\nB - Quantidade massica a ser perdida por semana.\n: ");
//             u+1;
//             metodo=getche();
//             if ( (metodo!='A') && (metodo!='a') && (metodo!='B') && (metodo!='b') ) printf("\nERRO! Pressione apenas \"A\" ou \"B\".\n\n");
//    }while( (metodo!='A') && (metodo!='a') && (metodo!='B') && (metodo!='b') );
    
    if ( (metodo=='A')||(metodo=='a') )
    {
         do
         {
                  printf("\nEntre com a quantidade calorica a ser perdida diariamente\n[unidade: kcal - exemplo: 500]\n: ");
                  scanf("%f",&calorias_dia);
                  if ( (!((calorias_dia>0)&&(calorias_dia<=3000))) ) printf("ERRO! Limitado entre 0 e 3000 kcal / dia.\n");
         }while( (!((calorias_dia>0)&&(calorias_dia<=3000))) );
    }
    
    if ( (metodo=='B')||(metodo=='b') )
    {
         do
         {
                  printf("Entre com a quantidade massica a ser perdida semanalmente\n[unidade: kG - exemplo: 1 ou 1.2 ou 1.5... etc]\n: ");
                  scanf("%f",&quilos_semana);
                  if ( (!((quilos_semana>0)&&(quilos_semana<=2.5))) ) printf("ERRO! Limitado entre 0 e 2.5 kG / semana.\n\n");
         }while( (!((quilos_semana>0)&&(quilos_semana<=2.5))) );
    }
    
    system("cls");
    
    printf("===================================================================");
    
    massa_magra_ini=(massa*(1-(perc_gord_ini/100)));
    massa_gorda_ini=(massa*(perc_gord_ini/100));
    
    massa_magra_fim=(massa*(1-(perc_gord_ini/100)));
    massa_gorda_fim=((massa_magra_fim/(1-(perc_gord_fim/100)))-massa_magra_fim);
    
    massa_fim=(massa_magra_fim+massa_gorda_fim);
        
    imc=(massa/((altura/100)*(altura/100)));
        
    printf("\nNome: %s",nome);
    printf("\nSexo: ");
    if ( (sexo=='H') || (sexo=='h') ) printf("Masculino.");
    else if ( (sexo=='M') || (sexo=='m') ) printf("Feminino.");
    printf("\nIdade: %d anos.",idade);
    printf("\nAltura: %.2f metros.",altura/100);
    printf("\nMassa: %.1f kG.",massa);
    printf("\nIMC: %.2f kG / m^2",imc);
    if ( ( (sexo=='H') || (sexo=='h') ) && (imc>=28) )  printf(" - acima do normal, verifique isso!");
    else if (((sexo=='M')||(sexo=='m'))&&(imc>=25)) printf(" - acima do normal, verifique isso!");
    else printf(".");
    
    printf("\n\nATUAL:");
    printf("\n|-> Massa magra: %.1f kG (%.1f%%)",massa_magra_ini,(100-perc_gord_ini));
    printf("\n|-> Massa gorda: %.1f kG (%.1f%%)",massa_gorda_ini,perc_gord_ini);
    printf("\n=>> Massa total: %.1f kG (100%%)",massa);
    
    printf("\n\nDESEJADO:");
    printf("\n|-> Massa magra: %.1f kG (%.1f%%)",massa_magra_fim,(100-perc_gord_fim));
    printf("\n|-> Massa gorda: %.1f kG (%.1f%%)",massa_gorda_fim,perc_gord_fim);
    printf("\n=>> Massa total: %.1f kG (100%%)",massa_fim);
    
    printf("\n\nDIFERENCA:");
    printf("\n|-> Massa magra a ser perdida: %.1f kG",(massa_magra_fim-massa_magra_ini));
    printf("\n|-> Massa gorda a ser perdida: %.1f kG",(massa_gorda_ini-massa_gorda_fim));
    printf("\n=>> Massa total a ser perdida: %.1f kG",(massa-massa_fim));
    
    if (controle==1) printf("\n\nO percentual de gordura foi calculado atraves\ndo programa e esse valor nao e muito aconselhado\npara se levar em consideracao!");
    
    printf("\n\nValor metabolico de repouso (MMR): %.0f calorias / dia",calorias_diarias_real);
    
    if ( (metodo=='A')||(metodo=='a') )
    {
         printf("\n\nQuantidade calorica diaria a ser perdida: %.0f kcal",calorias_dia);
         printf("\nQuantidade calorica semanal a ser perdida: %.0f kcal ou %.2f kG",calorias_dia*7,((calorias_dia*7/9)/1000));
         if ((calorias_diarias_real-calorias_dia)>=0) printf("\n\nQuantidade calorica diaria a ser consumida: %.0f kcal",calorias_diarias_real-calorias_dia);
         if ((calorias_diarias_real-calorias_dia)<0) printf("\n\nQuantidade calorica diaria a ser consumida: 0 kcal\nATENCAO: Esta dieta tende a ser perigosa.",calorias_diarias_real-calorias_dia);
         printf("\n\nQuantidade calorica total a ser perdida: %.0f kcal",(massa_gorda_ini-massa_gorda_fim)*1000*9);
         printf("\n\nDuracao da dieta: %.0f dias ou %.0f semanas.",(((massa_gorda_ini-massa_gorda_fim)*1000*9))/calorias_dia,((((massa_gorda_ini-massa_gorda_fim)*1000*9))/calorias_dia/7));
    }
    
    if ( (metodo=='B')||(metodo=='b') )
    {
         printf("\n\nQuantidade calorica diaria a ser perdida: %.0f kcal",((quilos_semana*1000*9)/7));
         printf("\nQuantidade calorica semanal a ser perdida: %.0f kcal ou %.2f kG",(quilos_semana*1000*9),quilos_semana);
         if ((calorias_diarias_real-((quilos_semana*1000*9)/7))>=0) printf("\n\nQuantidade calorica diaria a ser consumida: %.0f kcal",calorias_diarias_real-((quilos_semana*1000*9)/7));
         if ((calorias_diarias_real-((quilos_semana*1000*9)/7))<0) printf("\n\nQuantidade calorica diaria a ser consumida: 0 kcal\nATENCAO: Esta dieta tende a ser perigosa.",calorias_diarias_real-((quilos_semana*1000*9)/7));
         printf("\n\nQuantidade calorica total a ser perdida: %.0f kcal",(massa_gorda_ini-massa_gorda_fim)*1000*9);
         printf("\n\nDuracao da dieta: %.0f dias ou %.0f semanas.",(((massa_gorda_ini-massa_gorda_fim)*1000*9))/((quilos_semana*1000*9)/7),((((massa_gorda_ini-massa_gorda_fim)*1000*9))/((quilos_semana*1000*9)/7)/7));
    }
    
    printf("\n\n===================================================================");

    do{
             printf("\n\nDeseja salvar a saida? - S(sim) / N(nao): ");
             pergunta_salvar=getche();
             if ( (pergunta_salvar!='S') && (pergunta_salvar!='s') && (pergunta_salvar!='N') && (pergunta_salvar!='n') ) printf("\nERRO! Pressione apenas \"S\" ou \"N\".");
    }while( (pergunta_salvar!='S') && (pergunta_salvar!='s') && (pergunta_salvar!='N') && (pergunta_salvar!='n') );

    printf("\nAguarde");
    for (abc=0;abc<=25;abc++)
    {
        printf(".");
        Sleep(100);
    }

    AUTOR:

    if ( (pergunta_salvar=='S')||(pergunta_salvar=='s') ) subprog_salvar();
        
    printf("\n\n\nAutor: Carlos E. Baldocchi\nBug e contato: carlos.baldocchi@gmail.com\nOferecimento a: http://www.guiadohardware.net/\n                http://www.hipertrofia.org/\n\n");
    
    system("pause");
    
    FINISH:
        
    return(0);
}

int subprog_ajuda ()
{
    system("cls");
    printf("Esse programa foi desenvolvido com o objetivo de auxiliar pessoas\nem dietas com o objetivo de perca de peso e definiçăo muscular.\n\nEmbora o programa inclua calculo de percentual de gordura com base\nem pessoas com IMC acima de 25 kG / m^2, o programa eh destinado\na atletas.\n\nEh mais adequado utilizar o programa se voce souber o seu percentual\nde gordura. Utilizar o algoritmo de percentual de gordura corporal\nincluido no programa pode gerar muitos erros devido ao seu biotipo\nfisico e gerar valores e dados incorretos.\n\n===== Tabela de conversao calorica: =====\n|                                       |\n|    1 grama de Carboidrato...4kcal     |\n|    1 grama de proteina......4kcal     |\n|    1 grama de gordura.......4kcal     |\n|                                       |\n=========================================\n\n\nDesenvolvedor: Carlos E. Baldocchi\nBug e contato: carlos.baldocchi@gmail.com\nOferecimento a: http://www.guiadohardware.net/\n                http://www.hipertrofia.org/\n\n");
    system("pause");
    system("cls");
}

int subprog_config_teclado ()
{
    system("cls");
    
    printf("Aperte a tecla [ESPACO]: ");
    tecla_espaco=getch();
    printf("\nTecla espaco = %d",tecla_espaco);
    
    printf("\n\nAperte a tecla [ENTER]: ");
    tecla_enter=getch();
    printf("\nTecla enter = %d",tecla_enter);
    
    printf("\n\nTeclado configurado com sucesso!\n\n");
    
    system("pause");
    system("cls");
    
    return(0);
}

int subprog_printf_percentual ()
{
         printf("\n>> 5-7%% >> Pareces mais pequeno vestido, mas ficas fantastico despido! Vascularizacao na parte inferior do abdomen e pernas.");
         printf("\n\n>> 7-9%% >> Abdominais completamente visiveis, bracos mais vascularizados, separacao do peito e costas e completamente visivel e a cara comeca a ficar mais angular.");
         printf("\n\n>> 10-12%% >> Separacao muscular mais profunda nos bracos, peito, pernas e costas. Abdominais ficam visiveis quando contraidos.");
         printf("\n\n>> 12-14%% >> Aparece mais alguma separacao muscular, especialmente no peito e nas costas, começam a aparecer tracos de definicao nos abdominais.");
         printf("\n\n>> 15-19%% >> Alguma separacao muscular entre os deltoides e a parte superior do braco. Os abdominais continuam nao visiveis.");
         printf("\n\n>> 20%% ou mais de gordura >> definicao muscular nula!\n");
         
         return(0);
}

int subprog_calc_cintura ()
{
    char pergunta;
    float perimetro_punho, perimetro_abdomem, perimetro_gluteo;
    controle=1;
    
    printf("Esse metodo nao e o mais adequado mas serve como solucao para consultas rapidas.Lembre-se que esse metodo pode gerar muitos erros devido ao seu biotipo fisico.\n");
    
    VOLTA2:
    
    {
    if (((sexo=='H')||(sexo=='h')) && ((imc>=0)&&(imc<=28)))
    {
         do
         {    
               printf("\nEntre com a circunferencia do seu punho\n[unidade: cm - exemplo: 19.7]\n: ");
               scanf("%f",&perimetro_punho);
               if ( (!((perimetro_punho>0)&&(perimetro_punho<=50))) ) printf("ERRO! Limitado entre 0 e 50 cm.\n\n");
         }while( (!((perimetro_punho>0)&&(perimetro_punho<=50))) );
         
         do
         {    
               printf("\nEntre com a circunferencia do seu abdomem\n[unidade: cm - exemplo: 67.5]\n: ");
               scanf("%f",&perimetro_abdomem);
               if ( (!((perimetro_abdomem>0)&&(perimetro_abdomem<=200))) ) printf("ERRO! Limitado entre 0 e 200 cm.\n\n");
         }while( (!((perimetro_abdomem>0)&&(perimetro_abdomem<=200))) );
         
         perc_gord_ini=(((massa-(41.955+(1.038786*massa)-(0.82816*(perimetro_abdomem-perimetro_punho))))/massa)*100);
    }
    
    if (((sexo=='H')||(sexo=='h')) && (imc>28))
    {
         printf("\nSeu IMC esta acima de 28 apontando abesidade. Deseja utilizar a formula para pessoas obesas?\n(Pressione [espaco] para selecionar e [ENTER] para continuar)\n:\n");
         menu=1;
         do
         {
                        if (menu==1) printf("(*) Sim - ...continuar\n( ) Nao - utilizar s formula para pessoas nao-obesas");
                        else if (menu==2) printf("( ) Sim - ...continuar\n(*) Nao - utilizar s formula para pessoas nao-obesas");
                        none=getch();
               
                        if ((none==32)||(none==tecla_espaco))
                        {
                                        menu++;
                                        if (menu==3) menu=1;
                        }
               
                        else if (!((none==13)||(none==tecla_enter))) printf("\nERRO! Pressione [espaco] para selecionar.");
               
                        printf("\n\n");
               
         }while(!((none==13)||(none==tecla_enter)));
    
         if (menu==1) pergunta='S';
         if (menu==2) pergunta='N';

//         do{
//              printf("\nSeu IMC esta acima de 28 apontando abesidade. Deseja utilizar a formula para pessoas obesas?\nS (sim - ...continuar)\nN (nao - utilizar s formula para pessoas nao-obesas)\n: ");
//              pergunta=getche();
//              if ( (pergunta!='S') && (pergunta!='s') && (pergunta!='N') && (pergunta!='n') ) printf("\nERRO! Pressione apenas \"S\" ou \"N\".\n");
//         }while( (pergunta!='S') && (pergunta!='s') && (pergunta!='N') && (pergunta!='n') );
         
         if ((pergunta=='N')||(pergunta=='n'))
         {
         printf("\n");
         imc=28;
         goto VOLTA2;
         }
         do
         {    
               printf("\n\nEntre com a circunferencia do seu abdomem\n[unidade: cm - exemplo: 67.5]\n: ");
               scanf("%f",&perimetro_abdomem);
               if ( (!((perimetro_abdomem>0)&&(perimetro_abdomem<=200))) ) printf("ERRO! Limitado entre 0 e 200 cm.\n\n");
         }while( (!((perimetro_abdomem>0)&&(perimetro_abdomem<=200))) );
         
         perc_gord_ini=((0.31457*perimetro_abdomem)-(0.10969*massa)+10.8336);
    }
    }

    {
    if (((sexo=='M')||(sexo=='m')) && ((imc>=0)&&(imc<=25)))
    {
         do
         {    
               printf("\nEntre com a circunferencia do seu gluteo\n[unidade: cm - exemplo: 45.5]\n: ");
               scanf("%f",&perimetro_gluteo);
               if ( (!((perimetro_gluteo>0)&&(perimetro_gluteo<=150))) ) printf("ERRO! Limitado entre 0 e 150 cm.\n\n");
         }while( (!((perimetro_gluteo>0)&&(perimetro_gluteo<=150))) );
         
         do
         {    
               printf("\nEntre com a circunferencia do seu abdomem\n[unidade: cm - exemplo: 65.5]\n: ");
               scanf("%f",&perimetro_abdomem);
               if ( (!((perimetro_abdomem>0)&&(perimetro_abdomem<=180))) ) printf("ERRO! Limitado entre 0 e 180 cm.\n\n");
         }while( (!((perimetro_abdomem>0)&&(perimetro_abdomem<=180))) );
         
         perc_gord_ini=((0.55*perimetro_gluteo)-(0.24*altura)+(0.28*perimetro_abdomem)-8.43);
    }
    
    if (((sexo=='M')||(sexo=='m')) && (imc>25))
    {
         printf("\nSeu IMC esta acima de 25 apontando abesidade. Deseja utilizar a formula para pessoas obesas?\n(Pressione [espaco] para selecionar e [ENTER] para continuar)\n:\n");
         menu=1;
         do
         {
                        if (menu==1) printf("(*) Sim - ...continuar\n( ) Nao - utilizar s formula para pessoas nao-obesas");
                        else if (menu==2) printf("( ) Sim - ...continuar\n(*) Nao - utilizar s formula para pessoas nao-obesas");
                        none=getch();
               
                        if ((none==32)||(none==tecla_espaco))
                        {
                                        menu++;
                                        if (menu==3) menu=1;
                        }
               
                        else if (!((none==13)||(none==tecla_enter))) printf("\nERRO! Pressione [espaco] para selecionar.");
               
                        printf("\n\n");
               
         }while(none!=13);
    
         if (menu==1) pergunta='S';
         if (menu==2) pergunta='N';

//         do{
//            printf("\nSeu IMC esta acima de 25 apontando abesidade. Deseja utilizar a formula para pessoas obesas?\nS (sim - ...continuar)\nN (nao - utilizar s formula para pessoas nao-obesas)\n: ");
//            pergunta=getche();
//            if ( (pergunta!='S') && (pergunta!='s') && (pergunta!='N') && (pergunta!='n') ) printf("\nERRO! Pressione apenas \"S\" ou \"N\".\n");
//         }while( (pergunta!='S') && (pergunta!='s') && (pergunta!='N') && (pergunta!='n') );
         
         
         if ((pergunta=='N')||(pergunta=='n'))
         {
         printf("\n");
         imc=25;
         goto VOLTA2;
         }
         
         do
         {    
               printf("\n\nEntre com a circunferencia do seu abdomem\n[unidade: cm - exemplo: 65.5]\n: ");
               scanf("%f",&perimetro_abdomem);
               if ( (!((perimetro_abdomem>0)&&(perimetro_abdomem<=180))) ) printf("ERRO! Limitado entre 0 e 180 cm.\n\n");
         }while( (!((perimetro_abdomem>0)&&(perimetro_abdomem<=180))) );
         
         perc_gord_ini=((0.11077*perimetro_abdomem)-(0.17666*altura)+(0.14354*massa)+51.03301);
    }
    }
    
    if ((perc_gord_ini>5)&&(perc_gord_ini<=22))
    {
        printf("Seu atual percentual de gordura e: %.2f%%\n",perc_gord_ini);
    }
    
    else if (((perc_gord_ini>0)&&(perc_gord_ini<=5))||((perc_gord_ini>22)&&(perc_gord_ini<=100)))
    {
        if ((perc_gord_ini>0)&&(perc_gord_ini<=5))
        {
            printf("Seu atual percentual de gordura e: %.2f%%",perc_gord_ini);
            printf("\nEsteja ciente que esse valor esta muito baixo e talvez nao coincida com a realidade.\n");
            system("pause");
        }
        
        else if ((perc_gord_ini>22)&&(perc_gord_ini<=100))
        {
            printf("Seu atual percentual de gordura e: %.2f%%",perc_gord_ini);
            printf("\nEsteja ciente que esse valor esta muito alto e talvez nao coincida com a realidade.\n");
            system("pause");
        }
    }
    
    else
    {
        printf("Seu atual percentual de gordura e: %.2f%%",perc_gord_ini);
        printf("\nValor impossivel! Esteja ciente que isso pode ocorrer devido ao erro no programa.\n",perc_gord_ini);
        system("pause");
        return(1);
    }
    
    return(0);
}

int subprog_gasto_calorico_diario ()
{
    float seg_a_sex_rep, seg_a_sex_mle, seg_a_sex_lev, seg_a_sex_mod, seg_a_sex_int;
    float sab_e_dom_rep, sab_e_dom_mle, sab_e_dom_lev, sab_e_dom_mod, sab_e_dom_int;
    float fator_total, fator_seg_a_sex, fator_sab_e_dom;
    
    if ( (sexo=='H')||(sexo=='h') ) calorias_diarias_teorico=(66.5+(13.7*massa)+(5*altura)+(6.8*idade));
    else if ( (sexo=='M')||(sexo=='m') ) calorias_diarias_teorico=(655.1+(9.56*massa)+(1.85*altura)+(4.7*idade));
             
    do
    {
             printf("Nos dias de Segunda a Sexta entre com o valor de quantas horas diarias voce realiza:\n(Lembre-se que o total de horas deve somar 24H.)\n");
             
             do
             {
                      printf("\nRepouso\n(dormir, ler na cama, etc...)\n[unidade: horas - exemplo: 8]\n: ");
                      scanf("%f",&seg_a_sex_rep);
                      if ( (!((seg_a_sex_rep>=0)&&(seg_a_sex_rep<=24))) ) printf("ERRO! Entre com um valor entre 0 e 24 horas.\n");
             }while( (!((seg_a_sex_rep>=0)&&(seg_a_sex_rep<=24))) );
             
             do
             {
                      printf("\nMuito Leve\n(em pe, escrever, jogar cartas, tocar instrumento musical, etc...)\n[unidade: horas - exemplo: 8]\n: ");
                      scanf("%f",&seg_a_sex_mle);
                      if ( (!((seg_a_sex_mle>=0)&&(seg_a_sex_mle<=24))) ) printf("ERRO! Entre com um valor entre 0 e 24 horas.\n");
             }while( (!((seg_a_sex_mle>=0)&&(seg_a_sex_mle<=24))) );
             
             do
             {
                      printf("\nLeve\n(caminhar (4-5km/h), limpar a casa, tenis de mesa, etc...)\n[unidade: horas - exemplo: 5]\n: ");
                      scanf("%f",&seg_a_sex_lev);
                      if ( (!((seg_a_sex_lev>=0)&&(seg_a_sex_lev<=24))) ) printf("ERRO! Entre com um valor entre 0 e 24 horas.\n");
             }while( (!((seg_a_sex_lev>=0)&&(seg_a_sex_lev<=24))) );
             
             do
             {
                      printf("\nModerado\n(caminhar (5.5-6.5km/h), andar de bicicleta, dancar, jogar tenis, etc...)\n[unidade: horas - exemplo: 1.5]\n: ");
                      scanf("%f",&seg_a_sex_mod);
                      if ( (!((seg_a_sex_mod>=0)&&(seg_a_sex_mod<=24))) ) printf("ERRO! Entre com um valor entre 0 e 24 horas.\n");
             }while( (!((seg_a_sex_mod>=0)&&(seg_a_sex_mod<=24))) );
             
             do
             {
                      printf("\nIntenso\n(correr (7ou mais km/h), musculacao, futebol, escalada, etc...)\n[unidade: horas - exemplo: 1.5]\n: ");
                      scanf("%f",&seg_a_sex_int);
                      if ( (!((seg_a_sex_int>=0)&&(seg_a_sex_int<=24))) ) printf("ERRO! Entre com um valor entre 0 e 24 horas.\n");
             }while( (!((seg_a_sex_int>=0)&&(seg_a_sex_int<=24))) );
                  
             if ((seg_a_sex_rep+seg_a_sex_mle+seg_a_sex_lev+seg_a_sex_mod+seg_a_sex_int)!=24)
             {
                      printf("ERRO! O total de horas soma: %.1f horas.\nLembre-se que o total de horas deve somar 24.\n",seg_a_sex_rep+seg_a_sex_mle+seg_a_sex_lev+seg_a_sex_mod+seg_a_sex_int);
                      printf("\n");
                      system("pause");
                      system("cls");
             }
    }while ((seg_a_sex_rep+seg_a_sex_mle+seg_a_sex_lev+seg_a_sex_mod+seg_a_sex_int)!=24);

    system("cls");

    do
    {
             printf("Nos dias de Sabado e Domingo entre com o valor de quantas horas diarias voce realiza:\n(Lembre-se que o total de horas deve somar 24H.)\n");
             
             do
             {
                      printf("\nRepouso\n(dormir, ler na cama, etc...)\n[unidade: horas - exemplo: 8]\n: ");
                      scanf("%f",&sab_e_dom_rep);
                      if ( (!((sab_e_dom_rep>=0)&&(sab_e_dom_rep<=24))) ) printf("ERRO! Entre com um valor entre 0 e 24 horas.\n\n");
             }while( (!((sab_e_dom_rep>=0)&&(sab_e_dom_rep<=24))) );
             
             do
             {
                      printf("\nMuito Leve\n(em pe, escrever, jogar cartas, tocar instrumento musical, etc...)\n[unidade: horas - exemplo: 8]\n: ");
                      scanf("%f",&sab_e_dom_mle);
                      if ( (!((sab_e_dom_mle>=0)&&(sab_e_dom_mle<=24))) ) printf("ERRO! Entre com um valor entre 0 e 24 horas.\n\n");
             }while( (!((sab_e_dom_mle>=0)&&(sab_e_dom_mle<=24))) );
             
             do
             {
                      printf("\nLeve\n(caminhar (4-5 km/h), limpar a casa, tenis de mesa, etc...)\n[unidade: horas - exemplo: 5]\n: ");
                      scanf("%f",&sab_e_dom_lev);
                      if ( (!((sab_e_dom_lev>=0)&&(sab_e_dom_lev<=24))) ) printf("ERRO! Entre com um valor entre 0 e 24 horas.\n\n");
             }while( (!((sab_e_dom_lev>=0)&&(sab_e_dom_lev<=24))) );
             
             do
             {
                      printf("\nModerado\n(caminhar (5.5-6.5 km/h), andar de bicicleta, dancar, jogar tenis, etc...)\n[unidade: horas - exemplo: 1.5]\n: ");
                      scanf("%f",&sab_e_dom_mod);
                      if ( (!((sab_e_dom_mod>=0)&&(sab_e_dom_mod<=24))) ) printf("ERRO! Entre com um valor entre 0 e 24 horas.\n\n");
             }while( (!((sab_e_dom_mod>=0)&&(sab_e_dom_mod<=24))) );
             
             do
             {
                      printf("\nIntenso\n(correr (7ou mais km/h), musculacao, futebol, escalada, etc...)\n[unidade: horas - exemplo: 1.5]\n: ");
                      scanf("%f",&sab_e_dom_int);
                      if ( (!((sab_e_dom_int>=0)&&(sab_e_dom_int<=24))) ) printf("ERRO! Entre com um valor entre 0 e 24 horas.\n\n");
             }while( (!((sab_e_dom_int>=0)&&(sab_e_dom_int<=24))) );
                  
             if ((sab_e_dom_rep+sab_e_dom_mle+sab_e_dom_lev+sab_e_dom_mod+sab_e_dom_int)!=24)
             {
                      printf("ERRO! O total de horas soma: %.1f horas.\nLembre-se que o total de horas deve somar 24.\n",sab_e_dom_rep+sab_e_dom_mle+sab_e_dom_lev+sab_e_dom_mod+sab_e_dom_int);
                      printf("\n");
                      system("pause");
                      system("cls");
             }
    }while ((sab_e_dom_rep+sab_e_dom_mle+sab_e_dom_lev+sab_e_dom_mod+sab_e_dom_int)!=24);

    printf("cls");

    fator_seg_a_sex=(((seg_a_sex_rep*1)+(seg_a_sex_mle*1.5)+(seg_a_sex_lev*2.5)+(seg_a_sex_mod*5)+(seg_a_sex_int*7))/24);
    fator_sab_e_dom=(((sab_e_dom_rep*1)+(sab_e_dom_mle*1.5)+(sab_e_dom_lev*2.5)+(sab_e_dom_mod*5)+(sab_e_dom_int*7))/24);
    
    fator_total=(((fator_seg_a_sex*5)+(fator_sab_e_dom*2))/7);
    
    calorias_diarias_real=(calorias_diarias_teorico*fator_total);
    
    imc = ( massa / ( (altura/100)*(altura/100) ) );
    
    return(0);
}

int subprog_salvar ()
{
    FILE *p;
    char nome_arquivo[41];
    int i;
    
    printf("\nEntre com o nome do arquivo: ");
    scanf("%s",&nome_arquivo);
       
    for (i=0 ; nome_arquivo[i]!='{FONTE}' ; i++);
       
    nome_arquivo[i]='.';
    nome_arquivo[i+1]='t';
    nome_arquivo[i+2]='x';
    nome_arquivo[i+3]='t';
    nome_arquivo[i+4]='{FONTE}';
       
    if (!(p = fopen(nome_arquivo,"w"))) 
    {                           
          printf("\nErro! Impossivel abrir o arquivo.\n\n");
          system("pause");
          exit(1);
    }

//inicio    
    {
    fprintf(p,"===================================================================");
    fprintf(p,"\nNome: %s",nome);
    fprintf(p,"\nSexo: ");
    if ( (sexo=='H') || (sexo=='h') ) fprintf(p,"Masculino.");
    else if ( (sexo=='M') || (sexo=='m') ) fprintf(p,"Feminino.");
    fprintf(p,"\nIdade: %d anos.",idade);
    fprintf(p,"\nAltura: %.2f metros.",altura/100);
    fprintf(p,"\nMassa: %.1f kG.",massa);
    fprintf(p,"\nIMC: %.2f kG / m^2.",imc);
    if ( ( (sexo=='H') || (sexo=='h') ) && (imc>=28) )  fprintf(p," - acima do normal, verifique isso!");
    else if (((sexo=='M')||(sexo=='m'))&&(imc>=25)) fprintf(p," - acima do normal, verifique isso!");
    else fprintf(p,".");
    
    fprintf(p,"\n\nATUAL:");
    fprintf(p,"\n|-> Massa magra: %.1f kG (%.1f%%)",massa_magra_ini,(100-perc_gord_ini));
    fprintf(p,"\n|-> Massa gorda: %.1f kG (%.1f%%)",massa_gorda_ini,perc_gord_ini);
    fprintf(p,"\n=>> Massa total: %.1f kG (100%%)",massa);
    
    fprintf(p,"\n\nDESEJADO:");
    fprintf(p,"\n|-> Massa magra: %.1f kG (%.1f%%)",massa_magra_fim,(100-perc_gord_fim));
    fprintf(p,"\n|-> Massa gorda: %.1f kG (%.1f%%)",massa_gorda_fim,perc_gord_fim);
    fprintf(p,"\n=>> Massa total: %.1f kG (100%%)",massa_fim);
    
    fprintf(p,"\n\nDIFERENCA:");
    fprintf(p,"\n|-> Massa magra a ser perdida: %.1f kG",(massa_magra_fim-massa_magra_ini));
    fprintf(p,"\n|-> Massa gorda a ser perdida: %.1f kG",(massa_gorda_ini-massa_gorda_fim));
    fprintf(p,"\n=>> Massa total a ser perdida: %.1f kG",(massa-massa_fim));
    
    if (controle==1) fprintf(p,"\n\nO percentual de gordura foi calculado atraves\ndo programa e esse valor nao e muito aconselhado\npara se levar em consideracao!");
    
    fprintf(p,"\n\nValor metabolico de repouso (MMR): %.0f calorias / dia",calorias_diarias_real);
    
    if ( (metodo=='A')||(metodo=='a') )
    {
         fprintf(p,"\n\nQuantidade calorica diaria a ser perdida: %.0f kcal",calorias_dia);
         fprintf(p,"\nQuantidade calorica semanal a ser perdida: %.0f kcal ou %.2f kG",calorias_dia*7,((calorias_dia*7/9)/1000));
         if ((calorias_diarias_real-calorias_dia)>=0) fprintf(p,"\n\nQuantidade calorica diaria a ser consumida: %.0f kcal",calorias_diarias_real-calorias_dia);
         if ((calorias_diarias_real-calorias_dia)<0) fprintf(p,"\n\nQuantidade calorica diaria a ser consumida: 0 kcal\nATENCAO: Esta dieta tende a ser perigosa.",calorias_diarias_real-calorias_dia);
         fprintf(p,"\n\nQuantidade calorica total a ser perdida: %.0f kcal",(massa_gorda_ini-massa_gorda_fim)*1000*9);
         fprintf(p,"\n\nDuracao da dieta: %.0f dias ou %.0f semanas.",(((massa_gorda_ini-massa_gorda_fim)*1000*9))/calorias_dia,((((massa_gorda_ini-massa_gorda_fim)*1000*9))/calorias_dia/7));
    }
    
    if ( (metodo=='B')||(metodo=='b') )
    {
         fprintf(p,"\n\nQuantidade calorica diaria a ser perdida: %.0f kcal",((quilos_semana*1000*9)/7));
         fprintf(p,"\nQuantidade calorica semanal a ser perdida: %.0f kcal ou %.2f kG",(quilos_semana*1000*9),quilos_semana);
         if ((calorias_diarias_real-((quilos_semana*1000*9)/7))>=0) fprintf(p,"\n\nQuantidade calorica diaria a ser consumida: %.0f kcal",calorias_diarias_real-((quilos_semana*1000*9)/7));
         if ((calorias_diarias_real-((quilos_semana*1000*9)/7))<0) fprintf(p,"\n\nQuantidade calorica diaria a ser consumida: 0 kcal\nATENCAO: Esta dieta tende a ser perigosa.",calorias_diarias_real-((quilos_semana*1000*9)/7));
         fprintf(p,"\n\nQuantidade calorica total a ser perdida: %.0f kcal",(massa_gorda_ini-massa_gorda_fim)*1000*9);
         fprintf(p,"\n\nDuracao da dieta: %.0f dias ou %.0f semanas.",(((massa_gorda_ini-massa_gorda_fim)*1000*9))/((quilos_semana*1000*9)/7),((((massa_gorda_ini-massa_gorda_fim)*1000*9))/((quilos_semana*1000*9)/7)/7));
    }
    
    fprintf(p,"\n\n===================================================================");
    fprintf(p,"\n\n\nAutor: Carlos E. Baldocchi\nBug e contato: carlos.baldocchi@gmail.com\nOferecimento a: http://www.guiadohardware.net/\n                http://www.hipertrofia.org/\n\n");
    }
//fim    
    
    fclose(p);
    
    printf("\n\nOs dados foram salvos no diretorio atual, no arquivo: %s - com sucesso!",nome_arquivo);
    
    return(0);
}


Scripts recomendados

Damas em C

NCURSES - Parte III

Fila dinâmica em C

util.h

Matriz Bidimensional


  

Comentários
[1] Comentário enviado por humbhenri em 06/05/2009 - 15:47h

Precisa de windows T_T

[2] Comentário enviado por ss-baldocchi em 06/05/2009 - 21:05h

Vou portar o código para Linux e posto mais tarde!!!

[3] Comentário enviado por librarian em 09/05/2009 - 08:42h

anabolismo.cpp:4:19: error: conio.h: Arquivo ou diretório inexistente
anabolismo.cpp:5:21: error: windows.h: Arquivo ou diretório inexistente
anabolismo.cpp: In function ‘int main()’:
anabolismo.cpp:43: error: ‘getch’ was not declared in this scope
anabolismo.cpp:72: error: ‘getch’ was not declared in this scope
anabolismo.cpp:126: error: ‘getch’ was not declared in this scope
anabolismo.cpp:192: error: ‘getch’ was not declared in this scope
anabolismo.cpp:237: error: ‘getch’ was not declared in this scope
anabolismo.cpp:351: error: ‘getche’ was not declared in this scope
anabolismo.cpp:359: error: ‘Sleep’ was not declared in this scope
anabolismo.cpp: In function ‘int subprog_config_teclado()’:
anabolismo.cpp:388: error: ‘getch’ was not declared in this scope
anabolismo.cpp: In function ‘int subprog_calc_cintura()’:
anabolismo.cpp:453: error: ‘getch’ was not declared in this scope
anabolismo.cpp:521: error: ‘getch’ was not declared in this scope
anabolismo.cpp: In function ‘int subprog_salvar()’:
anabolismo.cpp:724: warning: format ‘%s’ expects type ‘char*’, but argument 2 has type ‘char (*)[41]’

[4] Comentário enviado por ss-baldocchi em 15/05/2009 - 08:04h

Amigo o programa realmnete tem que ser compilado em Windows... =(
Falei que ia portar o codigo para Linux mas tive um problema com a biblioteca conio.h - pois utilizei a funçăo "getch" para fazer um menu dinâmico com o usuário...

Vocę tem acesso ao Windows??? Se năo tiver, entre em contato comigo pelo Messenger que passo p/ vocę uma versăo p/ Linux.

cbaldocc@hotmail.com

att.

C.E.Baldocchi


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts