Функции. При описании процедуры указывается заголовок и блок, который не отличается от блока программы

Процедуры

При описании процедуры указывается заголовок и блок, который не отличается от блока программы. Заголовок состоит из ключевого слова procedure, имени процедуры и необязательного списка параметров в круглых скобках с указанием типа каждого параметра. Формат описания процедуры:

Procedure <Имя процедуры > [(формальные параметры)];

<разделы описаний>

begin

<раздел операторов>

end;

Для обращения к процедуре используется оператор вызова процедуры. Он состоит из имени процедуры и списка аргументов, заключенного в круглые скобки.

Пример.

Program One;

var z, f, z1, f1, a, b, c, d: real;...

procedure Calculation(x, y: real; var root, dif: real);

var s: real;

begin

s:=x*x + y*y;

root:= sqrt (s);

dif:= x - y;

end;

Begin

...

Calculation(1.25, 3.48, z, f);

...

Calculation(0.16, 2.8, z1, f1);

...

Calculation(a+b, a-b, c, d);

...

writeln(‘z=’, z:5:3, ‘ f=’, f:5:3, ‘ z1=’, z1:5:3, ‘ a=’, a:6:4, ‘ b=’, b:6:4);

...

End.

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

Описание функции состоит из заголовка и блока. Заголовок содержит ключевое слово function, имя функции, необязательный список формальных параметров, заключенный в круглые скобки, и тип значения, возвращаемого функцией. Формат описания функции:

function <Имя > [(формальные параметры)]:<тип результата>;

<разделы описаний>

begin

<раздел операторов>

end;

Возвращаемое значение может иметь любой тип, кроме файлового.

Блок функции представляет собой локальный блок, по структуре аналогич­ный блоку процедуры. В теле функции должен быть хотя бы один оператор присваивания, в левой части которого стоит имя функции. Именно он и определяет значение, возвращаемое функцией. Если таких операторов не­сколько, то результатом выполнения функции будет значение последнего оператора присваивания. В этих операторах вместо имени функции можно указывать переменную result, которая создается в качестве синонима для имени функции. В отличие от имени функции, переменную result можно использовать в выражениях блока функции. С помощью переменной result можно в любой момент получить внутри блока доступ к текущему значению функции.

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

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

Пример.

Program Two;

var x, y, z, z1, z2: real;...

function Gamma(a, b: real): real;

begin

Gamma:= sqrt(a*a + b*b);

end;

Begin

...

z:=Gamma(1.5, 3.48);

writeln (‘z=’, z:5:3);

...

z1:=Gamma(0.16, 2.8);

...

writeln (sin(Gamma(0.1, 0.2)):6:4);

...

End.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: