RosettaCodeData/Task/Exponentiation-operator/FutureBasic/exponentiation-operator.basic

48 lines
1.5 KiB
Plaintext

local fn CustomPOW( base as double, exponent as NSInteger ) as double
double power = base, result
NSUInteger i
if exponent = 0.0 then result = 1.0 : exit fn
if exponent = 1.0 then result = base : exit fn
if exponent < 0.0
for i = 2 to -exponent
power = power * base
next
result = 1.0/power : exit fn
end if
for i = 2 to exponent
power = power * base
next
result = power
end fn = result
print "Custom POW function:"
print "fn CustomPOW( 2, 2 ) = "; fn CustomPOW( 2, 2 )
print "fn CustomPOW( 2.5, 2 ) = "; fn CustomPOW( 2.5, 2 )
print "fn CustomPOW( 2, -3 ) = "; fn CustomPOW( 2, -3 )
print "fn CustomPOW( 1.78, 3 ) = "; fn CustomPOW( 1.78, 3 )
print "fn CustomPOW( 5.5, 5 ) = "; fn CustomPOW( 5.5, 5 )
print "fn CustomPOW( 4.5, 2 ) = "; fn CustomPOW( 4.5, 2 )
print "fn CustomPOW( -1, -3 ) = "; fn CustomPOW( -1, -3 )
print
print "Native FB ^ operator:"
print "2^2 = "; 2^2
print "2.5^2 = "; 2.5^2
print "2^-3 = "; 2^-3
print "1.78^3 = "; 1.78^3
print "5.5^5 = "; 5.5^5
print "4.5^2 = "; 4.5^2
print "-1^=3 = "; -1^-3
print
print "Native FB fn POW function:"
print "fn POW( 2, 2 ) = "; fn POW( 2, 2 )
print "fn POW( 2.5, 2 ) = "; fn POW( 2.5, 2 )
print "fn POW( 2, -3 ) = "; fn POW( 2, -3 )
print "fn POW( 1.78, 3 ) = "; fn POW( 1.78, 3 )
print "fn POW( 5.5, 5 ) = "; fn POW( 5.5, 5 )
print "fn POW( 4.5, 2 ) = "; fn POW( 4.5, 2 )
print "fn POW( -1, -3 ) = "; fn POW( -1, -3 )
print
HandleEvents