Jump to content

Fazer a função cosseno


iatauro

Recommended Posts

iatauro

Olá, boa tarde, tudo bem? Preciso criar um código que calcule o cosseno de um número fornecido pelo usuário pela aproximação de Taylor, porém não posso utilizar da função cos() nem da função pow(). Só posso utilizar da função cos() para aproximar o valor no final

#include<stdio.h>
#include<math.h>
float meu_cosseno(float x, int N){
    float numerador, denominador, cosseno=1;
    int i;
    denominador = fatorial(N);
    numerador = potencia(x, N);
    for(i=0;i<N;i++){
        cosseno = cosseno + numerador/denominador;
    }
    return cosseno;
}
int fatorial(int N){
    int i, fat=1;
    for(i=1; i<(2*N)+1;i++){
        fat = fat*i;
    }
    return fat;
}
float potencia(float x, int N){
    float alternada=1, base=1, a;
    int i;
    for(i=0;i<N; i++){
        base = base*x;
        alternada = alternada*(-1);
    }
    a = alternada*base;
    return a;
}
int main(){
    float x, cosseno, cos_exato;
    int N;
    printf("Aproximacao da funcao cosseno atraves do Polinomio de Taylor\n\n");
    printf("Entre com o valor de x:");
    scanf("%f", &x);
    printf("Entre com o valor de N:");
    scanf("%d", &N);
    cosseno = meu_cosseno(x, N);
    cos_exato = cos(x);
    printf("meu_cosseno(%.8f) = %.8f", x, cosseno);
    printf("cos(%f) = %.8f", x, cos_exato);
    return 0;
}

Esse é o meu código e estou recebendo o erro "conflicting type for potencia" na linha 20. Percebi que não copiou tudo, no final está faltando alguns printf para mostrar ao usuário o resultado, mas esse não altera no resultado em si. Se alguém puder me ajudar agradeceria!!

Link to post
Share on other sites
Rui Carlos

Essa foi a única mensagem que o compilador te deu?

Não sei que compilador estás a usar, mas pelo o menos o clang costuma mostrar mais umas mensagens úteis para perceber o erro.  Também costuma mostrar avisos relativamente a um outro problema que causa esse erro.

 

Spoiler

Basicamente, o problema deriva de estares a chamar a função antes de a declarares.

 

  • Thanks 1
Link to post
Share on other sites
iatauro
3 horas atrás, Rui Carlos disse:

Essa foi a única mensagem que o compilador te deu?

Não sei que compilador estás a usar, mas pelo o menos o clang costuma mostrar mais umas mensagens úteis para perceber o erro.  Também costuma mostrar avisos relativamente a um outro problema que causa esse erro.

 

  Mostrar conteúdos ocultos

Basicamente, o problema deriva de estares a chamar a função antes de a declarares.

 

Sim, esse é a única mensagem que me aparece, mas vou corrigir conforme disse, obrigado

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.