Вспомогательные алгоритмы
💻 Информатика · 6 класс
Как разбивать сложную задачу на части и использовать готовые подпрограммы внутри основного алгоритма.

Что такое вспомогательный алгоритм
Вспомогательный алгоритм — это алгоритм, который решает часть общей задачи и может быть вызван из другого, основного алгоритма. Его ещё называют подпрограммой. Главная идея — разбить сложную задачу на части, описать каждую часть отдельно, а потом собрать решение из готовых кусочков.
Такой приём называют методом последовательного уточнения, или решением «сверху вниз». Сначала описывают задачу крупными шагами, а затем каждый шаг уточняют отдельным алгоритмом.
Зачем нужны вспомогательные алгоритмы
- Сложная задача становится понятнее, когда разбита на части.
- Один и тот же вспомогательный алгоритм можно вызывать много раз.
- Текст алгоритма становится короче и легче читается.
- Ошибку проще найти в небольшом отдельном алгоритме.
Основной и вспомогательный алгоритм
| Алгоритм | Роль |
|---|---|
| Основной (главный) | Управляет решением задачи в целом |
| Вспомогательный | Решает отдельную подзадачу по вызову |
Разбор примера
Пусть нужно нарисовать дом. Разобьём задачу на части и опишем вспомогательные алгоритмы:
Основной алгоритм «Дом»:
вызвать «Стены»
вызвать «Крыша»
вызвать «Окно»
вызвать «Дверь»
Каждый вызов запускает свой вспомогательный алгоритм. Например, «Окно» можно вызвать дважды, если окон два, не переписывая команды заново.
Уточнение вспомогательного алгоритма
Каждый вспомогательный алгоритм, в свою очередь, тоже описывают шагами. Например, алгоритм «Окно» можно расписать так:
Вспомогательный алгоритм «Окно»:
нарисовать рамку
нарисовать вертикальную перекладину
нарисовать горизонтальную перекладину
Получается, что большая задача «Дом» разложена на части, а каждая часть — на ещё более мелкие действия. Так задача уточняется уровень за уровнем, пока все команды не станут понятны исполнителю. Этот приём помогает не запутаться даже в очень сложных алгоритмах.
Повторное использование
Особенно полезны вспомогательные алгоритмы, когда одно и то же действие нужно много раз. Представь, что надо нарисовать ряд из трёх одинаковых домов. Достаточно один раз описать алгоритм «Дом» и трижды его вызвать:
вызвать «Дом»
вызвать «Дом»
вызвать «Дом»
Не нужно переписывать все команды рисования по три раза — это экономит силы и уменьшает число ошибок. Если потом понадобится изменить вид дома, достаточно поправить один вспомогательный алгоритм, и изменятся сразу все дома.
Правило: когда основной алгоритм встречает команду вызова, исполнитель выполняет весь вспомогательный алгоритм целиком, а затем возвращается к следующей команде основного алгоритма.
Частые ошибки
- Пишут все команды в одном длинном алгоритме вместо разбиения на части.
- Забывают, что после выполнения подпрограммы управление возвращается в основной алгоритм.
- Дают вспомогательным алгоритмам непонятные названия.
Повторно используемая подпрограмма для Робота
Рассмотрим собственное поле: горизонтальный коридор длиной не менее семи свободных клеток, Робот стоит в крайней левой. Нужно закрасить первые шесть клеток и закончить на седьмой, не закрашивая её. Между этими клетками стен нет. Если условия поля другие, программу нельзя считать готовым решением без проверки.
использовать Робот
алг
нач
нц 3 раз
две клетки
кц
кон
алг две клетки
нач
закрасить
вправо
закрасить
вправо
конЧто делает один вызов
Подпрограмма «две клетки» закрашивает текущую и следующую клетки, после чего перемещает Робота ещё на клетку вправо. Она не заканчивается на второй закрашенной клетке — это важно для следующего вызова. Если пронумеровать клетки слева направо от 1, после первого вызова Робот в клетке 3, после второго — в 5, после третьего — в 7.
Закрашенными оказываются пары 1–2, 3–4 и 5–6. Основной алгоритм управляет повторениями, а вспомогательный содержит детали одного фрагмента работы. Его описание после алг две клетки не является дополнительным четвёртым вызовом: выполнение происходит по имени из тела основного алгоритма.
Как проверить программу
- Нарисуйте семь клеток, отметьте старт и отсутствие стен.
- Выполните один вызов вручную, отмечая каждую команду движения и закрашивания.
- Продолжите ещё два вызова из достигнутого положения, не возвращая Робота на старт.
- Сверьте конечное положение и множество закрашенных клеток отдельно.
Попытка двигаться через стену приведёт к ошибке исполнителя. Эта линейная подпрограмма не содержит обхода препятствий и не обещает работать в произвольном лабиринте. Для компьютерной проверки сначала создайте подходящую обстановку, подключите Робота и начните с исходного состояния.
Справочные материалы: Что такое вспомогательный алгоритм — исходная тема. Связанные уроки: Циклы с известным числом повторений, Поиск пути по графу.
Кратко о главном
- Вспомогательный алгоритм решает часть задачи и вызывается из основного.
- Его также называют подпрограммой.
- Разбиение задачи на части — метод «сверху вниз».
- Один вспомогательный алгоритм можно вызывать много раз.
- После вызова управление возвращается в основной алгоритм.