Значение переменной FLOAT равно 36, так как койстанта 10 умножается на 3,67 и от результата 36,7 взята целая часть. Переменная FIXED равна 30, так как результат промежуточной операции деления будет округлен до 3.
1. Для переменных с плавающей точкой не допускается операция деления по модулю.
2. Использование дробных констант допускается только при описании переменных с плавающей точкой.
3.Стандартный числовой атрибут У$<имя переменной> используется для обращения к значениям как арифметических переменных, так и переменных с плавающей точкой. Способ вычисления переменной определяется оператором описания этой переменной.
Булевы переменные. Булевы переменные позволяют принимать решения в зависимости от значений СЧА и состояния объектов GPSS, используя для этого только одно выражение.
Булевы переменные - это логические выражения, состоящие из различных СЧА и (или) других булевых переменных. В булевой переменной проверяется одно или несколько логических условий. Результатом проверки есть единица (истина), если условия выполняются, и ноль (ложь) - в противном случае.
При описании булевых переменных используются три типа операторов: логические, булевы и операторы отношений.
Логические операторы связаны с такими ресурсами, как устройства, МКУ и логические ключи. Они используются для определения состояния данных объектов. Логические операторы, используемые в GPSS, представлены в табл. 4.20
Таблица 4.20
Логические операторы | Значение оператора, отражающее состояние ресурса |
FVj или Fj | Равно 1, если устройство у занято или обслуживает прерывание, в противном случае - 0 |
FNVj | Равно 1, если устройство у не занято и не обслуживает прерывание, в противном случае - 0 |
ч | Равно 1, если устройство у обслуживает прерывание, в противном случае - 0 |
NIj | Равно 1, если устройство у не обслуживает прерывание, иначе - 0 |
NUj | Равно 1, если устройство у не используется, в противном случае - 0 |
Uj | Равно 1, если устройство у используется, в противном случае - 0 |
SFj | Равно 1, если многоканальное устройство у заполнено, иначе - 0 |
SNFj | Равно 1, если МКУ у не заполнено, иначе - 0 |
SEj | Равно 1, если МКУ у пусто, иначе - 0 |
SNEj | Равно 1, если МКУ /не пусто, иначе - 0 |
SVj | Равно 1, если МКУ j находится в состоянии использования, в противном случае - 0 |
SNVj | Равно 1, если МКУ у не используется, в противном случае - 0 |
Логические операторы | Значение оператора, отражающее состояние ресурса |
LRj | Равно 1, если логический ключ /выключен, иначе - 0 |
LSj | Равно 1, если логический ключ /включен, иначе - 0 |
Операторы отношения выполняют алгебраическое сравнение операндов. Операндами могут быть константы или стандартные числовые атрибуты. Все операторы отношений записываются в кавычках:
"G" (G reater) - больше;
"L" (L ess) - меньше;
"Е" (E qual) - равно;
"NE" (N ot E qual) - не равно;
"LE" (L ess than or E qual) - меньше или равно;
"GE " (G reater than or E qual) - больше или равно;
Есть два булевых оператора:
"OR" — оператор «или», и " AND " - оператор «и». Оператор «или» проверяет, выполняется ли хотя бы одно из проверяемых условий. Оператор «и» требует выполнения обоих условий.
Задания для самостоятельной работы:
1. Задайте переменную VAR2 = (2.8 * <значение переменной VAR1>+ 128): 3.
2. Задайте переменную VAR3 = (7/4)*100х<значение переменной VAR2>+41.
3. Пусть переменная VAR4 содержит количество изделий первого сорта, а переменная VAR5 - количество изделий второго сорта. Задайте переменную VAR6, которая бы давала процент изделий первого сорта от общего числа изделий.
4. Задайте булеву переменную BVAR1, которая равна единице, если оба устройства FACIL1 и FACIL2 находятся в состоянии ЗАНЯТЫЙ, и ноль - для всех других случаев (F$имя - СЧА, определяющий занятость устройства, выдает значение 1, если устройство занято, 0 - если свободно).