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

33 lines
683 B
Plaintext

sub iPow (base, exponent)
local power
if exponent = 0 return 1
if exponent = 1 return base
if exponent < 0 return 1 / iPow(base, -exponent)
power = base
for i = 2 to exponent
power = power * base
next
return power
end sub
sub fPow (base, exponent)
local power
if exponent = 0.0 return 1.0
if exponent = 1.0 return base
if exponent < 0.0 return 1.0 / fPow(base, -exponent)
power = base
for i = 2 to exponent
power = power * base
next
return power
end sub
ni = round(ran(10))
nf = ran(10)
ex = int(ran(10))
print ni, " ^ ", ex, " = ", iPow (ni, ex)
print nf, " ^ ", ex, " = ", fPow (nf, ex)
end