新手学pascal求解答,习题是郑启华第五章习题5.5

1个回答

  • PROGRAM MakePi (input, output);

    {利用随机数函数计算Pi的值.将随机数的前后两个值(均在0-1之间)作为点的x,y坐标.

    统计10000个点中,落入半径为1的四分之一圆内的点数n,从而计算出四分之一圆的面积s

    (s=n/10000).又知四分之一圆的面积为Pi*r2/4 = Pi/4,由此即可算出Pi的值}

    CONST

    MAX = 10000;

    VAR

    i, n : integer;

    Pi, s, seed, x, y: real;

    {产生随机数的函数说明}

    FUNCTION rand(VAR seed: real): real;

    CONST

    a = 93.0;

    m = 8192.0;

    c = 1.0;

    BEGIN

    seed:= a * seed + c;

    seed:= round((seed/m - trunc(seed/m))*m);

    rand:= seed/m

    END;

    BEGIN {主程序}

    seed:= 0.7823; n:= 0;

    FOR i:=1 TO MAX DO

    BEGIN

    x:= rand(seed);

    y:= rand(seed);

    IF x*x + y*y