Алгоритм-функция в Кумире

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

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

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

Результат выполнения алгоритма записывается в служебную величину знач и возвращается в точку вызова. Тип возвращаемого значения определяется элементом тип алгоритма, который может быть одним из простых типов языка Кумир.

Приведем пример вспомогательного алгоритма определения меньшего из двух (мид) целых чисел:

  • алг цел мид (цел а, цел в)
  • нач
  • если а < в
  • то знач := а
  • иначе знач := в
  • все
  • кон

Алгоритм возвращает в точку вызова целое значение (на что указывает служебное слово цел, стоящее перед именем алгоритма), записанное в служебную величину знач. Фактическими параметрами алгоритма мид являются две целые величины а и в.

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

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

Фактические параметры должны соответствовать формальным по порядку следования и согласовываться по типам величин.

Например, вызов алгоритма мид можно оформить следующим образом:

  • с := мид (ч1, ч2)

Здесь в алгоритм мид передаются две целые величины ч1 и ч2. Величины ч1 и ч2 являются формальными параметрами. Они согласовываются с фактическими параметрами, используемыми в алгоритме мид (т. е. а и в). В точку вызова возвращается результат работы алгоритма - значение меньшего из двух переданных чисел.