методичка_курсач_иус_2сем
.pdfPi |
P1 |
Mi( ож) |
M1( ож) |
|
|
||
|
P2 |
|
|
|
|
|
|
|
|
обс |
|
|
|
|
|
|
обс |
1 |
1.2 |
1.4 |
1.6 |
1.8 |
2 |
|
1 |
1.2 |
1.4 |
1.6 |
1.8 |
2 |
|
Рис.1
|
|
|
|
|
BUFT |
|
|
|
||||
И1 |
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
D1 |
|
|
|
|
|
|
D2 |
|
Пр |
Вых. |
|
|
|
|
|
|
|
|
|
|
||||
|
||||||||||||
И2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
отказ |
|
|
|
|
|
|
|
|
|
поток |
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
BUFN |
|
|
|
Рис.2
11
|
. |
|
. . . |
|
|
|
|
. |
|
|
|
|
|
||||
И1 |
1 |
|
3 4 5 |
|
|
|
|
9 |
|
|
|
|
t |
||||
. |
. . |
. |
x |
. |
|
|
|||||||||||
|
. |
|
|
||||||||||||||
И2 |
2 |
6 |
7 |
8 |
10 |
11 |
|
t |
|||||||||
|
|
|
|
|
|
x |
x |
|
x |
|
|
|
x |
|
|||
BUFT(4) |
|
|
|
|
|
|
|
5 |
|
|
|
8 |
|
|
10 |
|
t |
|
|
|
|
|
|
|
4 |
|
|
|
5 |
|
|
8 |
|
t |
|
BUFT(3) |
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
3 |
|
|
|
|
|
4 |
|
|
5 |
|
t |
|||
BUFT(2) |
|
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
2 |
|
|
|
|
|
|
|
|
|
|
t |
|||
BUFT(1) |
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
“1” |
|
|
|
“2” |
|
“2” |
t |
||||
BUFN(4) |
|
|
|
|
|
|
|
|
|
||||||||
|
|
|
|
|
|
“1” |
|
|
|
“1” |
|
“2” |
|
t |
|||
BUFN(3) |
|
|
|
|
|
|
|
|
|
||||||||
|
|
|
|
|
|
“1” |
|
|
|
“1” |
“1” |
t |
|||||
BUFN(2) |
|
|
|
|
|
|
|
|
|
||||||||
|
|
|
|
|
|
“2” |
|
|
|
|
|
|
|
|
t |
||
BUFN(1) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
1 |
|
|
|
3 |
|
|
4 |
|
t |
|
Пр |
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
. |
|
. |
|
. |
t |
||||
поток |
|
|
|
|
|
|
|
|
|
|
|||||||
Вых. |
|
|
|
|
|
|
|
|
1 |
|
3 |
|
4 |
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ож1 |
|
|
|
3 |
|
|
|
|
|
5 |
|
|
|
|
t |
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ож2 |
|
|
|
|
|
|
|
|
|
|
|
4 |
|
|
|
|
t |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Рис.3
12
|
|
|
Начало |
|
|
|
|
|
|
|
|
Задание начальных значений данным, |
|
|
|
|
|||
|
|
общим для всего процесса моделирования |
|
|
|
|
|||
|
|
Задание начальных значений данным, |
|
|
|
|
|||
|
|
определяющим одну реализацию. |
|
|
|
|
|||
|
|
|
БООС |
|
|
|
|
|
|
|
|
1 |
|
2 |
|
|
3 |
|
|
|
|
|
|
|
|
|
|
|
|
|
БАС1 |
|
|
БАС2 |
|
|
БАС3 |
|
|
БМС11 |
… |
БМС1N1 |
БМС21 |
… |
БМС2N2 |
БМС31 |
… |
|
БМС3N3 |
|
|
|
|
|
|
Блок обработки ре- |
|
|
|
|
|
НЕТ |
KOL(I) > KMIN |
ДА |
зультатов одной реа- |
|
|
||
|
|
|
|
лизации |
|
|
|||
|
|
|
|
I=1,2 |
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
TAY: = TAY + DTAY |
|
|||
|
|
|
|
|
НЕТ |
|
|
ДА |
|
|
|
|
|
|
|
TAY>TAY2 |
|
||
|
|
|
|
|
|
|
|
||
|
|
|
Рис.4 |
|
|
|
|
|
|
|
|
|
|
|
|
|
КОНЕЦ |
||
|
|
|
|
|
|
|
|
|
13 |
|
|
|
|
|
|
|
БООС |
|
|
|
НЕТ |
|
TPOST(1)<TPOST(2) |
ДА |
|
|
|
|
NMIN: := 2 |
|
|
|
NMIN ::= 1 |
|
||
|
|
НЕТ |
TOSV<TPOST(NMIN) |
ДА |
|
|
||
|
|
|
|
|
|
|||
|
|
ВЫХ 1,2 |
|
|
|
|
ВЫХ 3 |
|
|
|
БАС 1,2 |
|
|
|
|
|
БАС 3 |
НЕТ |
|
ДА |
|
|
НЕТ |
|
|
ДА |
|
INDBUF = 4 |
|
|
|
INDBUF = 0 |
|||
|
|
|
|
|
|
|
|
|
В буфере |
|
Буфер |
|
|
В буфере есть |
|
Буфер |
|
есть место |
|
занят |
|
|
заявки |
|
пуст |
|
БМС12 |
|
БМС11 |
|
|
БМС31 |
|
БМС32 |
|
Запись в буфер |
Формирование |
|
Выборка из бу- |
Формирование |
||||
KOTK(NMIN) |
|
|
TOSV |
|||||
|
|
|
фера |
|
|
|||
|
|
|
|
|
|
|
|
|
Генерация след. |
Генер. след. заявки |
Модификация |
|
|
||||
заявки |
|
|
|
|
|
|
||
|
|
|
|
буфера |
|
Генер. след. за- |
||
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
явки |
KOL(NMIN):= |
|
KOL(NMIN):= |
|
|
Обслуживание |
|
|
|
KOL(NMIN) + 1 |
|
KOL(NMIN) + 1 |
|
|
|
|
|
|
|
|
Рис.5 |
Рис. 5 |
|
|
|
|
|
|
|
|
|
|
|
|
|
14 |
|
генерация след. заявки |
Нет |
Да |
|
NMIN =1 |
TAY(NMIN):=- |
T1:=RANDOM, T2:=RANDOM |
1.0/LAM(2)*LN(RANDOM) |
TAY(NMIN):=- |
|
1.0/LAM(1)*(LN(T1)+LN(T2)) |
TPOST(NMIN):=TPOST(NMIN)+TAY(NMIN) |
|
|
Рис.6 |
запись заявки в буфер
BUFT(INDBUF+1):=TPOST(NMIN)
BUFN(INDBUF+1):=NMIN
INDBUF:=INDBUF+1
Рис.7
15
|
определение |
|
NOMBUF |
|
I: = 1 |
Нет |
Да |
|
BUFN(I)=1 |
|
NOMBUF:=I |
|
I:=INDBUF |
|
I := I+1 |
Нет |
Да |
|
I>INDBUF |
|
Рис.8 |
|
выборка и модификация |
|
буфера |
|
NOMBUF := 1 |
Да |
Нет |
IDNBUF=1
Определение
NOMOB := BUFN(1) NOMBUF TOB := BUFT(1)
NOMOB := BUFN(NOMBUF)
TOB := BUFT(NOMBUF)
Модификация буфера (сдвиг заявок)
INDBUF ::= INDBUF-1
Рис.9
16
Сдвиг заявок
I:=NOMBUF
нет |
да |
I + 1 > INDBUF
BUFT(I) := BUFT(I+1)
BUFN(I) := BUFN(I+1)
I := I + 1
Рис.10
ОБСЛУЖИВАНИЕ
TOG(NOMOB) := TOG(NOMOB) + TOSV – TOB
TOSV := TOSV + TAYOB
KOLOBR(NOMOB) := KOLOBR(NOMOB) + 1
Рис.11
17
TOSV := TPOST(NMIN) + TAYOB
KOLOBR(NMIN) := KOLOBR(NMIN) + 1
. 12 |
|
Рис.12 |
|
|
БЛОК ОБРАБОТКИ |
BOTK(I) := KOTK(I)/KOL(I), |
I = 1, 2 |
MTOG(I): = TOG(I)/KOBR(I), |
I = 1, 2 |
Рис. 13 |
|
Рис.13 |
|
18
7. Состав программного продукта курсовой работы.
Предлагаемая курсовая работа является первым относительно большим программным продуктом, разрабатываемым в процессе обучения на кафедре ИУС. Поэтому здесь особенно важна дисциплина разработки. При разработке программист самостоятельно принимает решения по использованию различных структур данных и организации взаимодействия работы различных частей проекта. Поэтому никакие шаблоны для разработки не навязываются , но разработка должна проводиться при некоторых небольших ограничениях .
1.Программный продукт должен состоять из нескольких модулей. Можно рекомендовать не менее трех вспомогательных модулей , напри-
мер, функциональный, модуль интерфейса и графический модуль, не считая головного модуля.
2.Всю графику исполнять, используя лишь модульGraph. Нельзя использовать библиотеку Turbo Vision , поскольку одна из основных целей курсовой работы – научиться разрабатывать собственные типы объектов .
3.Помимо файлов текстов на языке Pascal разработчик представляет файл Readme.doc , который должен содержать информацию , необходимую и достаточную для эксплуатации программного продукта любым пользователем , знакомым только с существом работы системы массового обслуживания.
4. Все модули разрабатываются только на переменных объектного ти-
па.
5.При использовании объектов желательно применить по необходимости различные возможности объектного программирования, предусмотренного версией языка Turbo Pascal 7.0, а именно, инкапсуляцию, полиморфизм, переопределение методов , виртуальные методы , методы с формальными параметрами, динамические объекты и пр. При этом не надо искусственно усложнять взаимодействие типов объектов , но и не делать объекты формально, т.е. даже без полей данных, как некоторые нерадивые студенты пытаются делать.
8. Рекомендации по разработке модулей .
Функциональный модуль.
Функциональный модуль содержит описания всех типов используемых в нем объектов , например , объекты типа ‘Прибор’ , ‘Источник’ или ‘Буфер’ или какие –либо другие объекты, в зависимости от замысла разбивки на объекты всей моделируемой системы. При этом могут быть использованы некоторые вспомогательные модули для моделирования функционирования предложенной системы. Но не надо усложнять реализацию самого функционирования системы .
Можно эту часть работы выполнить в виде одного модуля.
19
Методы функционального модуля должны обеспечить формирование результатов одной длинной реализации, т.е. зависимость интересующих нас величин (вероятностей отказов, математического ожидания времени пребывания в системе и пр.) от количества заявок, поступивших от самого ‘медленного’ источника , т.е. источника с минимальной интенсивностью потока заявок. Эти данные в процессе моделирования сразу же в графическом режиме надо выводить на экран , с оцифровкой по осям координат. Именно на основании поведения этих кривых и выбирается необходимое число реализаций KMIN.
Кроме того, этот модуль должен обеспечить фиксацию окончательных результатов моделирования при варьировании основного параметра системы, который изменяется при переходе к другой длинной реализации. Эти результаты целесообразно записывать либо в какой-либо текстовый файл либо в массив записей , из которого затем графический модуль обеспечит построение графиков зависимостей выходных характеристик моделируемой системы от варьируемого параметра системы.
Модуль интерфейса.
Интерфейсный модуль содержит описание объектов, позволяющих формировать пользовательского меню с выпадающим подменю.
В качестве основных пунктов меню можно принять следующие: ‘Установка параметров’, ‘Моделирование’ , ‘Результаты’ , ‘Помощь’ . У каждого пункта основного меню должно быть по 2-3 пунктов подменю. Например, для ‘Установки параметров’ можно предусмотреть все устанавливаемые параметры системы. Для пункта ‘Моделирование ’ можно предусмотреть подпункты ‘С отображением графиков’ зависимостей параметров от числа заявок и ‘Без отображения процесса моделирования’. В меню ‘Результаты’ можно предусмотреть вывод окончательных зависимостей в виде таблиц либо в виде графиков и предусмотреть вывод любой заданной величины. В пункте ‘Помощь’ предусмотреть вывод основной информации инструкции пользователя , которая содержится в файле Readme.doc.
Модуль графики.
Модуль графики содержит основные объекты, необходимые для вывода в процессе моделирования зависимостей интересующих параметров от числа заявок . При этом информация для этих графиков (например, вероятности отказов) получается и сразу же выводится на график. Не надо формировать большие массивы и только потом их выводить. Графики строятся в режиме ‘Online’ в самом процессе моделирования.
Кроме того, этот модуль должен обеспечить вывод результирующих зависимостей интересующих параметров от варьируемой в задаче величины . Эти
20