Пиши Дома Нужные Работы

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

Передача данных в подпрограмму с помощью параметров. Формальные и фактические параметры

 

Как заголовок процедуры, так и заголовок функции может содержать список формальных параметров, который имеет следующий формат:

(<описание параметра 1>; < описание параметра 2>;…

< описание параметра n>) .

 

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

a) параметры – значения:

<имя параметра>: <тип параметра>;

b) параметры – переменные:

Var <имя параметра>: <тип параметра>;

c) параметры – константы:

Const <имя параметра>: <тип параметра>;

d) параметры без типа:

<имя параметра>;

в конце описания любого формального параметра, кроме последнего ставится точка с запятой.

Формальные параметры подпрограммы указывают, с какими параметрами следует обращаться к этой подпрограмме, т.е. количество параметров, их последовательность и типы. Активизация подпрограммы осуществляется с помощью операции вызова подпрограммы, которая имеет следующий синтаксис:

<имя процедуры>(< список фактических параметров >); в случае процедуры;

 

< имя переменной >:=<имя функции>(< список фактических параметров >); в случае функций вызов функции должен присутствовать в выражении как операнд.

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

 

Рассмотрим способы передачи параметров.

Параметры – значения.

Пусть имеется процедура с заголовком:

Procedure Proc1(par1: type1; par2,par3: type2);


В этом случае в ячейку памяти формального параметра передается копия фактического параметра и обратно не возвращается (рис. 9.1).



 

       
 
 
   
Рис. 9.1

 


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

 

Параметры – переменные.

Пусть имеется процедура с заголовком:

Procedure Proc1(Var par1, par2: type1; Var par3: type2);

В этом случае подпрограмме передается адрес фактического параметра. По имеющемуся адресу изменяется содержимое ячеек памяти фактического параметра, т.е. выполняется возврат значения в вызывающую программу. (рис. 9.2).

 

       
 
 
   
Рис. 9.2

 

 


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

 

Параметры – константы.

Пусть имеется процедура с заголовком:

Procedure Proc1(Const par1, par2: type1; Const par3: type2);

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

 

 

       
 
 
   
Рис. 9.3

 

 


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

 

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

Бестиповые параметры могут передаваться только по адресу, т. е. как параметры – переменные или параметры – константы. Для параметра без типа в списке формальных параметров тип в описании не указывается.

Пусть имеется процедура с заголовком:

Procedure Proc1(Var par1, par2; Const par3);

Вследствие отсутствия типа, нельзя использовать бестиповые параметры так же, как типизированные параметры. Перед использованием параметра требуется параметр без типа привести к какому-либо типу.

Операция приведения типа имеет следующий вид:

<имя типа>(<имя переменной>) .

Например,

Var a: integer;

R: real;

…………..

R:= real(a) /2;

…………..

где real(a) – операция явного приведения целочисленной переменной в вещественный тип.

 






ТОП 5 статей:
Экономическая сущность инвестиций - Экономическая сущность инвестиций – долгосрочные вложения экономических ресурсов сроком более 1 года для получения прибыли путем...
Тема: Федеральный закон от 26.07.2006 N 135-ФЗ - На основании изучения ФЗ № 135, дайте максимально короткое определение следующих понятий с указанием статей и пунктов закона...
Сущность, функции и виды управления в телекоммуникациях - Цели достигаются с помощью различных принципов, функций и методов социально-экономического менеджмента...
Схема построения базисных индексов - Индекс (лат. INDEX – указатель, показатель) - относительная величина, показывающая, во сколько раз уровень изучаемого явления...
Тема 11. Международное космическое право - Правовой режим космического пространства и небесных тел. Принципы деятельности государств по исследованию...



©2015- 2024 pdnr.ru Все права принадлежат авторам размещенных материалов.