При входе транзакта в блок SAVEVALUE прежде всего вычисляется величина переменной ALPHA. Полученный результат присваивается сохраняемой величине, номер которой записан в параметpe P5.
SAVEVALUE 5+,X2
При входе транзакта в блок величина X5 увеличивается на значение величины X2.
SAVEVALUE PROFIT-,FN$COSTS
При входе транзакта в блок величина X$PROFIT уменьшается на значение функции FN$COSTS.
Оператор описания матрицы MATRIX. Каждая матрица должна быть объявлена до ее использования, т.е. должна иметь оператор описания. Формат оператора представлен в таблице.
Таблица 4.41
Поле | Информация в поле |
Метка | Имя матрицы |
Операция | MATRIX |
ОперандА | Не используется (оставлен для совместимости с более старыми версиями GPSS) |
Операнд В | Число строк матрицы (целое положительное) |
Операнд С | Число столбцов матрицы (целое положительное) |
Матрица в GPSS/PC может содержать не более чем 8191 элемент. Она может быть переопределена или инициализирована повторно другим оператором MATRIX c тем же именем. Переопределение, при котором размер матрицы изменяется, повлечет за собой выделение памяти под новую матрицу. Выделенная до этого оперативная память остается занятой.
|
|
Блок MSAVEVALUE. Блок MSAVEVALUE используется для записи значений в матрицы, А также для увеличения или уменьшения значений элементов матриц. Его формат:
MSAVEVALUE A[+,-|3,C,D
Таблица 4.42
Операнд | Значение | Результат по умолчанию |
А | Имя матрицы | Ошибка |
В | Номер строки матрицы | Ошибка |
С | Номер столбца матрицы | Ошибка |
D | Величина, используемая для модификации | Ошибка |
Операнды А, В и C могут быть именем, положительным целым, СЧА или CЧA*CЧA. Операнд D может быть именем, СЧА или : CЧA*CЧA.
Подобно блокам ASSIGN и SAVEVALUE этот блок может быть использован как в режиме замещения величины, так и в режиме увеличения или уменьшения.
Когда транзакт входит в блок MSAVEVALUE, то анализируется операнд А и ищется матрица c указанным именем. Если матрица ненайдена, то возникает ошибка. Соответствующий элемент матрицы определяется содержимым операндов В и C. Если такого элемента не существует, то также возникает ошибка.