Сохраняемые величины. Операторы initial и savevalue. 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Сохраняемые величины. Операторы initial и savevalue.



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

В отличие от параметров транзакта, приоритета и отметки вре­мени, которые теряются в момент выхода транзакта из модели, ячей­ки доступны на протяжении всего процесса моделирования. Значения сохраняемых величин не подсчитываются интерпретатором автома­тически (как СЧА устройств, очередей, МКУ и т.п.), А задаются и из­меняются программистом.

Сохраняемые величины могут принимать положительные и от­рицательные значения. Стандартный числовой атрибут Xj (Х$<имя ячейки>) дает значение соответствующей сохраняемой ве­личины. Например, X 2 – значение ячейки 2; X $ DAY – значение ячейки DAY.

C матрицами связан стандартный числовой атрибут MXj (m, n) – значение, записанное в строке т и в столбце n матрицы j или МХ$<имя матрицы> (m, n), если матрица имеет символьное имя.

СЧА сохраняемой величины может быть использован для кос­венного задания данных, А также как аргумент функций и таблиц.

Перед использованием матрица определяется оператором опи­сания MATRIX. Начальные значения ячеек и матриц можно задать c помощью оператора описания INITIAL.

1. Допускается косвенная адресация ячеек, матриц, А также их строк и столбцов. Например: X * P 2 – значение ячейки c номером, который сохраняется в параметре 2; MX * P 5(5,2) – элемент (5,2) матрицы, номер которой записан в параметре 5; MX 3(P 4, X 2) – значение, записанное в строке P4 и в столбце X2 мат­рицы 3.

2. Недопустимой является запись такого вида: MXl (MX 2(l,2), MX 3(3,4)), поскольку нельзя задавать номера строк и столбцов матрицы c помощью СЧА матриц.

Оператор INITIAL (ИНИЦИАЛИЗИРОВАТЬ). Если в про­цессе моделирования происходит обращение к сохраняемой величи­не, которая не была задана, то интерпретатор выдает ошибку в процессе выполнения программы. Поэтому перед началом моделирова­ния все сохраняемые величины должны быть инициализированы c помощью оператора INITIAL. Формат оператора представлен в таблице.

Ta 6лиц a 4.39

 

Поле Информация в поле
Метка Не используется
Операция INITIAL
Операнд А Имя сохраняемой вели­чины
Операнд В Начальное значение

Пример 4.38

INITIAL       X$TIMER,1000000

Ячейке TIMER присваивается начальное значение 1000000;

INITIAL       X 3,2 S

Ячейке c номером 3 присваивается начальное значение 25.

INITIAL       MX 8(2,4),-53

Величина – 53 записывается в строку 2, столбец 4 матрицы 8.

INITIAL        MX $ COST (l,3),22

Величина 22 записывается в строку 1, столбец 3 матрицы COST.

Блок SAVEVALUE (СОХРАНИТЬ ВЕЛИЧИНУ). Значение сохраняемой величины изменяется при входе транзакта в блок, SAVEVALUE (СОХРАНИТЬ ВЕЛИЧИНУ).

Его формат:

SAVEVALUE A [+,-], B

Таблица 4.40

 

Операнд Значение Результат по умолча­нию
А Номер или символьное имя сохраняемой величины Ошибка
В Величина, используемая для модификации (число или СЧА) Ошибка

 

Подобно блоку ASSIGN блок SAVEVALUE может быть ис­пользован как в режиме замещения величины, так и в режиме увели­чения или уменьшения. В режиме увеличения предыдущее значение сохраняемой величины увеличивается на значение, заданное операн­дом В, А в режиме уменьшения – уменьшается на это значение. Ре­жимы увеличения и уменьшения определяются введением соответственно знака «плюс» или «минус» перед запятой, разделяющей опе­ранды А и В.

Пример 4.39

SAVEVALUE P 5, VSALPHA

При входе транзакта в блок SAVEVALUE прежде всего вычис­ляется величина переменной ALPHA. Полученный результат при­сваивается сохраняемой величине, номер которой записан в параметpe P 5.

SAVEVALUE 5+, X 2

При входе транзакта в блок величина X 5 увеличивается на зна­чение величины X 2.

SAVEVALUE PROFIT -, FN $ COSTS

При входе транзакта в блок величина X $ PROFIT уменьшается на значение функции FN $ COSTS.


 

 

Вопрос 46



Поделиться:


Последнее изменение этой страницы: 2021-01-08; просмотров: 462; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.21.76.0 (0.006 с.)