Задание 11 ЕГЭ по информатике 2018

Задание 11. Рекурсивные процедуры и функции: Демонстрационный вариант ЕГЭ по информатике 2018; государственный выпускной экзамен 2018; тренировочные варианты ЕГЭ по информатике, тематические тестовые задания и задачи из тренажера по информатике 2018

*** КАНАЛ ЮТЬЮБ ***
 
ЕГЭ по информатике -> ЕГЭ 2018 -> ЕГЭ 2018 — 11
 

11 задание. Демоверсия ЕГЭ 2018 информатика:

Ниже на пяти языках программирования записан рекурсивный алгоритм F.
Паскаль:

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

Запишите подряд без пробелов и разделителей все числа, которые будут напечатаны на экране при выполнении вызова F(9). Числа должны быть записаны в том же порядке, в котором они выводятся на экран.

📹 Видеоразбор 1 способ

📹 Видеоразбор 2 способ

✍ Показать решение:

    Рассмотрим алгоритм:

  • В данном фрагменте программы рекурсивная процедура вызывает саму себя дважды.
  • Благодаря условию, находящемуся в процедуре (if n > 0 — условие остановки рекурсии), обеспечивается выход из рекурсии и не происходит «зацикливания».
  • Выполнение процедур закончится, когда в каждой из вызванных процедур выполнятся по две внутренние процедуры, и условие if n > 0 перестанет работать (т.е. когда параметр процедуры n станет <= 0).
  • div — целочисленное деление, т.е., например:
  • 5 div 2 = 2
    1 div 2 = 0
    
  • Отобразим пошагово выполнение каждой процедуры, двигаясь сверху вниз и оставляя отступы слева с каждым новым шагом. В каждой строке будем отображать порядковый номер шага. Под вызовом каждой процедуры разместим именно те действия, которые происходят в данной процедуре:
  •    F(9)
    1: 9  F(6)    (9 - 3 = 6)
    2:     6   F(3)    (6 - 3 = 3)
    3:          3    F(0)    (3 - 3 = 0, условие не работает)
    4:         F(1)  (3 div 3 = 1)
    5:          1    F(-2)    (1 - 3 = -2, условие не работает)
    6:         F(0)    (1 div 3 = 0, условие не работает)
    7:    F(2) (6 div 3 = 2)
    8:     2   F(-1)    (2 - 3 = -1, условие не работает)
    9:    F(0)    (2 div 3 = 0, условие не работает)
    10:F(3)  (9 div 3 = 3)
    11:3  F(0)     (3 - 3 = 0, условие не работает) 
    12:F(1)  (3 div 3 = 1)   
    13: 1   F(-2)     (1 - 3 = -2, условие не работает) 
    
  • Выделены те числа, которые выводятся на экран. Подчеркнуты те процедуры, в которых условие не работает, соответственно, ничего на экран не выводится.
  • Перепишем по порядку все выводимые на экран числа сверху вниз: 9631231

Результат: 9631231

Решение 11 задания ЕГЭ по информатике, вариант 1 (ФИПИ, «ЕГЭ информатика и ИКТ, типовые экзаменационные варианты 2018», С.С. Крылов, Т.Е. Чуркина):

Ниже на языке программирования записаны две рекурсивные функции (процедуры): F и G.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
procedure F(n:integer); forward;
procedure G(n:integer); forward;
 
procedure F (n:integer);
begin
  writeln('*');
  if n mod 5 = 0 then G(n - 5)
  else F (n - 3);
end;
 
procedure G(n:integer);
begin
  if n > 0 then F (n - 1);
end;

Сколько символов «звездочка» будет напечатано на экране при выполнении вызова F(27)?

✍ Показать решение:

    Разберем алгоритм кода процедуры:

  • Независимо от условия (до него), процедура F выводит на экран «звездочку». Таким образом, количество «звездочек» определяется количеством вызванных процедур F.
  • Рассмотрим цепочку вызываемых процедур:
  • F(27) -> F(24) -> F(21) -> F(18) -> F(15) -> G(10) -> F(9) -> F(6) -> F(3) -> F(0) -> G(-5)
  • Количество вызовов процедуры F = 9

Результат: 9

Досрочный егэ по информатике 2018, вариант 1. Задание 11:

Ниже на языке программирования записан рекурсивный алгоритм F:

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

В качестве ответа укажите последовательность цифр, которая будет напечатана на экране в результате вызова F(5).

📹 Видеоразбор

✍ Показать решение:

Результат: 1514321

ЕГЭ по информатике -> ЕГЭ 2018 -> ЕГЭ 2018 — 11