Лекция: Пример 1.7.

Использование одинаковых имен в различных областях действия.

 

Program Q;

Var

Y: Real;

X: Char;

Const

C=10;

Procedure Al (X, Z: Real);

Var

C: Real;

Begin

C := X + Z;

X := 2 * X;

Y := 1;

Writeln (‘C = ‘, C, ‘ X = ‘, X, ‘Y = ‘, Y)

End;

Begin

X := ’A’;

Y := 0.5;

Al (Y, 0.1);

Writeln (‘C = ‘, C, ‘ X = ‘, X, ‘Y = ‘, Y)

End.

 

 

 

В данной программе используются идентификаторы Q, Y, C, X, Z, причем идентификаторы C, X используются как локальные и как глобальные переменные. Справа изображены области действия используемых имен. Здесь через CГ, XГ обозначены глобальные переменные C, X, через CЛ, XЛ – локальные переменные C, X.

В программе имеется два оператора вывода Writeln. Первым из них будет выполнен оператор, находящийся в подпрограмме Al. В результате будут выведены значения С, X, Y, равные:

 

С=0.6 X=1 Y=1.

 

Сразу за ним выполняется оператор Writeln, находящийся в вызывающей программе. В результате будут выведены значения С, X, Y, равные:

 

C=10 X=’A’ Y=1.

 

1.3. Функции

1.3.1. Описание функций

Объявление функции размещается в разделе процедур и функций того блока, в котором эта функция вводится в употребление.

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

Первое отличие.

Заголовок функции имеет следующий вид, который иллюстрирует рисунок 1.7.

 

 

Рисунок 1.7 – Синтаксическая диаграмма
заголовка функции

 

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

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

Заголовок функции завершается указанием имени типа возвращаемого значения функции (<Идентификатор_типа>). При его описании может быть использовано только имя типа, но не его задание. Поэтому тип возвращаемого значения должен быть стандартным или предварительно описанным.

Второе отличие.

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

 

<Идентификатор_функции> := <Выражение>

 

Хотя бы один оператор такого вида должен быть выполнен.

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

 

еще рефераты
Еще работы по информатике