В GPSS пользователю предоставляется возможность определить «свои» глобальные переменные, начальные значения которых могут быть заданы перед моделированием и к которым можно обратиться из любого места модели в любой момент времени. Эти переменные называют сохраняемыми величинами (ячейками). Совокупность логически связанных между собой ячеек образует матрицу (аналог массива).
В отличие от параметров транзакта, приоритета и отметки времени, которые теряются в момент выхода транзакта из модели, ячейки доступны на протяжении всего процесса моделирования. Значения сохраняемых величин не подсчитываются интерпретатором автоматически (как СЧА устройств, очередей, МКУ и т.п.), а задаются и изменяются программистом.
Сохраняемые величины могут принимать положительные и от^ рицательные значения. Стандартный числовой атрибут Xj (Х$<имя ячейки>) дает значение соответствующей сохраняемой величины. Например, Х2 - значение ячейки 2; X$DAY - значение ячейки DAY.
С матрицами связан стандартный числовой атрибут МХj(m,n) -значение, записанное в строке m и в столбце n матрицы j или МХ$<имя матрицы> (m,n), если матрица имеет символьное имя.
СЧА сохраняемой величины может быть использован для косвенного задания данных, а также как аргумент функций и таблиц.
Перед использованием матрица определяется оператором описания MATRIX.
Начальные значения ячеек и матриц можно задать с помощью оператора описания INITIAL.
1. Допускается косвенная адресация ячеек, матриц, а также их строк и столбцов. Например: Х*Р2 - значение ячейки с номером, который сохраняется в параметре 2; МХ*Р5(5,2) -элемент (5,2) матрицы, номер которой записан в параметре 5; МХЗ(Р4,Х2) - значение, записанное в строке Р4 и в столбце Х2 матрицы 3.
2. Недопустимой является запись такого вида: МХ1(МХ2(1,2),МХЗ(3,4)), поскольку нельзя задавать номера строк и столбцов матрицы с помощью СЧА матриц.
Оператор INITIAL (ИНИЦИАЛИЗИРОВАТЬ). Если в процессе моделирования происходит обращение к сохраняемой величине, которая не была задана, то интерпретатор выдает ошибку в процессе выполнения программы. Поэтому перед началом моделирования все сохраняемые величины должны быть инициализированы с помощью оператора INITIAL.
Формат оператора представлен в таблице.
Таблица 4.39
Поле | Информация в поле |
Метка | Не используется |
Операция | INITIAL |
Операнд А | Имя сохраняемой величины |
Операнд В | Начальное значение |