Алгоритм-процедура в Кумире

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

Часто для упрощения решения исходной задачи, ее разбивают на подзадачи - более простые, с точки зрения программирования, части. Алгоритмы, в которых решаются подзадачи, в языке Кумир называются вспомогательными (или подчиненными) алгоритмами.

Применение вспомогательных алгоритмов в программировании дает ряд преимуществ:

  • удается избежать многократно повторяемого кода в программе;
  • созданный ранее алгоритм можно использовать при построении других алгоритмов;
  • структура программы становится более понятной;
  • оказывается более простым процесс отладки программы.

В Кумире вспомогательные алгоритмы, подобно подпрограммам в языке Паскаль, делятся на алгоритмы-функции и алгоритмы-процедуры.

Алгоритмы-процедуры

Формат описания алгоритма-процедуры в общем виде можно представить в следующем виде:

  • алг имя алгоритма (описание параметров)
  • нач
  • последовательность команд
  • кон

Параметры вспомогательного алгоритма (если они есть) называются фактическими. Их описание происходит в круглых скобках после имени алгоритма. Описание включает в себя информацию о типах параметров и о том, чем они являются - аргументами или результатами:

  • арг – описания параметров-аргументов;
  • рез – описания параметров-результатов;
  • аргрез (или арг рез) – описания параметров, являющихся одновременно и аргументами, и результатами.

Рассмотрим пример вспомогательного алгоритма определения суммы цифр целого двухзначного числа (СЦДЧ):

  • алг СЦДЧ (арг цел num, рез цел S)
  • нач
  • S := div (num, 10) + mod (num, 10)
  • кон

В заголовке алгоритме СЦДЧ описывается два параметра: первый — параметр-аргумент, принимающий число, сумму цифр которого нужно определить, второй — параметр-результат, принимающий искомую сумму.

Команда вызова алгоритма-процедуры

Алгоритм-процедура может быть вызван как из основного, так и из вспомогательного алгоритма. Для обращения к алгоритму-процедуре используется команда вызова, имеющая следующий вид:

  • имя алгоритма (параметры вызова)

Параметры вызова (если они есть) называются формальными параметрами.

Параметры вызова представляют собой необходимые для работы вспомогательного алгоритма данные. Между формальными параметрами в команде вызова и фактическими параметрами в заголовке алгоритма должно быть соответствие, которое определяется порядком их следования. Параметры должны быть согласованы между собой, в том числе по типам величин.

Так, алгоритм, в котором содержится команда вызова алгоритма СЦДЧ может выглядеть, например, следующим образом:

  • цел num, S
  • ввод num
  • СЦДЧ (num, S)
  • вывод S