м чином, ми маємо спільний спосіб побудови алгоритмів подібного типу, який включає такі основні компоненти:
1. Аналіз подій у системі та проектування структур даних необхідних для зберігання інформації пов'язаний з цими подіями;
2. Розробка окремих алгоритмів обробки цих подій включають в загальному випадку модифікацію параметрів стану системи та моделювання наступного події того типу, обробка якого виробляється цим алгоритмом;
Зв'язування окремих розроблених вище алгоритмів і структур даних в єдиній програмі.
2.3 Моделювання програми із заданими параметрами
У цій роботі необхідно провести імітаційне моделювання роботи Парикмахерской. Для моделювання даної задачі ми використовуємо СМО з N обробними пристроями без черги з відмовами. Алгоритм поставленого завдання, яка розглянута в п. 2.2. необхідно реалізувати на мові програмування С + +.
В якості параметрів моделі використовуємо наступні компоненти і макроозначення:
В· Т - час моделювання (в хв.); p> В· RIN - генератор випадкового потоку надходять у систему вимог;
В· RОN - генератор інтервалів часу обробки вимоги оброблювальним пристроєм;
В· n-загальне число місць в кафе.
Оригінальний текст програми починається з визначення параметрів моделі та технічних вихідних даних. Всі вони визначаються за допомогою директиви препроцесора "# define". Макроси RIN і RОN визначають виклики функцій, що моделюють розподіл інтервалів часу між подіями приходу відвідувачів і інтервалів часу від початку до завершення обслуговування відвідувачів, відповідно. А макрос Trafik визначає виклик функції, що моделює середній трафік користувачів. Самі функції моделювання випадкових послідовностей, розподілених за різними законами, визначені у файлі Rand.срр, текст якого підключається до тексту моделі процесу за допомогою директиви препроцесора "# include" в першому рядку тексту програмної реалізації моделі. Константа "Т" визначає тривалість періоду моделювання в одиницях дискретного часу моделювання (У хвилинах). Константа "n" задає число обробних відвідувачів. ton [i] = -1 визначає спеціальне значення для елемента масиву ton [], що означає, що місце звільнилося (комп'ютер вільний). Оскільки масив ton [] призначений для зберігання моментів часу догляду відвідувач, які можуть приймати лише невід'ємні значення, то в якості такого, сигнализирующего про незайнятості комп'ютера значення, взяти перше невикористовуване негативне число - "-1".
Всі змінні визначаються як довгі цілочисельні змінні. Це пов'язано з тим, що діапазону значень простого типу int - від -32768 до 32767 може бути недостатньо для подання використовуваних значень даних моделі. Далі слід власне моделюючий алгоритм:
1 . Ініціалізація змінних:
1.1. Ініціалізація масиву ton [] - все перукарі позначаються як вільні привласненням елементів масиву значення "-1":
" for (...