Вопрос задан 29.07.2023 в 14:15. Предмет Информатика. Спрашивает Алексеев Дима.

ОЧЕНЬ СРОЧНО, ПОМОГИТЕ, ПОЖАЛУЙСТА! Ниже записан рекурсивный алгоритм F. Чему равна сумма

напечатанных на экране чисел при выполнении вызова F(10)? procedure F (n:integer); begin if n > 2 then begin writeln (n); F (n-3); F (n-4) end end;
0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Капустина Даша.
Для удобства прономерую строки:

1) procedure F (n:integer);
2) begin
3) if n > 2 then begin 
4) writeln (n);
5) F (n-3);
6) F (n-4)
7) end
8) end;

-первый вызов- со входным параметром n=10
-в строке 3 проверяется, что n больше двух,
-так как n действительно больше двух, то выполняются три следующие строки № 4,5,6 (а строка 7 -это указатель конца блока, выполняемого при истинности проверки)
-строка 4 печатает значение n, то есть 10
-строка 5 вызывает этот алгоритм вновь, со входным параметром 7
-строка 6 опять вызывает алгоритм, со входным параметром 6
И в каждом вызове будут ещё два вызова, со входными параметрами на три и четыре меньше, чем был
И так далее, каждый вызов будет вновь вызывать алгоритм, и печатать n до тех пор, пока n будет больше двух.

итак, получим ветвление вызовов, и вот значение n в каждом из них:
    10
     7                   6
  4     3            3     2
1 0  0 -1        0 -1

но, не все из этих n будут напечатаны, а только те, которые больше двух. если по порядку, то вот что будет напечатано:
10
7
4
3
6
3

сумма всех этих чисел равна 33

Ответ: 33.
0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Давайте разберемся, как работает данный рекурсивный алгоритм F.

Когда вызывается процедура F с аргументом n, она делает следующее:

  1. Если n > 2, то процедура выводит значение n на экран с помощью команды writeln (n).
  2. Затем процедура вызывает саму себя дважды: F(n-3) и F(n-4).

Посмотрим, как процедура F будет работать при вызове F(10):

  1. F(10) будет выполнено и выведет на экран число 10.
  2. Затем F(7) будет вызвано (так как 10-3=7) и выведет на экран число 7.
  3. F(6) будет вызвано (так как 10-4=6) и выведет на экран число 6.
  4. Затем F(7) вызовет F(4) и F(3).
  5. F(4) выведет на экран число 4.
  6. F(3) выведет на экран число 3.

Таким образом, когда вызывается F(10), на экран будут напечатаны следующие числа: 10, 7, 6, 4 и 3.

Сумма этих чисел: 10 + 7 + 6 + 4 + 3 = 30.

0 0

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос