RosettaCodeData/Task/Exponentiation-operator/True-BASIC/exponentiation-operator.basic

31 lines
776 B
Plaintext

RANDOMIZE
FUNCTION fPow (base, exponent)
IF exponent = 0.0 THEN LET fPow = 1.0
IF exponent = 1.0 THEN LET fPow = base
IF exponent < 0.0 THEN LET fPow = 1.0 / fPow(base, -exponent)
LET power = base
FOR i = 2 TO exponent
LET power = power * base
NEXT i
LET fPow = power
END FUNCTION
FUNCTION iPow (base, exponent)
IF exponent = 0 THEN LET iPow = 1
IF exponent = 1 THEN LET iPow = base
IF exponent < 0 THEN LET iPow = 1 / iPow(base, -exponent)
LET power = base
FOR i = 2 TO exponent
LET power = power * base
NEXT i
LET iPow = power
END FUNCTION
LET ni = ROUND(INT(RND * 10))
LET nf = RND * 10
LET ex = INT(RND * 10)
PRINT ni; " ^ "; ex; " = "; iPow (ni, ex)
PRINT nf; " ^ "; ex; " = "; fPow (nf, ex)
END