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

