33 lines
644 B
Plaintext
33 lines
644 B
Plaintext
MODULE Expt EXPORTS Main;
|
|
|
|
IMPORT IO, Fmt;
|
|
|
|
PROCEDURE IntExpt(arg, exp: INTEGER): INTEGER =
|
|
VAR result := 1;
|
|
BEGIN
|
|
FOR i := 1 TO exp DO
|
|
result := result * arg;
|
|
END;
|
|
RETURN result;
|
|
END IntExpt;
|
|
|
|
PROCEDURE RealExpt(arg: REAL; exp: INTEGER): REAL =
|
|
VAR result := 1.0;
|
|
BEGIN
|
|
IF exp < 0 THEN
|
|
FOR i := exp TO -1 DO
|
|
result := result / arg;
|
|
END;
|
|
ELSE
|
|
FOR i := 1 TO exp DO
|
|
result := result * arg;
|
|
END;
|
|
END;
|
|
RETURN result;
|
|
END RealExpt;
|
|
|
|
BEGIN
|
|
IO.Put("2 ^ 4 = " & Fmt.Int(IntExpt(2, 4)) & "\n");
|
|
IO.Put("2.5 ^ 4 = " & Fmt.Real(RealExpt(2.5, 4)) & "\n");
|
|
END Expt.
|