Баннер
Баннер

Программирование в GPSS - Логические (булевы) переменные

Оглавление
Программирование в GPSS
прагматический аспект
Классы объектов языка GPSS
Интерпретации транзактов
Интерпретаций устройст
Элементы реальных систем
Очереди и таблицы
Блоки
Модельное время
Общеалгоритмические средства GPSS
Стандартные числовые атрибуты
Арифметические переменные
Логические (булевы) переменные
Функции
Ячейки и матрицы ячеек
Задание начальных значений ячеек и матриц
Объектно-ориентированные средства GPSS
Создание и уничтожение транзактов
Задержка транзактов в блоках ADVANCE
Операции занятия и освобождения устройств
Операции захвата и освобождения устройств
Операции блокирования и разблокирования устройств
Описание памятей и работа с ними
Операции с ключами
Блок GATE
Синхронизация транзактов
Изменение параметров транзактов
Управление маршрутами транзактов в модели
Сбор статистики с помощью очередей
Сбор статистики с помощью таблиц
Стандартные числовые атрибуты
Атрибуты транзактов
Атрибуты блоков
Системные атрибуты
Атрибуты оборудования
Статистические атрибуты
Атрибуты ячеек SAVEVALUE
Функции и переменные
Атрибуты списков пользователя
Атрибуты группы
Системные атрибуты
Блоки COUNT и SELECT
Все страницы
Логические (булевы) переменные

Обозначение булевской переменной имеет вид BV$name. Этот СЧА, как и арифметическая переменная, описывается в тексте модели пользователем. Булевская переменная описывается в строке описания булевской переменной. В одной строке описывается одна переменная. В поле метки обязательно записывается имя переменной, в поле операций - слово BVARIABLE, а в поле операндов - булевское выражение. Булевское выражение составляется из элементов пяти типов: СЧА, отношений, стандартных логических атрибутов (СЧА), знаков логических операций и скобок. Значением булевской переменной является число 1, когда булевское выражение истинно и число 0 - в противном случае. Подчеркнем, что значением булевской переменной являются именно числа.

Отношение представляет собой запись двух СЧА, соединенных одним из знаков:

G’ - больше чем,

L’ - меньше чем,

E’ - равно,

NE’ - не равно,

LE’ - меньше или равно,

GE’ - больше или равно.

Отношение имеет значение «истинно» в том и только в том случае, если значения входящих в него СЧА отвечают смыслу соединяющего знака. Например, переменные BV$LOG1 и BV$LOG2 , описанные строками:

 

LOG1 BVARIABLE V$ABC1’G’5

LOG2 BVARIABLE V$ABC1’NE’V$ABC2,

всегда равны единице, если V$ABC1 и V$ABC2 описаны так, как в предыдущем параграфе.

Если СЧА в логическом выражении не входит в отношение, то ему приписывается логическое значение (в этом случае СЧА должен быть заключен в скобки). Логическое значение «ложно» приписывается в случае, если численно СЧА равен нулю, во всех остальных случаях приписывается значение «истинно».

Стандартные логические атрибуты (СЛА) в GPSS отражают состояние оборудования в модели. Это следующие атрибуты.

СЛА устройств:

FIj - устройство j захвачено,

FNIj - устройство j не захвачено,

FUj - устройство j занято,

FNUj - устройство j свободно,

Fj - устройство j не свободно,

FVj – устройство j доступно,

FNVj – устройство j недоступно.

 

СЛА памятей:

SFj - память j заполнена,

SNFj - память j не заполнена,

SEj - память j пуста,

SNEj - память j не пуста,

SVj – память j доступна,

SNVj – памятьj недоступна.

 

СЛА ключей:

LSj - логический ключ j включен,

LRj - логический ключ j выключен.

 

СЛА блоков MATCH:

M – в j-ом блоке синхронизации есть транзакт того же семейства,

NM – в j-ом блоке синхронизации нет транзакта того же семейства.

Последние два СЛА могут быть использованы только в блоке GATE.

СЛА имеет значение «истинно» тогда и только тогда, когда выполняются соответствующие ему условие - в приведенном перечне оно записано напротив вида индикатора. Указатель j в обозначении индикатора задается так же, как и в обозначении СЧА, т.е. может быть номером, косвенным номером или именем объекта.

Знаки логических операций в описании булевской переменной - это знак логического сложения (+) и знак логического умножения (#). Операция умножения имеет приоритет по отношению к операции сложения. Например, булевская переменная BV$RESURS, описанная строкой:

 

RESURS BVARIABLE FNU1#FNU2+SNF1#SNF2,

равна единице тогда и только тогда, когда устройства 1 и 2 оба свободны, или памяти 1 и 2 обе не заполнены.

Следует иметь в виду, что, хотя все промежуточные операции в булевской переменной имеют логические значения «истинно» или «ложно», сама булевская переменная имеет числовое значение 0 или 1.





Читайте также:

Добавить комментарий


Защитный код
Обновить




Разделы



Главная GPSS Программирование в GPSS