Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
25
Добавлен:
25.03.2015
Размер:
824.83 Кб
Скачать

Передача параметров по ссылке

Параметры-переменные (variable parameter), описываются с ключевым словом var;

при подстановке фактического аргумента не создается его копия во временной памяти

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

соответствующий фактический параметр должен

быть переменной !

21

 

Параметры-константы

пример объявления параметра-константы:

procedure Goon(const s:string);

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

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

22

Схема структуры блоков некоторой программы

A–основная программа

B–подпрограмма

E–подпрограмма

C–подпрограмма

F–подпрограмма

D–подпрограмма

Область видимости (область действия объектов).

Любую подпрограмму можно описать локально в разделе описаний другой подпрограммы.

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

Допускается произвольная иерархия вложенности подпрограмм.

24

Локальные и глобальные объекты.

Все константы, переменные, типы, функции и процедуры, описанные в подпрограмме, являются локальными и доступны только внутри этой подпрограммы или в ее подпрограммах.

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

глобальными.

Поэтому обмен данными между программой и вызываемой ею процедурой может производиться и через глобальные переменные.

25

Для доступа к объектам, описанным в различных блоках, требуется соблюдать следующие правила:

1.Имена объектов, описанные в некотором блоке считаются известными в пределах данного блока, включая и все вложенные блоки.

2.Имена объектов должны быть уникальны в пределах данного блока и могут совпадать с именами объектов из других блоков.

3.Локальные имена могут совпадать с глобальными. В этом случае локальные имена как бы «экранируют » глобальные, и тем самым делают их недоступными. (Т.е. это разные переменные, хотя и с одинаковыми именами.)

26