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