Пример 4.30
Цикл организован по первому параметру транзакта. Его начальное значение равно 3. После освобождения устройства проверяется значение первого параметра. Если оно не равно нулю, го транзакт возвращается к блоку, помеченному меткой SIS,т.е. занимает устройство c именем PC. Всего каждый транзакт будет занимать это устройство три раза.
Вопрос 44 Сохраняемые величины. Операторы INITIAL и SAVEVALUE. В GPSS пользователю предоставляется возможность определить «свои» глобальные переменные, начальные значения которых могут быть заданы перед моделированием и к которым можно обратиться из любого места модели в любой момент времени. Эти переменные называют сохраняемыми величинами (ячейками). Совокупность логически связанных между собой ячеек образует матрицу (аналог массива). В отличие от параметров транзакта, приоритета и отметки времени, которые теряются в момент выхода транзакта из модели, ячейки доступны на протяжении всего процесса моделирования. Значения сохраняемых величин не подсчитываются интерпретатором автоматически (как СЧА устройств, очередей, МКУ и т.п.), А задаются и изменяются программистом. Сохраняемые величины могут принимать положительные и отрицательные значения. Стандартный числовой атрибут Xj (Х$<имя ячейки>) дает значение соответствующей сохраняемой величины. Например, X2 – значение ячейки 2; X$DAY – значение ячейки DAY. C матрицами связан стандартный числовой атрибут MXj (m, n) – значение, записанное в строке т и в столбце n матрицы j или МХ$<имя матрицы> (m,n), если матрица имеет символьное имя. СЧА сохраняемой величины может быть использован для косвенного задания данных, А также как аргумент функций и таблиц. Перед использованием матрица определяется оператором описания MATRIX. Начальные значения ячеек и матриц можно задать c помощью оператора описания INITIAL. 1. Допускается косвенная адресация ячеек, матриц, А также их строк и столбцов. Например: X*P2 – значение ячейки c номером, который сохраняется в параметре 2; MX*P5(5,2) – элемент (5,2) матрицы, номер которой записан в параметре 5; MX3(P4,X2) – значение, записанное в строке P4 и в столбце X2 матрицы 3. 2. Недопустимой является запись такого вида: MXl(MX2(l,2),MX3(3,4)),поскольку нельзя задавать номера строк и столбцов матрицы c помощью СЧА матриц. Оператор INITIAL (ИНИЦИАЛИЗИРОВАТЬ). Если в процессе моделирования происходит обращение к сохраняемой величине, которая не была задана, то интерпретатор выдает ошибку в процессе выполнения программы. Поэтому перед началом моделирования все сохраняемые величины должны быть инициализированы c помощью оператора INITIAL. Формат оператора представлен в таблице. Ta6лицa 4.39
Пример 4.38 INITIAL X$TIMER,1000000 Ячейке TIMER присваивается начальное значение 1000000; INITIAL X3,2S Ячейке c номером 3 присваивается начальное значение 25.
|