Главная Обратная связь

Дисциплины:






Параметры подпрограмм



Параметры подпрограмм используются для обмена значениями между вызываемой и вызывающей частями программы. Описываемые в заголовке объявления подпрограммы параметры называвются формальными, а те, которые подставляются на их место при вызове, - фактическими. Параметры подпрограмм разделяются на параметры-значения, параметры-переменные ипараметры-константы.

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

Синтаксис описания параметров-значений:

ИмяПодпрограммы ( P1, P2, ..., PN : Тип );

или

ИмяПодпрограммы ( P1 : Тип1; P2 : Тип2; ... );

Если параметры имеют один и тот же тип, то они просто перечисляются через запятую, после чего через двоеточие указывается их тип. Описание разнотипных параметров отделяется лруг от друга символом точки с запятой.

ВАЖНО! В качестве фактических параметров подпрограммы, подставляемых на место фомальных параметров-значений, могут выступать: переменные, константы и выражения (точнее их значения), причем их типы должны быть совместимы по присваиванию с типами соответствующих формальных параметров-значений.

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

Синтаксис описания параметров-переменных:

ИмяПодпрограммы ( VAR P1, P2, ..., PN : Тип );

или

ИмяПодпрограммы ( VAR P1 : Тип1; VAR P2 : Тип2; ... );

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

ВАЖНО! В качестве фактических параметров подпрограммы, подставляемых на место фомальных параметров-переменных, могут выступать ТОЛЬКО ИДЕНТИФИКАТОРЫ ПЕРЕМЕННЫХ.

в)Параметры-константы - аналогичны параметрам-значениям с той лишь разницей, что они не могут изменять свои значения в теле подпрограммы. Попытка изменить значение параметра-константы будет немедленно замечена компилятором.



Синтаксис описания параметров-констант:

ИмяПодпрограммы ( CONST P1, P2, ..., PN : Тип );

или

ИмяПодпрограммы ( CONST P1 : Тип1; CONST P2 : Тип2; ... );

Одно важное замечание: при описание формальных параметров подпрограмм не допускается конструирование типов данных; тип параметра должен быть задан идентификаторм. Например, будет ошибкой описать параметр для передачи массива следующим образом:

PROCEDUREPrintVector( V : array[1..10] of Real );

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

TYPE
Tvector = array[1..10] of Real;

PROCEDUREPrintVector( V : Tvector );

 





sdamzavas.net - 2020 год. Все права принадлежат их авторам! В случае нарушение авторского права, обращайтесь по форме обратной связи...