----------------------------------------------------------------------------- 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; }