- •7. Алгоритмы управления исполнителями.
- •7.1. Исполнитель Робот
- •7.2. Программное управление исполнителем
- •7.3. Общий вид алгоритма
- •7.4. Комментарии в алгоритмическом языке
- •7.5. Исполнение алгоритма
- •7.6. Ошибки в алгоритмах
- •7.7. Запись нескольких команд в одной строке
- •8. Вспомогательные алгоритмы
- •8.1. Понятие о вспомогательном алгоритме
- •Основные и вспомогательные алгоритмы
- •8.3. Пример использования вспомогательных алгоритмов
- •8.4. Метод последовательного уточнения
- •8.5. Заголовки вспомогательных алгоритмов
- •8.6. Разделение труда между компьютером и исполнителями
- •9 Цикл n раз
- •9.1. Пример алгоритма с циклом n раз
- •9.2. Общий вид цикла n раз
- •9.3. Короткие алгоритмы могут описывать длинные последовательности действий
- •9 А15 .4. Внутри цикла можно вызывать вспомогательные алгоритмы
- •9.5. Внутри цикла могут быть другие циклы
- •10. Цикл пока
- •10.1. Команды-вопросы Робота
- •10.2. Цикл пока
- •10.3. Диалог Компьютер — Робот при выполнении цикла пока
- •10.4. Общий вид цикла пока
- •10.5. Цикл n раз и цикл пока
- •10.6. Условия в цикле пока
- •10.7. Свойства цикла пока
- •1. Тело цикла может не выполниться ни разу
- •2. Выполнение цикла может не завершиться
- •3. Условие цикла не проверяется в процессе выполнения тела цикла
- •4. Перед каждым выполнением тела цикла условие обязательно выполняется.
- •5. Сразу после окончания цикла условие не выполняется
- •10.8. Составление алгоритмов с циклом пока
- •10.9. Примеры построения алгоритмов
- •1. Закрашивание ряда
- •2. Закрашивание коридора произвольной длины
- •3. Выход в левый верхний угол в лабиринте
- •11. Команды ветвления и контроля
- •11.1. Пример алгоритма с командой если
- •11.2. Общий вид команды если
- •11.3. Команды контроля
- •11.4. Пример алгоритма с командой утв
- •11.5. Выбор из многих вариантов
- •11.6 Общий вид команды выбор
- •12 Анализ и тестирование алгоритмов
- •12.1. Результаты труда программиста
- •12.2. Что такое правильный алгоритм
- •12.3. Пример рассуждения, подтверждающего правильность алгоритма
- •12.4. Тестирование алгоритмов
7. Алгоритмы управления исполнителями.
7.1. Исполнитель Робот
Робот действует на прямоугольном клетчатом поле. Между некоторыми клетками поля могут быть расположены стены. Какие-то клетки могут быть закрашены. Сам Робот всегда занимает ровно одну клетку поля (рис. 1).
Робот умеет выполнять всего 17 команд: 5 команд-приказов и 12 команд-вопросов. Мы пока изучим только команды-приказы Робота: вверх, вниз, вправо, влево, закрасить.
По командам вверх, вниз, вправо, влево Робот перемещается в соседнюю клетку в указанном направлении. Если на пути оказывается стена, команда не может быть выполнена. Например, в случае, показанном на рисунке 1, нельзя выполнить команду вверх.
По команде закрасить Робот закрашивает клетку, в которой стоит. Если клетка уже была закрашена, она останется закрашенной, т. е. команда будет выполнена, но никаких видимых изменений не произойдет.
Рис. 1. Поле Робота.
7.2. Программное управление исполнителем
Для программного управления недостаточно знать, какие команды, и в какой последовательности надо исполнить. Нужно еще записать эти команды в форме, понятной для компьютера, т. е. оформить их в виде алгоритма.
Например, для задачи из предыдущего пункта алгоритм будет выглядеть так:
А1
алг ход конем
дано | Робот в клетке А, стен на поле нет (рис. 1)
надо | Робот в клетке Б (рис. 1)
н ач
вправо
вправо
вниз
кон
7.3. Общий вид алгоритма
В простейшем случае алгоритм на алгоритмическом языке записывается так:
а лг имя алгоритма
дано условия применимости алгоритма заголовок алгоритма
надо цель выполнения алгоритма
н ач
| последовательность команд тело алгоритма
кон
Слова алг (алгоритм), дано, надо, нач (начало), кон (конец) называются служебными словами и предназначены для оформления алгоритма. Служебные слова алг, нач и кон пишутся строго одно под другим, нач и кон соединяются вертикальной чертой, правее которой помещаются команды.
Имя (название) алгоритма — это одно или несколько слов. Обычно оно подбирается так, чтобы можно было понять, для чего служит алгоритм.
В строке дано описывается начальное состояние, при котором должен выполняться алгоритм, в строке надо — состояние после выполнения алгоритма.
Строки алг, дано и надо образуют заголовок алгоритма. Заголовок задает условие решаемой задачи, в нем указывается, что делает данный алгоритм.
Часть алгоритма от строки нач до строки кон называется телом алгоритма. Тело описывает решение задачи, в нем показано, как достигается цель алгоритма.
7.4. Комментарии в алгоритмическом языке
В алгоритме "ход конем" (А1) после знака | в строках дано и надо записан комментарий. Такие комментарии разрешается помещать в конце любой строки, отделяя их знаком |. Если комментарий занимает несколько строк, то знак | перед комментарием надо ставить в каждой строке. Комментарии могут записываться в любой удобной для человека форме. При выполнении алгоритма компьютер полностью пропускает комментарии — алгоритм выполняется так же, как если бы комментариев вообще не было.
Таким образом, комментарии предназначены исключительно для человека — они облегчают понимание алгоритма.