1. Главная
  2. Библиотека
  3. Программирование
  4. Укажи, сколько звёздочек будет выведено в результате вы...
Разбор задачи

Укажи, сколько звёздочек будет выведено в результате вызова alg(9). alg(k: integer); k > 1 then (k - 1); (''); ; (''); ;

  • Предмет: Программирование
  • Автор: Кэмп
  • #Основы алгоритмизации и программирования
  • #Языки программирования (C++, Java, Python и др.)
Укажи, сколько звёздочек будет выведено в результате вызова alg(9). alg(k: integer); k > 1 then (k - 1); (''); ; (''); ;

Условие:

Укажи, сколько звёздочек будет выведено в результате вызова alg(9). \nprocedure alg(k: integer); \nbegin \nif k > 1 then \nbegin \nalg(k - 1); \nwrite('*'); \nend; \nwrite('**'); \nend;

Решение:

  1. Процедура alg принимает целое число k.
  2. Если k больше 1, то выполняется рекурсивный вызов alg(k - 1), после чего выводится одна звёздочка ('*').
  3. После завершения рекурсивного вызова всегда выводится две звёздочки ('**').

Теперь давайте разберемся, что происходит при вызове alg(9):

  • alg(9):
    • k = 9, выполняется alg(8)
      • alg(8):
        • k = 8, выполняется alg(7)
          • alg(7):
            • k = 7, выполняется alg(6)
              • alg(6):
                • k = 6, выполняется alg(5)
                  • alg(5):
                    • k = 5, выполняется alg(4)
                      • alg(4):
                        • k = 4, выполняется alg(3)
                          • alg(3):
                            • k = 3, выполняется alg(2)
                              • alg(2):
                                • k = 2, выполняется alg(1)
                                  • alg(1):
                                    • k = 1, ничего не происходит, так как k не больше
  1.                          - Выводим '**' (2 звёздочки)
                           - Выводим '*...
    

Внутри — полный разбор, аргументация, алгоритм решения, частые ошибки и как отвечать на каверзные вопросы препода, если спросит

Попробуй решить по шагам

Попробуй один шаг и продолжи в режиме обучения или посмотри готовое решение

Какое ключевое отличие в выводе символов происходит при достижении базового случая рекурсии (k <= 1) в данной процедуре?

Что нужно знать по теме:

Что нужно знать по теме

Алгоритм решения

Топ 3 ошибок

Что спросит препод