Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
11111.doc
Скачиваний:
3
Добавлен:
27.08.2019
Размер:
1.35 Mб
Скачать

27. Імітаційна модель обчислювальної системи з чергою (алгоритм програмної реалізації).

1.Ввести кількість експерементів

2.початкові умови для першої заявки

3.обчислити інші поля початкові заявки

4.сумарний час обслуговування = попередня заявка.час знаходженя в системі

5.сумарне простоювання ЄОМ = попередня заявка.простоювання ЄОМ

6.Повторюючи задану кількість експерементів

6.1 визначити:

-поточна заявка.час прибуття відносно попереднього

-поточна заявка.термін обслуговування

6.2 обчислити інше поле поточної заявки

6.3 сумарний час обслуговування = сумарний час обслуговування + поточна заявка. час знаходженя в системі

6.4 сумарне простоювання ЄОМ = сумарне простоювання ЄОМ + поточна заявка. простоювання ЄОМ

6.5 довжина черги = довжина черги +1, якщо попередня заявка.кінець обслуговування > поточна заявка. час прибуття в систему, інакше довжина черги +0

6.6 попередня заявка = поточна заявка

7.кінець циклу

8.вивести результат

28. Імітаційна модель обчислювальної системи з чергою (реалізація процедурно-орієнтованими засобами мови програмування). Визначаємо змінні

Основна частина програми;

lКілІтерацій = IIf(lКілІтерацій < 0, iЗаУмовчанням, lКілІтерацій)

sКілІтерацій = InputBox ("Введіть кількість клієнтів", "Запит", lКілІтерацій)

lКілІтерацій = Val(sКілІтерацій)

With Поточна

For I = 1 To lКілІтерацій

.lНомЗаявки = Попередня.lНомЗаявки + 1

.fІнтервалПрибуття = ВипадковеМіж (Range("D7"). Value, Range("E7").Value)

.fТермінОбслуговування = ВипадковеМіж (Range("D10").Value, Range("E10").Value)

.fЧасПрибуття = Попередня.fЧасПрибуття + .fІнтервалПрибуття

.fПочатокОбслуговування = Iif (Попередня.fКінецьОбслуговування > .fЧасПрибуття, Попередня.fКінецьОбслуговування, .fЧасПрибуття)

.fКінецьОбслуговування = .fПочатокОбслуговування + .fТермінОбслуговування

.fВитратиЧасуСист = .fКінецьОбслуговування - .fЧасПрибуття

.fПростоюванняЕОМ = .fПочатокОбслуговування - Попередня.fКінецьОбслуговування

.lДовжинаЧерги = IIf(Попередня.fКінецьОбслуговування > .fЧасПрибуття, Попередня.lДовжинаЧерги + 1, 0)

sСумВитрати = sСумВитрати + .fВитратиЧасуСист

sСумПростоювання = sСумПростоювання + .fПростоюванняЕОМ

lМахДовжинаЧерги = IIf(.lДовжинаЧерги > lМахДовжинаЧерги, .lДовжинаЧерги, lМахДовжинаЧерги)

lСерДовжинаЧерги = .lДовжинаЧерги / .lНомЗаявки

Range("L7").Value = sСумВитрати

Range("N7").Value = sСумПростоювання

Range("M7").Value = sСумВитрати / .lНомЗаявки

Range("O7").Value = sСумПростоювання / .lНомЗаявки

Range("L10").Value = lМахДовжинаЧерги

Range("N10").Value = lСерДовжинаЧерги

Попередня = Поточна

Next

Application.ScreenUpdating = True

End With

End Sub

Public Function ВипадковеМіж(Мінімальне As Single, Максимальне As Single)

ВипадковеМіж = Мінімальне + (Максимальне - Мінімальне) * Rnd

End Function

29. Імітаційна модель обчислювальної системи з відмовами (реалізація процедурно-орієнтованими засобами мови програмування). Визначаємо змінні

Основна частина програми;

lКілІтерацій = IIf(lКілІтерацій < 0, iЗаУмовчанням, lКілІтерацій)

sКілІтерацій = InputBox("Введіть кількість клієнтів", "Запит", lКілІтерацій)

lКілІтерацій = Val(sКілІтерацій)

With Поточна

For I = 1 To lКілІтерацій

.lНомЗаявки = Попередня.lНомЗаявки + 1

.fІнтервалПрибуття = ВипадковеМіж(Range("D7").Value, Range("E7").Value)

.fТермінОбслуговування = ВипадковеМіж(Range("D10").Value, Range("E10").Value)

.fЧасПрибуття = Попередня.fЧасПрибуття + .fІнтервалПрибуття

.fПочатокОбслуговування = IIf(Попередня.fКінецьОбслуговування > .fЧасПрибуття, Попередня.fКінецьОбслуговування, .fЧасПрибуття)

.fКінецьОбслуговування = IIf(Попередня.fКінецьОбслуговування > .fЧасПрибуття, Попередня.fКінецьОбслуговування, .fПочатокОбслуговування + .fТермінОбслуговування)

.fВитратиЧасуСист = .fКінецьОбслуговування - .fПочатокОбслуговування

.fПростоюванняЕОМ = .fПочатокОбслуговування - Попередня.fКінецьОбслуговування

sСумВитрати = sСумВитрати + .fВитратиЧасуСист

sСумПростоювання = sСумПростоювання + .fПростоюванняЕОМ

lКілОброблених = lКілОброблених + IIf(Попередня.fКінецьОбслуговування > .fЧасПрибуття, 0, 1)

lВідсотокОброблених = lКілОброблених / .lНомЗаявки * 100

Range("K6").Value = sСумВитрати

Range("M6").Value = sСумПростоювання

Range("L6").Value = sСумВитрати / Поточна.lНомЗаявки

Range("N6").Value = sСумПростоювання / Поточна.lНомЗаявки

Range("N8").Value = lВідсотокОброблених

Range("N10").Value = lКілОброблених

Попередня = Поточна

Next

Application.ScreenUpdating = True

End With

End Sub

Public Function ВипадковеМіж(Мінімальне As Single, Максимальне As Single)

ВипадковеМіж = Мінімальне + (Максимальне - Мінімальне) * Rnd

End Function

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]