Разбор 12 задания ЕГЭ по информатике: шаги и код

Кому: выпускнику · Обновлено 2026-10-25

Раздел: Информатика · Тема: Разборы заданий по номерам · Задание 12

Чтобы решить задание № 12 ЕГЭ по информатике с исполнителем Редактор, нужно точно воспроизвести команды: найти нужную цепочку, выполнить разрешённую замену и повторить проверку условия. Ниже — разбор порядка действий, шаблон на Python и способы проверить результат, не перепутав итоговую строку с суммой её цифр.

Решить задание в тренажёре

12 задание ЕГЭ: информатика и исполнитель Редактор

В рассматриваемом типе задач исполнитель получает строку символов и изменяет её по программе. Команда «нашлось(v)» проверяет, встречается ли цепочка v внутри строки. Команда «заменить(v, w)» заменяет первое слева вхождение v на w. Если нужной цепочки нет, строка остаётся прежней.

Строку нужно воспринимать как последовательность символов. Например, цепочка 111 здесь обозначает три единицы подряд, а не число, с которым выполняют арифметическую операцию. После каждой замены соседние части строки соединяются, поэтому на месте соединения может появиться новая цепочка для следующей команды.

Ответ зависит и от правил преобразования, и от вопроса. Могут потребоваться длина результата, количество определённых цифр или сумма цифр. В данном примере требуется сумма: получить конечную строку — только промежуточный шаг.

  • Выпиши, какие цепочки программа ищет и чем заменяет.
  • Отметь, заменяется одно вхождение или сразу несколько.
  • Отдельно запиши, какую величину нужно указать в ответе.

Как решать 12 задание ЕГЭ по информатике

Начни с внешнего цикла. Условие с «ИЛИ» означает: программа продолжает работу, пока существует хотя бы одна из указанных цепочек. Завершение наступает, когда не осталось ни одной. Замена «ИЛИ» на «И» заставит программу остановиться раньше, если исчезнет только один вид цепочек.

Затем прочитай ветвление внутри цикла. В конструкции «ЕСЛИ … ТО … ИНАЧЕ» за один проход выполняется одна ветка. В данном примере наличие 111 определяет выбор первой замены, даже если в строке одновременно встречается 222. Ветка «ИНАЧЕ» выполняется лишь тогда, когда 111 отсутствует.

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

  • Составь исходную строку строго в указанном порядке.
  • Проверь условие цикла на текущей строке.
  • Выбери ветку и выполни одну замену.
  • Вернись к условию цикла после изменения строки.
  • После остановки вычисли именно запрошенную величину.

Пример задания из банка «Ранга»

Этот пример помогает отработать приоритет веток: сначала проверяется наличие 111, а замена 222 выполняется только в ветке «ИНАЧЕ». После остановки отдельно вычисли сумму цифр, чтобы не перепутать её с длиной конечной строки.

Условие. Исполнитель Редактор получает на вход строку цифр и преобразует её. У Редактора две команды:
заменить (v, w) — первое слева вхождение цепочки v заменяется на цепочку w;
нашлось (v) — истина, если цепочка v есть в строке.

Дана программа:
ПОКА нашлось (111) ИЛИ нашлось (222)
ЕСЛИ нашлось (111)
ТО заменить (111, 2)
ИНАЧЕ заменить (222, 1)
КОНЕЦ ЕСЛИ
КОНЕЦ ПОКА

На вход подаётся строка из 36 идущих подряд цифр 1, за которыми следуют 42 идущих подряд цифр 2. Какая строка получится в результате работы программы? В ответе запиши сумму цифр полученной строки. В ответе запиши только целое число.

Показать ответ и решение
  1. Исполнитель работает по программе, поэтому важен порядок проверок: замена 222 → 1 выполняется только тогда, когда цепочки 111 в строке уже нет.
  2. Проследи за первыми пятью заменами на бумаге и заметь, как меняется число единиц и двоек.

Ответ: 2

Решить похожие задания в тренажёре

12 задание ЕГЭ по информатике: код на Python

Ниже код для правил из приведённого примера. На вход ему передаётся уже составленная исходная строка. Метод replace с третьим аргументом 1 заменяет только одно, первое слева вхождение. Без этого аргумента Python заменит все непересекающиеся вхождения за один вызов, что не соответствует команде исполнителя.

s = input().strip() while '111' in s or '222' in s: if '111' in s: s = s.replace('111', '2', 1) else: s = s.replace('222', '1', 1) print(sum(int(digit) for digit in s))

Для исходных данных примера строку можно создать выражением s = '1' * 36 + '2' * 42 вместо чтения через input(). Умножение повторяет символ, а сложение соединяет блоки. Менять их местами нельзя: порядок символов влияет на последующие преобразования.

Оператор in соответствует проверке «нашлось», а присваивание сохраняет результат замены. Строки в Python неизменяемы: вызов s.replace(...) без s = создаёт новую строку, но не обновляет переменную. Последняя команда переводит каждый символ в число и складывает полученные значения.

  • Сохраняй отступы: else относится к if внутри while.
  • В условии цикла оставляй тот логический оператор, который дан в задаче.
  • Для каждого нового условия заново проверяй цепочки, замены и способ вычисления ответа.

12 задание ЕГЭ по информатике: теория проверки результата

Проверять решение полезно независимо от способа вычисления. Для начала оцени, почему цикл завершится. В приведённой программе каждая замена превращает три символа в один, то есть уменьшает длину на два. Длина не может убывать бесконечно, поэтому число замен ограничено.

Из этого следует дополнительная проверка: чётность длины сохраняется. Исходная строка содержит чётное количество символов, значит, конечная тоже должна иметь чётную длину. Это проверяет длину, а не сумму цифр: смешивать эти величины нельзя.

После завершения в строке не должно быть ни 111, ни 222. При этом отсутствие таких цепочек само по себе не означает, что строка короткая: чередующиеся единицы и двойки могут образовывать длинную строку без трёх одинаковых цифр подряд. Поэтому нельзя заранее угадывать результат по одному условию остановки.

  • Проверь отсутствие обеих цепочек после цикла.
  • Сопоставь длину результата с изменением длины при каждой замене.
  • Для строки из единиц и двоек проверь сумму через количество символов: число единиц плюс удвоенное число двоек.

Типичные ошибки в задании № 12

Частая ошибка — мысленно обработать весь блок единиц, затем отдельно весь блок двоек. После замен блоки перестраиваются, а новые подходящие цепочки могут возникать на их границе. Без доказательства независимости частей такой способ ненадёжен.

Другая ошибка — переписать «ЕСЛИ … ИНАЧЕ» как два самостоятельных if. Второй if проверит уже изменённую строку и может выполнить ещё одну замену за тот же проход. Это меняет порядок исполнения программы. Даже если на отдельном примере ответ совпал, такая запись не воспроизводит условие точно.

Наконец, правильная симуляция не спасёт, если вывести не ту величину. len(s) возвращает длину, s.count('2') — количество двоек, а sum(int(digit) for digit in s) — сумму цифр. Перед вводом ответа перечитай последнее предложение задания.

  • Для отладки временно выводи строку после каждого прохода.
  • Сверь первые несколько замен вручную с выводом программы.
  • Если цикл неожиданно не заканчивается, проверь присваивание результата replace и отступы.
  • Перед окончательным запуском убери промежуточный вывод.

Новое задание № 12 и машина Тьюринга: как готовиться

Номер задания недостаточен для выбора готового шаблона. Когда ищешь разбор текущего или прошлого года, сначала сопоставь условие с актуальными материалами. На сайте ФИПИ открой раздел ЕГЭ, затем демоверсии, спецификации и кодификаторы, выбери информатику и нужный год. Посмотри само задание № 12 и описание проверяемых умений.

Если перед тобой условие с машиной Тьюринга, шаблон строковых замен нельзя переносить автоматически. Для такой модели нужно отслеживать содержимое ленты, положение головки и текущее состояние. По таблице переходов определяют, какой символ записать, куда сдвинуть головку и какое состояние выбрать.

Общий навык остаётся полезным: точно выполнять фиксированные команды и записывать изменения после каждого шага. Однако правила конкретного исполнителя всегда бери из условия. Материал прошлого года может подходить для тренировки, если проверяет нужный тебе тип задачи.

  • Сначала определи исполнителя по условию.
  • Сверь команды и формат ответа с актуальным образцом.
  • Используй шаблон только после проверки, что он описывает именно этот алгоритм.

Как тренировать задание № 12 самостоятельно

Начни с коротких строк, для которых можешь записать все преобразования вручную. Затем запусти программу и сравни последовательности. Если результаты расходятся, найди первый несовпавший шаг: он покажет ошибку точнее, чем сравнение только конечных ответов.

После этого переходи к длинным исходным строкам. В каждом решении отдельно проверяй построение входных данных, порядок команд и вычисление ответа. Не меняй сразу несколько частей кода: иначе будет трудно понять, какое исправление помогло.

В «Ранге» можно потренировать задание № 12 с проверкой ответа. После ошибки сохрани короткую запись её причины: например, «заменил все вхождения» или «вывел длину вместо суммы». Перед следующей попыткой перечитай эту запись и проверь соответствующее место в решении.

  • Реши короткий пример вручную.
  • Сравни ручные шаги с программой.
  • Реши задачу с длинной строкой.
  • Объясни словами условие остановки и способ получения ответа.

Частые вопросы

Можно ли решить задание № 12 без Python?

Да, если преобразования удаётся проследить вручную или обосновать закономерность. Для длинной строки программа помогает выполнить повторяющиеся действия, но её команды должны точно соответствовать условию.

Почему шаблон для задания № 12 не подходит к любой задаче?

Могут различаться цепочки, порядок команд, условия цикла и устройство исполнителя. Переноси из шаблона принцип симуляции, а каждую операцию сверяй с новым условием.

Что делать, если одновременно нашлись обе цепочки?

Следуй структуре программы. В данном примере выполняется ветка для 111, поскольку её условие проверяется первым, а замена 222 находится в ветке «ИНАЧЕ».

Как проверить код на питоне, если конечный ответ неизвестен?

Возьми короткую исходную строку и выполни команды вручную. Сравни каждый шаг с программой, затем проверь отсутствие искомых цепочек после остановки и правильность вычисления требуемой величины.

Подходит ли разбор задания № 12 прошлого года?

Подходит для отработки тех команд и приёмов, которые совпадают с твоей задачей. Актуальность формата проверяй по демоверсии и спецификации текущего года на сайте ФИПИ.

Полезно по теме

Читать дальше

Все статьи «Ранг» о подготовке к экзаменам

Проверить себя в тренажёре

Открывается тренировочное задание в формате ЕГЭ: условие видно сразу, краткий ответ проверяется без регистрации.

Решить задание в тренажёре

Не уверен, что это вообще нужно? Бесплатный тест — 10 минут, без регистрации и без карты: сразу видно первичный балл

Материал — разъяснение «Ранг». Официальные правила экзамена, расписание, шкалы баллов и перечни заданий публикуют ФИПИ (fipi.ru) и Рособрнадзор (obrnadzor.gov.ru). Мы не обещаем конкретных баллов: результат зависит от твоей работы.