Вспомогательные алгоритмы
Ключевые слова:
При построении новых алгоритмов нередко возникают ситуации, когда в разных местах алгоритма необходимо выполнение одной и той же последовательности шагов обработки данных. Для такой последовательности шагов создают отдельный алгоритм, называемый вспомогательным. В качестве вспомогательных могут использоваться алгоритмы, ранее разработанные для решения других задач.
Вспомогательный алгоритм — алгоритм, целиком используемый в составе другого алгоритма.
Пример 1. В среде КуМир составим алгоритм для исполнителя Робот, под управлением которого он нарисует узор:
Начальное положение Робота отмечено звёздочкой. В алгоритме использован вспомогательный алгоритм фигура.
использовать Робот
алг узор
нач
фигура
вправо; вниз
фигура
вправо; вниз
фигура кон
алг фигура вач
закрасить; вниз
закрасить; вправо; закрасить; вправо; закрасить
вверх; закрасить кон
При представлении алгоритмов с помощью блок-схем для обозначения команды вызова вспомогательного алгоритма используется блок «предопределённый процесс» (рис. 2.3), внутри которого записывается название (имя) вспомогательного алгоритма, после которого в скобках перечисляются параметры — входные данные и результаты.
Вспомогательный алгоритм делает структуру алгоритма более понятный.
Пример 2.Вспомним алгоритм вычисления степени с натуральным показателем у = ап. Соответствующая блок-схема:
Степень с целым показателем у = ах, где х — целое число, а * О вычисляется так:
В приведённой записи дважды фигурирует вычисление степени с натуральным показателем. Поэтому в алгоритм вычисления степени с целым показателем можно включить вызов вспомогательного алгоритма вычисления степени с натуральным показателем. Соответствующая блок-схема:
Алгоритм, представленный на блок-схеме, является основным по отношению к вызываемому в нём вспомогательному алгоритму.
Параметрами используемого вспомогательного алгоритма являются величины а, п, у. Это формальные параметры, они используются при описании алгоритма. При конкретном обращении к вспомогательному алгоритму формальные параметры заменяются фактическими параметрами, т. е. именно теми величинами, для которых будет исполнен вспомогательный алгоритм. Типы, количество и порядок следования формальных и фактических параметров должны совпадать.
Команда вызова вспомогательного алгоритма исполняется следующим образом (рис. 2.4):
1) формальные входные данные вспомогательного алгоритма за
меняются значениями фактических входных данных, указан
ных в команде вызова вспомогательного алгоритма;
2) для заданных входных данных исполняются команды вспомо
гательного алгоритма;
3) полученные результаты присваиваются переменным с именами
фактических результатов;
4) осуществляется переход к следующей команде основного алго
ритма.
Рис. 2.4. Схема выполнения команды вызова вспомогательного алгоритма
Алгоритм, в котором прямо или косвенно содержится ссылка на него же как на вспомогательный алгоритм, называют рекурсивным.
Рассмотрим несколько примеров рекурсивных алгоритмов.