Интегрированная среда моделирования РДО (exam_0)

Посмотреть архив целиком


Приложение 1. (текст программы)


Файл образцов операций


$Pattern Образец_Приход_студента : irregular_event trace

$Relevant_resources

Экзамен_1 : Экзамен Keep

$Time = Экспоненциальный_интервал(0.5)

$Body

Экзамен_1

Convert_event

Количество_студентов_в_очереди set Экзамен_1.Количество_студентов_в_очереди + 1

$End


$Pattern Образец_Опрос_студента_1 : operation trace

$Relevant_resources

Экзамен_1 : Экзамен Keep Keep

$Time = Время_опроса


$Body

Экзамен_1

Choice from Экзамен_1.Количество_студентов_в_очереди >0 and

Экзамен_1.Количество_экзаменаторов = 1 and Экзамен_1.Занятость_экзаменатора = Свободен

first

Convert_begin

Количество_студентов_в_очереди set

Экзамен_1.Количество_студентов_в_очереди - 1

Занятость_экзаменатора set Занят

Convert_end

Занятость_экзаменатора set Свободен

Опрошено_студентов set Экзамен_1.Опрошено_студентов + 1

$End



$Pattern Образец_Опрос_студента_2 : operation trace

$Relevant_resources

Экзамен_1 : Экзамен Keep Keep

Преподаватель : Временные_экзаменаторы Keep Keep

$Time = Время_опроса

$Body

Экзамен_1

Choice from Экзамен_1.Количество_студентов_в_очереди > 5 and Экзамен_1.Количество_экзаменаторов = 2

and Экзамен_1.Занятость_экзаменатора = Свободен

first

Convert_begin

Количество_студентов_в_очереди set Экзамен_1.Количество_студентов_в_очереди - 1

Занятость_экзаменатора set Занят

Convert_end

Занятость_экзаменатора set Свободен

Количество_студентов_в_очереди set Экзамен_1.Количество_студентов_в_очереди - 1

Опрошено_студентов set Экзамен_1.Опрошено_студентов + 2

Преподаватель

Choice from Преподаватель.Занятость_экзаменатора = Свободен

first

Convert_begin

Занятость_экзаменатора set Занят

Convert_end

Занятость_экзаменатора set Свободен

$End





$Pattern Образец_Добавление_экзаменатора : rule

$Relevant_resources

Экзамен_1 : Экзамен Keep

Преподаватель : Временные_экзаменаторы Create

$Body

Экзамен_1

Choice from Экзамен_1.Количество_студентов_в_очереди >10 and Экзамен_1.Количество_экзаменаторов = 1

first

Convert_rule

Количество_экзаменаторов set Экзамен_1.Количество_экзаменаторов + 1


Преподаватель

Convert_rule

Занятость_экзаменатора set Свободен

$End




$Pattern Образец_Удаление_экзаменатора : rule

$Relevant_resources

Экзамен_1 : Экзамен Keep

Преподаватель : Временные_экзаменаторы Erase

$Body

Экзамен_1

Choice from Экзамен_1.Количество_студентов_в_очереди <5 and Экзамен_1.Количество_экзаменаторов = 2

first

Convert_rule

Количество_экзаменаторов set Экзамен_1.Количество_экзаменаторов - 1

Преподаватель

Choice NoCheck

first

$End



$Pattern Образец_перерыв_клав : keyboard trace

$Relevant_resources

Экзамен_1 : Экзамен Keep Keep

$Time = Время_перерыва(30)

$Body

Экзамен_1

Choice from Экзамен_1.Количество_студентов_в_очереди <5 and Экзамен_1.Количество_экзаменаторов = 1

first

Convert_begin

Занятость_экзаменатора set Расслаблен

Convert_end

Занятость_экзаменатора set Свободен

$End


$Pattern Образец_11_студентов_клав : keyboard trace

$Relevant_resources

Экзамен_1 : Экзамен Keep Keep

$Time = 0.1

$Body

Экзамен_1

Choice NoCheck

first

Convert_begin

Количество_студентов_в_очереди set 11

Количество_экзаменаторов set 1

Convert_end

Занятость_экзаменатора set Свободен

$End


$Pattern Образец_2_студента_клав : keyboard trace

$Relevant_resources

Экзамен_1 : Экзамен Keep Keep

$Time = 0.1

$Body

Экзамен_1

Choice NoCheck

first

Convert_begin

Количество_студентов_в_очереди set 2

Количество_экзаменаторов set 2

Convert_end

Занятость_экзаменатора set Свободен

$End



Файл типов ресурсов


$Resource_type Экзамены : permanent

$Parameters

Количество_студентов_в_очереди : integer

Количество_экзаменаторов : integer

Опрошено_студентов : integer

Занятость_экзаменатора : (Свободен, Занят, Расслаблен)

$End


$Resource_type Временные_экзаменаторы : temporary

$Parameters

Занятость_экзаменатора : (Свободен, Занят)

$End


Файл ресурсов


$Resources

Экзамен:Экзамены trace 0 1 0 Свободен


$End



Файл операций


$Operations

Приход_студента : Образец_Приход_студента

Опрос_студента_1 : Образец_Опрос_студента_1

Опрос_студента_2 : Образец_Опрос_студента_2

Добавление_экзаменатора : Образец_Добавление_экзаменатора

Удаление_экзаменатора : Образец_Удаление_экзаменатора

Операция_перерыв_кл : Образец_перерыв_клав 'SPACE'

Опреация_11_студентов_кл : Образец_11_студентов_клав 'F11'

Опреация_2_студента_кл : Образец_2_студента_клав 'F2'

$End



Файл анимации


$Frame Кадр_1

$Back_picture = <0 0 255> backgrd


Show


bitmap [ 50,17, tea, cnop1m ]

active Операция_перерыв_кл [ 50,17,72,46 ]

bitmap [ 150,17, f11, cnop1m ]

active Опреация_11_студентов_кл [ 150,17,72,46 ]

bitmap[515,110,bill]



text [50, 76, 250, 15,transparent, <204 153 153>, 'Текущее время']

text [150,76, 100, 15,transparent, <0 0 0>, >(Time_now/24.0)]


text [497,76, 250, 15,transparent, <204 153 153>, 'Количество студентов в очереди']

text [650,76, 100, 15,transparent, <255 0 0>, >Экзамен.Количество_студентов_в_очереди]

text [50, 96, 250, 15, transparent, <204 153 153>, 'Всего опрошено']

text [150, 96, 100, 15, transparent, <0 0 0>,> Экзамен.Опрошено_студентов]





rect[34,300,426,212,<202 153 153>,<204 153 153>]

rect[34,298,426,10,<0 0 0>,<0 0 0>]






Show_if Экзамен.Занятость_экзаменатора=Расслаблен

bitmap[296,89,chad1]

bitmap[108,175,pre3]

bitmap[40,244,tab7]



Show_if Экзамен.Количество_экзаменаторов=1 and Экзамен.Занятость_экзаменатора <> Расслаблен

bitmap[296,89,chad1]

bitmap[190,345,student1]

bitmap[155,158,pre1]

bitmap[40,247,tab6]




Show_if Экзамен.Количество_экзаменаторов=2 and Экзамен.Занятость_экзаменатора <> Расслаблен

bitmap[296,89,chad]

bitmap[235,147,prepod2]

bitmap[105,342,student1]

bitmap[122,175,pre1]

bitmap[40,247,tab5]

bitmap[340,226,student2]

bitmap [ 250,17, f2, cnop1m ]

active Опреация_2_студента_кл [ 250,17,72,46 ]



Show_if Экзамен.Количество_студентов_в_очереди=1

bitmap[600,210,h1]



Show_if Экзамен.Количество_студентов_в_очереди=2

bitmap[600,210,h1]

bitmap[550,220,h2]


Show_if Экзамен.Количество_студентов_в_очереди=3

bitmap[600,210,h1]

bitmap[550,220,h2]

bitmap[670,205,h3]


Show_if Экзамен.Количество_студентов_в_очереди=4

bitmap[600,210,h1]

bitmap[550,220,h2]

bitmap[670,205,h3]

bitmap[570,300,h4]


Show_if Экзамен.Количество_студентов_в_очереди=5

bitmap[600,210,h1]

bitmap[550,220,h2]

bitmap[670,205,h3]

bitmap[570,300,h4]

bitmap[500,280,h5]


Show_if Экзамен.Количество_студентов_в_очереди=6

bitmap[600,210,h1]

bitmap[550,220,h2]

bitmap[670,205,h3]

bitmap[570,300,h4]

bitmap[500,280,h5]

bitmap[650,260,h6]


Show_if Экзамен.Количество_студентов_в_очереди=7

bitmap[600,210,h1]

bitmap[550,220,h2]

bitmap[670,205,h3]

bitmap[570,300,h4]

bitmap[500,280,h5]

bitmap[650,260,h6]

bitmap[630,310,h7]


Show_if Экзамен.Количество_студентов_в_очереди=8

bitmap[600,210,h1]

bitmap[550,220,h2]

bitmap[670,205,h3]

bitmap[570,300,h4]

bitmap[500,280,h5]

bitmap[650,260,h6]

bitmap[630,310,h7]

bitmap[520,360,h8]


Show_if Экзамен.Количество_студентов_в_очереди=9

bitmap[600,210,h1]

bitmap[550,220,h2]

bitmap[670,205,h3]

bitmap[570,300,h4]

bitmap[500,280,h5]

bitmap[650,260,h6]

bitmap[630,310,h7]

bitmap[520,360,h8]

bitmap[510,190,h9]


Show_if Экзамен.Количество_студентов_в_очереди=10

bitmap[600,210,h1]

bitmap[550,220,h2]

bitmap[670,205,h3]

bitmap[570,300,h4]

bitmap[500,280,h5]

bitmap[650,260,h6]

bitmap[630,310,h7]

bitmap[520,360,h8]

bitmap[510,190,h9]

bitmap[570,370,h10]


Show_if Экзамен.Количество_студентов_в_очереди=11

bitmap[600,210,h1]

bitmap[550,220,h2]

bitmap[670,205,h3]

bitmap[570,300,h4]

bitmap[500,280,h5]

bitmap[650,260,h6]

bitmap[630,310,h7]

bitmap[520,360,h8]

bitmap[510,190,h9]

bitmap[570,370,h10]

bitmap[640,360,h11]


Show_if Экзамен.Количество_студентов_в_очереди=12

bitmap[600,210,h1]

bitmap[550,220,h2]

bitmap[670,205,h3]

bitmap[570,300,h4]

bitmap[500,280,h5]

bitmap[650,260,h6]

bitmap[630,310,h7]

bitmap[520,360,h8]

bitmap[510,190,h9]

bitmap[570,370,h10]

bitmap[640,360,h11]

bitmap[685,305,h12]



Show_if Экзамен.Количество_студентов_в_очереди >=13

bitmap[600,210,h1]

bitmap[550,220,h2]

bitmap[670,205,h3]

bitmap[570,300,h4]

bitmap[500,280,h5]

bitmap[650,260,h6]

bitmap[630,310,h7]

bitmap[520,360,h8]

bitmap[510,190,h9]

bitmap[570,370,h10]

bitmap[640,360,h11]

bitmap[685,305,h12]

bitmap[690,375,h13]




$End










Файл функций


$Constant

Время_опроса : real=0.9

$End


$Sequence Экспоненциальный_интервал : real

$Type = exponential 123456789

$End



$Function Время_перерыва : real

$Type = algorithmic

$Parameters

контрольное_значение : integer

$Body

Calculate_if Экзамен.Опрошено_студентов > контрольное_значение

Время_перерыва = Время_опроса*(Экзамен.Опрошено_студентов - Экзамен.Количество_студентов_в_очереди)

Calculate_if Экзамен.Опрошено_студентов<=контрольное_значение

Время_перерыва = 10*Время_опроса

$End




Файл прогона


Model_name = exam_0


Resource_file = exam_0

OprIev_file = exam_0

Frame_file = exam_0

Trace_file = exam_0

Statistic_file = exam_0

Results_file = exam_0

Show_mode = Animation

Frame_number =1

Show_rate = 1000.0


Terminate_if Time_now >= 50.0 or Экзамен.Опрошено_студентов >= 70






Файл описания показателей


$Results


Длина_очереди : trace watch_par

Экзамен.Количество_студентов_в_очереди

Занятость_экзаменатора : trace watch_state

Экзамен.Занятость_экзаменатора = Занят

Всего_ослужено : get_value

Экзамен.Опрошено_студентов


$End





Случайные файлы

Файл
138645.rtf
101808.rtf
60787.rtf
169349.rtf
16265.rtf




Чтобы не видеть здесь видео-рекламу достаточно стать зарегистрированным пользователем.
Чтобы не видеть никакую рекламу на сайте, нужно стать VIP-пользователем.
Это можно сделать совершенно бесплатно. Читайте подробности тут.