-----------------------------------------------------------------------------
MAC-115 - - Aula sobre variaveis do tipo double (para no.s reais) - series
=============================================================================
/*
* 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.
* Esta aproximacao é boa só 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;
double fatorial, x, cosx, termo;
// 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;
fatorial = 1.0;
termo = 1.0;
for (k = 1; k < n; k++) {
termo = - (termo * x * x); // veja o sinal
fatorial = fatorial * (2 * k -1) * (2 * k); //<==== calculo do fatorial
// aproveitando o fatorial anterior.
cosx = cosx + termo/fatorial;
}
printf("cos(%g) = %g\n", x, cosx);
printf("Usando a funcao cos(.) ja' disponivel: cos(%g) = %g\n", x, cos(x));
return 0;
}
==========================================================
/*
* 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;
double fatorial, x, cosx, termo;
// 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;
fatorial = 1.0;
termo = 1.0;
for (k = 1; k < n; k++) {
termo = - (termo * x * x); // veja o sinal
fatorial = fatorial * (2 * k -1) * (2 * k); //<==== calculo do fatorial
// aproveitando o fatorial anterior.
cosx = cosx + termo/fatorial;
}
printf("cos(%g) = %g\n", x, cosx);
printf("Usando a funcao cos(.) ja' disponivel: cos(%g) = %g\n", x, cos(x));
return 0;
}