Рекурсия, рекурсивный вывод текста - Turbo Pascal
Формулировка задачи:
Реализовать вывод известного детского стишка "У попа была собака.." с использованием рекурсивных методов.
Решение задачи: «Рекурсия, рекурсивный вывод текста»
textual
Листинг программы
procedure PriestAndDog(n:integer); begin writeln('У попа была собака, он ее любил.'); writeln('Она съела кусок мяса, он ее убил,'); writeln('вырыл яму, закопал и на камне написал:'); if n>1 then begin dec(n); PriestAndDog(n); end; end; var n:integer; begin write('n='); readln(n); PriestAndDog(n); end.
Объяснение кода листинга программы
- В процедуре PriestAndDog(n) переменная n представляет собой целое число, которое передается в качестве аргумента.
- Выводится текст
У попа была собака, он ее любил.
- Выводится текст
Она съела кусок мяса, он ее убил, вырыл яму, закопал и на камне написал:
. - Если значение переменной n больше 1, то происходит рекурсивный вызов процедуры PriestAndDog(n-1).
- Переменная n уменьшается на 1.
- Процедура PriestAndDog(n) вызывается снова с новым значением переменной n.
- Код завершается после рекурсивного вывода текста для значения переменной n равного 0.
- В начале программы объявлена переменная n типа integer.
- Выводится сообщение
n=
для ввода значения переменной n. - Чтение значения переменной n из ввода пользователя.
- Вызов процедуры PriestAndDog(n).
- Код завершается после рекурсивного вывода текста для значения переменной n равного 0.