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

DELPHI 7

.pdf
Скачиваний:
89
Добавлен:
15.08.2019
Размер:
11.38 Mб
Скачать

vk.com/club152685050 | vk.com/id446425943

Механизм передачи параметров

по значению (параметр-значение)

по ссылке (параметр-переменная)

параметр-константа

Передаваемый параметр может иметь встроенный или пользовательский тип.

25

vk.com/club152685050 | vk.com/id446425943

Передача параметров по значению

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

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

26

vk.com/club152685050 | vk.com/id446425943

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

- по значению

Procedure p4 (x: real; y: real);

P4(A, B);

Передается копия значений A и B.

27

vk.com/club152685050 | vk.com/id446425943

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

Параметры-переменные (variable parameter),

описываются с ключевым словом var;

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

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

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

28

vk.com/club152685050 | vk.com/id446425943

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

- по ссылке (имени)

Procedure p5 (var x: real; var y: real);

P5(A, B);

Передаются сами переменные A и

B, ссылки на фактические переменные.

29

vk.com/club152685050 | vk.com/id446425943

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

Procedure p6 (x: real; var y: real);

P6(A, B);

Xпередается по значению;

Yпередается по имени (ссылке).

30

Иллюстрацияvk.com/club152685050 | vk.com/id446425943механизма

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

приложение

Текст

программы

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

vk.com/club152685050 | vk.com/id446425943

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

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

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

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

32

vk.com/club152685050 | vk.com/id446425943

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

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

Var A: TBigArray;

Procedure p9 (Const X: TBigArray);

P9(A);

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

33

vk.com/club152685050 | vk.com/id446425943

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

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

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

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

Procedure p7 (x: a);

34