P
pro·school.ru
Каталог школ

Вспомогательные алгоритмы и подпрограммы

💻 Информатика · 7 класс

Вспомогательные алгоритмы

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

Зачем дробить задачу

Большую и сложную задачу трудно охватить мыслью целиком и легко в ней запутаться. Поэтому её разбивают на части поменьше — этот приём называют методом последовательного уточнения, или нисходящим проектированием. Сначала составляют основной алгоритм из крупных понятных шагов, а потом каждый шаг при необходимости описывают отдельным вспомогательным алгоритмом. Так сложная задача превращается в набор простых.

СвойствоБез подпрограммС подпрограммами
Структураодин длинный алгоритмосновной и несколько вспомогательных
Повторыкоманды дублируютсяобщий фрагмент описан один раз
Поиск ошибоктрудно найтикаждую часть проверяют отдельно
Чтениетяжело понять целикомвидна общая логика

Как работает вызов

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

Разобранный пример

Пусть исполнитель должен нарисовать три одинаковых квадрата в ряд. Опишем вспомогательный алгоритм КВАДРАТ и вызовем его трижды из основного алгоритма:

алг КВАДРАТ

нач

повтори 4 раз: вперёд 10; поворот 90

кон

алг ОСНОВНОЙ

нач

КВАДРАТ; сдвиг; КВАДРАТ; сдвиг; КВАДРАТ

кон

Вместо того чтобы выписывать команды квадрата три раза подряд, мы описали их всего один раз внутри подпрограммы КВАДРАТ и трижды вызвали её по имени. Если понадобится изменить размер квадрата, достаточно поправить только подпрограмму — изменения сразу подействуют на все три вызова.

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

Кратко о главном

  • Вспомогательный алгоритм (подпрограмма) решает часть общей задачи.
  • Метод последовательного уточнения дробит большую задачу на меньшие.
  • После выполнения управление возвращается в место вызова основного алгоритма.
  • Один и тот же вспомогательный алгоритм можно вызывать многократно.
  • Подпрограммы убирают дублирование и упрощают поиск ошибок.