Сохраняемые величины
Ограничения в системе:
* Исходные данные задавались либо как операнды блока либо как параметры значений в определении функции;
* Константы, используемые в качестве операндов блоков, ограничены по величине 6-ю десятичными разрядами;
* Транзакты на могут обмениваться значениями своих параметров. Значение параметра не доступно параметру другого транзакта.
* Не существует прямого способа распечатать значения параметров.
Все эти ограничения снимаются с введением в GPSS понятие сохраняемой величины, которая существует на протяжении всего времени моделирования и позволяет транзактам обмениваться данными. Сохраняемые величины могут быть как простыми величинами, так и массивами.
Рассмотрим простые сохраняемые величины. Различают полусловные (2 байта) и полнословные (4 байта) сохраняемые величины. Сохраняемые величины являются целыми числами. Групповое имя полусловных сохраняемых величин обозначается ХН, а полнословных - обозначается Х.
Пр.:ХН5 - полусловная сохраняемая величина с числовым именем 5;
Х$NUM - полнословная сохраняемая величина с символическим именем NUM.
С помощью блока INITIAL до начала моделирования некоторым сохраняемым величинам могут быть назначены начальные значения, отличные от нуля.
INITIAL имя сохраняемой величины, ее значение/имя, значение/...
Пр.:INITIAL Х2,3/ХН1,5/Х9-Х11,8/Х$ТТТ,6
До начала моделирования 2-ой полнословной величине присвоено значение 3, 1-ой полусловной величине присвоено значение 5, полнословным величинам с 9-ой до 11-ой присваивается значение 8, полнословной сохраняемой величине с символическим именем ТТТ будет присвоено значение 6.
В модели разрешается использовать несколько блоков INITIAL, которые ставятся до блока GENERATE.
Для изменения значения сохраняемой величины в процессе моделирования используют блок
SAVEVALUE А,В,С.
А - имя сохраняемой величины.
В - значение.
С - тип сохраняемой величины: полнословная Х (по умолчанию) или полусловная Н.
Пр.:1) SAVEVALUE 10,XH$DATA,H
При прохождении транзакта через данный блок десятая полусловная сохраняемая величина примет значение, равное полусловной сохраняемой величине с символическим именем DATA.
2) SAVEVALUE NUM,-3
Полнословная сохраняемая величина с символическим именем NUM примет значение -3.
3) SAVEVALUE P5,V2
При входе транзакта в данный блок полнословная сохраняемая величина, имя которой “несет” данный транзакт в параметре 5, примет значение второй арифметической переменной (V- групповое имя арифметической переменной).
Блок SAVEVALUE может использоваться в режиме приращения. В режиме приращения значение сохраняемой величины, указанной в операнде А, увеличивается или уменьшается на величину, указанную в операнде В. Для обозначения режимов увеличения или уменьшения после операнда А до запятой, разделяющей операнды А и В, ставится, соответственно, знак “плюс” или “минус”.
Пр.:SAVEVALUE COUNT+,1
Полнословная величина с символическим именем COUNT увеличивается на 1 при прохождении транзакта через данный блок.
Матричные сохраняемые величины. Матричные сохраняемые величины должны быть заданы интерпретатору GPSS в начале моделирования. Для этой цели используют блок
Имя MATRIX А,В,С
А - тип ячеек памяти, которые образуют матрицу (Х или Н).
В и С - число строк и столбцов соответственно.
Пр.:1)2 MATRIX Х,3,5
Этот блок описывает матрицу, которая имеет числовое имя 2, определена полнословной и имеет 3 строки и 5 столбцов.
2)РАП MATRIX H,7,8
Матрица имеет символическое имя РАП определена полусловной и имеет 7 строк и 8 столбцов.
Обращение к элементам матрицы осуществляется, используя групповое имя МХ или МН для обозначения полнословного или полусловного типа соответственно. Далее следует имя рассматриваемой матрицы (в случае использования символического имени между МХ или МН необходимо помещать символ $). Затем указывается номер строки и номер столбца, заключенные в круглые скобки
Пр.:1)МН$РАП(1,2)
2)МХ2(1,3)
Перед началом моделирования значения всех элементов матрицы устанавливаются равными нулю. Программист может присвоить некоторым элементам не нулевые значения при использовании блока INITIAL.
INITIAL MX2(1-2,3),3/MH$РАП(3,5),6
В данном блоке задается начальное значение элементов, расположенных в 3 столбце 1 и 2 строки полнословной матрицы 2, равное 3, а также элементу полусловной матрицы РАП, расположенному в 5 столбце 3 строки, присваивается значение 6.
Для изменения значения элемента матрицы в ходе моделирования используют блок
Дата добавления: 2016-11-04; просмотров: 1517;