Ответ: Алгоритм для Робота
нц пока сверху свободно
вверх
кц
вправо
нц пока не слева свободно
закрасить
вниз
кц
вверх
нц пока слева свободно
влево
кц
нц пока не слева свободно
закрасить
вниз
кц
У этого задания официального ключа нет, поэтому ответ получен в разборе и с ключом не сверен. Перед тем как заучивать результат, пройдите выкладки — там видно, откуда взялось каждое число.
Исполнитель Робот перемещается по бесконечному полю, разбитому на клетки. Между соседними клетками могут находиться стены. Робот умеет выполнять команды «вверх», «вниз», «влево», «вправо», «закрасить», а также проверять условия «сверху свободно», «снизу свободно», «слева свободно», «справа свободно» и использовать условные операторы и циклы «пока».
На поле имеются две вертикальные стены и одна горизонтальная, соединяющая нижний конец правой и верхний конец левой вертикальных стен. Длины стен неизвестны. Робот находится в клетке, расположенной слева от верхнего края правой вертикальной стены, рядом со стеной.
Напишите алгоритм, закрашивающий все клетки, примыкающие к вертикальным стенам справа. Робот должен закрасить только клетки, удовлетворяющие этому условию. Алгоритм должен работать для произвольного размера и любого допустимого расположения стен, не приводить к разрушению Робота и завершаться.
Где здесь ошибаются
Попытка пройти сквозь вертикальную стену.
Закрашивание клеток, не примыкающих к стенам справа.
Отсутствие подъёма над правой стеной перед переходом вправо.
Использование фиксированного числа повторений вместо циклов.