Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции Пучкова ( на печать).doc
Скачиваний:
24
Добавлен:
24.09.2019
Размер:
701.95 Кб
Скачать

Переменные

При построении модели возникает необходимость задавать сложные математические и логические отношения между атрибутами системы. В GPSS имеется 3 типа переменных:

  1. арифметические;

  2. арифметические с плавающей точкой;

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

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

  • операнд блока;

  • номер объекта;

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

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

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

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

  • операнд выражения другой переменной.

В выражениях арифметические переменные используют операции +, -, # (умножение), / (алгебраическое деление, результатом операции является целая часть частного), @ (деление по модулю), (возведение в степень), / (деление без остатка).

В GPSS World используется косвенная адресация для построения компактных и гибких моделей. Ее идея состоит в том, что можно обратиться к любому объекту ил стандартному числовому атрибуту через параметры транзактов. Доступ к параметрам транзактов осуществляется через СЧА Рj, где j – номер параметра транзакта (например, 10) или Р$ имя, где имя – имя (идентификатор) параметра транзакта. Так как обращение к объекту возможно только через параметр транзакта, то символ Р может опускаться.

Значок * зарезервирован для обозначения косвенной адресации.

Например, выражение Q*7 или Q*Р7 определяет текущее значение длины очереди, номер которой задан в параметре 7 транзакта. Если в 7 параметре хранится значение, то это будет текущее значение длины очереди с номером 3.

1) Арифметические переменные задаются оператором variable. Этот оператор имеет следующий формат:

Поле

Информация, задаваемая в поле

Метка

Операция

Операнд А

Имя (числовое или символьное) переменной

variable

Выражение, используемое для вычисления переменной

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

V < номер переменной > или $ < имя переменной >

Пример: RSL variable QT$ waitl +3 – FN$DSTRB#P7

При любом обращении к переменной RSL с помощью обозначения V$RSL ее значение вычисляется как текущая длина очереди waitl (QT$ waitl – СЧА регистратора очереди) +3 (константа) и произведение функции DSTRB на значение параметра 7 транзакта, обрабатываемого в данный момент. FN – СЧА для обращения к функции.

2) Задание переменных с плавающей точкой аналогично. В этом случае используется операнд fvariable.

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

Пример: float frariable 10 # (11/3)

fixed variable 10 # (11/3)

В результате выполнения этих операций:

float = 36

fixed = 30

3) Булевы переменные позволяют принимать решения в зависимости от значений СЧА и объектов GPSS. Логические операторы связаны с такими ресурсами как устройства МКУ, логические операторы GPSS представлены в таблице:

Логические

операторы

Значение оператора

FVj / Fj

FNVj

Ij

NIj

NVj

Vj

SFj

SNFj

SEj

SNEj

SVj

SNVj

LRj

LSj

1 – устройство j – занято 0 – не занято

1 – устройство j – не занято 0 – наоб.

1 – устройство обслуживает прерывание, 0 – в противном случае

1 – устройство не обслуживает прерывание, 0 – в противном случае

1 – устройство j не используется, 0 – иначе

1 – устройство j используется; 0 – наоборот

1 – МКУ – занято; 0 – не занято

1 – МКУ – не заполнено; 0 – наоборот

1 – МКУ – пусто; 0 – наоборот

1 – МКУj – не пусто; иначе 0

1 – МКУj – используется, иначе 0

1 – МКУj – не используется, иначе 0

1 – если логический ключ j выключен, иначе 0

1 – если логический ключ j включен, иначе 0

Операторы отношения:

G – больше, L – меньше, E – равно, NE – не равно, LE – меньше или равно, GE – больше или равно, OR – или, AND – и.