26 lines
726 B
Text
26 lines
726 B
Text
$ include "seed7_05.s7i";
|
|
include "float.s7i";
|
|
|
|
const func float: pi (in integer: throws) is func
|
|
result
|
|
var float: pi is 0.0;
|
|
local
|
|
var integer: throw is 0;
|
|
var integer: inside is 0;
|
|
begin
|
|
for throw range 1 to throws do
|
|
if rand(0.0, 1.0) ** 2 + rand(0.0, 1.0) ** 2 <= 1.0 then
|
|
incr(inside);
|
|
end if;
|
|
end for;
|
|
pi := flt(4 * inside) / flt(throws);
|
|
end func;
|
|
|
|
const proc: main is func
|
|
begin
|
|
writeln(" 10000: " <& pi( 10000) digits 5);
|
|
writeln(" 100000: " <& pi( 100000) digits 5);
|
|
writeln(" 1000000: " <& pi( 1000000) digits 5);
|
|
writeln(" 10000000: " <& pi( 10000000) digits 5);
|
|
writeln("100000000: " <& pi(100000000) digits 5);
|
|
end func;
|