Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
92
Добавлен:
21.03.2016
Размер:
359 Кб
Скачать
☆

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)).