Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Проги, ЛЕКЦИИ / Программирование Лекция 10 подпрограммы.pps
Скачиваний:
16
Добавлен:
12.02.2015
Размер:
1.11 Mб
Скачать

Глобальные и локальные

Параметры

Формальные

При описании подпрограммы

Фактические

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

Параметры

 

Способ

Изменяются

 

Передачи

фактические

 

 

параметры

 

 

при вызове

Параметры-

Копия в

Нет

значения

стеке

 

Параметры-

По

Да

переменные

ссылке

 

Параметры-

По

Нет

константы

ссылке

 

ПРИМЕР

Заголовок Вызов x:=9; y:=2;

Procedure P(m,n:real); Begin n:=m; end; P(5+sqrt(x),y); {x=9; y=2;}

Procedure P(Var m,n:real);

Begin

n:=m; end;

P(x,y);

{x=9, y=9}

ProcedureP(Const m,n:real);

Begin

n:=m; end;

P(x);

{x=9; y=2;}

Массив – параметр

подпрограммыType mas=array[1..10] of integer; matr=array[1..10,1..10] of integer;

Procedure Mas_Work(const m:mas); Begin … end;

Var A:mas; B:array[1..10] of integer; C:array[1..10] of mas;D:matr;

Begin Mas_Work(A);

Mas_Work(B);

НЕПРАВИЛЬНО

 

 

 

 

 

For i:=1 to 10 do Mas_Work(c[i]);

 

НЕПРАВИЛЬНО

For i:=1 to 10 do Mas_Work(D[i]);

 

 

 

 

End.

 

 

 

 

 

 

 

Открытые массивы

Только одномерный

Индексы с нуля и до максимального

Параметры без типа

Надо привести к определенному типу

Параметры без типа

ИЛИ Разместить по адресу другой переменной

Параметры без типа

Параметры – процедуры Параметры - функции

Создать процедурный тип

При описании подпрограммы процедурного типа использовать режим дальней адресации

В формальных параметрах подпрограммы указать переменную процедурного типа