Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Чернов Шафеева.doc
Скачиваний:
11
Добавлен:
15.07.2019
Размер:
1.57 Mб
Скачать

2.7.3. Вызов подпрограмм

Вызов подпрограмм производится указанием имени или имени со спис­ком фактических параметров. Фактические параметры не указываются, если в подпрограмме используются только глобальные переменные и в заголовке программы отсутствует список формальных параметров. Если заголовок подпрограммы содержит формальные параметры, то при обращении к подп­рограмме должен обязательно присутствовать список фактических парамет­ров, которые записываются через запятую.

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

2.7.4. Процедуры

Структура описания процедуры с параметрами имеет вид

PROCEDURE <имя>(формальные параметры);

{ раздел описания (метки, константы, типы, переменные ) }

BEGIN

{операторы подпрограммы}

END;

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

Пример программы вычисления второй и четвертой степеней числа:

PROGRAM PROS;

VAR X, Y, A, A2, A4: INTEGER; {A – исходная переменная, A2 - A2, A4 - A4 ,

глобальные переменные}

PROCEDURE STEP24; {процедура без параметров}

BEGIN

A2:=A*A;

A4:=A2*A2;

WRITELN(A:5, A2:5, A4:6);

END;

BEGIN {основная программа}

READ(Y, X);

WRITELN('Число; квадрат; куб');

A:=X;

STEP24; {вызов подпрограммы}

A:=Y;

STEP24; {вызов подпрограммы}

END.

Любой из формальных параметров процедуры может быть либо парамет­ром значением, либо параметром переменной. Формальному параметру  значению (обычно для задания исходных данных) может соответствовать фактический параметр  константа, переменная или выражение. Параметру­ переменной может соответствовать только переменная. Обычно параметры-­переменные используются для передачи результатов в вызывающую програм­му. Параметрам-переменным в заголовке функции должно предшествовать слово VAR.

Пример: PROCEDURE P(Y, X:REAL; VAR Z1,Z2:REAL);

{где Y,X  параметры-значения, Z1,Z2  параметры-переменные}.

Передачу результатов можно производить и через глобальные пере­менные.

Однако злоупотребление глобальными связями делает программу запутанной и сложной в отладке. В связи с этим рекомендуется там, где это возможно передавать результаты через параметры-переменные. С дру­гой стороны, нежелательным является описание всех формальных парамет­ров-переменных.

Чем меньше параметров объявлено параметрами-переменными и чем меньше используется глобальных переменных, тем меньше возможность по­лучения непредвиденных программистом побочных эффектов в программе.

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