aboutsummaryrefslogtreecommitdiff
path: root/Занимательное программирование/1/7_pi/project1.lpr
blob: b7ca5b55a46c9eec2d314d5b04371678286c8b88 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
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.