РУҚА
15

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

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

Исполнитель Робот перемещается по бесконечному полю, разбитому на клетки. Между соседними по сторонам клетками могут находиться стены. Робот умеет выполнять команды «вверх», «вниз», «влево», «вправо», «закрасить», а также проверять условия «сверху свободно», «снизу свободно», «слева свободно», «справа свободно». Условия можно использовать с командами «если» и «пока».

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

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

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

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

5 шагов
1

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

2

Если снизу несвободно, робот находится непосредственно над горизонтальной стеной, поэтому клетку нужно закрасить.

3

Если снизу свободно, робот находится над проходом. Он спускается вниз. В обычном проходе справа свободно, поэтому робот возвращается вверх.

4

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

Один из подходящих алгоритмов:

Ответ

нц пока справа свободно
если снизу свободно то
вниз
если справа свободно то
вверх
все
иначе
закрасить
все
влево
кц

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

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

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

Отсутствие проверки направления справа, из-за чего алгоритм не завершается.

Попытка пройти сквозь вертикальную или горизонтальную стену.

Перемещение влево до бесконечности без условия завершения.

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

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

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

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