№15, алгоритм для Робота

В пятнадцатом задании нужно составить алгоритм перемещения исполнителя Робот и в большинстве случаев – закрашивания некоторых клеток.

Максимальный балл: 2

Важно: алгоритм должен работать при любых длинах стен и проходов в них. Решения, работающие только при каких-то конкретных размерах коридора, оцениваются в 0 баллов.

Чтобы алгоритм работал при любой длине стен и проходов, в нём должны быть циклы. При этом выполнение алгоритма должно завершиться, то есть он не должен содержать бесконечных циклов.

В заданиях буквой Р указано начальное расположение Робота. Его конечное расположение может быть любым, если в задании не оговорено иное.

СКИ Робота

Исполнитель Робот умеет перемещаться по лабиринту, начерченному на плоскости, разбитой на клетки. Между соседними (по сторонам) клетками может стоять стена, через которую Робот пройти не может. СКИ Робота (система команд исполнителя) состоит из девяти команд.

Четыре команды – это команды-приказы:

вверхвнизвлевовправо

При выполнении любой из этих команд Робот перемещается на одну клетку соответственно: вверх ↑, вниз ↓, влево ←, вправо →. Если Робот получит команду передвижения сквозь стену, то он разрушится.

Также у Робота есть команда закрасить, при которой закрашивается клетка, в которой Робот находится в настоящий момент.

Ещё четыре команды – это команды проверки условий. Эти команды проверяют, свободен ли путь для Робота в каждом из четырёх возможных направлений:

сверху свободноснизу свободнослева свободносправа свободно

Эти команды можно использовать вместе с условием «eсли», имеющим следующий вид:

если условие то
последовательность команд
все

Здесь условие – одна из команд проверки условия.

Последовательность команд – это одна или несколько любых команд-приказов.

Например, для передвижения на одну клетку вправо, если справа нет стенки и закрашивания клетки, можно использовать такой алгоритм:

если справа свободно то
вправо
закрасить
все

В одном условии можно использовать несколько команд проверки условий, применяя логические связки иилине, например:

если (справа свободно) и (не снизу свободно) то
вправо
все

Для повторения последовательности команд можно использовать цикл «пока», имеющий следующий вид:

нц пока условие
последовательность команд

кц

Например, для движения вправо, пока это возможно, можно использовать следующий алгоритм:

нц пока справа свободно
вправо
кц

Команды Робота в формате pdf.

Программное обеспечение для выполнения задания

Ответ на задание 15.1 – файл с алгоритмом для Робота должен быть сохранён в формате программы КуМир (с расширением .kum) или в текстовом файле.

Систему программирования КуМир для выполнения задания можно скачать на сайте разработчика – ФГУ ФНЦ НИИСИ РАН. Согласно пояснениям разработчика, есть возможность не устанавливать систему КуМир, а запускать её при помощи файла kumir.exe. Для этого нужно раскрыть содержимое установочного файла в отдельную папку, например, при помощи программы 7-zip.

Для выполнения задания 15.1 вполне подходит Кумир-Стандарт.

В программе обязательно нужно указать исполнителя. Можно набрать вручную “использовать Робот” либо выбрать на вкладке “Вставка”. Для быстрого набора можно нажать клавишу Esc, а затем 1.

Роботу нужно создать обстановку в соответствии с заданием.

Для этого выбираем Робот Редактировать обстановку.

Можно указать количество строк и столбцов или оставить размеры поля по умолчанию.

Теперь нужно отредактировать обстановку.

Установить / убрать стенку – левая кнопка мыши. Для установки начального положения Робота перетащим ромбик мышью в нужную клетку.

После редактирования обстановка сохраняется в файле. Но этот файл является вспомогательным, он не нужен в папке с ответом. Ответом является файл с алгоритмом. Он может быть записан в среде Кумир, в текстовом процессоре либо в текстовом редакторе. Допустимо использовать простые текстовые файлы.