Вспомогательные алгоритмы и подпрограммы
Основные темы параграфа:
■ что такое вспомогательный алгоритм;
■ обращение к вспомогательному алгоритму (процедуре);
■ описание вспомогательного алгоритма (процедуры);
■ метод последовательной детализации;
■ сборочный метод.
Что такое вспомогательный алгоритм
А сейчас решим следующую задачу.
Задача 2. Пусть требуется составить программу, по которой ГРИС напишет на экране четырехзначное число 1919 (рис. 1.5).
Конечно, можно поступить так, как в предыдущей задаче, написав одну длинную программу, по которой исполнитель шаг за шагом нарисует эти цифры. Но с очевидностью возникает другая идея: поскольку здесь дважды повторяются цифры 1 и 9, нельзя ли сократить работу, написав программы рисования той и другой цифры только один раз? Это действительно можно сделать.
Вспомогательный алгоритм, записанный на языке программирования, называется подпрограммой или процедурой.
Обращение к вспомогательному алгоритму (процедуре)
В таком случае программа решения поставленной задачи разделяется на основную программу (основной алгоритм) и процедуры (вспомогательные алгоритмы). Каждая процедура должна иметь свое уникальное имя. Для рассматриваемой задачи имена процедур выберем следующими: ЕДИНИЦА и ДЕВЯТЬ. Тогда в основной программе команды обращения к этим процедурам будут такими:
сделай ЕДИНИЦА
сделай ДЕВЯТЬ
По этим командам управление передается соответствующим процедурам, и после их выполнения управление вернется к следующей команде основной программы.
Договоримся, что начальное и конечное состояния ГРИС при вычерчивании каждой цифры будут такими, как показано стрелками на рис. 1.6 (внизу, на восток). У единицы начальное и конечное состояния совпадают. Основная программа:
программаЧисло 1919
Нач
сделайЕДИНИЦА
Прыжок
сделайДЕВЯТЬ
Прыжок
сделайЕДИНИЦА
Прыжок
сделайДЕВЯТЬ
Кон
Данный пример познакомил вас с новой командой из СКИ графического исполнителя — командой обращения к процедуре. Ее формат, т. е. общий вид, следующий:
сделай <имя процедуры>
Описание вспомогательного алгоритма (процедуры)
Вот и все! Так просто! Но теперь надо «объяснить» исполнителю, что такое ЕДИНИЦА и что такое ДЕВЯТЬ. Это делается в описаниях процедур (здесь порядок выполнения — по столбцам):
Формат описания процедуры:
процедура <имя процедуры>
Нач
<тело процедуры>
Кон
Имя в описании и имя в обращении должны точно совпадать (никаких склонений по падежам!). Описание процедур располагается после основной программы.
Добавив к программе описание процедуры, мы тем самым расширили систему команд исполнителя. В данной программе стало возможным использование команды обращения к этой процедуре.