ProgIng - Programación en Ingeniería
Loading...
Searching...
No Matches
Ejemplo008.c File Reference

Aproximación de π mediante la serie de Leibniz. More...

#include <stdio.h>
Include dependency graph for Ejemplo008.c:

Go to the source code of this file.

Functions

int main (int argc, char *argv[])
 Punto de entrada. Calcula una aproximación de π con n términos.

Detailed Description

Aproximación de π mediante la serie de Leibniz.

Usa la serie: π/4 = 1 - 1/3 + 1/5 - 1/7 + ...

Con n términos: π ≈ 4 * sum_{i=0}^{n-1} (-1)^i / (2i+1)

Entrada
Un entero n >= 1 (número de términos).
Salida
Imprime el valor aproximado:
PI = <valor>
Complejidad
Tiempo: O(n). Memoria: O(1).
Note
La convergencia es lenta: para obtener muchos decimales se requieren muchos términos.

Definition in file Ejemplo008.c.

Function Documentation

◆ main()

int main ( int argc,
char * argv[] )

Punto de entrada. Calcula una aproximación de π con n términos.

Parameters
argcNo usado.
argvNo usado.
Returns
0 si finaliza correctamente.

Definition at line 36 of file Ejemplo008.c.

37{
38 (void)argc;
39 (void)argv;
40
41 float pi; /* acumulador para π */
42 int i, n; /* i: índice; n: términos */
43 int den; /* denominador (2i+1) */
44 int signo; /* +1 o -1 alternando */
45
46 /* Validar n >= 1 */
47 do {
48 printf("Ingrese el numero de terminos: ");
49 scanf("%d", &n);
50 } while (n < 1);
51
52 /*
53 Inicialización:
54 i = 0
55 pi = 0 (acumulador de π/4 antes de multiplicar por 4)
56 */
57 for (i = 0, pi = 0; i < n; i++)
58 {
59 den = 2*i + 1; /* 1, 3, 5, 7, ... */
60 signo = 1 - 2*(i % 2); /* i par -> +1, i impar -> -1 */
61 pi += (signo * 1.0f / den);
62 }
63
64 pi *= 4; /* π = 4*(π/4) */
65 printf("PI = %f\n", pi);
66
67 return 0;
68}