Функции в gpss/pc

Функции в GPSS/PC (как и в других языках) предназначены для получения некоторой величины (значения функции), заданным образом зависящей от некоторой другой величины (аргумента функции). В GPSS/PC могут использоваться только функции одного аргумента. Важное (но не единственно возможное) назначение функций — имитация дискретных и непрерывных случайных величин (т. е. реализация в GPSS-модели механизмов метода Монте-Карло). Поэтому во многих случаях аргументом функции является СРРЧ, полученное с помощью датчика случайных чисел.

Все функции, используемые в GPSS-модели, должны быть объявлены в начале текста модели (до первого оператора GENERATE). Функции в GPSS/PC задаются перечислением пар "аргумент функции, значение функции" (таким образом, можно сказать, что функции в GPSS/PC задаются не аналитически, а таблично). Аргумент функции отделяется от соответствующего ему значения запятой; пары “аргумент, значение” разделяются знаками "/". Объявление функции y=f(x) выполняется следующим оператором:

метка FUNCTION A, B

X1,y1/x2,y2/…../xn, yn

Где метка — имя функции (символьное);

A — аргумент функции (любой СЧА);

B — обозначение, имеющее следующий вид: Dn или Cn, где D или C — обозначение типа функции (D — дискретная, C — непрерывная), n — количество пар "аргумент функции, значение функции" (x, y);

X1,y1/x2,y2/…/xn, yn — пары "аргумент функции, значение функции"; здесь y1=f(x1), y2=f(x2),…,yn=f(xn).

Примечание. Кроме дискретных и непрерывных, в GPSS/PC есть и другие виды функций, используемые значительно реже. Их описание имеется в документации по GPSS/PC.

Метка, операнды и перечень пар "аргумент, значение" обязательны. Аргументы и значения функции могут быть как целыми, так и дробными. Количество пар "аргумент, значение" не должно превышать 50. Перечень пар "аргумент, значение" должен начинаться с ПЕРВОЙ позиции.

Величины аргумента функции должны перечисляться в порядке возрастания, т. е. должно выполняться условие: x1 < x2 < x3 < … < xn.

Обращение к функции в операнде языка GPSS/PC выполняется указанием ее имени в следующем виде: FN$имя_функции.