Значение переменной FLOAT равно 36, так как константа 10 умножается на 3,67 и от результата 36,7 взята целая часть. Переменная FIXED равна 30, так как результат промежуточной операции деления будет округлен до 3.
1. Для переменных с плавающей точкой не допускается операция деления по модулю.
2. Использование дробных констант допускается только при описании переменных с плавающей точкой.
3. Стандартный числовой атрибут V$<имя переменной> используется для обращения к значениям как арифметических переменных, так и переменных с плавающей точкой. Способ вычисления переменной определяется оператором описания этой переменной.
Булевы переменные. Булевы переменные позволяют принимать решения в зависимости от значений СЧА и состояния объектов GPSS, используя для этого только одно выражение.
Булевы переменные – это логические выражения, состоящие из различных СЧА и (или) других булевых переменных. В булевой переменной проверяется одно или несколько логических условий. Результатом проверки есть единица (истина), если условия выполняются, и ноль (ложь) – в противном случае.
При описании булевых переменных используются три типа операторов; логические, булевы и операторы отношений.
Логические операторы связаны с такими ресурсами, как устройства, МКУ и логические ключи. Они используются для определения состояния данных объектов. Логические операторы, используемые в GPSS, представлены в табл. 4.20
Таблица 4.20
Логические операторы | Значение оператора, отражающее состояние ресурса |
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 " (G reater) – больше;
" L " (L ess) – меньше;
"Е" (Е qual) – равно;
" NE " (N ot E qual) – не равно;
" LЕ " (L ess than or E qual) – меньше или равно;
"GЕ" (G reater than or E qual) – больше или равно;
Есть два булевых оператора: " ОR " – оператор «или», и " AND " – оператор «и». Оператор «или» проверяет, выполняется ли хотя бы одно из проверяемых условий. Оператор «и» требует выполнения обоих условий.