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

