Вывести на экран рисунок с использованием рекурсии - Turbo Pascal
Формулировка задачи:
Вот задание:
Дано натуральное чётное число n. Написать рекурсивную процедуру вывода на экран следующей картинки:
Листинг программы
- * * (N пробелов между звёздочками)
- ** ** (N-2 пробел)
- *** *** (N-4 пробела)
- **** **** (2 пробела)
- ********* (0 пробелов)
- **** **** (2 пробела)
- *** *** (N-4 пробела)
- ** ** (N-2 пробел)
- * * (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.
- Выводится символ новой строки.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д