Подпрограмма – функция
Подпрограмма-функция предназначена для вычисления какого-либо параметра. Функция состоит из заголовка и тела функции.
Заголовок функции имеет вид:
FUNCTION <ИМЯ> (СПИСОК ФОРМАЛЬНЫХ ПАРАМЕТРОВ ):<ТИП>;
где FUNCTION - служебное слово; ИМЯ - имя процедуры, определяемое в соответствии с общими правилами построения идентификаторов; СПИСОК ФОРМАЛЬНЫХ ПАРАМЕТРОВ – перечень имен для обозначения исходных данных и результатов работы процедуры с указанием их типов.
Допускается описание функции, не содержащее <СПИСКА ФОРМАЛЬНЫХ ПАРАМЕТРОВ>: PROCEDURE < ИМЯ >:<ТИП>;
в этом случае параметры в функцию передаются через систему глобальных параметров.
У этой подпрограммы два основных отличия от процедуры. Первое отличие – заголовок. Он состоит из слова Function, за которым следует имя функции, затем в круглых скобках – список формальных параметров, затем через двоеточие записывается тип функции, т.е. тип возвращаемого параметра. Функция может возвращать типы вещественные, порядковые, строкового и любого указателя.
Второе отличие в том, что процедура может иметь несколько выходных параметров-результатов, а функция только одно значение, передаваемое через ее имя. Именно этим объясняется то, что в теле функции хотя бы один раз имени функции должно присваиваться вычисленное значение.
Структура функции такая же, как и процедуры.
Пример. Функция вычисления тангенса tan(x) от аргумента х.
Function Tan(х: real): real;
Var tangens: real;
BEGIN
tangens:= Sin(x)/Cos(x); tan:= tangens;
END;
Для вызова функции из основной программы или другой подпрограммы следует в выражении, где необходимо использовать значение функции, указать имя функции со списком фактических параметров, которые должны совпадать по количеству и типам с формальными параметрами функции. Например, надо вычислить , оператор присваивания будет
Y:=Tan(x)/(1+Sqr(Tan(x));