РУҚА
15

Решение: Закрашивание клеток у стены

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

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

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

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

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

5 шагов
1

Закрасим исходную клетку над левым краем стены.

2

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

3

После выхода за правый край стены перейдём вниз, затем влево на клетку под правым краем стены.

4

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

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

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

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

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

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

Продолжают движение вправо после выхода за правый край стены.

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

Закрашивают клетку за левым краем стены.

Не закрашивают исходную клетку над левым краем.

Используют цикл без условия, гарантирующего завершение алгоритма.

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

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

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

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