ProgIng - Programación en Ingeniería
Loading...
Searching...
No Matches
Ejemplo012.c
Go to the documentation of this file.
1
38
39
#include <stdio.h>
40
41
int
main
(
int
argc,
char
*argv[])
42
{
43
(void)argc;
44
(void)argv;
45
46
int
n, i, j;
47
int
den;
/* denominador impar: 1,3,5,... */
48
float
x;
/* valor para evaluar ln(x) */
49
float
lnx;
/* acumulador de la serie */
50
float
fct
;
/* f = (x-1)/(x+1) */
51
float
num;
/* potencia: f^{den} */
52
53
/* Leer n >= 1 */
54
do
{
55
printf(
"Ingres el numero de terminos: "
);
56
scanf(
"%d"
, &n);
57
}
while
(n < 1);
58
59
/* Leer x > 0 */
60
do
{
61
printf(
"Ingrese el valor de x: "
);
62
scanf(
"%f"
, &x);
63
}
while
(x <= 0);
64
65
/*
66
f = (x - 1) / (x + 1)
67
y la serie es:
68
ln(x) = 2 * sum_{i=0}^{n-1} f^{2i+1}/(2i+1)
69
*/
70
for
(i = 0,
fct
= (x - 1) / (x + 1), lnx = 0; i < n; i++)
71
{
72
den = 2*i + 1;
/* 1, 3, 5, ... */
73
74
/*
75
Calcular num = fct^den multiplicando fct den veces:
76
num = fct * fct * ... * fct (den factores)
77
*/
78
for
(j = 0, num = 1; j < den; j++)
79
num *=
fct
;
80
81
/* Sumar el término: f^{den}/den */
82
lnx += num / den;
83
}
84
85
/* Multiplicar por 2 según la identidad */
86
lnx *= 2;
87
88
printf(
"ln(%f) = %f\n"
, x, lnx);
89
return
0;
90
}
fct
double fct(double x, int n)
Definition
Ejemplo029.c:34
main
int main(void)
Definition
Ejemplo_035.c:15
src
20261
src
Ejemplo012.c
Generated by
1.16.1