Программное управление исполнителем

Для программного управления недостаточно знать, какие команды, и в какой последовательности надо исполнить. Нужно еще записать эти команды в форме, понятной для компьютера, т. е. оформить их в виде алгоритма.

Например, для задачи из предыдущего пункта алгоритм будет выглядеть так:

 
 
А1

алгход конем

дано| Робот в клетке А, стен на поле нет (рис. 1)

надо| Робот в клетке Б (рис. 1)

Программное управление исполнителем - student2.ru нач

вправо

вправо

вниз

Кон

Общий вид алгоритма

В простейшем случае алгоритм на алгоритмическом языке записывается так:

Программное управление исполнителем - student2.ru алгимя алгоритма

даноусловия применимости алгоритма заголовок алгоритма

надоцель выполнения алгоритма

Программное управление исполнителем - student2.ru нач

| последовательность команд тело алгоритма

Кон

Слова алг(алгоритм), дано, надо, нач(начало), кон(конец) называются служебными словами и предназначены для оформления алгоритма. Служебные слова алг, начи конпишутся строго одно под другим, начи консоединяются вертикальной чертой, правее которой помещаются команды.

Имя (название) алгоритма — это одно или несколько слов. Обычно оно подбирается так, чтобы можно было понять, для чего служит алгоритм.

В строке даноописывается начальное состояние, при котором должен выполняться алгоритм, в строке надо— состояние после выполнения алгоритма.

Строки алг, данои надообразуют заголовок алгоритма. Заголовок задает условие решаемой задачи, в нем указывается, что делает данный алгоритм.

Часть алгоритма от строки начдо строки конназывается телом алгоритма. Тело описывает решение задачи, в нем показано, как достигается цель алгоритма.

Комментарии в алгоритмическом языке

В алгоритме "ход конем" (А1) после знака | в строках данои надозаписан комментарий. Такие комментарии разрешается помещать в конце любой строки, отделяя их знаком |. Если комментарий занимает несколько строк, то знак | перед комментарием надо ставить в каждой строке. Комментарии могут записываться в любой удобной для человека форме. При выполнении алгоритма компьютер полностью пропускает комментарии — алгоритм выполняется так же, как если бы комментариев вообще не было.

Таким образом, комментарии предназначены исключительно для человека — они облегчают понимание алгоритма.

Исполнение алгоритма

Получив приказ исполнить алгоритм, компьютер выполняет следующие действия:

1) Находит в памяти алгоритм с указанным именем.

2) Проверяет, соблюдаются ли начальные условия, указанные в строке дано(в примерах этого параграфа в данопишутся только комментарии, но позднее мы научимся помещать там условия, которые компьютер сможет проверять).

3) Последовательно читает команды после строки начи передает их исполнителю. Каждый такой приказ на выполнение команды называется вызовом этой команды.

4) Встретив строку кон,проверяет, достигнута ли цель алгоритма, указанная в строке надо(см. примечание к п. 2).

5) Заканчивает выполнение алгоритма.

Пример.Компьютер получает приказ исполнить алгоритм "ход конем".

1) Компьютер находит в памяти алгоритм А1.

2) В строке данозаписан комментарий — компьютер его пропускает.

3) Компьютер последовательно командует Роботу вправо, вправо, вниз. Робот исполняет эти команды.

4) В строке надопомещен комментарий — компьютер его пропускает.

5) Компьютер заканчивает выполнение алгоритма "ход конем".

Ошибки в алгоритмах

Если при составлении алгоритма мы случайно вместо вниз напишем внис или вместо вправо — направо, то компьютер нашу запись не поймет и, даже не приступая к выполнению алгоритма, сообщит об ошибке. Ошибки в записи алгоритма называются синтаксическими.

Но даже если все команды записаны правильно, это еще не значит, что алгоритм составлен без ошибок. Ошибки в составлении алгоритма называются логическими.

Иногда логическая ошибка может привести к отказу — невозможности выполнить очередную команду. Например, при попытке выполнить алгоритм "ход конем" (А1) в обстановке, изображенной на рисунке 2, компьютер попытается последовательно вызвать команды вправо, вправо, вниз. Однако вторую команду вправо Робот выполнить не сможет — возникает отказ. Получив от исполнителя сигнал отказа, компьютер сообщает об ошибке и прекращает выполнение алгоритма.

Программное управление исполнителем - student2.ru

Рис. 2

У каждого исполнителя могут быть свои причины отказов. Отказ Робота возникает при попытке идти сквозь стену.

Ошибки в алгоритме не всегда приводят к отказам. Возможны логические ошибки, не обнаруживаемые компьютером ни до, ни во время выполнения алгоритма. Так, если в алгоритме А1 мы вместо вправо случайно напишем влево, то компьютер выполнит алгоритм, Робот из клетки А переместится в клетку В (см. рис. 2), но никаких сообщений об ошибках мы не получим (да и откуда компьютеру знать, куда мы на самом деле хотели переместить Робота!).

В правильно составленных алгоритмах никаких ошибок быть не должно. Но если синтаксические ошибки обычно легко устранимы, то поиск и устранение логических ошибок могут оказаться весьма трудным делом. Таким образом, все возможные ошибки можно представить в виде таблицы:

Таблица 1. Ошибки в алгоритмах.

Смысл ошибки Название Пример
Цель не достигнута Логическая Робот не попал куда надо
Команда не входит в СКИ Синтаксическая наверх, направо
Авария при попытке исполнения команды Семантическая (отказ) Попытка пройти сквозь стену

Наши рекомендации