Введение в программирование - Учебное пособие (Корочкин А. В.)

7.6 примеры

D   Пример 1.

Процедура содержит вложенные функции.

procedure  Art (А, В. С : in Elem ;

Rez_Max, Rez_Min : out  Elem ) is

function Max (X : in Elem ;   Y : out  Elem ) return Elem    is begin

if  X<Y then return   Y; else

return   X; end   if ; end Max;

function     Min (X: in Elem ; Y : out Elem ) return Elem   is begin

if  X > Y then return   X; else

return   Y; end   if ; end Max; begin  - -    Art

Rez_Max : = Max (A, Max ( В , С )); Rez_Min : = Min (A, Min ( В, С ));

end  Art;

D   Пример 2. - -   неограниченный  тип

10  — Корочкин А.  В.

Глава 8. Пакеты

71

70

Ада 95. Введение в программирование

 

type   Vector is   array(integer  range <>) of  Item ; procedure Swap_Vector (VA, VB :   in   out  Vector) is

Temp : Vector (VA'first . . VA'last); - - локальное описание begin

if    VA'first   /=   VB'first  or   VA'last   /=    VB'last    then

raise Vector_Error;   - -   возбуждение исключения end   if;

Temp:=  VA;

VA     := VB;

VB    : = Temp;

end   Swap_Vector;

В процедуре Swap_Vector используется неограниченный тип Vector для описания формальных параметров. Этим достигается возможность использования данной процедуры для работы с векторами любой размерности. В теле процедуры осуществляется проверка размерности обрабатывемых векторов и в случае ошибки в задании их границ воз­буждается исключения Vector_Error. D Пример вызова процедуры Swap_Vector:

Swap_Vector ( X (1 .. 10 ), Y (1 .. 10 ));