Пример 4. 39 оператор описания матрицы матriх

SАVЕVАLUE Р5,V$АLРНА

При входе транзакта в блок SАVЕVАLUE прежде всего вычисляется величина переменной АLРНА. Полученный результат присваивается сохраняемой величине, номер которой записан в параметре Р5.

SАVЕVАLUE 5+,Х2

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

SAVEVALUE РRОFIТ–FN$СOSТS

При входе транзакта в блок величина Х$РRОFIТ уменьшается на значение функции FN$СOSТS.

Оператор описания матрицы МАТRIХ. Каждая матрица должна быть объявлена до ее использования, т.е. должна иметь оператор описания. Формат оператора представлен в таблице.

Таблица 4.41

Поле Информация в поле
Метка Имя матрицы
Операция МАТRIX
Операнд А Не используется (оставлен для совместимости с более старыми версиями GPSS)
Операнд В Число строк матрицы (целое положительное)
Операнд С Число столбцов матрицы (целое положительное)

Матрица в GPSS/РС может содержать не более чем 8191 элемент. Она может быть переопределена или инициализирована повторно другим оператором МАТRIХ с тем же именем. Переопределение, при котором размер матрицы изменяется, повлечет за собой выделение памяти под новую матрицу. Выделенная до этого оперативная память остается занятой.

Блок MSAVEVALUE. Блок MSAVEVALUE используется для записи значений в матрицы, а также для увеличения или уменьшения значений элементов матриц. Его формат:

MSAVEVALUE А[+,–],В,С,D

Таблица 4.42

Операнд Значение Результат по умолчанию
А Имя матрицы Ошибка
В Номер строки матрицы Ошибка
С Номер столбца матрицы Ошибка
D Величина, используемая для модификации Ошибка

Операнды А, В и С могут быть именем, положительным целым, СЧА или СЧА*СЧА. Операнд D может быть именем, СЧА или СЧА*СЧА.

Подобно блокам АSSIGN и SАVЕVАLUE этот блок может быть использован как в режиме замещения величины, так и в режиме увеличения или уменьшения.

Когда транзакт входит в блок МSАVЕVАLUE, то анализируется операнд А и ищется матрица с указанным именем. Если матрица не найдена, то возникает ошибка. Соответствующий элемент матрицы определяется содержимым операндов В и С. Если такого элемента не существует, то также возникает ошибка.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: