Исполнитель РОБОТ умеет перемещаться по прямоугольному лабиринту, начерченному на плоскости, разбитой на клетки. Между соседними по сторонам клетками может стоять стена.
Система команд исполнителя РОБОТ содержит восемь команд. Четыре команды - это команды перемещения:
вверх
|
вниз
|
влево
|
вправо
При выполнении любой из этих команд РОБОТ перемещается на одну клетку соответственно: вверх ↑, вниз ↓, влево ←, вправо →. Если на пути РОБОТа окажется стена, он разрушится.
Четыре команды проверяют отсутствие стены у каждой стороны той клетки, где находится РОБОТ:
сверху свободно
|
снизу свободно
|
слева свободно
|
справа свободно
Цикл
ПОКА <условие>
последовательность команд
КОНЕЦ ПОКА
выполняется, пока условие истинно.
В конструкциях ПОКА условие может содержать команды проверки, а также слова И, ИЛИ, НЕ.
Схема лабиринта:
[рис.]
Сколько клеток лабиринта соответствуют требованию, что, начав движение в ней и выполнив предложенную программу, РОБОТ уцелеет (не врежется в стену) и остановится в закрашенной клетке (клетка F6)?
НАЧАЛО
ПОКА <снизу свободно ИЛИ справа свободно>
ПОКА <снизу свободно>
вниз
КОНЕЦ ПОКА
вправо
КОНЕЦ ПОКА
КОНЕЦ
Система команд исполнителя РОБОТ содержит восемь команд. Четыре команды - это команды перемещения:
вверх
|
вниз
|
влево
|
вправо
При выполнении любой из этих команд РОБОТ перемещается на одну клетку соответственно: вверх ↑, вниз ↓, влево ←, вправо →. Если на пути РОБОТа окажется стена, он разрушится.
Четыре команды проверяют отсутствие стены у каждой стороны той клетки, где находится РОБОТ:
сверху свободно
|
снизу свободно
|
слева свободно
|
справа свободно
Цикл
ПОКА <условие>
последовательность команд
КОНЕЦ ПОКА
выполняется, пока условие истинно.
В конструкциях ПОКА условие может содержать команды проверки, а также слова И, ИЛИ, НЕ.
Схема лабиринта:
[рис.]
Сколько клеток лабиринта соответствуют требованию, что, начав движение в ней и выполнив предложенную программу, РОБОТ уцелеет (не врежется в стену) и остановится в закрашенной клетке (клетка F6)?
НАЧАЛО
ПОКА <снизу свободно ИЛИ справа свободно>
ПОКА <снизу свободно>
вниз
КОНЕЦ ПОКА
вправо
КОНЕЦ ПОКА
КОНЕЦ
💡 Пошаговый разбор и решение:
[рис.] При данной программе РОБОТ поступает следующим образом: сперва РОБОТ проверяет свободна ли клетка справа или снизу от него, если это так, то РОБОТ переходит к первому действию внутри цикла. В этом цикле пока снизу клетки в которой находится РОБОТ нет стены он продолжает двигаться вниз. Как только это условие перестанет выполняться он переходит ко второму действию цикла. Второе действие, заключается в следующем: РОБОТ передвигается на одну клетку вправо. После чего возвращается к началу внешнего цикла. У робота есть возможность разбиться: например, стартовав из любой клетки столбца F робот разобьётся.
Проверив все клетки по выведенному нами правилу движения РОБОТА выясняем, что число клеток, удовлетворяющих условию задачи, = 12.
Ответ: 12.
Примечание.
Заметим, что стартовав из клетки F6, РОБОТ не начнет выполнение цикла (поскольку снизу и справа не свободно) и вообще не выполнит никаких действий, оставшись после окончания программы в клетке F6, поэтому клетка F6 подходит. Если же РОБОТ стартует из любой другой клетки столбца F, то он начнет выполнение цикла и будет двигаться вниз до клетки F6, после чего выполнит команду «вправо» и разобьется.
Проверив все клетки по выведенному нами правилу движения РОБОТА выясняем, что число клеток, удовлетворяющих условию задачи, = 12.
Ответ: 12.
Примечание.
Заметим, что стартовав из клетки F6, РОБОТ не начнет выполнение цикла (поскольку снизу и справа не свободно) и вообще не выполнит никаких действий, оставшись после окончания программы в клетке F6, поэтому клетка F6 подходит. Если же РОБОТ стартует из любой другой клетки столбца F, то он начнет выполнение цикла и будет двигаться вниз до клетки F6, после чего выполнит команду «вправо» и разобьется.
Правильный ответ:
12
📚 Похожие разобранные задания по предмету:
ID 33873 • Задание №23
Сколько существует различных наборов значений логических переменных x1, x2, ...x9, y1, y2, ...y9, которые удов...
ID 33477 • Задание №21
Напишите в ответе наибольшее значение входной переменной k, при котором программа выдаёт тот же ответ, что и п...
🔗 Другие задания линии №12 по предмету Информатика:
ID 31602
Исполнитель МТ представляет собой читающую и записывающую головку, которая может передвигаться ...
ID 31603
Исполнитель МТ представляет собой читающую и записывающую головку, которая может передвигаться ...
ID 31604
Исполнитель МТ представляет собой читающую и записывающую головку, которая может передвигаться ...
ID 31605
Исполнитель МТ представляет собой читающую и записывающую головку, которая может передвигаться ...
ID 31606
Исполнитель МТ представляет собой читающую и записывающую головку, которая может передвигаться ...