Основы программирования

Основы Ada 95 - Процедуры
Индекс материала
Основы Ada 95
Текстовый и числовой ввод-вывод
Процедуры ввода
Основные операторы
Операторы цикла
Основные программные модули
Процедуры
Пакеты
Производные типы
Подтипы
Расширяемые типы
Все страницы
Процедуры

 

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

procedure <ИмяПроцедуры> (<СписокФормальныхПараметров>);

Для записи каждого формального параметра принят следующий формат:

<Имя> : <Вид> <Тип данных>;

где <Вид> указывает направление передачи информации между формальным и фактическим параметрами (in — передача из фактического в формальный параметр, out — из формального в фактический параметр, in out — двунаправленная передача).

ПРИМЕЧАНИЕ

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

 

Пример спецификации:

procedure Sum ( Opl : in Integer := 0; Op2 : in Integer := 0;

Op3 : in Integer := 0: Res : out Integer );

Тело процедуры в общем случае имеет вид

procedure <ИмяПроцедуры>

(<СписокФормальныхПараметров>) is

<объявления локальных переменных и констант>

begin

<операторы>

end <ИмяПроцедуры>;

Пример тела:

procedure Sum ( Opl : in Integer := 0; Op2 : in Integer := 0;

Op3 : in Integer := 0: Res : out Integer ) is

begin

Res := Opl + Op2;

Res := Res + Op3;

end Sum;

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

Обращаются к процедуре с помощью оператора вызова, он имеет вид

<ИмяПроцедуры> (<СписокФактическихПараметров>);

Примеры операторов вызова:

Sum (4. 8, 12. d); -- переменная d получит значение 24

Sum (4. 8. Res => d); -- переменная d получит значение 12

ПРИМЕЧАНИЕ

В первом операторе вызова задано 4 фактических параметра, во втором операторе — 3 фактических параметра. Во втором операторе использованы как традиционная (позиционная) схема, так и именная схема сопоставления формального и фактического параметров.