Баннер
Баннер

Программирование в GPSS - Ячейки и матрицы ячеек

Оглавление
Программирование в GPSS
прагматический аспект
Классы объектов языка GPSS
Интерпретации транзактов
Интерпретаций устройст
Элементы реальных систем
Очереди и таблицы
Блоки
Модельное время
Общеалгоритмические средства GPSS
Стандартные числовые атрибуты
Арифметические переменные
Логические (булевы) переменные
Функции
Ячейки и матрицы ячеек
Задание начальных значений ячеек и матриц
Объектно-ориентированные средства GPSS
Создание и уничтожение транзактов
Задержка транзактов в блоках ADVANCE
Операции занятия и освобождения устройств
Операции захвата и освобождения устройств
Операции блокирования и разблокирования устройств
Описание памятей и работа с ними
Операции с ключами
Блок GATE
Синхронизация транзактов
Изменение параметров транзактов
Управление маршрутами транзактов в модели
Сбор статистики с помощью очередей
Сбор статистики с помощью таблиц
Стандартные числовые атрибуты
Атрибуты транзактов
Атрибуты блоков
Системные атрибуты
Атрибуты оборудования
Статистические атрибуты
Атрибуты ячеек SAVEVALUE
Функции и переменные
Атрибуты списков пользователя
Атрибуты группы
Системные атрибуты
Блоки COUNT и SELECT
Все страницы
Ячейки и матрицы ячеек

Для того чтобы в модели можно было организовать запоминание каких-либо данных, в языке GPSS имеются специальные СЧА, называемые ячейками сохраняемых величин или ячейками SAVEVALUE. Ячейка имеет обозначение вида Xj, где j – номер или имя ячейки.

Запись значений в ячейку осуществляется при входе транзакта в блок SAVEVALUE. Поле A этого блока интерпретируются как номер, косвенный номер или имя ячейки, поле В - как записываемое в нее значение.

Если в поле A записан СЧА, то его значение рассматривается как номер ячейки.

Пусть, например, транзакт проходит в модели через следующую цепочку блоков:

 

SAVEVALUE OPERATION_NUMBER,157

SAVEVALUE 1,Х$OPERATION_NUMBER

SAVEVALUЕ Х1,C1.

 

Тогда будут выполнятся следующие действия:

· запись числа 157 в ячейку Х$OPERATIONS_NUMBER;

· запись числа 157 в ячейку 1;

· запись текущего времени в ячейку номер 157.

В начальный момент времени, когда в ячейки еще ничего не записывалось, все они имеют нулевое значение.

Если к обозначению СЧА в поле A блока SAVEVALUE приписать знак + или -, то в ячейке вместо записи значения будет производиться добавление или, соответственно, вычитание этого значения. Например, прохождение транзактом блоков

SAVEVALUE 11+,S1

SAVEVALUE 12-,V$DIFFERENCIAL

вызовет добавление числа занятых единиц памяти номер 1 в ячейку 11 и вычитание переменной DIFFERENCIAL из ячейки номер 12.

Наряду с ячейками в моделях на языке GPSS можно использовать матрицы ячеек. В отличие от простых ячеек матрицы перед использованием должны быть описаны. Для описания матрицы применяется строка описания матрицы. В поле метки этой строки записывается имя описываемой матрицы, в поле операции - слово MATRIX, в поле операндов - параметры матрицы: в поле A записывают любое слово или оставляют поле пустым, в поле В указывают число строк матрицы, в поле С - число столбцов. Например, описать матрицу ITOGI размерами 2 4 можно с помощью строки:

 

ITOGI MATRIX ,2,4.

 

В начальный момент любая матрица содержит только нулевые значения.

После того как матрицы описаны, можно использовать в качестве СЧА индексированные переменные - ячейки этих матриц. Ячейка матрицы имеет обозначение вида MX$name(a,b), где name – имя матрицы , a - СЧА, значение которого задает номер строки матрицы, b - СЧА, задающий номер столбца. Например, обозначение MX$ITOGI(1,2) соответствует ячейке в первой строке и втором столбце матрицы ITOGI.

Запись значений в ячейки матриц осуществляется с помощью блоков MSAVEVALUE. Поле A этого блока задает имя матрицы, поле В - номер строки, поле С - номер столбца, поле D - записываемое значение.

Например, при входе транзакта в блок

 

MSAVEVALUE ITOGI,2,4,V$ABC

в матрицу ITOGI коротких ячеек (в ячейку, расположенную на пересечении второй строки и четвертого столбца) записывается значение переменной V$ABC.

В поле A блока MSAVEVALUE после имени матрицы может быть приписан знак + или - . В этом случае значение операнда D добавляется или соответственно вы-читается в ячейке матрицы, аналогично тому, как это делается в блоке SAVEVALUE.





Читайте также:

Добавить комментарий


Защитный код
Обновить




Разделы



Главная GPSS Программирование в GPSS