Results 1 to 4 of 4
Thread: Calculating Pi
 03032013, 09:59 PM #1Member
 Join Date
 Mar 2013
 Posts
 2
 Rep Power
 0
Calculating Pi
Hi,
New to the forum! Gotten a bit stuck on a bit of coding i'm doing for a class, wondered if you could help me at all.
The program is supposed to generate two random numbers and input them to the equation X^2+Y^2, this can then used to calculate Pi.
Anyways, the code works and does generate a value close to pi, i am now trying to adapt it so that the user can input the number of random trials so it
reaches a desired accuracy, which is where i run into a problem. If you where to enter 10 trials, then 100, then a thousand it doesn't simple calculate pi for this many trials. The third entry would calculate pi for 1110 trials. Is there anyway i can get it to "forget" the number of trials the user enters at the end of each loop? Here is the code i have so far:
PHP Code:import java.io.*; import java.util.Random; class Week5Part4 { static BufferedReader keyboard = new BufferedReader (new InputStreamReader(System.in)); static PrintWriter screen = new PrintWriter( System.out, true); static Random value = new Random(); private static double p(double X, double Y) { return ((X*X)+(Y*Y)); } public static void main (String [] args ) throws IOException { screen.println("The value of Pi stored in the Math class is " + Math.PI); screen.println("\n\n"); double sum = 0; double overflow = 0; int trials; double nextX; double nextY; do { screen.println(" Enter the number of trials needed"); trials = new Integer(keyboard.readLine()).intValue(); for (int n =0; n<=trials1; n++) { nextX = value.nextDouble(); nextY = value.nextDouble(); if (p(nextX,nextY)<1) sum++; if (p(nextX,nextY)>=1) overflow++; } screen.println("The value of Pi is " + ((4*sum)/trials) + " calculated by the program"); screen.println("sum " + sum + " Overflow " + overflow + " Total " + (sum+overflow)); trials=0; } while(trials != 1 ); } }
PS sorry if this is on the wrong section!Last edited by Simon4360; 03042013 at 01:24 PM.
 03042013, 01:44 PM #2Member
 Join Date
 Feb 2013
 Location
 Islamabad, Pakistan
 Posts
 25
 Rep Power
 0
Re: Calculating Pi
Java Code:for (int n =0; n<=trials1; n++)
Secondly i think do terminate your while loop
Ask user to press 1 to continue or 2 to terminate
On 1 program should simply work
On 2 program should terminate
Coz you are always doing
Java Code:trials=0; }While(trials!=1);
Thanks
 03042013, 01:55 PM #3Moderator
 Join Date
 Apr 2009
 Posts
 13,067
 Rep Power
 23
Re: Calculating Pi
Print out the value of 'trials' just before the for loop.
I don't spot where it could be adding previous trials values.
Ah, it's not trials that's the problem...you don't reset any of your other variables (sum, overflow, nextX, nextY).
The easiest way to avoid this is to declare your variables in the narrowest scope possible, in this case those 4 should be declared inside the while loop.Please do not ask for code as refusal often offends.
** This space for rent **
 03042013, 07:22 PM #4Member
 Join Date
 Mar 2013
 Posts
 2
 Rep Power
 0
Similar Threads

calculating the mean
By jimbao in forum New To JavaReplies: 8Last Post: 12142012, 02:40 AM 
Calculating percent
By Dankaru in forum New To JavaReplies: 3Last Post: 11242012, 10:04 PM 
need help with calculating something
By mikec420 in forum New To JavaReplies: 13Last Post: 09292011, 09:14 PM 
Help in calculating time different!
By rocky86 in forum New To JavaReplies: 6Last Post: 10112010, 04:18 PM 
calculating with dates
By hannes in forum New To JavaReplies: 1Last Post: 01142010, 09:22 PM
Bookmarks