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

Лекция 06 Процедуры и функции (151028)

.pdf
Скачиваний:
10
Добавлен:
09.03.2016
Размер:
1.07 Mб
Скачать

Иллюстрация механизма

передачи параметров

приложение

Текст

программы

function Multiply1(x:integer;(x,y:integer):integer;

begin

var y:integer):integer;

//параметр-значение

begin

//параметр-переменная

y:=x+y;

 

y:=x+y;

 

Multiply:=x*y;

 

Multiply1:=x*y;

 

end;

 

end;

 

31

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

Пример объявления параметра-константы: procedure Goon(const s:string);

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

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

32

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

Type TBigArray = array [1..100] of string [50];

Var A: TBigArray;

Procedure p9 (Const X: TBigArray);

P9(A);

Данные используются только для чтения.

33

Передача массивов в подпрограммы

- с заданным числом элементов

(определенной длины)

Type a = array[1..10] of real;

Procedure p7 (x: a);

34

Передача массивов в подпрограммы

- массив с неопределенными границами

Procedure p8 (x: array of real);

Var y: array [1..25] of real;

P8(y);

SizeOf() – определение числа элементов в массиве High() – определение верхней границы массива

(равная SizeOf()-1)

35

Параметры - результаты

Type TBigArray = array [1..100] of string [50];

Var A: TBigArray;

Procedure p10 (Out X: TBigArray);

P10(A);

Данные используются только для записи.

36

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

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

B–

подпрограмма

C–

подпрограмма

D–

подпрограмма

E–

подпрограмма

F–

подпрограмма

37

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

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

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

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

38

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

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

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

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

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

39

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

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

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

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

40