Вывести на экран рисунок с использованием рекурсии - Turbo Pascal

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

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

Вот задание: Дано натуральное чётное число n. Написать рекурсивную процедуру вывода на экран следующей картинки:
Листинг программы
  1. * * (N пробелов между звёздочками)
  2. ** ** (N-2 пробел)
  3. *** *** (N-4 пробела)
  4. **** **** (2 пробела)
  5. ********* (0 пробелов)
  6. **** **** (2 пробела)
  7. *** *** (N-4 пробела)
  8. ** ** (N-2 пробел)
  9. * * (N пробелов)

Решение задачи: «Вывести на экран рисунок с использованием рекурсии»

textual
Листинг программы
  1. procedure prn(w, k: integer);
  2. var i: integer;
  3. begin
  4.   for i := 1 to k do write('*');
  5.   for i := 1 to w do write(' ');
  6.   for i := 1 to k do write('*');
  7.   writeln;
  8.   if w > 2
  9.     then prn(w - 2, k + 1)
  10.     else begin
  11.       for i := 1 to 2 * (k + 1) do write('*');
  12.       writeln
  13.     end;
  14.   for i := 1 to k do write('*');
  15.   for i := 1 to w do write(' ');
  16.   for i := 1 to k do write('*');
  17.   writeln;
  18. end;
  19.  
  20. var n: integer;
  21. begin
  22.   repeat
  23.     write('n is even and n > 0;  n = ');
  24.     readln(n)
  25.   until not odd(n) and (n > 0);
  26.   prn(n, 1);
  27.   readln
  28. end.

Объяснение кода листинга программы

  1. В процедуре prn используется рекурсия для вывода на экран строки из символов * и пробелов. Код выполняется несколько раз, в зависимости от значений переменных w и k.
  2. Переменная i используется для итерации по циклам.
  3. Цикл for i := 1 to k выполняется k раз, выводя на экран символ * k раз.
  4. Затем выполняется цикл for i := 1 to w, который выводит на экран символ w раз.
  5. После этого снова выполняется цикл for i := 1 to k, который выводит на экран символ * k раз.
  6. Затем выводится символ новой строки.
  7. Если значение переменной w больше 2, то вызывается рекурсивно процедура prn с аргументами w-2 и k+1.
  8. Если значение переменной w меньше или равно 2, то выводятся символы * 2*(k+1) раз, а затем выводится символ новой строки.
  9. После этого снова выполняются циклы for i := 1 to k и for i := 1 to w, как в предыдущих шагах.
  10. В конце выводится символ новой строки.
  11. Переменная n используется для проверки, является ли число четным и больше нуля, и считывается из ввода пользователя.
  12. Вызывается процедура prn с аргументами n и 1.
  13. Выводится символ новой строки.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

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

5   голосов , оценка 3.8 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы