-----------------------------------------------------------------------------
MAC-115 - - Aula sobre o uso de variáveis do tipo double (para no.s reais)
=============================================================================
/*
* arquivo: cos.c
* Dados x real e n natural, calcular uma aproximação para cos(x) através dos n
* primeiros termos da série.
* Aproximacao boa em torno do zero.
*/
#include<stdio.h>
#include<math.h> // <=== para fazer o calculo de cos(x) usando a funcao cos(.)
// da biblioteca math. Veja o ultimo printf.
int main()
{
int n, k, sinal;
double fatorial, x, cosx, termo, dividendo;
// Veja: fatorial declarado como 'double'
printf("Forneça o valor do ângulo em radianos: ");
scanf("%lf", &x);
printf("Número de termos: ");
scanf("%d", &n);
cosx = 1.0;
sinal= 1;
fatorial = 1.0;
dividendo = 1.0;
for (k = 1; k < n; k++) {
fatorial = fatorial * (2 * k -1) * (2 * k); //<==== calculo do fatorial
// aproveitando o fatorial anterior.
dividendo = dividendo * x * x;
termo = dividendo / fatorial;
sinal = - sinal; // para alternar o sinal do termo
cosx = cosx + sinal * termo; // veja o uso do sinal aqui.
}
printf("cos(%g) = %g\n", x, cosx);
printf("Usando a funcao cos(.) ja' disponivel: cos(%g) = %g\n", x, cos(x));
return 0;
}