Ok, evidentemente non hai ancora affrontato i metodi in Java.
Eccoti una versione del programma senza il metodo:
Modificando la precisione si ottengono i seguenti risultati:codice:class PiGreco { public static void main(String[] args) { // qui viene stabilita la precisione int n = 3; double epsilon,nElemento,nMenoUnoElemento; double piGreco,piGrecoPrecedente; int m; // 2. calcolare epsilon // 2.1 inizializzo epsilon = 0.1 epsilon = 0.1; // 2.2 per n volte epsilon=epsilon/10 for(int i = 0; i < n; i++) { epsilon /= 10; } // 3 calcolo il primo e il secondo elemento della serie nMenoUnoElemento = 4.0; // (-1)^0*(4/(2*0+1)) nElemento = -4.0/3.0; // (-1)^1*(4/(2*1+1)) // 4 imposto m=2 m = 2; piGrecoPrecedente = nMenoUnoElemento; piGreco = nMenoUnoElemento + nElemento; // finchè |piGreco-piGrecoPrecedente| < epsilon while (!(Math.abs(piGreco-piGrecoPrecedente) < epsilon)) { piGrecoPrecedente = piGreco; // 5.1 il valore del n-1 elemento della successione= // il valore del n elemento della successione nMenoUnoElemento = nElemento; // 5.2 calcolo il nuovo valore del m elemento della successione nElemento = Math.pow(-1,m)*(4.0/(2.0*m+1)); piGreco += nElemento; // 5.3 incremento m m++; } // 6 stampo il risultato System.out.println("Il numero cercato è "+piGreco); } }
1: 3.1465677471829556
2: 3.1420924036835256
3: 3.1416426510898874
4: 3.141597653564762
5: 3.1415931535894743
6: 3.1415927035898146
7: 3.1415926485894077
che effettivamente approssimano (secondo la precisione voluta) il vero pigreco (3,1415926535897932384626433832795).
Programmando in Java incapperai spesso in comandi, metodi, classi, cose varie che non conosci, fortunatamente la documentazione ufficiale spesso risolve:
http://java.sun.com/j2se/1.4.2/docs/api/index.html.
In particolare a questo link trovi la documentazione di Math. Come puoi vedere Math.abs(x) restituisce il modulo di x e Math.pow(b,e) restituisce l'elevazione a potenza b^e.