Написать рекурсивную программу, вычисляющую значения функции Аккермана. В процессе вычисления программа должна выводить последовательность рекурсивных вызовов. Для вывода последовательности рекурсивных вызовов используйте стеки. В отчет по лабораторной работе поместите три выдачи вашей программы для различных m и n (m<4 и n<5) - Pascal(Паскаль)

Функция Аккермана для неотрицательных целых m и n задается следующим образом:

uses crt;

Var
  k, l, F: extended;

function akker(m, n: extended): extended;
begin
  if m = 0 then
    akker := n + 1;
  if (m > 0) and (n = 0) then
    akker := akker(m - 1, 1)
  else if (m > 0) and (n > 0) then
    akker := akker(m - 1, akker(m, n - 1));
end;

begin
  clrscr;
  Writeln('Vvedite m i n ');
  Write('m = ');
  Readln(k);
  Write('n = ');
  Readln(l);
  F := akker(k, l);
  Writeln('Funkciya =', F);
  readkey;

end.

Leave a Comment

30 + = 37