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