Marina658
?>

Pascal Решите procedure F(n: integer); begin write(n); if n >= 3 then begin F(n div 2); F(n - 1) end end; Запишите подряд без пробелов и разделителей все числа, которые будут выведены на экран при выполнении вызоваF(5 Числа должны быть записаны в том же порядке, в котором они выводятся на экран

Информатика

Ответы

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

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.

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

Pascal Решите procedure F(n: integer); begin write(n); if n >= 3 then begin F(n div 2); F(n - 1) end end; Запишите подряд без пробелов и разделителей все числа, которые будут выведены на экран при выполнении вызоваF(5 Числа должны быть записаны в том же порядке, в котором они выводятся на экран
Ваше имя (никнейм)*
Email*
Комментарий*

Популярные вопросы в разделе

Ольга1915
АЛЕКСЕЙ
olkay
pelagia-kola2658
VadimovichSvetlana622
Запиши верный ответ. 12div5
Chausmonk4
olyafom1234
optikaleks7
e9rebrova
Manyaya
ruslan
Екатерина1369
dimiff5
menametov
PetrovnaTsukanov
▲