[ translated from vb2005 code ]
Code: Select all
const as integer n = 100
sub array_mul( byref a() as integer , f as integer )
dim as integer c = 0 , p , h
for p = n to 0 step -1
h = a( p ) * f + c
c = int( h / 10 )
a( p ) = h mod 10
next p
end sub
sub array_div( byref a() as integer , f as integer )
dim as integer b = 0 , p , h
for p = n to 0
h = a( p ) + b * 10
a( p ) = int( h / f )
b = h mod f
next p
end sub
sub array_add( byref a() as integer , byref b() as integer )
dim as integer c = 0 , p , h
for p = n to 0 step -1
h = a( p ) + b( p ) + c
c = int( h / 10 )
a( p ) = h mod 10
next p
end sub
sub array_sub( byref a() as integer , byref b() as integer )
dim as integer b = 0 , p , h
for p = n to 0 step -1
h = a( p ) - b( p ) + 10
b = int( h / 10 )
a( p ) = h mod 10
next p
end sub
function is_zero( a() as integer ) as integer
dim as integer p
for p = 0 to n
if a( p ) then return 0
next p
return 1
end function
sub arctan( byref t() as integer , byref s() as integer , div as integer )
dim as integer w , i
s( 0 ) = 1
i = 1
w = div
array_div s() , w
array_add t() , s()
do
array_mul s() , i
w = div * div
array_div s() , w
i += 2
w = i
array_div s() , w
array_sub t() , s()
array_mul s() , i
w = div * div
array_div s() , w
i += 2
w = i
array_div s() , w
array_t() , s()
loop until is_zero( s() )
end sub
function find_pi() as string
dim as string uit = "pi = 3."
dim as integer i , f , s( n + 2 ) , t( n + 2 )
f = 2
acrtan t() , s() , f
f = 3
arctan t() , s() , f
array_mul t() , 4
for i = 1 to n - 1
uit += str( t( i ) )
next i
return uit
end function
print find_pi()