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