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 )); |
| Оглавление| |