Исполнитель Робот умеет передвигаться по лабиринту, начерченному на плоскости, разбитой на
Исполнитель Бот умеет передвигаться по лабиринту, начерченному на плоскости, разбитой на клетки. Между соседними (по граням) клеточками может стоять стена, через которую Робот пройти не может.
У Бота есть девять команд. Четыре команды это команды-указы:
ввысь вниз на лево вправо
При выполнении хоть какой из этих команд Робот перемещается на одну клеточку соответственно: ввысь , вниз , на лево , вправо . Если Бот получит команду передвижения через стенку, то он разрушится.
Также у Бота есть команда закрасить, при которой закрашивается клеточка, в которой Бот находится в истинный момент.
Ещё четыре команды это команды проверки условий. Эти команды инспектируют, свободен ли путь для Бота в каждом из четырёх вероятных направлений:
сверху свободно снизу свободно слева свободно справа свободно
Эти команды можно использовать вкупе с условием eсли, имеющим последующий вид:
если условие то
последовательность команд
все
Здесь условие одна из команд проверки условия.
Последовательность команд это одна либо несколько всех команд-указов.
К примеру, для передвижения на одну клеточку на право, если справа нет стены, и закрашивания клеточки можно использовать таковой алгоритм:
если справа свободно то
вправо
закрасить
все
В одном условии можно использовать несколько команд проверки критерий, применяя логические вязки и, либо, не, к примеру:
если (справа свободно) и (не снизу свободно) то
на право
все
Для повторения последовательности команд можно использовать цикл пока, имеющий последующий вид:
нц пока условие
последовательность команд
кц
К примеру, для движения на право, пока это вероятно, можно использовать последующий метод:
нц пока справа свободно
на право
кц
Сделайте задание.
На нескончаемом поле есть горизонтальная и вертикальная стенки. Левый конец горизонтальной стенки соединён с нижним концом вертикальной стены. Длины стенок безызвестны. В вертикальной стенке есть ровно один проход, точное место прохода и его ширина неведомы. Бот находится в клетке, расположенной непосредственно над горизонтальной стенкой у её правого конца.
На рисунке указан один из вероятных методов расположения стен и Бота (Бот обозначен буквой Р).
Напишите для Бота метод, закрашивающий все клеточки, расположенные конкретно левее и правее вертикальной стенки. Проход должен остаться незакрашенным. Робот обязан закрасить только клеточки, удовлетворяющие данному условию. Например, для приведённого выше рисунка Робот должен закрасить последующие клеточки (см. рисунок).
При выполнении алгоритма Робот не обязан разрушиться, выполнение метода обязано закончиться. Конечное расположение Бота может быть произвольным.
Метод должен решать задачку для хоть какого допустимого расположения стенок и любого расположения и размера прохода внутри стенки.
Метод может быть выполнен в среде формального исполнителя или записан в текстовом редакторе.
Сохраните метод в текстовом файле. Заглавие файла и каталог для сохранения Для вас сообщат устроители экзамена.
Двигаемся на лево, пока не дойдём до вертикальной стенки.
нц пока слева свободно
влево
кц
Двигаемся ввысь, пока не дойдём до прохода в стенке, и закрашиваем клеточки.
нц пока не слева свободно
закрасить
вверх
кц
Двигаемся далее до вертикальной стенки.
нц пока слева свободно
ввысь
кц
Двигаемся вверх до конца стенки и закрашиваем клетки.
нц пока не слева свободно
закрасить
ввысь
кц
Обходим стенку.
влево
вниз
Двигаемся вниз, пока не дойдём до прохода в стенке, и закрашиваем клеточки.
нц пока не справа свободно
закрасить
вниз
кц
Двигаемся далее до вертикальной стены.
нц пока справа свободно
вниз
кц
Двигаемся вниз до конца стены и закрашиваем клетки.
нц пока не справа свободно
закрасить
вниз
кц
-
Вопросы ответы
Статьи
Информатика
Статьи
Математика.
Разные вопросы.
Математика.
Химия.
Русский язык.
Геометрия.
Физика.
Русский язык.
Химия.
Математика.