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

