37 lines
606 B
Text
37 lines
606 B
Text
INCLUDE "H6:REALMATH.ACT"
|
|
|
|
PROC Agm(REAL POINTER a0,g0,result)
|
|
REAL a,g,prevA,tmp,r2
|
|
|
|
RealAssign(a0,a)
|
|
RealAssign(g0,g)
|
|
IntToReal(2,r2)
|
|
DO
|
|
RealAssign(a,prevA)
|
|
RealAdd(a,g,tmp)
|
|
RealDiv(tmp,r2,a)
|
|
RealMult(prevA,g,tmp)
|
|
Sqrt(tmp,g)
|
|
IF RealGreaterOrEqual(a,prevA) THEN
|
|
EXIT
|
|
FI
|
|
OD
|
|
RealAssign(a,result)
|
|
RETURN
|
|
|
|
PROC Main()
|
|
REAL r1,r2,tmp,g,res
|
|
|
|
Put(125) PutE() ;clear screen
|
|
|
|
MathInit()
|
|
IntToReal(1,r1)
|
|
IntToReal(2,r2)
|
|
Sqrt(r2,tmp)
|
|
RealDiv(r1,tmp,g)
|
|
Agm(r1,g,res)
|
|
|
|
Print("agm(") PrintR(r1)
|
|
Print(",") PrintR(g)
|
|
Print(")=") PrintRE(res)
|
|
RETURN
|