Функции и переменные в GPSS
Функции служат для отображения зависимостей между двумя величинами.
В GPSS имеется группа из восьми стандартных (встроенных) функций RN$i, i = 1,…,8, при обращении к каждой из которых вычисляется непрерывная случайная величина, обозначаемая далее через Х, заданная на интервале (0, 1) и имеющая равновероятное распределение.
Эти функции можно использовать для получения значений случайных величин, распределенных по некоторому другому закону. Зависимость произвольно задаваемой случайной величины Y от Х следует в GPSS-программе представить в виде конечной последовательности значений пар «аргумент Х, функция У» по такой форме:
Имя_функции FUNCTION RN$i, тип_ функции [; комментарий]
Последовательность пар координат (точек), разделяемых знаком «/»
В GPSS предусмотрено два типа функций: непрерывные (Сn) и дискретные (Dn), где n — количество точек, задаваемых парами координат Х,Y. Графически непрерывная функция может быть представлена в виде последовательности прямолинейных отрезков, которые соединяют соседние точки на плоскости Х,Y, т.е. для непрерывной функции методом линейной интерполяции определяется значение Y в любой точке заданного интервала значений Х. Дискретная функция определена только в задаваемых точках.
Примеры.
F1 FUNCTION Р$3,D4;
дискретная функция F1, зависит от параметра 3 транзакта
0,5/1,9/2,4/3,10; параметр 3 принимает значения 0,1,2,3, функция F1 – 5,9,4,10
F2 FUNCTION RN$1,C3;
непрерывная функция F2 зависит от значений RN$1
.2,300/.5,700/1,1000; при RN$1, принимающим значения от 0 до 0.2, F2 получает значения от 0 до 300 в соответствии с линейной зависимостью Y от X
PP FUNCTION V$3,D3;
дискретная функция PP зависит от переменной номер 3: 2,V$4/3,V$5/6,FN$PUAS;
при V$3=2 значения функции PP вычисляются по формуле, записываемой для переменной V$4, при V$3=3 – по формуле, записываемой для переменной V$5, при V$3=6 функция РР принимает значение функции PUAS.
Переменные применяются для определения значений по формулам, состоящим из СЧА или СЛА и соответствующих операций. В GPSS-программе целочисленные и булевы переменные описываются оператором VARIABLE, а переменные с плавающей точкой – оператором FVARIABLE, которые имеют формат:
Имя_переменной VARIABLE формула
В формуле могут использоваться операции сложить +, вычесть -, умножить *, разделить /, разделить по модулю @, найти отношение =, >, <, >=, <=. Примеры.
11 FVARIABLE XH$1*FN$EXP/XH$2+1
15 VARI XH$6-XH$8
V1 VARIABLE XH$1*(P$1-1)
V2 VARI P$2+FN$NORM
V3 FVAR S$MON*XF$5/10;
V4 FVAR V$V2+3.5;
5 FVAR FN$EXP*3.14
переменная V4 вычисляется как сумма числа 3.5 и значения переменной V2.
Примечание. Имена переменных V1, V2, V3, V4 должны быть объявлены.
Переменные 11, 15, 5 (в первой, третьей и в последней строке) не объявляется.