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

9.13 примеры

Программа моделирует работу системы, включающей завод, склад и магазин. Завод производит продукцию и отправляет ее на склад, отку­да ее забирает магазин для реализации. Указанные обьекты реализо­ваны в программе в виде соответствующих задач. Задача , модели­рующая работу склада, контролирует количество товара на складе, не допуская его переполнения. Кроме того, она не допускает отпуск това­ра для магазина, если склад пуст.

procedure   Factore_Shop_Warenhouse is task Factory;

task Shop;

in    Data); out Data);

task    Warenhouse is entry ln_Store ( X entry Out_Store ( X ;

end    Warenhouse;

task   body  Warenhouse   is

N :        constant integer: =   50 ; Pool   :   array ( 1 .. N   )   of  Data; Count:   integer: = 0 ; Injndex, Outjndex   :   integer: = 1 ; begin loop select

when   Count <   N   =>

accept   ln_Store( X:    in   Data ) do

Pool (Injndex ): = X : end   ln_Store; Injndex : = Injndex + 1 ; Count: = Count + 1 ; or

when Count   >   о   = >

accept  Out_Store ( X : out Data) do

X : = Pool ( Outjndex ); end    Out Store:

14»

 

105

Глава 10. Исключения

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

104

 

 

продажа товара

task  body Factory  is

Item   :   Data; begin

loop

...             - -    производство  товара

Warenhouse (Item );   - - передача товара на склад end loop;

главная  процедура

Outjndex : = Outjndex + 1 ; Count: = Count + 1 ; end select; end   loop; end  Warenhouse;

task body   Shop   is

TV :   Data; begin loop

Warenhouse (TV)

end loop; end   Shop;

end Factory; begin null;

end   Factory_Shop_ Warenhouse;