Система команд исполнителя РОБОТ, «живущего» в прямоугольном лабиринте на
клетчатой плоскости, включает в себя 4 команды-приказа
и 4 команды – проверки условия.
Команды-приказы:
вверх
вниз
влево
вправо
При выполнении любой из этих команд РОБОТ перемещается на одну
клетку соответственно: вверх, вниз, влево, вправо.
Если РОБОТ начнёт движение в сторону находящейся рядом с ним
стены, то он разрушится, и программа прервётся.
Другие 4 команды проверяют истинность
условия отсутствия стены у каждой стороны той клетки,
где находится РОБОТ:
сверху свободно
снизу свободно
слева свободно
справа свободно
Цикл ПОКА <условие> команда
выполняется, пока условие истинно, иначе
происходит переход на следующую строку.
Сколько клеток приведенного лабиринта соответствуют требованию, что, выполнив
предложенную ниже программу, РОБОТ остановится в той же клетке, с которой он
начал движение?
Интерактивная демонстрация работы РОБОТА с автоматическим
управлением
Захватываем
мигающий квадратик мышкой и перетаскиваем его в любую клетку квадратного
лабиринта, где отпустив, наблюдаем за его движением и выполнением алгоритма
программы. После окончания алгоритма смотрим на вывод.
Интерактивная демонстрация
работы РОБОТА с ручным управлением
Интерактивная
демонстрация работы РОБОТА с универсальным
управлением
Дело в том, что в этом типе задач, прежде чем сделать шаг в какую-либо
сторону, робот проверяет, свободна ли данная ячейка и только после проверки
делает свой шаг. Есть и другой тип задач, где робот может проверять,
например: свободная ли ячейка вверху, при этом шаг делает вправо или влево -
согласитесь, это уже не совсем адекватный поступок.
Тренировочные упражнения:
1. Сколько клеток
приведенного лабиринта соответствуют
требованию, что, выполнив предложенную ниже
программу, РОБОТ уцелеет и остановится в той
же клетке, с которой он начал движение?
a)
НАЧАЛО ПОКА <сверху свободно> вверх
ПОКА <слева свободно> влево
ПОКА <снизу свободно> вниз
ПОКА <справа свободно> вправо
КОНЕЦ
б)
НАЧАЛО ПОКА <слева свободно>
вниз
ПОКА <снизу свободно> вправо
ПОКА <справа свободно> вверх
ПОКА <сверху свободно> влево
КОНЕЦ
в)
НАЧАЛО ПОКА <сверху свободно>
влево
ПОКА <слева свободно> вниз
ПОКА <снизу свободно> вправо
ПОКА <справа свободно> вверх
КОНЕЦ
2. Сколько клеток
лабиринта соответствуют требованию,
что, начав движение в ней и выполнив
предложенную программу, РОБОТ
уцелеет и остановится в закрашенной
клетке (клетка F6)?
а)
НАЧАЛО ПОКА <справа свободно
ИЛИ снизу свободно>
ПОКА <снизу свободно> вниз
КОНЕЦ ПОКА
ПОКА <справа свободно> вправо
КОНЕЦ ПОКА
КОНЕЦ ПОКА
КОНЕЦ
б)
НАЧАЛО ПОКА <справа свободно
ИЛИ снизу свободно>
ПОКА <справа свободно> вправо
КОНЕЦ ПОКА
вниз
КОНЕЦ ПОКА
КОНЕЦ
3. Сколько клеток лабиринта соответствуют требованию, что, начав движение в ней и
выполнив предложенную программу, РОБОТ уцелеет и остановится в закрашенной
клетке (клетка A1)?
НАЧАЛО ПОКА <слева свободно
ИЛИ сверху свободно>
ЕСЛИ <слева
свободно>
ТО влево
ИНАЧЕ вверх
КОНЕЦ ЕСЛИ
КОНЕЦ ПОКА
КОНЕЦ
Учащиеся гимназии могут задать вопросы по решению задач.
Чтобы получить ответ на вопрос,
необходимо указать фамилию, имя и адрес электронной почты.