Функции
Язык Паскаль включает понятие подпрограмм-функций и подпрограмм-процедур.
Представление программы как совокупности или иерархии относительно обособленных фрагментов со строго определенными интерфейсами способствует большей читаемости и простоте составления и отладки программы. Понятие подпрограммы как обособленной именованной части программы со своим собственным локальным контекстом имен является в большинстве языков программирования основным средством структурирования программ.
Таким образом, подпрограмма – это часть программы, оформленная в виде отдельной синтаксической конструкции и снабженная именем.
Стандартные подпрограммы-функции уже приводились при описании выражений, но пользователь может составлять подпрограммы и самостоятельно, помещая их в раздел описаний.
Структура программы практически повторяет структуру всей Паскаль - программы, что подчеркивает регулярный характер языка. Структура подпрограммы-функции следующая.
Function <имя>[(<список формальных параметров>)]:<тип>;
|
|
[<описания>;]
<операторы>
End;
Здесь <имя> – имя функции, по которому происходит обращение к ней при вычислении выражения, с ним связан результат вычислений. Имя функции должно встречаться хотя бы один раз в разделе операторов функции слева в операторе присваивания, то есть результат функции должен быть определен.
<тип> – тип результата, соответствующего имени функции. Специфика функции заключается в том, что после обращения к ней должен быть определен результат, который участвует в выражении и связан с именем функции.
<список формальных параметров> может отсутствовать. Формальным параметрам, в отличие от фактических, не соответствуют никакие значения, – они лишь ставят в соответствие фактические значения и порядок вычислений по подпрограмме, то есть в этом списке должны быть только имена. Каждый параметр, заданный в заголовке, считается локальным в данной подпрограмме так же, как и переменные, описанные в блоке этой подпрограммы.
Допускается три способа задания формальных параметров подпрограммы (в заголовке в круглых скобках). Они могут быть определены следующим образом.