В
Все
Х
Химия
В
Видео-ответы
А
Алгебра
Г
Геометрия
О
ОБЖ
Д
Другие предметы
У
Українська література
Р
Русский язык
Б
Беларуская мова
У
Українська мова
Э
Экономика
Ф
Физика
М
Математика
Ф
Французский язык
Г
География
И
Информатика
М
МХК
О
Окружающий мир
П
Психология
Н
Немецкий язык
О
Обществознание
П
Право
И
История
М
Музыка
Л
Литература
Қ
Қазақ тiлi
Б
Биология
А
Английский язык
kutinaI
kutinaI
09.12.2021 18:08 •  Информатика

Pascal Решите

procedure F(n: integer);

begin

write(n);

if n >= 3 then

begin

F(n div 2);

F(n - 1)

end

end;

Запишите подряд без пробелов и разделителей все числа, которые будут

выведены на экран при выполнении вызоваF(5). Числа должны быть

записаны в том же порядке, в котором они выводятся на экран

Ответ:
Angelona19
Angelona19
15.01.2024 21:04
Для решения этой задачи, шаг за шагом выполним кодовое решение:

1. Вызываем процедуру F(5).
2. Выводим на экран число 5.
3. Проверяем, является ли 5 больше или равным 3. Это условие истинно, поэтому выполняем следующий код внутри блока begin...end.
4. Вызываем процедуру F(5 div 2), что равно F(2).
5. Выводим на экран число 2.
6. Проверяем, является ли 2 больше или равным 3. Это условие ложно, поэтому не выполняем следующий код внутри блока begin...end.
7. Выходим из процедуры F(2) и возвращаемся к вызывающей процедуре, т.е. к процедуре F(5).
8. Вызываем процедуру F(5 - 1), что равно F(4).
9. Выводим на экран число 4.
10. Проверяем, является ли 4 больше или равным 3. Это условие истинно, поэтому выполняем следующий код внутри блока begin...end.
11. Вызываем процедуру F(4 div 2), что равно F(2).
12. Выводим на экран число 2.
13. Проверяем, является ли 2 больше или равным 3. Это условие ложно, поэтому не выполняем следующий код внутри блока begin...end.
14. Выходим из процедуры F(2) и возвращаемся к вызывающей процедуре, т.е. к процедуре F(4).
15. Вызываем процедуру F(4 - 1), что равно F(3).
16. Выводим на экран число 3.
17. Проверяем, является ли 3 больше или равным 3. Это условие истинно, поэтому выполняем следующий код внутри блока begin...end.
18. Вызываем процедуру F(3 div 2), что равно F(1).
19. Выводим на экран число 1.
20. Проверяем, является ли 1 больше или равным 3. Это условие ложно, поэтому не выполняем следующий код внутри блока begin...end.
21. Выходим из процедуры F(1) и возвращаемся к вызывающей процедуре, т.е. к процедуре F(3).
22. Возвращаемся к вызывающей процедуре, т.е. к процедуре F(4).
23. Возвращаемся к вызывающей процедуре, т.е. к процедуре F(5).
24. Весь код выполнен, завершаем выполнение программы.

Таким образом, при выполнении вызова F(5) на экран будет выведена последовательность чисел: 5 2 4 2 3 1.
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?