Примеры операторов вызова процедур - Структурирование программы

T; {нет списка фактических параметров

Summa(x, y,z); {x, y,z - фактические параметры; x: integer; у, z; real} a(z); {z - фактический параметр, z:d}

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

Функции

Подпрограмма-функция предназначена для вычисления некоторого значения. Описание функции содержит два отличия от описания процедуры.

Заголовок функции имеет вид:

Function имя функции (список формальных параметров): тип функции;

Тип функции - это тип возвращаемого результата.

В разделе операторов имени функции должно быть присвоено значение возвращаемого результата.

Пример:

Function f (x:integer):real; begin

F :=sin(x)+sqr(x);

End;

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

Например:

У :=f(a); {а - фактический параметр}

В Pascal для каждой функции автоматически определена локальная переменная Result того же типа, что и возвращаемое функцией значение. Эту переменную можно использовать в промежуточных вычислениях. Значение Result при вызове функции не определено. Последнее присвоенное ей значение и вернется как значение функции.

Примеры:

Function f (х: integer) :real; begin

Result :=sin(x)+sqr(x);

End;

Локальная переменная Result может использоваться и в правой части оператора присваивания, не вызывая рекурсивного вызова функции

Function f: integer; begin

Result:=l; result:= result +1;

End;

Функция f будет возвращать значение 2. А выполнение функции g:

Function g: integer; begin

G:=l;

G:=g+l;

End;

Приведет к зацикливанию программы.

В Delphi функция может быть вызвана как процедура. При этом возвращаемое значение просто теряется.

Формальные и фактические параметры

Формальные параметры можно разбить на несколько категорий. Рассмотрим две из них:

Параметры-значения;

Параметры-переменные.

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

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

При передаче параметров-переменных в подпрограмму передаются сами переменные, а не их копии (фактически передаются их адреса в порядке, объявленном в заголовке подпрограммы). Следовательно, подпрограмма имеет доступ к этим параметрам и может их изменять. Параметр-переменная используется в том случае, когда значение должно передаваться из подпрограммы вызывающей программе. При вызове подпрограммы на месте параметра-переменной в качестве фактического параметра должна использоваться переменная идентичного типа.

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

Procedure summa(a:integer;b:real; var c:real); begin

C:=a+b;

End; {a, b - параметры-значения; с - параметр-переменная}

Похожие статьи




Примеры операторов вызова процедур - Структурирование программы

Предыдущая | Следующая