------------------------------------------------------------------------- MAC-115 - Turma T24 - Aula 20/set - Variaveis do tipo double - series ========================================================================== /* * arquivo: eee.c * -------------- * Dado n, um inteiro, eee calcula uma aproximacao para e * atraves da soma dos n primeiros termos da serie * * 1/0! + 1/1! + 1/2! + 1/3! + 1/4! + ... * */ #include int main() { int i, n; double s = 1.0, f = 1.0; printf("Forneca o valor de n: "); scanf("%d", &n); for (i=1; i int main() { int i, n; double x, s = 1.0, t = 1.0; printf("Forneca o valor de n: "); scanf("%d", &n); printf("Forneca o valor de x: "); scanf("%lf", &x); for (i = 1; i < n; i++) { t *= x / i; s += t; } printf("exp(%g) = %.20g\n", x, s); return 0; } ========================================= /* * arquivo: arctan.c * ----------------- * Dado x (real), e n, um inteiro, calcular arctan x, * atraves da soma dos n primeiros termos da serie * * x - x^3 / 3 + x^5 / 5 - x^7 / 7 + ... * */ #include int main() { int i, n; double x, s, potx, sinal = 1; printf("Forneca o valor de n: "); scanf("%d", &n); printf("Forneca o valor de x: "); scanf("%lf", &x); s = potx = x; for (i = 1; i < n; i++) { sinal = -sinal; potx *= x * x; s += sinal * potx / (2 * i + 1); } printf("arctan(%g) = %.20g\n", x, s); return 0; } =========================================== /* * arquivo: exp2.c * --------------- * Dado x (real), e n, um inteiro, exp calcula exp(x) * atraves da soma dos n primeiros termos da serie * * 1 + x + x^2/2! + x^3/3! + ... * */ #include #include int main() { int i, n; double x, s = 1.0, t = 1.0; printf("Forneca o valor de n: "); scanf("%d", &n); printf("Forneca o valor de x: "); scanf("%lf", &x); for (i = 1; i < n; i++) { t *= x / i; s += t; } printf("exp(%g) = %.20g [nossa serie]\n", x, s); printf("exp(%g) = %.20g [biblioteca math]\n", x, exp(x)); return 0; } =========================================== /* * arquivo: arctan2.c * ------------------ * Dado x (real), e n, um inteiro, calcular arctan x, * atraves da soma dos n primeiros termos da serie * * x - x^3 / 3 + x^5 / 5 - x^7 / 7 + ... * */ #include #include int main() { int i, n; double x, s, potx, sinal = 1; printf("Digite o valor de n: "); scanf("%d", &n); printf("Digite o valor de x: "); scanf("%lf", &x); s = potx = x; for (i = 1; i < n; i++) { sinal = -sinal; potx *= x * x; s += sinal * potx / (2 * i + 1); } printf("arctan(%g) = %.20g\n", x, s); printf("arctan(%g) = %.20g\n", x, atan(x)); printf("Estimativa de pi:\n"); /* Fazemos x = 1 */ s = sinal = 1; for (i = 1; i < n; i++) { sinal = -sinal; s += sinal / (2 * i + 1); } printf("4*arctan(1) = %.20g [nossa serie]\n", 4 * s); printf("4*arctan(1) = %.20g [biblioteca math]\n", 4 * atan(1)); 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 #include // <=== 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; sinal= 1; fatorial = 1; dividendo = 1; 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; }