183537 (566987), страница 3
Текст из файла (страница 3)
Snob = 0 ‘сумматор числа обслуженных заявок
frmForm1.Enabled = False: FrmForm1.Visible = False
frmForm2.Enabled = True: FrmForm2.Visible = True
For Ir = 1 To Nr ‘начало цикла случайных реализаций
frmForm2.Cls ‘очистка окна формы 2
frmForm2.CurrentX = 600: frmForm2.CurrentY = 200
frmForm2.Print “Расчет ” & Ir & “-й реализации” ‘вывод показаний ‘счетчика числа реализаций в окно формы 2 ‘обнуление локальных переменных
Nz = 0 ‘обнуление числа заявок
Nob(1) = 0: Nob(2) = 0: Nob(3) = 0 ‘обнуление числа обслуженных заявок
TKO(1) = 0: TKO(2) = 0: TKO(3) = 0 ‘время окончания обслуживания
‘заявок в 1, 2 и 3-м каналах
Call ZAJAVKA ‘процедура «Поток заявок»
For Iz = 1 To Nz ‘начало цикла обслуживания заявок
‘выбор номера канала
TKmin = TKO(1)
For J = 1 To Nkan
If TKO(J) < Tkmin Then Tkmin = TKO(J): Jmin = J
Next J
Call SERVICE ‘процедура обслуживания заявки
Next Iz ‘конец цикла обслуживания заявок
‘суммарное число обслуженных заявок:
Snob = Snob + Nob(1) + Nod(2) + Nob(3)
Next Ir ‘конец цикла реализаций
FrmForm2.Enabled = False: FrmForm2.Visible = False
FrmForm1.Enabled = True: FrmForm1.Visible = True
‘показатель эффективности:
Cont = Snob/Nr – 1 + 0.5 * Nkan – 0.5 * Nkan * Nkan
frmForm1.txtResult = Format$(Cont, “#.##”)
End Sub
Sub SAJAVKA
‘Процедура «Поток заявок»
T = 0 ‘модельное время
For J = 1 To Nzmax ‘начало цикла формирования заявок
z = Rnd(1) ‘случайная величина с равномерным распределением
Ts = T – TZcp * Log(z) ‘случайное время поступления заявки
If Ts > Tfin Then Exit For ‘условие прекращения приема заявок
Nz = Nz + 1 ‘счетчик числа заявок
Tz(Nz) = Ts ‘фиксированное время поступления заявки
T = Ts ‘изменение модельного времени
Next J ‘конец цикла формирования заявок
End Sub
Sub SERVICE
‘Процедура «Обслуживания заявок»
J = Jmin ‘номер канала
DTWait = 0 ‘начальное значение времени ожидания
TH = Tz(Iz) ‘время начала обслуживания
If Tz(Iz) < TKO(J) Then ‘проверка необходимости коррктировки
‘корректировка времени начала обслуживания:
DTWait = TKO(J) – Tz(Iz) ‘период ожидания
If DTWait > Twmax Then Exit Sub
‘время начала обслуживания
TH = TKO(J)
End If
Z = Rnd(1) ‘случайная величина с равномерным ‘распределением в интервале (0,1)
TK = TH – Tobcp * Log(z) ‘время окончания обслуживания
If TK > Tfin Then
TKO(J) = Tfin: Exit Sub
End If
Nob(J) = Nob(J) + 1 ‘увеличение числа обслуженных заявок
TKO(J) = TK ‘время окончания обслуживания
End Sub