Dev - C++ - Calculando Pi

   
Vista:

Calculando Pi

Publicado por León (4 intervenciones) el 25/11/2012 00:41:12
Tengo que calcular el valor de pi usando una sumatoria:

pi=4(1-1/3+1/5-1/7+1/9............)

He hecho el siguiente código fuente pero una vez introducido el número de términos a usar en la sumatoria en la ejecución no aparece nada y he mirado todo el código y no consigo dislucir la solución:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#include <iostream>
double CalculoPi(int n);
using namespace std;
 
int main (void)
{
    int x;
    double PI;
 
    cout << "Introduzca el numero de terminos a tener en cuenta en la suma: ";
    cin >> x;
 
    PI = CalculoPi(x);
 
    cout << "El valor del numero PI es: " << PI << endl;
 
    system("pause");
    return 0;
}
 
// Función CalculoPi: calcula el número PI respecto de la suma     
// Parámetros: x                                                    
// Devuelve: el número PI                                           
 
double CalculoPi(int n)
{
    double suma;
    int i;
 
    suma = 0*0;
    for (i=0; i<=x; i++)
    {
        if ((i=2)||((i%2)==0))
        {
            suma=suma+((double)1/(2*i+1));
        }
        else suma=suma-((double)1/(2*i+1));
    }
 
return 4*suma;
}


Por favor necesito ayuda que ya no sé que más hacer
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Calculando Pi

Publicado por Arturo (4 intervenciones) el 25/11/2012 03:10:24
bueno en el codigo que pegaste existian dos errores lo cuales aclaro con comentarios en la siguiente funcion

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
double CalculoPi(int x)     ///primero no tenias x como parametro sino n, y mas abajo usabas x
{
double suma;
int i;
 
suma = 0*0;
for (i=0; i<=x; i++)
{
if ((i==2)||((i%2)==0))      //el otro error es que en el otro codigo sale i=2 eso no                                       //es  comparar  eso solo igual, por lo tanto hacia el ciclo infinito
{
suma=suma+((double)1/(2*i+1));
}
else suma=suma-((double)1/(2*i+1));
}
 
return 4*suma;
}


cambia tu funcion por esta y funcionara
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Calculando Pi

Publicado por León (4 intervenciones) el 25/11/2012 11:34:03
muchas gracias el primer error fue al ponerlo en el tablón que ni me di cuenta cuando lo cambiaba pero el segundo no lo había visto, muchas gracias en serio
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar