Autor Tópico: Programa em C naum funciona direito  (Lida 1635 vezes)

Offline NanukeX

  • Usuário Ubuntu
  • *
  • Mensagens: 67
  • Linux Inside
    • Ver perfil
Programa em C naum funciona direito
« Online: 07 de Abril de 2008, 18:46 »
     Seguinte pessoal, fiz um pequeno programa em C pra me ajudar na metria de Projetos da faculdade, mas no linux ele tha dando um problemas na opção 2, mas pra windows com o Dev c++ ele funciona 100%, gostaria se possivel que alguem me ajudasse ok, para fazer um teste com o programa entre com as seguintes informações como exemplo:

Investimento: 48700
Ano: 4
Taxa: 15
Fluxo 1: 24900
Fluxo 2: 24900
Fluxo 3: 21150
Fluxo 4: 29500

Até ai em ambos funciona 100%, mas o problema esta na opção 2 que não esta armazenando os dados necessário.


Segue o programa :


#include<stdio.h>
#include<math.h>
#include<stdlib.h>

#define MAX 10

void menu()
{
    printf("------------------------------------------");
    printf("\n\n1- Entrar com os dados financeiros\n");
    printf("2- Calcular PVs,TMR,IL\n");
    printf("3- Calcular PayBack\n");
    printf("4- Calcular TIR\n");
    printf("5- Sair\n\n");
    printf("------------------------------------------");
}



/******************************************************************************/
void calculo_taxas(float *taxa_auxf,float i, short int n)
{
 
   float taxa_o, taxa_aux;
   short int x,j;
   
   taxa_o=1+i;
   
    for(x=0;x<n;x++)
    {
       j=1;
       taxa_aux=taxa_o;
           
         if (x==0) taxa_auxf
  • =taxa_o;

           else{
                do{
                   taxa_aux*=taxa_o;
                   j++;
               }while (j<=x);   
         }
      taxa_auxf
  • =taxa_aux;

    }   
   return;
}
/******************************************************************************/
float calculo_PVi(float *taxa_auxf,short int n, float *PV,float *Fluxo)
{
    short int x=0;
    float soma_PV=0; 
        for(x=0;x<n;x++){
            PV
  • =Fluxo
  • /taxa_auxf
  • ;

            soma_PV+=PV
  • ;         

        }
    return soma_PV;
}
/******************************************************************************/
int main(void)
{
   
    float VPL,TMR,Invest,PV[MAX],i,taxa_auxf[MAX],Fluxo[MAX],soma_PV,soma_flux,IL;
    short int n,x,op,flag=0;
    char tecla;
   
   
 do{ 
       
    system("clear");
    menu();
   
    printf("\n\nOpcao: "); scanf("%d",&op);
    fflush(stdin);
   
    switch (op){
        case 1:{
           
            soma_flux=0;
            VPL=0;
            IL=0;
            system("clear");
            printf("Valor do Investimento: "); scanf("%f",&Invest);
            fflush(stdin);
            printf("Anos: "); scanf("%d",&n);
            fflush(stdin);
            printf("Taxa: "); scanf("%f",&i); i=i/100;
            fflush(stdin);
           
            for(x=0;x<n;x++){
                printf("%d ° fluxo: ",x+1); scanf("%f",&Fluxo
  • );

                fflush(stdin);
                soma_flux+=Fluxo
  • ;

            }           
          flag=1;
        } break;
        case 2:{
           
            if (flag==1){
            system("clear");
            calculo_taxas(taxa_auxf,i, n);
            soma_PV=calculo_PVi(taxa_auxf,n,PV,Fluxo);
            for(x=0;x<n;x++)
                printf("\n %d PV: %7.2f",x+1,PV
  • );

           
            printf("\n\nSoma dos PVS foi de :%7.2f",soma_PV);
            VPL=(-Invest+soma_PV);
            printf("\n\nInvestimento %7.2f + %7.2f Soma PVs\n\nVPL= %7.2f",-Invest,soma_PV,VPL);
            TMR=( ((soma_flux/n)/Invest)*100 );
            IL=(soma_PV/Invest);
            printf("\n\nSoma dos Fluxo %7.2f",soma_flux);
            printf("\n\n TMR: %7.2f%% ", TMR);
            printf("\n\n IL: %7.2f", ((soma_PV)/Invest) );
            fflush(stdin);
            tecla=getchar();
            }
            else{
                  printf("Sem entrada de dados financeiros !!!!");
                  fflush(stdin);
                  tecla=getchar();
            }
        } break;
        case 3:{
             
             } break;
        case 4:{
                    printf("Entre com a taxa"); scanf("%f",&i); i=i/100;
                    calculo_taxas(taxa_auxf,i,n);
                    soma_PV=calculo_PVi(taxa_auxf,n,PV,Fluxo);
                    VPL=(-Invest+soma_PV);
                    printf("VPL %7.2f: ", VPL);
                    fflush(stdin);
          tecla=getchar();
             
             }break;
        case 5:break;
       
       
       
    }
   
   
     
 }while (op!=5);
 
    return 0;
   
}

Offline NanukeX

  • Usuário Ubuntu
  • *
  • Mensagens: 67
  • Linux Inside
    • Ver perfil
Re: Programa em C naum funciona direito [ RESOLVIDO]
« Resposta #1 Online: 07 de Abril de 2008, 21:24 »
   Seguinte pessoal, achei o erro, ele estava na leitura do n, que estava com %d e o certo para short int seria de %hi

Offline crashoverhead

  • Usuário Ubuntu
  • *
  • Mensagens: 13
    • Ver perfil
Re: Programa em C naum funciona direito
« Resposta #2 Online: 06 de Maio de 2008, 09:23 »
Bom dia, sou novo no fórum e aqui na parte de programação. Deixa eu t fazer uma pergunta.  + no linux pode usar o Fflush ou tem q usar o fpurge no caso q vc usou? obrigado!
If i die tomorrow,
 i'd be all right because i belive
that after we're gone
The Spirit Carries On..
Dream Theater - Spirit Carries On.