РУҚА
15

Решение: Алгоритм для Робота

ОГЭ · Информатика · Задание 15 · Алгоритмы и исполнители
ВысокаяФИПИFCBD14Развёрнутое решение≈ 15 минутРазбор в 4 шага
Условие

Исполнитель Робот умеет перемещаться по лабиринту, начерченному на плоскости, разбитой на клетки. Между соседними по сторонам клетками может стоять стена, через которую Робот пройти не может. Команды передвижения: вверх, вниз, влево, вправо. При попытке пройти сквозь стену Робот разрушается. Команда закрасить закрашивает клетку, в которой находится Робот.

Робот умеет проверять условия: сверху свободно, снизу свободно, слева свободно, справа свободно. Эти условия можно использовать в конструкциях если и нц пока, а также применять логические связки и, или, не.

На бесконечном поле есть горизонтальная и вертикальная стены. Левый конец горизонтальной стены соединён с нижним концом вертикальной стены. Длины стен неизвестны. В каждой стене есть ровно один проход, точное место прохода и его ширина неизвестны. Робот находится в клетке, расположенной рядом с вертикальной стеной справа от её верхнего конца.

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

Открыть задачу и решить самому
Дальше ответЕсли ещё решаете — начните с подсказок: они ведут к ответу, но не выдают его.
К подсказкам

Решение по шагам

4 шага
1

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

2

Проход в вертикальной стене не закрашивается: если слева свободно, Робот продолжает движение вниз.

3

Достигнув клетки непосредственно выше горизонтальной стены, Робот движется вправо. Клетки закрашиваются только при наличии стены снизу; проход в горизонтальной стене пропускается.

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

Ответ

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

Этот ответ получен в разборе, но не сверен с официальным ключом из банка — проверьте выкладки, прежде чем заучивать результат.

Где здесь ошибаются

Закрашивание клеток в проходах.

Попытка пройти сквозь стену без предварительной проверки направления.

Остановка при первом проходе вместо продолжения обхода до конца стены.

Закрашивание клеток, которые не находятся непосредственно справа от вертикальной или выше горизонтальной стены.

Закрепить приёмВ теме «Алгоритмы и исполнители» ещё 177 задач — с ответом и таким же разбором.
Тренироваться

Как решать задание 15 ОГЭ, информатика

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

Задача из темы «Алгоритмы и исполнители»: в ней 178 задач, и у каждой есть такой же разбор. Регистрация не нужна.