- •«Моделирование работы магазина по продаже офисной мебели»
- •Аннотация
- •Содержание
- •Введение
- •1. Принцип функционирования моделируемой системы
- •1.1.Постановка задачи
- •1.2.Блок – схема алгоритма функционирования моделируемой системы
- •1.3.Выбор концептуальной модели
- •2.1.Группировка событий
- •2.2.Переменные модели
- •2.3.Алгоритм имитации модели
- •2. Формализация модели
- •2.3.1. Процедура планирования событий
- •2.3.2. Процедура grup
- •2.3.3. Процедура извлечения первой записи из календаря
- •2.3.4. Процедура инициализации
- •2.3.5. Главный модуль
- •2.3.6. Процедура поиска алгоритма обработки события
- •2.3.7. Процедура обработки события первого класса
- •2.3.8. Процедура обработки события второго класса
- •2.3.9. Процедура обработки события третьего класса
- •2.3.10. Процедура обработки события четвёртого класса
- •2.3.11. Процедура обработки события пятого класса
- •2.3.12. Процедура формирования отчёта по прогону (Outputn)
- •2.3.13. Формирования итогового отчёта (Output)
- •3. Выбор программного обеспечения
- •4. Программа имитационного моделирования
- •5. Результаты моделирования
- •6. Анализ результатов
- •6.1. Расчёт оптимального числа прогонов
- •6.2. Установление закона распределения
- •Заключение
- •Список использованной литературы
2.3.3. Процедура извлечения первой записи из календаря
Данная операция осуществляется процедурой RMOVE.
Вначале
осуществляется копирования календаря
в массив А3. Затем из его первой записи
извлекаются: время свершения TSob события,
код Key
и атрибут Atribut.
Затем код события обнуляется a3[2,1]:=0.
Далее календарь переписывается. После
всего вызывается процедура GRUP
для поддержания порядка в календаре.
НАЧАЛО
КОНЕЦ
Рис.4 Блок-схема процедуры извлечения первой записи
2.3.4. Процедура инициализации
В процедуре INTLC определяются пользовательские условия имитации. Обязательными являются оператор задания начального имитационного времени и оператор планирования события. В ней происходит задание прогонных переменных.
В данной процедуре задаются следующие начальные условия:
- время начала имитации (Tnow:=Ttbeg);
- номер очередного прогона (Nrns:=Nrns+1);
- обнуление текущей длины очереди (Lo:=0);
- обнуление номера постановки заявки в очередь (Nl:=0);
- обнуление номера изъятия заявки из очереди (Ni:=0);
- обнуление флага занятости первого менеджера (Busy_L1:=False);
- обнуление флага занятости второго менеджера (Busy_L2:=False);
- обнуление флага обнаружения ЧС (Flag:=False);
- обнуление количества пришедших клиентов (Kol_Client:=0);
-обнуление количества клиентов, обслуженных первым менеджером (Kol_Client_L1:=0);
-обнуление количества клиентов, обслуженных вторым менеджером (Kol_Client_L2:=0);
-обнуление количества клиентов, обслуженных кассиром (Kol_Client_L3:=0);
- обнуление кодов всех событий (a3[2,j]:=0).

Рис.5. Блок-схема процедуры инициализации
2.3.5. Главный модуль
В главном модуле задаются следующие всепрогонные переменные.
Ttbeg := 0;
Ttfin := 360;
Nrns := 0;
Kol_ClientN := 0;
Kol_Client_L1N := 0;
Kol_Client_L2N := 0;
Kol_Client_L3N := 0;
Kol_NClientN := 0;
DebN := 0;
KolChS := 0;
А также вводится количество прогонов.
Упрощённая блок-схема главного модуля представлена на рисунке 3.

Рис. 6. Блок-схема главного модуля
После задания пользовательских переменных управление передаётся процессору имитации SLAM.
2.3.6. Процедура поиска алгоритма обработки события
Процедура поиска алгоритма обработки события EVENT содержит оператор выбора Case j of, реализующий выбор требуемой процедуры по коду извлечённого события (key).
В системе имитации используется 5 классов событий и, следовательно, может происходить выбор между процедурами: Sob1, Sob2, Sob3, Sob4, Sob5. Данные процедуры рассмотрены ниже.
2.3.7. Процедура обработки события первого класса
Данная процедура называется Sob1 и служит для обработки события “Приход клиента”. В этой процедуре фиксируется приход клиента, считается число пришедших клиентов-дебиторов (Deb:=Deb+1). Клиент становится в очередь, если текущая длина очереди больше нуля (Lo>0) или оба менеджера заняты. Если один из менеджеров свободен, то планируется процедура обслуживания у этого туроператора. Также планируется событие “приход клиента”, атрибут которого Atribut=round(random(10)).
