Задание 86. Исполнитель Робот действует на клетчатом поле, между клетками которого могут быть стены.
Система команд исполнителя Робот:
а) На бесконечном клетчатом поле имеется горизонтальная стена. Длина стены неизвестна. Робот находится в одной из клеток, примыкающих к стене сверху. На рисунке указан один из возможных вариантов расположения Робота и стены (Робот обозначен буквой «Р»).
Робот должен закрасить все клетки, примыкающие к стене сверху. Так, для приведенного выше рисунка должны быть закрашены следующие клетки:
Конечное положение Робота значения не имеет.
Опишите укрупненными блоками план действий Робота по решению поставленной задачи:


б) Где-то в поле Робота находятся две вертикальные стены равной, но неизвестной длины, расположенные одна напротив другой. Робот находится в произвольной клетке справа от правой стены, причем напротив нее.
На рисунке указан один из возможных вариантов расположения Робота и стен (Робот обозначен буквой Р).
Робот приступил к исполнению следующего алгоритма:
нц пока слева свободно влево кц
нц пока слева не свободно вверх кц
влево; вниз
нц пока справа не свободно или слева не свободно нц пока слева свободно закрасить; влево кц
закрасить; вниз нц пока справа свободно закрасить; вправо кц
закрасить; вниз кц
Каким будет результат исполнения данного алгоритма? Изобразите его на рисунке.

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

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


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

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