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