Рассмотрим решение задачи номер 15 ОГЭ по информатике (на примере демо-варианта 2026 года).
Условие задачи:
Исполнитель Робот умеет перемещаться по лабиринту, начерченному на плоскости, разбитой на клетки. Между соседними (по сторонам) клетками может стоять стена, через которую Робот пройти не может.
У Робота есть девять команд. Четыре команды – это команды-приказы:
вверх
вниз
влево
вправо
При выполнении любой из этих команд Робот перемещается на одну клетку соответственно: вверх ↑, вниз ↓, влево ←, вправо →. Если Робот получит команду передвижения сквозь стену, то он разрушится.
Также у Робота есть команда закрасить, при которой закрашивается клетка, где Робот находится в настоящий момент.
Ещё четыре команды – это команды проверки условий. Эти команды проверяют, свободен ли путь для Робота в каждом из четырёх возможных направлений:
сверху свободно
снизу свободно
слева свободно
справа свободно
На бесконечном поле есть горизонтальная и вертикальная стены. Правый конец горизонтальной стены соединён с верхним концом вертикальной стены. Длины стен неизвестны. В каждой стене есть ровно один проход, точное место прохода и его ширина неизвестны. Робот находится в клетке, расположенной рядом с вертикальной стеной слева от её нижнего конца.
На рисунке указан один из возможных способов расположения стен и Робота (Робот обозначен буквой «Р»).
Напишите для Робота алгоритм, закрашивающий все клетки, расположенные непосредственно левее вертикальной стены и ниже горизонтальной стены. Проходы должны остаться незакрашенными. Робот должен закрасить только клетки, удовлетворяющие данному условию.
Решение:
Для выполнения данной задачи используем среду КуМир, предназначенную для получения базовых знаний алгоритмизации.
В системе КуМир используется школьный алгоритмический язык - простой алголоподобный язык, имеющий русскую лексику и поддерживающий встроенные команды управления алгоритмическими программными исполнителями (такими как Робот, Чертёжник, Черепаха и др.).
В системе имеется возможность редактировать обстановку для Робота, устанавливая на рабочем поле (карте) различные фрагменты непроходимой стены.
На рисунках ниже представлены скрины системы Кумир с обстановкой, созданной для нашей задачи.
Как изменить поле робота
Чтобы изменить поле Робота надо в главном меню выбрать Робот / Новая обстановка для задания размера поля, потом Робот / Редактировать обстановку для собственно её изменения.
Обстановки Робота могут храниться в файлах специального формата (расширение .fil).
Операции редактирования обстановки:
- поставить/убрать стену – щелкнуть по границе между клетками,
- закрасить/сделать чистой клетку – щелкнуть по клетке.
Для изменения контуров стены необходимо щёлкать мышью по границам клеток, при этом добавляется (убирается) участок стены.
В конце изменяй надо выбрать Робот / Сохранить обстановку для сохранения получившейся обстановки в файл на диске, и снова выбрать Робот / Редактировать обстановку для выхода из режима редактирования.
Все эти действия надо производить при незапущенной программе движения робота.
По условию задачи, в момент начала своего движения Робот находится в клетке, расположенной рядом с вертикальной стеной слева от её нижнего конца.
Вся траектория движения Робота по маршруту может быть условна разбита на фрагменты:
--- (если справа нет прохода в вертикальной стене, то закрасить клетку и сдвинуться вверх) —-
нц пока не справа свободно
закрасить
вверх
кц
--- (если справа есть проход в вертикальной стене, то сдвинуться вверх без закрашивания) —-
нц пока справа свободно
вверх
кц
--- (после того как проход в вертикальной стене пройден, то сдвигаемся вверх до горизонтальной стены. При этом проверяем, нет ли сверху стены, тогда закрашиваем клетку и идём вверх) —-
нц пока сверху свободно
закрасить
вверх
кц
--- (если достигли горизонтальной стены, то закрашиваем клетку и уходим влево)—-
нц пока не сверху свободно
закрасить
влево
кц
--- (если достигли прохода в горизонтальной стене, то идём влево без закрашивания) —-
нц пока сверху свободно
влево
кц
--- (после того как проход в вертикальной стене пройден, проверяем сверху наличие стены, закрашиваем клетку и уходим влево) —-
нц пока не сверху свободно
закрасить
влево
кц
Алгоритм должен решать задачу для любого допустимого расположения стен и любого расположения проходов внутри стен.
Известно только, что в каждой стене (и горизонтальной, и вертикальной) есть ровно один проход, причем точное место прохода и его ширина неизвестны.
Ниже приводится алгоритм решения данной задачи, реализованный в среде КуМир.
На рисунках ниже показано успешное прохождение Роботом маршрута в карте-обстановке с различными параметрами стены.
О системе КуМир
КуМир (Комплект Учебных МИРов) - система программирования, предназначенная для поддержки начальных курсов информатики и программирования в средней школе.
Система разрабатывается под открытой лицензией GPL.
В КуМир встроено несколько графических исполнителей алгоритмов, действия которых визуализируются на их "игровом поле".
Система позволяет работать с исполнителями: Кузнечиком, Черепахой, Водолеем, Вертуном, Роботом, Чертёжником, Рисователем и др.
Исполнитель Робот существует в некоторой обстановке – прямоугольном поле, разбитом на клетки, между которыми могут стоять стены.
Обстановка, в которой находится Робот, называется текущей обстановкой Робота. Кроме того, определена еще одна обстановка Робота – стартовая обстановка. Выполнение программы начинается со Стартовой обстановки.
Робот не может проходить сквозь стены, но может проверять, есть ли рядом с ним стена. Робот не может выйти за пределы прямоугольника (по периметру стоит «забор»).
И еще решение задач ОГЭ:
Подборка решений всех задач ОГЭ по информатике (пополняется)