программирование исполнителя
Алгоритм– это точно определенная последовательность действий для некоторого исполнителя, выполняемых по строго определенным правилам и приводящих через некоторое количество шагов к решению задачи.
Исполнитель алгоритмовопределяет элементарные действия, из которых формируется алгоритм. Отдельные действия, составляющие алгоритм, называются операциями. При этом под операцией понимается как какое-то единичное действие, например, сложение, так и группа взаимосвязанных действий.
Исполнитель «Робот»умеет перемещаться по лабиринту, начерченному наплоскости, разбитой на клетки. Ниже приведено описание Робота.
У Робота есть четыре команды перемещения:
вверх
вниз
влево
вправо
При выполнении любой из этих команд Робот перемещается на одну клеткусоответственно: вверх ↑, вниз ↓, влево ←, вправо →.
Между соседними (по сторонам) клетками может стоять стена, через
которую Робот пройти не может. Если Робот получает команду
передвижения через стену, то он разрушается.
Четыре команды проверяют истинность условия отсутствия стены у каждойстороны той клетки, где находится Робот:
сверху свободно
снизу свободно
слева свободно
справа свободно
Эти команды можно использовать вместе с условием «eсли», имеющимследующий вид:
если <условие> то
последовательность команд
все
«Последовательность команд»— это одна или несколько любых командРобота. Например, для передвижения на одну клетку вправо, если справанет стенки, можно использовать такой алгоритм:
если справа свободно то
вправо
все
В одном условии можно использовать несколько команд вместе с
логическими операциями и, или, не, например,если (справа свободно) и (не снизу свободно) то
вправо
«пока», имеющий следующий вид:
нц пока <условие>
последовательность команд
кц
Например, для движения вправо, пока это возможно, можно использоватьследующий алгоритм:
нц пока справа свободно
вправо
кц
Также у Робота есть команда «закрасить», которая закрашивает клетку, вкоторой Робот находится в настоящий момент.
Выполните задание
Робот находится в верхней клетке узкого вертикального коридора. Ширина
коридора – одна клетка, длина коридора может быть произвольной.
Возможный вариант начального расположения Робота приведён на рисунке
(Робот обозначен буквой «Р»):
Напишите для Робота алгоритм, закрашивающий все клетки внутри
коридора и возвращающий Робота в исходную позицию. Например, для
приведённого выше рисунка Робот должен закрасить следующие клетки (см.рисунок):

Скачать:
| Вложение | Размер |
|---|---|
| 49.5 КБ |
Предварительный просмотр:
Лекция № 5
программирование исполнителя
Алгоритм – это точно определенная последовательность действий для некоторого исполнителя, выполняемых по строго определенным правилам и приводящих через некоторое количество шагов к решению задачи.
Исполнитель алгоритмов определяет элементарные действия, из которых формируется алгоритм. Отдельные действия, составляющие алгоритм, называются операциями. При этом под операцией понимается как какое-то единичное действие, например, сложение, так и группа взаимосвязанных действий.
Исполнитель «Робот» умеет перемещаться по лабиринту, начерченному на плоскости, разбитой на клетки. Ниже приведено описание Робота.
У Робота есть четыре команды перемещения:
вверх
вниз
влево
вправо
При выполнении любой из этих команд Робот перемещается на одну клетку соответственно: вверх ↑, вниз ↓, влево ←, вправо →.
Между соседними (по сторонам) клетками может стоять стена, через
которую Робот пройти не может. Если Робот получает команду
передвижения через стену, то он разрушается.
Четыре команды проверяют истинность условия отсутствия стены у каждой стороны той клетки, где находится Робот:
сверху свободно
снизу свободно
слева свободно
справа свободно
Эти команды можно использовать вместе с условием «eсли», имеющим следующий вид:
если <условие> то
последовательность команд
все
«Последовательность команд» — это одна или несколько любых команд Робота. Например, для передвижения на одну клетку вправо, если справа нет стенки, можно использовать такой алгоритм:
если справа свободно то
вправо
все
В одном условии можно использовать несколько команд вместе с
логическими операциями и, или, не, например, если (справа свободно) и (не снизу свободно) то
вправо
«пока», имеющий следующий вид:
нц пока <условие>
последовательность команд
кц
Например, для движения вправо, пока это возможно, можно использовать следующий алгоритм:
нц пока справа свободно
вправо
кц
Также у Робота есть команда «закрасить», которая закрашивает клетку, в которой Робот находится в настоящий момент.
Выполните задание
Робот находится в верхней клетке узкого вертикального коридора. Ширина
коридора – одна клетка, длина коридора может быть произвольной.
Возможный вариант начального расположения Робота приведён на рисунке
(Робот обозначен буквой «Р»):
Напишите для Робота алгоритм, закрашивающий все клетки внутри
коридора и возвращающий Робота в исходную позицию. Например, для
приведённого выше рисунка Робот должен закрасить следующие клетки (см.рисунок):