15

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

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

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

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

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

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

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

4 шага
1

Из исходной клетки Робот поднимается до клетки, расположенной непосредственно под верхней стеной.

2

В каждой клетке под верхней стеной Робот сначала закрашивает клетку, затем перемещается вправо. После закрашивания последней клетки он оказывается за правым краем стены; условие цикла становится ложным.

3

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

Команда «вправо» возвращает Робота в область между концами стен. Все закрашенные клетки прилегают к одной из стен и находятся между ними.

Ответ

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

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

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

Закрашивание клеток, расположенных за концами стен.

Попытка определить длину стены только по условию «справа свободно».

Отсутствие возврата на одну клетку после прохода ряда.

Движение вниз или вверх без проверки свободного пути.

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

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

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

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