Определите, что выведет на экран программа при вызове F(9). procedure F(n: integer); begin
write(n); if n > 3 then begin F(n – 4); F(n div 2); end; end; Сложность этой задачи в том, что вывод стоит до условий, а не в нем. Как тогда рассуждать?Ответы на вопрос
Ну ты просто выдумал себе сложности, при вызове F она выведет 9, паскаль не знаю, но точно утверждаю, что это так.
Сначала идёт вывод переменной а потом операции с ней, ничего додумывать не нужно.
Для определения того, что программа выведет на экран при вызове F(9), давайте разберемся в её работе.
Когда функция F(n) вызывается с аргументом n = 9, она делает следующее:
Записывает значение
nна экран (в данном случае, выводится число 9).Проверяет условие
n > 3. В данном случае оно выполняется, так как 9 больше 3.Выполняется блок
begin...end, в котором происходят два рекурсивных вызова функцииF():- Первый вызов:
F(9 - 4), то естьF(5). - Второй вызов:
F(9 div 2), то естьF(4).
- Первый вызов:
Давайте продолжим разбираться с этими вызовами:
Для
F(5):- Выводится значение
5. - Проверяется условие
n > 3, которое выполняется, так как 5 больше 3. - Выполняется блок
begin...end, в котором происходят еще два рекурсивных вызова:F(5 - 4), то естьF(1).F(5 div 2), то естьF(2).
- Выводится значение
Для
F(1):- Выводится значение
1. - Проверяется условие
n > 3, которое не выполняется, так как 1 не больше 3. Рекурсивные вызовы в этом случае не происходят.
- Выводится значение
Для
F(2):- Выводится значение
2. - Проверяется условие
n > 3, которое не выполняется, так как 2 не больше 3. Рекурсивные вызовы в этом случае также не происходят.
- Выводится значение
Таким образом, после выполнения всех вызовов функции F(), результатом вызова F(9) будет последовательность чисел, выводимых на экран: 9 5 1 2.
Важно понимать, что порядок вывода чисел обусловлен порядком выполнения рекурсивных вызовов и их завершением. Так как вызовы делаются до условий, это может привести к изменению обычного порядка вывода результатов, как в данном случае.
Похожие вопросы
Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili
