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

8.6 примеры

П   Пример 1 .

Пакет с пассивными ресурсами в виде   объектов, не требующий тела.

package   OBJECTS    is

N             :   constant : =   50 ;

X.Y.Z   :   fixed;

V   :   array (1 .. N ) of fixed ;    - - обьекты анонимного типа

W :   array (1 .. N , 1 .. 25 ) of   float;

Flag   :   boolean : = True ;

end   OBJECTS;

D   Пример 2.

Пакет с пассивными ресурсами в виде совокупности переменных и типов package WORK  is

type    Units   is delta  0.01    range   0.0. . 16.0;

81

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

80

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

 

 

type     Elem   is integer   range   - 40 . .    77; VA, VB    :    Elem;

Z_U        :    constant   Units : = 2 .44 ; end   WORK;

D   Пример 3

Пакет с пассивными ресурсами и приватной частью.

package    POLICE   is

type Kent  is   private;

type Art     is    limited    private;

constant    Kent; constant   integer: = 99 ;

array (2 .. Size, 10 .. Size ) array (- Size .. Size )   of

Max_Kent :

Size         :

of

Art;

Kent;

type   Place   is

type   Pipe     is private

integer    range new  float;

-8 .. 32

type   Kent  is

type  Art     is

Max_Kent   :     constant   Kent : = 16 ; end    POLICE;

В пакете   Police в качестве ресурсов описаны два личных типа Kent и Art, а также субконстанта Max_Kent. В спецификации   пакета присутствует личный (невидимый из-вне пакета) раздел описания ре­сурсов после слова  private , в котором для компилятора задаются под­робности реализации приватных типов и субконстант и {в соответст­вии с которыми они   использовались в теле пакета, если бы оно тре-бовалсь ).

D   Пример 4.

Пакет с активными ресурсами.

package   PAGE_WORK   is type Elem   is private record

procedure ln_Page   ( Object :    in   Elem ); procedure Out_Page ( Object:    out   Elem ); private Error_Page :    exception ; - - исключение для обработки ошибок

- - в процедурах end   PAGE_WORK ;          - -  Clean , In_Page ,  Out_Page

package body nx : constant Ny: constant Page : array

of   Elem ; Boolean   is

PAGE_WORK   is := 60; := 45; (1 ..Nx, 1 .. Ny)

function   View_Page   return

end   View_Page;

procedure Clean      ( Object:   in    Elem )   is

end   Clean;

procedure ln_Page   ( Object:    in   Elem )   is

end   ln_Page;

procedure Out_Page (Object; out  Elem )   is

end Out_Page; end   PAGE_WORK;

Пакет Page_Work обеспечивает пользователю ресурсы для работы со страницами символов с помощью процедур :

•   очистка страницы  ( Clean )

•   вставка вимвола на страницу   ( In_Page )

•   выборка символа из страницы ( Out_Page )

В теле пакета для реализации этих ресурсов добавлена процедуры-просмотра страницы View_Page, а так же две константы nx, Ny, да­ющие размер страницы, и вспомогательная переменная Page.

X Y Dn

Positive ; Positive; Character

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

И

 

end   record ; procedure Clean

(Object :    in    Elem)

 

82

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

 

[ PRIVATE