Часто для упрощения решения исходной задачи, ее разбивают на подзадачи - более простые, с точки зрения программирования, части. Алгоритмы, в которых решаются подзадачи, в языке Кумир называются вспомогательными (или подчиненными) алгоритмами.
Применение вспомогательных алгоритмов в программировании дает ряд преимуществ:
- удается избежать многократно повторяемого кода в программе;
- созданный ранее алгоритм можно использовать при построении других алгоритмов;
- структура программы становится более понятной;
- оказывается более простым процесс отладки программы.
В Кумире вспомогательные алгоритмы делятся на алгоритмы-функции и алгоритмы-процедуры.
Алгоритмы-процедуры
Формат описания алгоритма-процедуры в общем виде можно представить в следующем виде:
алг имя алгоритма (описание параметров)
нач
последовательность команд
кон
Параметры вспомогательного алгоритма (если они есть) называются фактическими. Их описание происходит в круглых скобках после имени алгоритма. Описание включает в себя информацию о типах параметров и о том, чем они являются - аргументами или результатами:
арг – описания параметров-аргументов;
рез – описания параметров-результатов;
аргрез (или арг рез) – описания параметров, являющихся одновременно и аргументами, и результатами.
Рассмотрим пример вспомогательного алгоритма определения суммы цифр целого двухзначного числа (СЦДЧ):
В заголовке алгоритме СЦДЧ описывается два параметра: первый — параметр-аргумент, принимающий число, сумму цифр которого нужно определить, второй — параметр-результат, принимающий искомую сумму.
Команда вызова алгоритма-процедуры
Алгоритм-процедура может быть вызван как из основного, так и из вспомогательного алгоритма. Для обращения к алгоритму-процедуре используется команда вызова, имеющая следующий вид:
имя алгоритма (параметры вызова)
Параметры вызова (если они есть) называются формальными параметрами.
Параметры вызова представляют собой необходимые для работы вспомогательного алгоритма данные. Между формальными параметрами в команде вызова и фактическими параметрами в заголовке алгоритма должно быть соответствие, которое определяется порядком их следования. Параметры должны быть согласованы между собой, в том числе по типам величин.
Так, алгоритм, в котором содержится команда вызова алгоритма СЦДЧ может выглядеть, например, следующим образом: