Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
UCHPOS98.DOC
Скачиваний:
4
Добавлен:
04.11.2018
Размер:
1.44 Mб
Скачать

5.2.24. Про­це­ду­ра-функ­ция

Опи­са­ние про­це­ду­ры-функ­ции со­сто­ит как ми­ни­мум из трех строк:

function      ИмяФункции      (СписокФормальныхПа­ра­мет­ров)

      ГруппаОпе­ра­то­ров

end      function

из на­чаль­ной стро­ки - за­го­лов­ка; од­ной или не­сколь­ких строк, за­даю­щих те­ло (ГруппаОпе­ра­то­ров), и за­вер­шаю­щей стро­ки. ИмяФункции долж­но удов­ле­тво­рять тем же со­гла­ше­ни­ям, что и обыч­ное имя пе­ре­мен­ной, т.е. быть бу­к­вен­но-циф­ро­вым иден­ти­фи­ка­то­ром, на­чи­наю­щим­ся с бу­к­вы.

Тип возвращаемого функцией значения-результата задается неявно - присоединением к ИмениФункции одного из символов-суф­фиксов (% & ! # $ ), задающих определен­ный эле­мен­тар­ный тип. Суффикс % задает тип INTEGER, & - тип LONG, ! - задает SINGLE, # - тип DOUBLE, $ - тип STRING. Считается, что отсутствие суффикса означает тип SINGLE.

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

ИмяФормальногоПараметра       as      ИмяТипаДан­но­го

В ка­че­ст­ве ИмяТипаДан­но­го мож­но ис­поль­зо­вать за­ре­зер­ви­ро­ван­ные сло­ва integer, long, single, double, STRING, так и имена типов структурных типов данных (смотри 5.2.13)

Ес­ли фор­маль­ный па­ра­метр в про­це­ду­ре яв­ля­ет­ся мас­си­вом, то он в за­го­лов­ке опи­сы­ва­ет­ся в сле­дую­щем ви­де:

ИмяФормальногоПараметра ( ) as ИмяТипаДан­но­го

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

Те­ло про­це­ду­ры-функ­ции (ГруппаОпе­ра­то­ров) обя­за­тель­но долж­но вклю­чать в се­бя хо­тя бы один опе­ра­тор при­свое­ния име­ни функ­ции ка­ко­го-то зна­че­ния, на­при­мер:

function  ABC  (N  as  integer,  M  as  single,  G3 as  double)

            M=N

            G3=M*M

            ABC=2*N

end      function

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

ИмяФункции (СписокФактическихАр­гу­мен­тов)

где СписокФактическихАр­гу­мен­тов - раз­де­лен­ный за­пя­ты­ми на­бор вы­ра­же­ний по од­но­му на ка­ж­дый из фор­маль­ных па­ра­мет­ров, за­дан­ных в опе­ра­то­ре опи­са­ния дан­ной про­це­ду­ры-функ­ции. Формальной перемен­ной чи­слового типа должно соответствовать арифметическое выражение; строко­вой переменной должно соответствовать строковое выражение; формаль­ной переменной-массиву должна соответствовать переменная-массив из элементов того же типа и той же размерности, формальной пе­ременной структурного типа должна соответствовать переменная того же типа.

На­при­мер, для пре­ды­ду­ще­го при­ме­ра вы­ра­же­ние вы­зо­ва мо­жет иметь вид

      ABC  (  3*I,   A,    1.1D-5   )

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]