Вывести на экран таблицу трассировки для функции - Pascal ABC

Узнай цену своей работы

Формулировка задачи:

Помогите пожалуйста вывести на экран таблицу трассировки для функции нахождения k-ого члена последовательности Фибоначчи

Решение задачи: «Вывести на экран таблицу трассировки для функции»

textual
Листинг программы
uses crt;
function fib(k:integer):integer;
begin
if k<2 then fib:=1
else fib:=fib(k-2)+fib(k-1);
end;
var k,i:integer;
begin
repeat
write('Ввкдите k от 1 до 20 k=');
readln(k);
until k in [1..20];
clrscr;
writeln('---------------------------------------------------------------------');
writeln('|Текущий уровень|   Рекурсивный спуск   |    Рекурсивный возврат    |');
writeln('|   рекурсии    |                       |                           |');
writeln('---------------------------------------------------------------------');
for i:=0 to k-1 do
 begin
  gotoXY(1,whereY);
  write('|',i:8);
  gotoXY(17,whereY);
  if i=0 then write('|  Ввод: k=',k-i,'  fib(',k-i,');')
  else write('|        i=',k-i+1,'  fib(',k-i,');');
  gotoXY(41,whereY);
  if i=0 then write('|  Вывод: fib(',k,')=',fib(k))
  else write('|         fib:=',fib(k-i-1),'+',fib(k-i));
  
  gotoXY(69,whereY);
  writeln('|');
 end;
gotoXY(1,whereY);
write('|',k:8);
gotoXY(17,whereY);
write('|                 i=1  fib:=1');
gotoXY(69,whereY);
writeln('|');
write('---------------------------------------------------------------------');
end.

Оцени полезность:

9   голосов , оценка 3.556 из 5
Похожие ответы