Вывести на экран рисунок с использованием рекурсии - Turbo Pascal
Формулировка задачи:
Вот задание:
Дано натуральное чётное число n. Написать рекурсивную процедуру вывода на экран следующей картинки:
Решение задачи: «Вывести на экран рисунок с использованием рекурсии»
textual
Листинг программы
procedure prn(w, k: integer); var i: integer; begin for i := 1 to k do write('*'); for i := 1 to w do write(' '); for i := 1 to k do write('*'); writeln; if w > 2 then prn(w - 2, k + 1) else begin for i := 1 to 2 * (k + 1) do write('*'); writeln end; for i := 1 to k do write('*'); for i := 1 to w do write(' '); for i := 1 to k do write('*'); writeln; end; var n: integer; begin repeat write('n is even and n > 0; n = '); readln(n) until not odd(n) and (n > 0); prn(n, 1); readln end.
Объяснение кода листинга программы
- В процедуре prn используется рекурсия для вывода на экран строки из символов
*
и пробелов. Код выполняется несколько раз, в зависимости от значений переменных w и k. - Переменная i используется для итерации по циклам.
- Цикл for i := 1 to k выполняется k раз, выводя на экран символ
*
k раз. - Затем выполняется цикл for i := 1 to w, который выводит на экран символ
- После этого снова выполняется цикл for i := 1 to k, который выводит на экран символ
*
k раз. - Затем выводится символ новой строки.
- Если значение переменной w больше 2, то вызывается рекурсивно процедура prn с аргументами w-2 и k+1.
- Если значение переменной w меньше или равно 2, то выводятся символы
*
2*(k+1) раз, а затем выводится символ новой строки. - После этого снова выполняются циклы for i := 1 to k и for i := 1 to w, как в предыдущих шагах.
- В конце выводится символ новой строки.
- Переменная n используется для проверки, является ли число четным и больше нуля, и считывается из ввода пользователя.
- Вызывается процедура prn с аргументами n и 1.
- Выводится символ новой строки.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д