diff options
| author | Eugen Wissner <belka@caraus.de> | 2025-12-13 16:35:46 +0100 |
|---|---|---|
| committer | Eugen Wissner <belka@caraus.de> | 2025-12-13 16:35:46 +0100 |
| commit | c1147629f7aae2ee90ccd7c9f1ccbf106361d486 (patch) | |
| tree | 67a549c6796702fa3db9248d599424066345dab4 /Занимательное программирование/1/7_pi/project1.lpr | |
| parent | 98329e0a3dd4f78b5d815ac3896272ec70904901 (diff) | |
| download | book-exercises-c1147629f7aae2ee90ccd7c9f1ccbf106361d486.tar.gz | |
Add book "Занимательное программирование"
Diffstat (limited to 'Занимательное программирование/1/7_pi/project1.lpr')
| -rw-r--r-- | Занимательное программирование/1/7_pi/project1.lpr | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/Занимательное программирование/1/7_pi/project1.lpr b/Занимательное программирование/1/7_pi/project1.lpr new file mode 100644 index 0000000..b7ca5b5 --- /dev/null +++ b/Занимательное программирование/1/7_pi/project1.lpr @@ -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. + |
