Задание 13 Параграф 9 ГДЗ Босова 11 класс (Информатика)
program reк;
procedure F(n: integer);
begin
if n > 0 then
begin
F(n-4) ;
writein(n);
F(n div 3)
end;
end;
begin
F(9)
end.
He выполняя программу на компьютере, выясните, что получится в результате работы этой программы.
Проверьте свой результат, выполнив программу на компьютере.
Дополнительные материалы к главе смотрите в авторской мастерской.
procedure F(n: integer);
begin
if n > 0 then
begin
F(n — 4);
write (n,’, ‘);
F(n div 3)
end;
end;
begin
F(9)
end.
Вывод: 1, 5, 1, 9, 3, 1,
Программа: Z_9_13.pas (ссылка ниже)
Разберём работу рекурсивной процедуры $$F(n)$$.
Если $$n \le 0$$, то процедура ничего не делает. Если $$n > 0$$, то сначала вызывается $$F(n-4)$$, затем выводится число $$n$$, после этого вызывается $$F(n \div 3)$$.
Найдём результат для $$F(9)$$:
- $$F(9) \rightarrow F(5),\ 9,\ F(3)$$
- $$F(5) \rightarrow F(1),\ 5,\ F(1)$$
- $$F(1) \rightarrow F(-3),\ 1,\ F(0)$$
Так как при $$n \le 0$$ ничего не выводится, получаем:
- из $$F(1)$$ выводится $$1$$;
- из $$F(5)$$ выводится $$1, 5, 1$$;
- из $$F(3)$$:
$$F(3) \rightarrow F(-1),\ 3,\ F(1)$$, значит выводится $$3, 1$$.
Итоговая последовательность вывода:
$$1,\ 5,\ 1,\ 9,\ 3,\ 1$$
Ответ
$$1,\ 5,\ 1,\ 9,\ 3,\ 1$$