Переменные и функции, используемые в ИМ на GPSS,
должны быть предварительно определены. Определение арифметических
переменных, арифметических переменных с плавающей точкой и булевских
переменных выполняется соответственно операторами: N
VARIABLE А N
FVARIABLE А N
BVARIABLE А
N - имя или номер переменной;
А - арифметическое или логическое выражение.
Выражениями, используемыми в арифметических и булевских переменных,
являются комбинации математических операторов, стандартных функций, СЧА и
констант, составленные по правилам математики. В таблице 3 представлены
операторы и стандартные функции, используемые в выражениях, в порядке
приоритетов их вычисления.
Таблица 3 -
Операции и стандартные функции GPSS
Обозначение | Содержание |
Обозначение | Содержание |
Операции отношения |
Логические операции |
'G' |
Больше |
'NOT' |
Логическое отрицание |
'L' |
Меньше |
'AND' |
Логическое умножение |
'Е' |
Равно |
'OR' |
Логическое сложение |
'NE' |
Не равно |
Стандартные функции |
'LE' |
Меньше или равно |
ABS(*) |
Абсолютное значение |
'GE' |
Больше или равно |
ATN(*) |
Арктангенс в радианах |
Арифметические операции |
COS(*) |
Косинус в радианах |
Л |
Возведение в степень |
INT(*) |
Целая часть |
# |
Умножение |
EXP(*) |
Экспонента |
/ |
Деление |
LOG(*) |
Натуральный логарифм |
\ |
Деление нацело |
SIN(*) |
Синус в радианах |
@ |
Деление по модулю |
SQR(-) |
Квадратный корень |
+ |
Сложение |
TAN(*) |
Тангенс в радианах |
- |
Вычитание |
|
|
Обращение к значениям переменных выполняется через их СЧА.
Например:
CountAll VARIABLE F$Shlyuz+Q$VerhOtch;
определение переменной, значение которой равно числу транзактов на
обслуживающем приборе Shlyuz и в очереди
VerhOtch
TimeBetweenTrains FVARIABLE ;
определение вещественной пе-
(ABS(1.4\Q$0chl-3)
) ременной, зависящей от длины
очереди Ochl
TimeSort FVARIABLE 2.88#(1-1/(2#Dir))
; определение времени сортировки вагона
GoNiz BVARIABLE ;
определение логической пере-
((Q$Verh'Е'0)'OR'
(LS$Pol'Е'0))
менной, значение которой за
висит от длины очереди Verh и значения логического
ключа Pol
ASSIGN 3,V$CountAll
; 3-му параметру текущего
транзакта присваивается вновь вычисленное значение переменной
CountAll
ADVANCE V$TimeSort
; задержка транзакта на время
сортировки вагона, определяемое переменной TimeSort Test
Е BV$GoNiz,l
; задержка транзакта пока
логическая переменная GoNiz не примет значение 1
(истина)
Определение функций выполняется в GPSS с помощью
оператора N FUNCTION А,В
N - имя или номер функции; А - аргумент функции;
В - указатель типа функции (в частности, D - для
дискретной, С - для непрерывной) и числа точек табуляции. За оператором
описания функции следует описание множества значений аргумента и функции,
которые отделяются друг от друга символом «/».
Определение значения функции выполняется чтением ее СЧА с именем
FN.
Например:
ProcentNaloga FUNCTION Zarplata,D3;
определение дискретной функции 6.1,10/9.2,13/12.3,20 с тремя возможными
значениями:
10, 13, 20
Output FUNCTION V$Input,C3
; определение непрерывной функ-
1.1,10/20.5,98.7/33.3,889.2 ции.
Аргументом функции служит
значение переменной Input. Промежуточные значения
определяются линейной аппроксимацией соседних значений