Переменные

При построении модели системы, иногда возникает необходимость задать сложные математи­ческие или логические соотношения между атрибутами системы. Для этой цели в программе используются переменные.

В GPSS имеется три типа переменных:

1) арифметические переменные;

2) арифметические переменные с «плавающей точкой»;

3) булевы переменные.

Значение арифметических переменных может использоваться как:

1) операнд блока; в этом случае значение арифметической пере­менной может представлять собой:

- номер объекта (устройства, МКУ, очереди и т. п.);

- номер параметра транзакта;

- значение стандартного числового атрибута;

2) операнд А функции;

3) операнд А таблицы;

4) операнд выражения другой переменной. В выражениях арифметические переменные используют такие арифметические операции:

+ алгебраическое сложение;

- алгебраическое вычитание;

# алгебраическое умножение;

/ алгебраическое деление (результатом операции является целая часть частного);

@ деление по модулю;

^ возведение в степень;

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

* - косвенная адресация

Идея косвенной адресации заключается в том, что можно обратиться к любому объекту или СЧА через параметры транзактов. Доступ же к параметрам транзактов осуществляется через СЧА Рj, где j - номер параметра транзакта (например, 10) или Р$имя, где имя - имя (идентификатор) параметра транзакта. Так как обраще­ние к объекту возможно только через параметр транзакта, то символ Р может опускаться. Например, выражение Q*7 или Q*P7 определяет текущее значение длины очереди, номер которой задан в параметре 7 транзакта. Если в седьмом параметре хранится значение 3, то это бу­дет текущее значение длины очереди с номером 3.

Арифметические переменные. Арифметические переменные аналогичны арифметическим выражениям в алгоритмических языках. Перед выполнением любой арифметической операции опреде­ляется значение каждого элемента и выделяется его целая часть. По­стоянные без знака считаются положительными числами.

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

Формат описания арифметической переменной имеет вид:

<имя>VARIABLE A

Формат описания переменных с плавающей точкой имеет вид:

<имя>FVARIABLE A

При обращении к переменной используется обозначение

V<номер переменной> или V$<имя переменной>, т.е. V - это СЧА переменной.

Логические операторы связаны с такими ресурсами, как уст­ройства, МКУ и логические ключи. Они используются для определе­ния состояния данных объектов. Логические операторы, используе­мые в GPSS

Логические операторы Значение оператора, отражающее состояние ресурса
FVj илиFj 1 – если устройство j занято или обслуживает прерывание, 0 – иначе.
FNVj 1 – если устройство j не занято или не обслуживает прерывание, 0 – иначе.
Ij 1 – если устройство j обслуживает прерывание, 0 – иначе.
NIj 1 – если устройство j не обслуживает прерывание, 0 – иначе.
NUj 1 – если устройство j не используется, 0 – иначе.
Uj 1 – если устройство j используется, 0 – иначе.
SFj 1 – если многоканальное устройство j заполнено, 0 – иначе.
SNFj 1 – если многоканальное устройство j не заполнено, 0 – иначе.
SEj 1 – если многоканальное устройство j пусто, 0 – иначе.
SNEj 1 – если многоканальное устройство j не пусто, 0 – иначе.
SVj 1 – если МКУ j находится в состоянии использования, 0 – иначе.
SNVj 1 – если МКУ j не используется, 0 – иначе.
LRj 1 – если логический ключ j выключен, иначе - 0
LSj 1 – если логический ключ j включен, иначе - 0

Операторы отношения выполняют алгебраическое сравнение операндов. Операндами могут быть константы или стандартные число­вые атрибуты. Все операторы отношений записываются в кавычках:

"G" (Greater) - больше;

"L" (Less) - меньше;

"Е" (Equal) - равно;

"NE" (Not Equal) - не равно;

"LE" (Less than or Equal) - меньше или равно;

"GE" (Greater than or Equal) - больше или равно;

Булевы операторы:

"OR" - оператор «или»,

"AND" - оператор «и»


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



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