
Задача 4
Среда обитания Робота - прямоугольный лабиринт на клетчатой плоскости, где есть внутренние перегородки:
Система команд Робота:
Четыре команды движения: вверх вниз влево вправо. При выполнении любой из этих команд РОБОТ перемещается на одну клетку соответственно: вверх ↑, вниз ↓, влево ←, вправо →.
Четыре команды проверки условия отсутствия стены у каждой стороны той клетки, где находится РОБОТ: сверху свободно; снизу свободно; слева свободно; справа свободно.
Цикл ПОКА <условие> выполняется, пока условие истинно, иначе происходит переход на следующую строку.
Сколько клеток приведенного лабиринта соответствуют требованию, что, выполнив предложенную ниже программу, РОБОТ уцелеет и остановится в закрашенной клетке F6? (14, 17, 19, 21)
-
НАЧАЛО
ПОКА<справа свободно ИЛИ снизу свободно >
ПОКА < снизу свободно > вниз
КОНЕЦ ПОКА
ПОКА < справа свободно > вправо
КОНЕЦ ПОКА
КОНЕЦ ПОКА
КОНЕЦ
Выполняя заданную программу, РОБОТ начинает с внешнего цикла (синий) и проверяет, свободна ли клетка справа или снизу.
Если это так, то РОБОТ переходит к первому внутреннему циклу (зеленому). В этом цикле, пока у нижней стороны клетки, в которой находится РОБОТ, нет стены, он продолжает двигаться вниз.
Как только это условие перестанет выполняться, он переходит ко второму внутреннему (розовому) циклу. Этот цикл аналогичен первому, только теперь проверяется отсутствие стены у правой стороны клетки.
Проанализировав эту программу, приходим к выводу, что:
РОБОТ будет двигаться вправо или вниз, пока у него есть такая возможность.
РОБОТ никогда не разобьётся.
Проверив все клетки по выведенному нами правилу движения РОБОТА, выясняем, что число клеток, удовлетворяющих условию задачи, равно 19.
Домашнее задание
Задача 1
Среда обитания Робота - прямоугольный лабиринт на клетчатой плоскости, где есть внутренние перегородки:
Система команд Робота:
Четыре команды движения: вверх вниз влево вправо. При выполнении любой из этих команд РОБОТ перемещается на одну клетку соответственно: вверх ↑, вниз ↓, влево ←, вправо →.
Четыре команды проверки условия отсутствия стены у каждой стороны той клетки, где находится РОБОТ: сверху свободно; снизу свободно; слева свободно; справа свободно.
Цикл ПОКА <условие> выполняется, пока условие истинно, иначе происходит переход на следующую строку.
Сколько клеток приведенного лабиринта соответствуют требованию, что, выполнив предложенную ниже программу, РОБОТ остановится в той же клетке, с которой он начал движение? (1, 2, 3, 4)
-
НАЧАЛО
ПОКА<снизу свободно> вниз
ПОКА<справа свободно> вправо
ПОКА<сверху свободно> вверх
ПОКА<слева свободно> влево
КОНЕЦ
Задача 2
Среда обитания Робота - прямоугольный лабиринт на клетчатой плоскости, где есть внутренние перегородки:
Система команд Робота:
Четыре команды движения: вверх вниз влево вправо. При выполнении любой из этих команд РОБОТ перемещается на одну клетку соответственно: вверх ↑, вниз ↓, влево ←, вправо →.
Четыре команды проверки условия отсутствия стены у каждой стороны той клетки, где находится РОБОТ: сверху свободно; снизу свободно; слева свободно; справа свободно.
Цикл ПОКА <условие> выполняется, пока условие истинно, иначе происходит переход на следующую строку.
Сколько клеток приведенного лабиринта соответствуют требованию, что, выполнив предложенную ниже программу, РОБОТ остановится в той же клетке, с которой он начал движение? (1, 2, 3, 4)
-
НАЧАЛО
ПОКА <сверху свободно> вправо
ПОКА <справа свободно> вниз
ПОКА <снизу свободно> влево
ПОКА <слева свободно> вверх
КОНЕЦ
Задача 3
Среда обитания Робота - прямоугольный лабиринт на клетчатой плоскости, где есть внутренние перегородки:
Система команд Робота:
Четыре команды движения: вверх вниз влево вправо. При выполнении любой из этих команд РОБОТ перемещается на одну клетку соответственно: вверх ↑, вниз ↓, влево ←, вправо →.
Четыре команды проверки условия отсутствия стены у каждой стороны той клетки, где находится РОБОТ: сверху свободно; снизу свободно; слева свободно; справа свободно.
Цикл ПОКА <условие> выполняется, пока условие истинно, иначе происходит переход на следующую строку.
Если РОБОТ начнет движение в сторону стены, он разрушится и программа прервется.
Сколько клеток приведенного лабиринта соответствуют требованию, что, выполнив предложенную ниже программу, РОБОТ уцелеет, т.е. не врежется в стену? (0, 5, 15 или 25)
-
НАЧАЛО
ПОКА <слева свободно> влево
ПОКА <справа свободно> вправо
вверх
вправо
КОНЕЦ
Задача 4
Среда обитания Робота - прямоугольный лабиринт на клетчатой плоскости, где есть внутренние перегородки.
Клетка в лабиринте может быть чистая или закрашенная (серая).
Система команд Робота:
Четыре команды движения: вверх вниз влево вправо. При выполнении любой из этих команд РОБОТ перемещается на одну клетку соответственно: вверх ↑, вниз ↓, влево ←, вправо →.
Четыре команды проверки условия отсутствия стены у каждой стороны той клетки, где находится РОБОТ: сверху свободно; снизу свободно; слева свободно; справа свободно.
Цикл ПОКА <условие> выполняется, пока условие истинно, иначе происходит переход на следующую строку.
В конструкции «ЕСЛИ <условие> ТО команда КОНЕЦ ЕСЛИ» команда выполняется только, если условие истинно. В противном случае ничего не происходит.
В конструкциях ПОКА и ЕСЛИ условие может содержать команды проверки, а также слова И, ИЛИ, НЕ.
Сколько клеток приведенного лабиринта соответствуют требованию, что, выполнив предложенную ниже программу, РОБОТ уцелеет и остановится в закрашенной клетке F6? (12, 15, 18, 21)
-
НАЧАЛО
ПОКА <снизу свободно ИЛИ справа свободно>
ПОКА <справа свободно> вправо КОНЕЦ ПОКА
ЕСЛИ <снизу свободно> ТО вниз
КОНЕЦ ЕСЛИ
КОНЕЦ ПОКА
КОНЕЦ