64. Как классифицируются и для чего применяются подпрограммы
В Паскале подпрограммы делятся на процедуры и функции.
Синтаксически процедуры и функции состоят из заголовка (содержащего ключевое слово procedure или function, имени, за которым может следовать описание передаваемых параметров в скобках, тип возвращаемого значения через символ двоеточия для функций и точки с запятой), после заголовка следует тело, после которого ставится символ ;.
Тело процедуры, как и программы, в свою очередь может содержать описания процедур и функций. Таким образом, процедуры и функции могут быть вложены друг в друга как угодно глубоко, при этом тело программы — самое верхнее в цепочке.
Причём содержимое секций описания переменных, типов, констант, внешнего тела (процедуры, функции, программы), расположенных перед описанием процедуры/функции, доступны внутри неё. Также, в большинстве диалектов из процедуры можно обращаться к параметрам внешней процедуры.
Вслед за заголовком процедур/функций вместо тела может помещаться ключевое слово forward, это делается в том случае, если описание процедуры/функции располагается в программе после её вызова, и связано с поддерживаемой в Паскале возможностью компиляции программы за один проход.
Процедуры отличаются от функций тем, что функции возвращают какое-либо значение, а процедуры — нет.
Стpуктуpа оформления функции в программе:
FUNCTION <имя>(формальные параметры):<тип>;
{разделы описаний}
{описание вложенных процедур и функций}
BEGIN
{операторы функции}
<имя>:= <выражение> {обязательный оператор}
END;
Структура оформления процедуры:
PROCEDURE <имя>(формальные параметры);
{раздел описаний процедуры}
{описания вложенных процедур и функций}
BEGIN
{операторы подпрограммы}
END;