25 lines
380 B
Text
25 lines
380 B
Text
MODULE Agm;
|
|
IMPORT
|
|
Math := LRealMath,
|
|
Out;
|
|
|
|
CONST
|
|
epsilon = 1.0E-15;
|
|
|
|
PROCEDURE Of*(a,g: LONGREAL): LONGREAL;
|
|
VAR
|
|
na,ng,og: LONGREAL;
|
|
BEGIN
|
|
na := a; ng := g;
|
|
LOOP
|
|
og := ng;
|
|
ng := Math.sqrt(na * ng);
|
|
na := (na + og) * 0.5;
|
|
IF na - ng <= epsilon THEN EXIT END
|
|
END;
|
|
RETURN ng;
|
|
END Of;
|
|
|
|
BEGIN
|
|
Out.LongReal(Of(1,1 / Math.sqrt(2)),0,0);Out.Ln
|
|
END Agm.
|