Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ekzamen.doc
Скачиваний:
15
Добавлен:
16.04.2019
Размер:
2.21 Mб
Скачать

Test (проверить)

TEST (проверить)

Назначение: сравнивает два значения (обычно СЧА) и в зависимости от результатов сравнения определяет дальнейшее движение транзакта.

Формат: TEST X A,B,[C]

Х – вспомогательный оператор, принимающий значенияE, NE, L, LE, G, GE.

А и В – сравниваемые значения (могут быть именем, числом, строкой, выражением в скобках СЧА).

С – имя или номер блока, в который направляется транзакт, когда проверяемое условие не выполняется.

Если проверяемое условие AXB выполняется, то транзакт пропускается в следующий блок, если же это условие не выполняется и задан операнд С транзакт переходит в указанный блок. Если же операнд С не задан, то транзакт задерживается перед блоком TEST.

Пример 1: TEST G P$Grad,7

Блок не впускает транзакты, у которых значение параметра с именем Grad меньше или равно 7.

Пример 2:TEST L Q$Och1,3,Met2

Режим альтернативного использования блока. Транзакт войдет в TEST и продолжит движение в следующий по порядку блок, если длина очереди Och1 меньше 3, в противном случае транзакт перейдет в блок с меткой Met2.

Gate (впустить)

GATE (впустить)

Назначение: проверяет состояние устройств, памятей, логических ключей и в зависимости от этого изменяет маршрут движения транзактов.

Формат:GATEXA,B

Здесь Х – вспомогательный оператор, представляющий собой код состояния, проверяемого объекта,

А – номер (или имя) проверяемого объекта,

В – номер (или имя) блока назначения транзакта при невыполнении проверяемого условия (необязательно).

Вспомогательный оператор Х может принимать следующие значения: U, NU, I, NI – для устройства; SF, SNF, SE, SNE – для памяти; LR, LS – для логических ключей.

Если проверяемый объект (устройство, память, логический ключ) находится в заданном состоянии (задается Х) транзакт входит в блок GATE и направляется к следующему по порядку блоку. Если же заданное в блоке GATE условие не выполняется, то транзакт переходит к блоку, указанному в операнде В (режим альтернативного выхода – альтернативный режим), а если поле операнда В пусто, то транзакт задерживается перед блоком GATE (режим отказа во входе – блокирующий режим).

31. Блоки и команды для хранения величин (savevalue, initial, msavevalue, matrix). Ячейки (ячейки сохраняемых величин).

Для записи в процессе моделирования текущих значений СЧА используются ячейки. Занесение информации в ячейку осуществляет блок SAVEVALUE (сохранить величину). При входе транзакта в этот блок требуемое значение СЧА фиксируется в ячейке, номер которой определяется операндом блока SAVEVALUE. Ячейке может быть присвоено значение без использования активного транзакта. с помощью команды INITIAL.

Ячейки имеют единственный СЧА:

Xj (X$name) – текущее значение, записанное в ячейке с номером j (именем name).

Матрицы.

Совокупность логически связанных между собой ячеек образует матрицу (аналог массива). Перед использованием матрица определяется командой MATRIX. Начальные значения элементов матрицы можно задать с помощью команды INITIAL. Для записи значений в матрице, а также для увеличения или уменьшения значений элементов матриц используется блок MSAVEVALUE. Когда транзакт входит в этот блок, то ищется матрица, имя которой указано в операнде этого блока. Соответствующий элемент матрицы и его значение определяются другими операндами блока.

С матрицами связан единственный СЧА.

MXj (m, n) – значение, записанное в строке m и в столбце n матрицы с номером j.

Или

MX$name (m, n) – если матрица имеет символьное имя name.

Формат блока MSAVEVALUE и СЧА, связанного с матрицами предоставляет возможность использовать в GPSS только двумерные матрицы.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]