Add book "Занимательное программирование"
This commit is contained in:
39
Занимательное программирование/1/7_pi/project1.lpr
Normal file
39
Занимательное программирование/1/7_pi/project1.lpr
Normal file
@@ -0,0 +1,39 @@
|
||||
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.
|
||||
|
||||
Reference in New Issue
Block a user