Files

40 lines
901 B
ObjectPascal

program project1;
uses Crt, Math, SysUtils;
var N, NO: Integer;
x, y: Integer;
Sum: Real;
IsRunning: Boolean;
const R: Integer = 20000; { Радиус круга }
begin
IsRunning := true;
N := 0;
NO := 0;
Sum := 0;
Randomize;
ClrScr;
while IsRunning do
begin
Inc(N); { Количество экспериментов }
x := RandomRange(-R, R); { Определяем случайную точку }
y := RandomRange(-R, R);
if Sqrt(x * x + y * y) <= R then NO := NO + 1; { Если она лежит в круге }
Sum := Sum + 4 * NO / N;
GotoXY(1, 1);
WriteLn('Количество точек: ', IntToStr(N));
WriteLn('Текущее значение PI: ', FloatToStr(4 * NO / N));
WriteLn('Среднее значение PI: ', FloatToStr(Sum / N));
if KeyPressed and (ReadKey = ^C) then IsRunning := false;
end;
end.