Формальные исполнители ЕГЭ

Знакомимся с формальными исполнителями ЕГЭ — Роботом, Черепахой и Кузнечиком — и учимся писать для них программы, не задумываясь о смысле.

Формальный исполнитель — это устройство (реальное или воображаемое), которое умеет выполнять строго определённый набор команд буквально и без понимания смысла. Список доступных ему команд называют системой команд исполнителя (СКИ).

Слово «формальный» здесь ключевое: исполнитель не догадывается, что мы имеем в виду, — он делает ровно то, что написано в команде, и только то, что входит в его СКИ. Любая команда вне СКИ вызывает отказ. Это та же идея, что и в настоящем программировании: процессор тупо исполняет инструкции, а думать должен программист.

Три исполнителя, которые встречаются на ЕГЭ

В задачах ЕГЭ по информатике чаще всего фигурируют три исполнителя. У каждого своя СКИ.

Кузнечик

Прыгает по числовой прямой. Типичная СКИ — две команды: вперёд N (прибавить N к текущему числу) и назад M (вычесть M). Стартует обычно с 0, цель — попасть в заданное число.

Черепаха

Ползает по полю и рисует линию. Команды: Вперёд n (пройти n шагов, оставляя след) и Направо a (повернуться на a градусов). Управляя ими, рисуют квадраты, треугольники, звёзды. Часто внутри цикла Повтори k [...].

Робот

Ходит по клетчатому полю со стенами. Команды движения: вверх, вниз, влево, вправо. Есть команды-условия (датчики): слева свободно, сверху стена и т. п. — их используют в циклах нц пока ... кц и ветвлениях если ... то.

Как читать программу исполнителя

Чтение — это аккуратная трассировка: ведём по шагам и записываем состояние после каждой команды. Возьмём Кузнечика с командами вперёд 5 и назад 3, старт в 0. Дана программа из 4 команд:

Старт: 0
вперёд 5   -> 0 + 5 = 5
вперёд 5   -> 5 + 5 = 10
назад 3    -> 10 - 3 = 7
вперёд 5   -> 7 + 5 = 12
Итог: 12

Каждый прыжок прибавляет 5 или вычитает 3. Если в программе $a$ команд «вперёд 5» и $b$ команд «назад 3», итоговое число равно

$$ X = 5a - 3b. $$

Эта формула — мост от «потыкать наугад» к точному расчёту: зная цель, мы решаем уравнение относительно $a$ и $b$.

Как составлять программу: разбор задачи ЕГЭ

Задача. У Кузнечика две команды: вперёд 5 и назад 3. Он стартует с 0. Какое наименьшее число команд нужно, чтобы оказаться в точке 4?

Нужно подобрать целые неотрицательные $a$ и $b$ так, чтобы $5a - 3b = 4$ при минимальной сумме $a + b$. Переберём по возрастанию $a$:

$a$ (вперёд 5)Нужно $3b = 5a - 4$$b$ (назад 3)Всего команд $a+b$
11не делится на 3
2624
521712

Первое же подходящее решение — $a = 2$, $b = 2$: два раза «вперёд 5» (стало 10) и два раза «назад 3» (стало 4). Итого 4 команды — это и есть минимум. Проверим расчёт программой:

best = None
for a in range(0, 30):
    for b in range(0, 30):
        if 5 * a - 3 * b == 4:
            total = a + b
            if best is None or total < best[0]:
                best = (total, a, b)

print("Минимум команд:", best[0])
print("вперёд 5:", best[1], ", назад 3:", best[2])

Вывод:

Минимум команд: 4
вперёд 5: 2 , назад 3: 2

Как это работает

Любой формальный исполнитель описывается тремя вещами, и понимание этой тройки — половина решения любой задачи.

  • Состояние. Что у исполнителя «есть прямо сейчас»: число у Кузнечика, координаты и угол у Черепахи, клетка у Робота.
  • Система команд (СКИ). Полный список разрешённых действий. Шаг влево от СКИ — отказ исполнителя.
  • Правило перехода. Как каждая команда меняет состояние (например, «вперёд 5» прибавляет 5).

Решение задачи на исполнителя — это либо аккуратная трассировка (если программа дана и надо найти результат), либо подбор/уравнение (если дан результат и надо составить программу). Для исполнителей с циклами полезно записать, что делает один проход цикла, и умножить на число повторений.

Частые ошибки

  • «Додумывают» за исполнителя. Исполнитель формален: команды вне СКИ он не понимает, «очевидный» смысл значения не имеет — только правило перехода.
  • Сбиваются в трассировке. Лень выписывать состояние после каждой команды приводит к ошибке. Веди таблицу: команда → новое состояние.
  • Путают «наименьшее число команд» и «любое решение». В ЕГЭ часто требуют минимум — нужно перебирать от меньшего и брать первое подходящее.
  • Забывают про границы у Робота. Команда движения сквозь стену или за край поля — отказ. Перед движением проверяют датчик («справа свободно»).
  • Неверно считают повороты Черепахи. Чтобы нарисовать правильный $n$-угольник, на каждом шаге поворачивают на внешний угол $360 / n$ градусов, а не на внутренний.

Итоги

  • Формальный исполнитель выполняет только команды из своей СКИ, буквально и без понимания смысла.
  • Главные герои ЕГЭ: Кузнечик (число на прямой), Черепаха (рисование), Робот (клетки и стены с датчиками).
  • Читать программу — значит трассировать: записывать состояние после каждой команды.
  • Составлять программу — подбирать команды под цель; для Кузнечика помогает уравнение вида $5a - 3b = X$ и поиск минимума $a + b$.
  • Любой исполнитель = состояние + СКИ + правило перехода.
Проверьте себя
1. Что такое СКИ (система команд исполнителя)?
AСкорость, с которой исполнитель выполняет программу
BПолный набор команд, которые исполнитель умеет выполнять
CСписок ошибок, которые исполнитель может выдать
DПамять, выделенная исполнителю
2. У Кузнечика команды «вперёд 5» и «назад 3», старт в точке 0. Какое наименьшее число команд приведёт его в точку 4?
A2
B3
C4
D6