The program I'm writing is supposed to take a number of *tosses* entered by the user, this part works.

Then take that and check to see if it is within a circle that is inside of a square. Then take the number that are inside the circle, and divide it by the number of *tosses* and the answer should be close to 3.14 the more *tosses* you choose.

here's my code so far, it works all good except the number is not close to pi at all.

```
-- --
-- Circlepi.adb --
-- This program estimates the area of a circle --
-- using Monte Carlo Integration. --
---------------------------------------------------------
WITH Ada.Text_IO;
USE Ada.Text_IO;
WITH Ada.Integer_Text_IO;
USE Ada.Integer_Text_IO;
WITH Ada.Float_Text_IO;
USE Ada.Float_Text_IO;
WITH Ada.Numerics.Float_Random;
USE Ada.Numerics.Float_Random;
PROCEDURE Circlepi IS
Gen : Generator;
Added_Number : integer;
Finished_Program, Samples_Inside_Circle : Integer;
Yes_No : Character;
Number_Of_Samples: integer;
X, Y : float;
estimate_of_pi : float;
BEGIN
Finished_Program := 0;
Samples_Inside_Circle := 0;
Added_Number := 1;
Estimate_Of_Pi := 0.0;
Number_Of_Samples := 0;
X := 0.0;
Y := 0.0;
WHILE (Finished_Program = 0) LOOP
Put("Enter the number of Samples: ");
Get (Number_Of_Samples);
FOR I IN 1 .. Number_Of_Samples LOOP
X := 2.0*Random(Gen) - 1.0;
Y := 2.0*Random(Gen) - 1.0;
IF X*X + Y*Y < 1.0 THEN
Samples_Inside_Circle := Samples_inside_circle + Added_Number;
END IF;
END LOOP;
Estimate_Of_Pi := float (Samples_Inside_Circle) / float (Number_Of_Samples);
Put ("Estimate of Pi: ");
Put (Estimate_Of_Pi);
new_line;
Put ("Do you want to run it again? (y)/(n)");
Get(Yes_No);
IF (Yes_No = 'n' or Yes_No = 'N') THEN
Finished_Program := 1;
END IF;
END LOOP;
END;
```