12.1. На бесконечном поле имеются две одинаковые вертикальные стены и одна горизонтальная стена, соединяющая верхние концы вертикальных стен. Длины вертикальных стен — 4 клетки, длина горизонтальной стены — 4 клетки. Робот находится в клетке, расположенной между нижними краями вертикальных стен, — в третьей клетке справа от левой вертикальной стены. На рисунке указано расположение стен и Робота. Робот обозначен буквой «Р».
Напишите для Робота программу, использующую не менее 3 циклических алгоритмов, закрашивающую все клетки, расположенные между нижними краями вертикальных стен и непосредственно под горизонтальной стеной. Вы можете использовать цикл нц-раз-кц или нц-пока-кц. Робот должен закрасить только клетки, удовлетворяющие данному условию. На рисунке показаны клетки, которые Робот должен закрасить (см. рис.).
Конечное расположение Робота может быть произвольным. При исполнении алгоритма Робот не должен разрушиться. Выполнение алгоритма должно завершиться. Алгоритм может быть выполнен в среде формального исполнителя или записан в текстовом редакторе. Сохраните алгоритм в формате программы Кумир или в текстовом файле. Название файла и каталог для сохранения Вам сообщат организаторы.
12.2. На бесконечном поле имеются две одинаковые вертикальные стены и одна горизонтальная стена, соединяющая верхние концы вертикальных стен. Длины стен неизвестны. Робот находится в одной из клеток, расположенных между нижними краями вертикальных стен. На рисунке указан один из возможных способов расположения стен и Робота. Робот обозначен буквой «Р».
Напишите для Робота программу, закрашивающую все клетки, расположенные между нижними краями вертикальных стен и непосредственно под горизонтальной стеной. Робот должен закрасить только клетки, удовлетворяющие данному условию. Например, для приведённого выше рисунка Робот должен закрасить следующие клетки (см. рис.).
Конечное расположение Робота может быть произвольным. Алгоритм должен решать задачу для произвольного размера поля и любого допустимого расположения стен внутри прямоугольного поля. При исполнении алгоритма Робот не должен разрушиться. Выполнение алгоритма должно завершиться. Алгоритм может быть выполнен в среде формального исполнителя или записан в текстовом редакторе. Сохраните алгоритм в формате программы Кумир или в текстовом файле. Название файла и каталог для сохранения Вам сообщат организаторы.
12.1. Следующий алгоритм выполнит требуемую задачу.
| Двигаемся вправо на 1 клетку, закрашиваем её, затем влево на 3 клетки и закрашиваем все клетки на пути.
вправо
закрасить
нц 3 раз
влево
закрасить
кц
| Двигаемся вверх на 3 клетки.
нц 3 раз
вверх
кц
| Закрасим клетку.
закрасить
| Двигаемся вправо на 3 клетки, закрашивая все клетки на пути.
нц 3 раз
вправо
закрасить
кц
12.2. Следующий алгоритм выполнит требуемую задачу.
| Двигаемся вправо, пока не дойдём до конца горизонтальной стены, и возвращаемся на 1 клетку влево.
нц пока сверху стена
вправо
кц
влево
| Двигаемся влево, пока не дойдём до конца горизонтальной стены, закрашивая все клетки.
нц пока сверху стена
закрасить
влево
кц
| Обходим угол.
вверх
| Двигаемся вверх, пока не дойдём до конца вертикальной стены, и обходим стену.
нц пока справа стена
вверх
кц
вправо
вниз
| Двигаемся вправо до конца горизонтальной стены, закрашивая все клетки на пути, и закрашиваем последнюю клетку.
нц пока справа свободно
закрасить
вправо
кц
закрасить

