ACK38|
begin
   integer j;

   real t1, t2;

   integer procedure Ackermann(m, n);
      value m, n;
      integer m, n;

      HEAD:
         if m = 0 then
            Ackermann := n + 1
         else if n = 0 then
            begin
               m := m - 1;
               n := 1;
               goto HEAD
            end
         else
            begin
               n := Ackermann(m, n - 1);
               m := m - 1;
               goto HEAD
            end;

open(30);

j : = Ackermann(3, 8);
if j ± 2045 then
   writetext(30, [WRONG*VALUE_]);

close(30);
end
|