Министерство образования и науки Российской Федерации
Федеральное агентство по образованию
Государственное образовательное
учреждение
высшего профессионального образования
«Комсомольский-на-Амуре государственный технический университет»
Факультет Компьютерных технологий
Кафедра математического обеспечения и применения ЭВМ
По курсу «Компьютерное моделирование»
Выполнил: Казаков М.Ю.
Проверил: Петров Ю.А.
Комсомольск-на-Амуре
2007
Задание:
В библиотеку заходят студенты с интенсивностью 1,5 – 5 минут, затем за 23 – 45 сек. объясняет оператору компьютера свои требования. Оператор ищет литературу 2 – 11 сек. Затем за 1 – 15 сек печатается листок требований, и за 1 – 17 сек. уточняется запрос. С этим листком студент идет к библиотекарю, который за 2,5 – 9 мин. находит необходимые книги. Начиная с момента времени 13.30, в библиотеку заходят дипломники. Становятся в очередь к оператору и получают книги по общей схеме, затем работают в читальном зале 3 – 3,5 часа. 6 % вошедших дипломников берут книги и идут в отдел дипломного проектирования на 0,5 – 2 часа, остальные направляются в научно-технический отдел на 1 – 6 мин. 6 % вошедших студентов идут в читальный зал, не обращаясь за справкой и книгой. Каждый студент запрашивает разное количество книг с вероятностью: 1 – 0,1; 2 – 0,5; 3 – 0,1; 4 – 0,1; 5 – 0,1; 6 – 0,1.Студенты имеют приоритет 0, а дипломники – 1. После работы в читальном зале все читатели возвращают книги библиотекарю за 1 – 5 сек. вне очереди. Выяснить количество книг, выданных в библиотеке за час.
Текст программы.
savevalue book_nums,0 ; Переменная для хранения
; количества взятых книг
ch_zal storage 30 ; Накопитель - читальный зал
odp_ storage 30 ; Накопитель - отдел дипломного
; проектирования
nto_ storage 30 ; Накопитель - научно; технический отдел
book_num function rn1,d6 ; Функция - генерирует ; количество книг, взятых ; студентом
0.1,1/0.6,2/0.7,3/0.8,4/0.9,5/1,6
book_num_dipl function rn2,d4 ; Функция - генерирует
; количество книг, взятых
; дипломником
0.25,1/0.5,2/0.75,3/1,4
work_time variable p$bn#11700 ; Среднее время работы студентов
; в читальном зале
work_otk variable p$bn#900 ; Допустимые отклонения этого
; времени
start 1 ; В начале программы счетчик
; транзактов устанавливаем в
; единицу,
; то есть моделирование будет
; происходить на один час
generate 195, 105 ; В библиотеку заходят студенты
transfer .06,operat1,chit_zal ; 6% идут в читальный зал, минуя
; библиотеку
operat1 seize oper1 ; Оператор компьютера начинает
; обслуживание студента
advance 34,11 ; Принимает требования
advance 6,5 ; Ищет литературу
advance 8,7 ; Печатает листок требований
advance 9,8 ; Уточняет запрос
release oper1 ; Оператор компьютера
; освобождается
lib1 seize librarian ; Библиотекарь начинает
; обслуживание студента
advance 345,195 ; Ищет книги
release librarian ; Библиотекарь освобождается
assign bn,fn$book_num ; Получаем количество книг,
; взятых студентом
book1 savevalue book_nums+,p$bn ; Увеличиваем переменную на это
; значение
chit_zal enter ch_zal ; Студент идет в читальный зал
advance work_time,work_otk ; И работает там
leave ch_zal ; А затем уходит
prior priority 5 ; И сдает книги без очереди
lib2 seize librarian ; Занимает библиотекаря
advance 3,2 ; Сдает книги
release librarian ; Уходит от библиотекаря
terminate ; Покидает библиотеку
generate 195,105,1800,,1 ; Заходят дипломники
transfer .06,nto,odp ; 6% идут в ОДП, а остальные в НТО
odp seize oper1 ; Оператор компьютера начинает
; обслуживание дипломника
advance 6,5 ; Ищет литературу
advance 8,7 ; Печатает листок требований
advance 9,8 ; Уточняет запрос
release oper1 ; Оператор компьютера
; освобождается
seize librarian ; Дипломник идет к библиотекарю
advance 345,195 ; Который ищет ему литературу
release librarian ; И освобождается
assign bn,fn$book_num_dipl ; Получаем количество книг,
; взятых дипломником
book2 savevalue book_nums+,p$bn ; Увеличиваем переменную на это
; значение
enter odp_ ; Дипломник идет в ОДП
advance 4500,2700 ; Работает там
leave odp_ ; И выходит
transfer ,prior ; Отправляется сдавать книги
nto enter nto_ ; Часть дипломников идет в НТО
advance 210,150 ; Работает там
leave nto_ ; И выходит
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.