Текст программы:
;---------------------------------------------------------------------------------------;
;ЛАБОРАТОРНАЯ РАБОТА № 5 ;
;Моделирование реальных систем массового обслуживания ;
;Вариант №1: Моделирование работы отдела одежды магазина ;
;----------------------------------------------------------------------------------------;
;ОБЪЯВЛЕНИЕ И ОПИСАНИЕ ВИДОВ ПАМЯТИ
;-------------------------------------------------------------------------------;
OTDEL storage 25 ;вместимость отдела=5
SELLER storage 5 ;всего продавцов=5
CABIN storage 5 ;всего кабинок=5
LEN_QUE equ 5 ;длина очереди к кабинкам=5
;-----------------------------------------------------------------------------------;
;программируется отсчет времени - создается таймер-транзакт с высоким приоритетом
;-----------------------------------------------------------------------------------;
generate ,,0,1,10 ;время=0,транзакт=1,приоритет=10>0 по умолчанию
NEWDAY mark WORK_DAY_BEGIN ;отмечается начало рабочего дня
seize MAGAZIN ;открываются все двери магазина: вход-выход
advance 480 ;рабочий день длится 8*60=480минут
release MAGAZIN ;закрываются входные двери магазина
gate se OTDEL ;если отдел пуст-выходные двери магазина закрываются
savevalue ZARPLATA+,(300#R$SELLER);подсчет суммы для выдачи зарплаты
; test ge N$NEWDAY,30,NEWDAY ;отсчет 30 дней
savevalue KOEF_BUY_TO_ALL,(X$KOL_BUYMAN/N$OTDEL_END) ;коэфф-т=N_купивших/N_всем
savevalue INCOME,(X$SUM-X$ZARPLATA);подсчет выручки
terminate 1 ;моделирование закончилось
;-----------------------------------------------------------------------------------;
;генерация потока-покупателей по закону Пуассона с синусоидальной интенсивностью
;-----------------------------------------------------------------------------------;
Y equ (abs(sin((AC1-X$work_day_begin)/160)));формула интенсивности
generate (poisson(1,1.e-2+X$Y)) ;поток транзактов-покупателей
gate u MAGAZIN,QUIT;если устройство занято(магазин открыт),иначе-на выход
transfer both,OTDEL_BEG,QUIT ;проверка на вместимость отдела
;-----------------------------------------------------------------------------------;
;процесс переходов покупателей из очередей в очереди, на выход, и т.д. и т.п.
;-----------------------------------------------------------------------------------;
OTDEL_BEG enter OTDEL,1 ;заходят в отдел магазина
advance 15,3 ;осмотр отдела магазина
assign 2,5 ;параметр№2 транзакта=5минутам по умолчанию
transfer 0.6,OTDEL_BUY,OTDEL_END_NOBUY ;либо далее,либо на выход
OTDEL_BUY transfer 0.125,OTDEL_CAB,OTDEL_QUE;либо в примерочную-к кабинкам,либо в очередь к продавцам
OTDEL_CAB test le Q$CABIN_QUE,LEN_QUE,OTDEL_END_NOBUY_QUE;очередь не больше чем на n,иначе-на выход
queue CABIN_QUE,1 ;занимается очередь к кабинкам для примерки
enter CABIN,1 ;занимается кабинка для примерки
depart CABIN_QUE,1 ;освобождается очередь к кабинкам для примерки
advance (abs(normal(3,10,3))) ;затрачивается время на примерку
leave CABIN,1 ;освобождается кабинка для примерки
assign 2,15 ;параметр№2 транзакта =15минутам-по пребыванию в кабинках
transfer 0.6,OTDEL_QUE,OTDEL_END_NOBUY;либо очередь к продавцам,либо - на выход
OTDEL_QUE assign 3,AC1;время входа покупателя в очередь к продавцам
queue SELL_QUE,1;занимается очередь к продавцам
advance 10,10;задержка СВОЯ:5,15-верхние пределы для 2типов покупателей
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.