"Информатика. (в 2 частях)", Поляков К.Ю., Еремин Е.А.
Исполнитель — человек, устройство или программа, которые выполняют команды по установленным правилам. У каждого исполнителя есть своя система команд, а действует он в определённой среде: например, Робот — на клетчатом поле, а Черепаха — на поле для рисования. Поэтому выполнение команды зависит не только от её смысла, но и от положения исполнителя и условий вокруг него. Если команда ему неизвестна или её нельзя выполнить, возникает ошибка или отказ.
Текст подготовлен нейронной сетью по теме параграфа и не заменяет учебник — важные факты и формулировки сверяйте с ним.
Исполнитель — человек, устройство или программа, которые выполняют команды по заданным правилам. Например, человек может следовать инструкции, а робот — перемещаться по клеткам. Это понятие помогает описывать, кто именно выполняет алгоритм.
Среда исполнителя — обстановка или область, в которой исполнитель действует. Для Робота это может быть клетчатое поле с препятствиями, а для программы — компьютер и доступные данные. Среда нужна, чтобы определить, какие действия возможны и какие ограничения нужно учитывать.
Система команд исполнителя — перечень команд, которые исполнитель понимает и может выполнить. Например, Черепахе могут быть доступны команды движения вперёд и поворота. Зная систему команд, можно составить подходящий алгоритм и не включать в него непонятные исполнителю действия.
Отказ исполнителя — ситуация, когда команда не может быть выполнена в данной среде или при текущем состоянии. Робот может отказаться идти вперёд, если перед ним стена. Это понятие помогает заметить ошибку и понять, почему выполнение алгоритма остановилось.
Человека, робота и программу считают исполнителями не потому, что они похожи друг на друга, а потому, что каждый способен выполнять команды. Человек действует по инструкции, робот — по командам управления, программа — по указаниям, записанным на языке программирования. Команды задают, какое действие нужно выполнить, а правила определяют, как именно это происходит. Поэтому для работы исполнителя важно заранее знать, какие указания он способен обработать.
Одинаковые слова могут означать разные действия для разных исполнителей. Смысл команды задаётся не только словом, но и правилами системы команд конкретного исполнителя. Например, команда «вперёд» для Черепахи означает движение в направлении её взгляда, а для человека без дополнительных пояснений может быть неясно, куда именно идти. Поэтому алгоритм нужно составлять с учётом того, кто будет его выполнять.
Робот перемещается по клетчатому полю и может выполнять действия с клетками, если такие команды есть в его системе команд. Возможность перейти в соседнюю клетку зависит от расположения Робота и препятствий: свободный путь допускает перемещение, а стена его блокирует. Действие с клеткой меняет её состояние, например может изменить отметку или содержимое, если это предусмотрено правилами задачи. Следовательно, одной записи команды недостаточно: нужно также знать среду и текущее положение Робота.
Черепаха обычно движется по полю для рисования и меняет направление поворотами. Команда движения переносит её в новое положение, а при включённом рисовании оставляет линию; команда поворота меняет направление, но сама по себе не перемещает её. Сочетая движения и повороты, можно получать отрезки, углы и геометрические фигуры. Чтобы предсказать рисунок, нужно после каждой команды отслеживать и положение Черепахи, и направление её взгляда.
Если команда не входит в систему команд, исполнитель не знает, как её выполнять. Даже знакомая команда может оказаться невыполнимой: например, путь Робота может быть перекрыт стеной. В первом случае проблема связана с набором команд, во втором — с условиями среды или текущим состоянием. При проверке алгоритма нужно различать эти причины, чтобы исправить команду или изменить последовательность действий.
| Исполнитель | Среда | Примеры команд | Что получается при выполнении |
|---|---|---|---|
| Робот | Клетчатое поле с препятствиями | Перемещение и действия с клеткой | Изменение положения или состояния клетки |
| Черепаха | Поле для рисования | Движение вперёд и поворот | Линия или геометрический рисунок |
| Человек | Повседневная обстановка | Устные инструкции или команды | Выполненные действия |
| Компьютерная программа | Компьютер и доступные ему данные | Команды языка программирования | Вычисление или обработка данных |
Сначала найдите исполнителя и его среду, а затем сопоставьте команды с тем, что он умеет делать. Последний столбец показывает результат действий, а не саму команду. По таблице можно сравнить исполнителей и увидеть, почему один набор команд не подходит всем.
Условие: Робот стоит на клетчатом поле. Нужно определить, какие команды из предложенного набора он сможет выполнить и что изменится после каждой. Предположим, что доступны команды «вверх», «вправо» и «закрасить клетку», а справа от Робота находится стена. Чтобы решить задачу, сначала проверим значение команд и обстановку, а затем проследим их последствия.
Ответ: известные команды ещё не гарантируют успешного выполнения. «Вверх» возможно при свободном проходе, «вправо» блокирует стена, а закрашивание меняет состояние клетки под Роботом.
Условие: Черепаха смотрит вправо. Нужно пройти заданное расстояние, повернуть и нарисовать угол. Пусть требуется пройти 4 условных шага, затем повернуть налево на 90° и пройти ещё 3 шага; рисование включено. Проверять будем не только число шагов, но и направление после поворота.
Ответ: последовательность «вперёд 4», «налево 90°», «вперёд 3» даёт угол. Первый отрезок направлен вправо, второй — вверх; направление и положение проверяются после каждой команды.
Условие: Робот стоит в коридоре перед стеной, а предложенный алгоритм содержит команды «вперёд», «вперёд», «влево». Нужно найти место, где выполнение станет невозможным. Предположим, что первая клетка перед Роботом свободна, а следующая занята препятствием; повороты на месте разрешены. Сначала проверим команды, затем каждое перемещение по порядку.
Ответ: выполнение останавливается на второй команде «вперёд». Причина не в незнакомой команде, а в препятствии на пути Робота.
Считать исполнителем только человека или компьютер. Такое мнение возникает из-за привычки называть исполнителем того, кто сам принимает решения. Но устройство или программа тоже выполняют команды, если действуют по установленным правилам. Проверка простая: если объект способен выполнить заданные действия, он может быть исполнителем.
Предполагать, что исполнитель понимает любые команды. Иногда кажется, что знакомое слово должно быть понятно всем. На деле исполнитель выполняет только команды из своей системы команд, поэтому команда Черепахи не обязательно подойдёт Роботу. Перед составлением алгоритма проверьте, есть ли каждое действие в доступном наборе команд.
Не учитывать среду и положение исполнителя. Ученик может увидеть знакомую команду и сразу решить, что она выполнима. Однако препятствие или другое текущее состояние может помешать действию, которое в другом месте удалось бы выполнить. Проверяйте расположение исполнителя и условия среды перед каждой командой.
Путать команду с алгоритмом. Одна команда задаёт отдельное действие, а алгоритм состоит из последовательности команд, ведущей к цели. Ошибка возникает, если по одной команде ожидают получить весь результат. Для самопроверки спросите себя: описано одно действие или порядок нескольких действий?
Для изучения исполнителей нужны знания о командах и алгоритмах: важно уметь читать последовательности действий и понимать их порядок. Эти знания пригодятся при составлении и проверке алгоритмов для формальных исполнителей, например Робота и Черепахи. Позже представление о системе команд поможет разбираться в языках программирования. Оно также полезно для понимания того, как устройства получают команды и управляют своими действиями.
Может ли человек быть исполнителем алгоритма?
Да. Человек может выполнять инструкции по приготовлению блюда или сборке предмета. Если он действует по заданным шагам, то выступает исполнителем алгоритма.
Почему один исполнитель не может выполнять команды другого?
У каждого исполнителя свой набор понятных ему команд и правила их выполнения. Например, команда поворота Черепахи может быть неизвестна человеку или компьютерной программе.
Чем система команд отличается от алгоритма?
Система команд — это все действия, которые исполнитель умеет выполнять. Алгоритм — это определённая последовательность таких команд для достижения цели.
Что называют средой исполнителя?
Среда исполнителя — это обстановка или область, где он действует. Она может ограничивать действия: например, Робот не сможет переместиться в клетку, занятую препятствием.
Почему исполнитель может отказаться выполнять команду?
Команда может быть неизвестна исполнителю или невыполнима в его текущем положении. Например, Робот не сможет пройти сквозь стену, поэтому сообщит об ошибке или откажется продолжать.
§ 31. Примеры исполнителей