Организация циклов

ASSIGN 3-,5.85,7

ASSIGN 3,25

ASSIGN MEST,36

Параметры транзакта.

Параметры – это свойства транзакта. В процессе перемещения транзакта по модели его параметры могут задаваться и модифицироваться в соответствии c логикой работы модели.

Любой транзакт может иметь неограниченное число параметров, содержащих те или иные числовые значения.

Ссылка на параметр всегда относится к активному транзакту и имеет вид

Pj или Р$ имя

P – СЧА транзакта, групповое имя,

П р и м е р ы

P22, P$COLOR


При генерации транзакта начальное значениевсех его параметров (тех, которые используются в модели) устанавливается равным нулю.

Параметры можно использовать в качестве операндов блоков и в качестве аргументов функций..

Пример.:

SEIZE P$PRIB

ADVANCE P$TSERV

RELEAZE P$PRIB

Для доступа к параметрам других транзактов можно использовать сохраняемые величины

Пример.:

SAVEVALUE 5,P$WEIGHT


Задание и изменение значений
параметров транзактов

Оператор ASSIGN присваивает значение параметру активного транзакта

ASSIGN А[+,-],В[,С]

где А – номер или имя модифицируемого или задаваемого параметра;

В – величина, используемая для модификации (число или СЧА);

С – имя функции.

Блок ASSIGN может быть использован в режиме замещения значения параметра или в режиме увеличения и уменьшения аналогично оператору. SAVEVALUE

При использовании операнда C значение операнда В умножается на значение функции, указанной в операнде C. Параметр, заданный в операнде А, изменяется на величину полученного произведения (в режиме увеличения и уменьшения) или приобретает значение результата (в режиме замещения).


Примеры.

3. ASSIGN 4+,Q5

5. ASSIGN COUNT+,1


Косвенная адресация.

Обращение к любому объекту или СЧА через параметры транзактов Pj, (j – номер параметра транзакта) или Р$имя (имя – идентификатор параметра транзакта)

При этом символ P может опускаться.

Примеры

Q*7 или Q*P7

COMP VARIABLE X*P4/100


Оператор LOOP

LOOP A,B.

A - номер параметра, определяющего число циклов;

B – метка оператора, на который переходит транзакт, если параметр A не равен нулю.

Значение параметра поля A уменьшается на единицу. Если оно не равно нулю, транзакт переходит на метку в поле B. В противном случае транзакт переходит в следующий блок.

Примеры

LOOP 1,LAB.


Пример

В зале работает 5 билетных касс. Клиенты, приходящие через равномерно распределенные промежутки времени выбирают свободную кассу; если свободных нет, то кассу с миимальной длиной очереди. Время обслуживания клиента раавномерно распределеннаая случайная величина с одинаковыми параметрами для всех касс.

Промоделировать процесс обслуживания 200 клиентов при разной интенсивности входного потока.


GENERATE 120,60

ASSIGN 1,5

ASSIGN 2,100

ASSIGN 3,5

free TEST E F*3,0,cont1

ASSIGN 4,P3

TRANSFER,kassa

cont1 LOOP 3,free

minq TEST LE Q*1,P2,cont2

ASSIGN 4,P1

ASSIGN 2,Q*1

cont2 LOOP 1,minq

kassa QUEUE P4

SEIZE p4

DEPART P4

PRIORITY 1

ADVANCE 300,180

RELEASE P4

TERMINATE 1

start 200



Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: