2. На бесконечном поле есть горизонтальная и вертикальная стень Правый конец горизонтальной стены соединен с верхним концом
вертикальной стены. Длины стен неизвестны. В каждой стене есть
ровно один проход точное место прохода и его ширина
неизвестны. Робот находится в клетке, расположенной
непо едственно под горизонтальной стеной у ее левого конца
Напишите для Робота алгоритм, закрашивающий
все клетки, расположенные непосредственно ниже горизонтальной
стены и левее вертикальной стены, кроме клетка, в которой
находится Робот перед выполнением программы Проходы
должны остаться незакрашенными
Объяснение:
использовать Робот
алг
нач
нц пока справа свободно
вправо
нц пока сверху стена
закрасить; выход
кц
кц
нц если справа стена то
закрасить; вниз
иначе вниз
все
кц_при справа стена
нц если справа стена то
закрасить; вниз
иначе выход
все
кц
кон
Возможно, немного коряво, но работает. Там есть пара нюансов. На горизонтальной стене может быть сколько угодно проходов, он их все пропустит, пока не упрется в вертикальную.
На вертикальной стене проход может быть только один. Когда у робота кончится слева стена второй раз - он остановится. Конечно, на бесконечном поле его можно было не останавливать, он просто будет уходить бесконечно далеко вниз, занимая память компьютера, но это неправильно.