38 lines
914 B
Text
38 lines
914 B
Text
#define MAX 70000
|
|
|
|
function sqrt2_a( n as uinteger ) as uinteger
|
|
return iif(n,2,1)
|
|
end function
|
|
|
|
function sqrt2_b( n as uinteger ) as uinteger
|
|
return 1
|
|
end function
|
|
|
|
function napi_a( n as uinteger ) as uinteger
|
|
return iif(n,n,2)
|
|
end function
|
|
|
|
function napi_b( n as uinteger ) as uinteger
|
|
return iif(n>1,n-1,1)
|
|
end function
|
|
|
|
function pi_a( n as uinteger ) as uinteger
|
|
return iif(n,6,3)
|
|
end function
|
|
|
|
function pi_b( n as uinteger ) as uinteger
|
|
return (2*n-1)^2
|
|
end function
|
|
|
|
function calc_contfrac( an as function (as uinteger) as uinteger, bn as function (as uinteger) as uinteger, byval iter as uinteger ) as double
|
|
dim as double r
|
|
dim as integer i
|
|
for i = iter to 1 step -1
|
|
r = bn(i)/(an(i)+r)
|
|
next i
|
|
return an(0)+r
|
|
end function
|
|
|
|
print calc_contfrac( @sqrt2_a, @sqrt2_b, MAX )
|
|
print calc_contfrac( @napi_a, @napi_b, MAX )
|
|
print calc_contfrac( @pi_a, @pi_b, MAX )
|