Ir para conteúdo
Fórum Script Brasil
  • 0

Alguém Pode Ajudar Corrigir Este Programa.


Adilson_Max

Pergunta

// Programa para cálculo da Constante de Euler.

// e(x) = 1 + x + X(2) + X(3) + X(4).....

// 2! 5! 7!

#include<conio.h>

#include<stdio.h>

#include<math.h>

int prec,cont=1,pre=1,con=2,num;

int ex,ex1=0,precis;

void expoente();

void fatorial();

void linha();

main()

{

linha();

printf ("\n\n\t <- Programa Para Calculo da Constante de Euler -> ");

linha();

printf ("\n\n\n\n Digite o valor Para Para Calcular a Constante 'e(x)'...: ");

scanf ("%i",&num);

printf ("\n\n Digite o numero de casas decimais desejadas na resposta....: ");

scanf ("%i",&prec);

while (cont<=prec)

{

precis=pre/10;

cont++;

pre=precis;

}

ex=1+num;

while (ex1>=precis)

{

ex1=ex;

ex=ex+expoente(num, con)/fatorial(con);

con++;

ex1=ex-ex1;

}

printf ("\n\n\ O valor da contante de %d e...: ",num,ex);

printf ("\n Foram necessárias %d Interações Para Chegar a Precisao Desejada. ",con);

linha();

getch();

}

void linha()

{

int i;

for(i=0;i<80;i++)

printf("\xDB");

}

void expoente()

{

pow(num,con);

}

void fatorial(int con)

}

if ((num==0) || (num==1))

return 1;

else

return num*fat(num-1);

}

Link para o comentário
Compartilhar em outros sites

10 respostass a esta questão

Posts Recomendados

  • 0

Não testei o programa, mas isso aqui logo me chamou a atenção:

void fatorial(int con)
}
if ((num==0) || (num==1))
   return 1;
else
   return num*fat(num-1);
}

Primeiro, por que o retorno da função é void? Você não vai retornar um inteiro ali?

Segundo, por que se faz uma chamada a uma função chamada "fat"? Não seria "fatorial"?

Abraços,

Graymalkin

Link para o comentário
Compartilhar em outros sites

  • 0

tb não testei a lógica + pelo que percebi sua função fatorial precisa retornar um valor....e sua função fatorial tinha um erro no recebimento do parametro......

int fatorial(int num)
{
if ((num==0) || (num==1))
  return 1;
else
  return num*fat(num-1);
}

ve se funciona desse jeito.....

abraços!!!

Link para o comentário
Compartilhar em outros sites

  • 0

Então pessoal, eu andei corrigindo.... mas ainda estou encontrando um erro na linha em vermelho abaixo. o que pode ser?

#include<conio.h>

#include<stdio.h>

#include<math.h>

int prec,cont=1;

double ex,ex1=0,precis,num,con=2,pre=1;

double expoente( double num, double con );

double fatorial( double num );

void linha();

main()

{

linha();

printf ("\n\n\t <- Programa Para Calculo da Constante de Euler -> ");

linha();

printf ("\n\n\n\n Digite o valor Para Para Calcular a Constante 'e(x)'...: ");

scanf ("%i",&num);

printf ("\n\n Digite o numero de casas decimais desejadas na resposta....: ");

scanf ("%i",&prec);

while (cont<=prec)

{

precis=pre/10;

cont++;

pre=precis;

}

ex=1+num;

while (ex1>=precis)

{

ex1=ex;

ex= ex + (expoente num,con / fatorial con);

con++;

ex1=ex-ex1;

}

printf ("\n\n\ O valor da contante de %d e...: ",num,ex);

printf ("\n Foram necessárias %d Interações Para Chegar a Precisao Desejada. ",con);

linha();

getch();

}

//Funão Linha

void linha()

{

int i;

for(i=0;i<80;i++)

printf("\xDB");

}

//Função Expoente

void expoente()

{

pow(num,con);

}

//Função Fatorial

void fatorial(int con)

}

if ((num==0) || (num==1))

return 1;

else

return num*fatorial(num-1);

}

Link para o comentário
Compartilhar em outros sites

  • 0
A função fatorial() continua errada e a linha em vermelho está chamando de forma incorreta as duas funções.

Abraços,

Graymalkin

Entendi, mas não sei como corrigir? qual é a maneira correta de chamar a função? e como eu faço para corrigir a função fatorial??

Aparentemente o código que está assim:

 ex= ex + (expoente num,con / fatorial con);
tem que ser assim:
 ex= ex + (expoente (num,con) / fatorial con);

Veja se isto funciona sem erros e executa o que você precisa.

Link para o comentário
Compartilhar em outros sites

  • 0
A função fatorial() continua errada e a linha em vermelho está chamando de forma incorreta as duas funções.

Abraços,

Graymalkin

Entendi, mas não sei como corrigir? qual é a maneira correta de chamar a função? e como eu faço para corrigir a função fatorial??

Aparentemente o código que está assim:

 ex= ex + (expoente num,con / fatorial con);
tem que ser assim:
 ex= ex + (expoente (num,con) / fatorial con);
Veja se isto funciona sem erros e executa o que você precisa.
Faltou corrigir a segunda função chamada (fatorial) também:
 ex= ex + (expoente(num,con) / fatorial(con));

De qualquer forma, o tipo de retorno da função fatorial() ainda está errado (pense: o que ela vai retornar?).

Abraços,

Graymalkin

Link para o comentário
Compartilhar em outros sites

  • 0

A fução expoente está assim:

//Função Expoente
void expoente()
{
pow(num,con);
}
e você fez uma chamada a função: .. expoente(num,con) .. Só que esta função não recebe parâmetro! firmeza? Você deveria colocar no protótipo algo assim: void expoente(double , double) ; e depois fazer a função assim:
//Função Expoente
void expoente(double num , double con)
{
pow(num,con);
}

Mas pelo visto está função expoente() não precisa ser usada, é só fazer uma chamada para a função pow().

Abraços

Link para o comentário
Compartilhar em outros sites

  • 0
A fução expoente está assim:

//Função Expoente
void expoente()
{
pow(num,con);
}
e você fez uma chamada a função: .. expoente(num,con) .. Só que esta função não recebe parâmetro! firmeza? Você deveria colocar no protótipo algo assim: void expoente(double , double) ; e depois fazer a função assim:
//Função Expoente
void expoente(double num , double con)
{
pow(num,con);
}

Mas pelo visto está função expoente() não precisa ser usada, é só fazer uma chamada para a função pow().

Abraços

Fiz as correções que vocês indicaram, mas continua com o erro, e na mesma linha...

Oque faço???

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...