34 lines
729 B
Plaintext
34 lines
729 B
Plaintext
MODULE ackerman;
|
|
|
|
IMPORT ASCII, NumConv, InOut;
|
|
|
|
VAR m, n : LONGCARD;
|
|
string : ARRAY [0..19] OF CHAR;
|
|
OK : BOOLEAN;
|
|
|
|
PROCEDURE Ackerman (x, y : LONGCARD) : LONGCARD;
|
|
|
|
BEGIN
|
|
IF x = 0 THEN RETURN y + 1
|
|
ELSIF y = 0 THEN RETURN Ackerman (x - 1 , 1)
|
|
ELSE
|
|
RETURN Ackerman (x - 1 , Ackerman (x , y - 1))
|
|
END
|
|
END Ackerman;
|
|
|
|
BEGIN
|
|
FOR m := 0 TO 3 DO
|
|
FOR n := 0 TO 6 DO
|
|
NumConv.Num2Str (Ackerman (m, n), 10, string, OK);
|
|
IF OK THEN
|
|
InOut.WriteString (string)
|
|
ELSE
|
|
InOut.WriteString ("* Error in number * ")
|
|
END;
|
|
InOut.Write (ASCII.HT)
|
|
END;
|
|
InOut.WriteLn
|
|
END;
|
|
InOut.WriteLn
|
|
END ackerman.
|