Вычисляемые и запоминающие объекты
К ним относятся переменные, функции и хранимые значения.
Арифметическая переменная в GPSS является СЧА, определяемым пользователем. Ссылка на арифметическую переменную производится с помощью СЧА, Vf или V$ имя, где f - номер переменной, а "имя" - символическое имя в случае символического определения. Арифметическая переменная определяется с помощью задаваемого пользователем арифметического выражения, являющегося набором СЧА, связанных арифметическими операциями и круглыми скобками. В GPSS/PC используются арифметические операции: +(сложение), –(вычитание), #(умножение), /(деление), \(целочисленное деление), @(деление по модулю), при котором результат равен остатку от деления, ^(возведение в степень). При записи арифметических выражений могут использоваться встроенные функции: ABS( ), ATN( ), SIN( ), COS( ), TAN( ), SQR( ), EXP( ), LOG( ), INT ( ).
В арифметическом выражении последовательность вычислений определяется приоритетом операций и круглыми скобками.
Арифметическая переменная определяется следующим образом. Имя переменной помещается в поле имени, а в поле операции помещается слово VARIABLE или FVARIABLE для целой или действительной переменной. В поле операндов записывается арифметическое выражение.
Отличие переменных целых и действительных заключается в следую-щем. При вычислении целых переменных отбрасываются дробные части всех промежуточных результатов. При вычислении действительной переменной действия выполняются с дробными числами и отбрасывается дробная часть только результата. Операция деления по модулю @ для действительной пе-ременной не используется.
Булевские переменные дают возможность принимать решения в зави-симости от состояния и значения многих объектов GPSS, используя для этого только один блок. Булевские переменные описываются и используются так же, как и арифметические переменные. Булевская переменная определяется с помощью задаваемого пользователем логического выражения, являющегося набором СЧА, операций отношения: ‘L’, ‘LE’, ‘G’, ‘GE’, ‘E’, ‘NE’, логиче-ских указателей, определяющих состояние устройств ( F$ имя, FI$ имя, FV$ имя), накопителей (SE$ имя, SF$ имя, SV$ имя ), логических ключей (LS$ имя ) и логических операторов (‘NOT’, ‘AND’, ‘OR’). Булевская переменная принимает значение 1, если логическое выражение ИСТИННО, и 0, если ЛОЖНО. Например, переменная STOR BVARIABLE ‘NOT’F$CPU’AND’Q$BUF’LE’5 примет значение 1, если устройство CPU не занято и длина очереди BUF меньше или равна 5.
Хранимыми значениями называются постоянные ячейки памяти, в которые можно обратиться из любого места модели во время моделирования. Они являются СЧА и обозначаются XJ или Х$ имя, где J – число, а "имя" – символическое имя.
Значение СЧА изменяется при входе транзактов в блок SAVEVALUE (СОХРАНИТЬ ВЕЛИЧИНУ). В операнде Ауказывается номер или символи-ческое имя хранимого значения. В поле Вуказывается СЧА, значение кото-рого необходимо сохранить.
Блок SAVEVALUE может использоваться в режиме накопления. Тогда в поле Апосле имени ставится знак + или – .
Матрицы сохраняемых величин дают возможность упорядочить сохра-няемые значения в виде матриц m * n, где m – число строк, n – число столб-цов матрицы. Каждая матрица должна быть перед началом моделирования определена с помощью оператора MATRIX (определить матрицу), имеющего следующий формат:
Имя MATRIX A, B, C.
Поле Aоператора не используется и сохранено в GPSS/PC для совмес-тимости со старыми версиями GPSS. В полях Bи Cуказываются соответст-венно число строк и столбцов матрицы, задаваемые константами, причем общее число элементов, равное произведению B на C, не должно превышать 8191.
Например, оператор MTAB MATRIX ,10, 2 определяет матрицу с именем MTAB, содержащую десять строк и два столбца.
В начале моделирования элементы всех определенных матриц устанавливаются равными 0. Для установки отличных от 0 начальных значений отдельных элементов матриц используется оператор INITIAL, имеющий следующий формат: INITIAL MX $ имя (a, b), значение или INITIAL MXj (a, b), значение. Здесь имя и j – соответственно имя и номер матрицы; a и b – номера соответственно строки и столбца, задаваемые константами; значение – присваиваемое элементу матрицы начальное значение, задаваемое также константой.
Для изменения значений элементов матриц в процессе моделирования служит блок MSAVEVALUE (сохранить значение элемента матрицы), имеющий следующий формат:
Имя MSAVEVALUE A, B, C, D.
В поле Aуказывается имя или номер матрицы, после которого, как и в блоке SAVEVALUE, может стоять знак + или –. В полях Bи Cуказываются номера соответственно строки и столбца, определяющие изменяемый элемент матрицы. В поле Dуказывается величина, используемая для изменения заданного элемента матрицы.
Например, MSAVEVALUE 5, 3, 2, X1, MSAVEVALUE MTAB +, P $ ROW, P $ COL, 1
Матрицы имеют единственный СЧА с названием MX, ссылка на который записывается в следующем виде MX $ имя (a, b) или MXj (a, b). Здесь имя и j - соответственно имя и номер матрицы; a и b - номера соответственно строки и столбца, задаваемые константами или ссылками на СЧА параметров транзактов.
Например:
MX5 (2, 1) ,
MX $ MTAB (P $ ROW, P $ COL)
Дата добавления: 2016-02-13; просмотров: 645;