Практические задания по исполнителю Робот (программа Кумир) ПРИМЕЧАНИЕ: Буква Р на поле – обозначение Робота. Образец изначальной обстановки – левый рисунок, образец проведенной работы Робота – правый рисунок. 1. На бесконечном поле есть две вертикальная стены одинаковой высоты и две горизонтальные стены одинаковой высоты. Все четыре стены вместе составляют прямоугольник. Длины стен и расстояние между ними неизвестны, но не менее одной клетки. Робот находится внутри прямоугольника, но точное расположение неизвестно. Напишите для Робота алгоритм, закрашивающий все клетки, расположенные во внутренних углах прямоугольника. 2. На бесконечном поле есть две горизонтальные стены. Правый и левый концы стен находятся на одинаковой вертикали. Расстояние между стенами неизвестно, но не менее одной клетки. Длины стен неизвестны, но одинаковы. Робот находится в клетке, расположенной непосредственно снизу от нижней стены, но точное расположение неизвестно. Напишите для Робота алгоритм, закрашивающий все клетки, расположенные между стенами у «внешнего левого и правого края» воображаемого прямоугольника, который задан двумя стенами. 3. На бесконечном поле есть горизонтальная стена. Где-то внутри стены имеется проход, разделяющий стену на два фрагмента. Ширина прохода неизвестна, но составляет не менее одной клетки. Длины стен неизвестны. Робот находится в клетке, расположенной непосредственно под правым фрагментом стены. Точное расположение Робота неизвестно. Напишите для Робота алгоритм, закрашивающий все клетки, расположенные непосредственно выше правого фрагмента стены, а также клетки, расположенные непосредственно ниже левого фрагмента стены. 4. На бесконечном поле есть одна горизонтальная и одна вертикальная стены. Правый конец горизонтальной стены соединён с вертикальной стеной. Точное положение точки соединения относительно концов вертикальной стены неизвестно. Длины стен неизвестны. Робот находится в клетке, расположенной непосредственно правее вертикальной стены. Точное расположение Робота относительно концов вертикальной стены неизвестно. Напишите для Робота алгоритм, закрашивающий клетки, расположенные непосредственно над верхней стеной, а также клетки, расположенные непосредственно под верхней стеной. 5. На бесконечном поле есть две вертикальные стены. Длина стен неизвестна. Расстояние между стенами неизвестно, но не менее одной клетки. Стены частично «перекрываются» по вертикали. Это значит, что если Робот будет двигаться от верхнего конца правой стены влево, то он упрётся в левую стену. Робот находится в клетке, расположенной непосредственно справа от правой стены. Положение Робота относительно концов правой стены неизвестно. Напишите для Робота алгоритм, закрашивающий все клетки, расположенные непосредственно левее правой стены, а также клетки, расположенные непосредственно правее левой стены. 6. На бесконечном поле есть вертикальная и две горизонтальные стены. Правый конец верхней горизонтальной стены соединён с верхним концом вертикальной стены. Левый конец нижней горизонтальной стены соединён с нижним концом вертикальной стены. Длины стен неизвестны. Робот находится в клетке, расположенной непосредственно права от вертикальной стены, но точное расположение неизвестно. Напишите для Робота алгоритм, закрашивающий все клетки, расположенные непосредственно выше нижней горизонтальной стены, а также клетки, расположенные непосредственно ниже верхней горизонтальной стены. 7. На бесконечном поле есть вертикальная и две горизонтальные стены. Правый конец верхней горизонтальной стены соединён с верхним концом вертикальной стены. Левый конец нижней горизонтальной стены соединён с нижним концом вертикальной стены. Длины стен неизвестны. Робот находится в клетке, расположенной непосредственно над верхней горизонтальной стеной, но точное расположение неизвестно. Напишите для Робота алгоритм, закрашивающий все клетки, расположенные непосредственно правее вертикальной стены, а также клетки, расположенные непосредственно над нижней горизонтальной стеной. 8. На бесконечном поле есть горизонтальная и вертикальная стены. Правый конец горизонтальной стены соединен с нижним концом вертикальной стены. Длины стен неизвестны. В каждой стене есть ровно один проход, точное место прохода и его ширина неизвестны. Робот находится в клетке, расположенной непосредственно над горизонтальной стеной у ее левого конца. Напишите для Робота алгоритм, закрашивающий все клетки, расположенные непосредственно выше горизонтальной стены и левее вертикальной стены. Проходы должны остаться незакрашенными. 9. На бесконечном поле есть горизонтальная и вертикальная стены. Левый конец горизонтальной стены соединен с нижним концом вертикальной стены. Длины стен неизвестны. В горизонтальной стене есть ровно один проход, точное место прохода и его ширина неизвестны. Робот находится в клетке, расположенной рядом с вертикальной стеной справа от ее верхнего конца. Напишите для Робота алгоритм, закрашивающий все клетки, расположенные непосредственно выше и ниже горизонтальной стены. Проход должен остаться незакрашенным. 10. На бесконечном поле имеются две одинаковые горизонтальные параллельные стены, расположенные друг под другом и отстоящие друг от друга более чем на 1 клетку. Левые края стен находятся на одном уровне. Длины стен неизвестны. Робот находится в клетке, расположенной непосредственно под верхней стеной. Напишите для Робота алгоритм, закрашивающий все клетки, расположенные ниже горизонтальных стен. 11. На бесконечном поле имеется вертикальная стена. Длина стены неизвестна. От верхнего конца стены вправо отходит горизонтальная стена также неизвестной длины. Робот находится в клетке, расположенной слева от нижнего края вертикальной стены. Напишите для Робота алгоритм, закрашивающий все клетки, расположенные левее вертикальной стены и выше горизонтальной стены и прилегающие к ним. Робот должен закрасить только клетки, удовлетворяющие данному условию. 12. На бесконечном поле имеется лестница. Сначала лестница спускается вниз слева направо, потом поднимается вверх также слева направо. После подъема лестница переходит в вертикальную стену. Высота каждой ступени — 1 клетка, ширина — 1 клетка. Количество ступенек, ведущих вверх, и количество ступенек, ведущих вниз, неизвестно. Между спуском и подъемом ширина площадки — 1 клетка. Робот находится в клетке, расположенной в начале спуска. Напишите для Робота алгоритм, закрашивающий все клетки, расположенные непосредственно над лестницей, как показано на рисунке. Конечное расположение Робота может быть произвольным. Алгоритм должен решать задачу для произвольного размера поля и любого допустимого расположения стен внутри прямоугольного поля. При исполнении алгоритма Робот не должен разрушиться, выполнение алгоритма должно завершиться.