Begin
{раздел операторов}
end;
Функция активизируется при вычислении выражения с функцией. Вызов функции в выражении имеет вид:
Ид_функции [(список_фактических_параметров)];
В модуле должен содержаться, по крайней мере, один оператор присваивания, в котором идентификатору функции присваивается значение. Результатом функции (тем значением, которое возвращается в точку вызова) является последнее присвоенное идентификатору функции значение.
Если такой оператор присваивания отсутствует или он не был выполнен, то значение, возвращаемое функцией, не определено.
Синтаксис оператора возврата значения из функции:
Ид_функции:= выражение
Выражение должно быть совместимо по присваиванию с типом результата функции (см. раздел Совместимость в операциях присваивания стр. 18).
Наличие идентификатора какого-либо объекта языка (переменой, константы, типа, процедуры или функции) в разделе описаний означает определение идентификатора. Каждый раз, когда идентификатор встречаются в программе, он должен находиться в области действия этого описания.
|
|
Область действия идентификатора распространяется от их места его описания в тексте до конца текущего блока, включая все блоки, входящие в текущий блок. Так переменная i, описанная в основной программе (рис. 23), будет видна и в самой программе, и в процедурах Blok2 и Blok3.
Рисунок 23 – Области видимости описаний
Описание идентификатора должно предшествовать любому вхождению идентификатора в текст программы.
Рассмотрим следующую ситуацию. Допустим, что в программе Blok1 вложен блок процедуры Blok2. Если в обоих блоках имеются описания переменных с одинаковым идентификатором, например, k, то в блоке Blok1 имеется доступ только к идентификатору k, который в нем описан, и аналогично внутри блока Blok2 имеется доступ только к идентификатору k, описание которого он содержит (рис. 24).
Рисунок 24 – Переопределение идентификатора во
внутреннем блоке