Исполнитель Робот умеет перемещаться по лабиринту, начерченному на плоскости, разбитой на клетки. Между соседними (по сторонам) клетками может стоять стена, через которую Робот не пройдет. У Робота есть девять команд. Четыре команды — это команды-приказы: вверх вниз влево вправо При выполнении любой из этих команд Робот перемещается на одну клетку соответственно: вверх ↑ вниз ↓, влево ← , вправо →. Если Робот получит команду передвижения сквозь стену, то он разрушится. Также у Робота есть команда закрасить, при которой закрашивается клетка, в которой Робот находится в настоящий момент. Еще четыре команды — это команды проверки условий. Эти команды проверяют, свободен ли путь для Робота в каждом из четырех возможных направлений: сверху свободно снизу свободно слева свободно справа свободно Эти команды можно использовать вместе с условием «если», имеющим следующий вид: если условие то последовательность команд все Здесь условие — одна из команд проверки условия. Последовательность команд — это одна или несколько любых команд-приказов. Например, для передвижения на одну клетку вправо, если справа нет стенки, и закрашивания клетки можно использовать такой алгоритм: если справа свободно то вправо закрасить все В одном условии можно использовать несколько команд проверки условий, применяя логические связки и, или, не, например: если (справа свободно) и (не снизу свободно) то вправо все Для повторения последовательности команд можно использовать цикл «пока», имеющий следующий вид: нц пока условие последовательность команд кц Например, для движения вправо, пока это возможно, можно использовать следующий алгоритм: нц пока справа свободно вправо кц [рис.] Выполните задание Робот находится в произвольной клетке узкого вертикального коридора. Ширина коридора — одна клетка, длина коридора может быть произвольной. Точное положение Робота также неизвестно. Возможный вариант начального расположения Робота приведен на рисунке (Робот обозначен буквой «Р»): Напишите для Робота алгоритм, закрашивающий все клетки внутри коридора. Конечное положение Робота может быть произвольным. Например, для приведенного выше рисунка робот должен закрасить следующие клетки (см. рис.): Алгоритм должен решать задачу для произвольного конечного размера коридора и произвольного начального расположения Робота. При исполнении алгоритма Робот не должен разрушиться. Алгоритм может быть выполнен в среде формального исполнителя или записан в текстовом редакторе. Сохраните алгоритм в формате программы Кумир или в текстовом файле. Название файла и каталог для сохранения Вам сообщат организаторы экзамена. [рис.]

Средний уровеньЗадание

Исполнитель Робот умеет перемещаться по лабиринту, начерченному на плоскости, разбитой на клетки. Между соседними (по сторонам) клетками может стоять стена, через которую Робот не пройдет. У Робота есть девять команд. Четыре команды  — это команды-приказы: вверх вниз влево вправо При выполнении любой из этих команд Робот перемещается на одну клетку соответственно: вверх ↑ вниз ↓, влево ← , вправо →. Если Робот получит команду передвижения сквозь стену, то он разрушится. Также у Робота есть команда закрасить, при которой закрашивается клетка, в которой Робот находится в настоящий момент. Еще четыре команды  — это команды проверки условий. Эти команды проверяют, свободен ли путь для Робота в каждом из четырех возможных направлений: сверху свободно  снизу свободно  слева свободно  справа свободно Эти команды можно использовать вместе с условием «если», имеющим следующий вид: если условие то последовательность команд все Здесь условие  — одна из команд проверки условия. Последовательность команд  — это одна или несколько любых команд-приказов. Например, для передвижения на одну клетку вправо, если справа нет стенки, и закрашивания клетки можно использовать такой алгоритм: если справа свободно то вправо закрасить все В одном условии можно использовать несколько команд проверки условий, применяя логические связки и, или, не, например: если (справа свободно) и (не снизу свободно) то вправо все Для повторения последовательности команд можно использовать цикл «пока», имеющий следующий вид: нц пока условие последовательность команд кц Например, для движения вправо, пока это возможно, можно использовать следующий алгоритм: нц пока справа свободно вправо кц [рис.] Выполните задание Робот находится в произвольной клетке узкого вертикального коридора. Ширина коридора  — одна клетка, длина коридора может быть произвольной. Точное положение Робота также неизвестно. Возможный вариант начального расположения Робота приведен на рисунке (Робот обозначен буквой «Р»): Напишите для Робота алгоритм, закрашивающий все клетки внутри коридора. Конечное положение Робота может быть произвольным. Например, для приведенного выше рисунка робот должен закрасить следующие клетки (см. рис.): Алгоритм должен решать задачу для произвольного конечного размера коридора и произвольного начального расположения Робота. При исполнении алгоритма Робот не должен разрушиться. Алгоритм может быть выполнен в среде формального исполнителя или записан в текстовом редакторе. Сохраните алгоритм в формате программы Кумир или в текстовом файле. Название файла и каталог для сохранения Вам сообщат организаторы экзамена. [рис.]

Иллюстрация к заданию

Похожие задания