Встроенные математические и логические функции
Существуют 15 встроенных функций micro?GPSS, объединенных в группы математических и логических функций. Любая из функций представляет собой СЧА, который имеет вид: FN$n(А), где n - символическое имя одной из встроенных функций, приведенных в табл. 4.3, операнд А - аргумент функции.
Приведенные в табл. 4.3. логические функции можно использовать в операторе IF. Например, вместо двух строк программы
IF S$stor>10,nov
IF order=U,nov
может быть использована единственная запись
IF FN$GT0(S$stor-10)+F$order>0,nov.
Таблица 4.3
Встроенные математические и логические функции micro?GPSS
Запись функции | Возвращаемое значение |
Математические функции | |
ABS | Абсолютное значение аргумента А. Если А<0,то FN$ABS(A)=-A, в противном случае FN$ABS(A)=A |
INT | Округление аргумента до целого числа. Так, FN$INT(2.23) будет равно 2 |
DEC | Отделение дробной части десятичной дроби от целой части. Так, FN$DEC(2.23)=0.23 |
EXP | Вычисление экспоненциального значения аргумента функции. Так, FN$EXP(1)=2.718 |
LOG | Вычисление натурального логарифма. Верно следующее равенство: FN$LOG(FN$EXP(A))=A |
SGN | Определение знака аргумента. При A<0 FN$SGN(A)=-1, при A=0 FN$SGN(A)=0, при A>0 FN$SGN(A)=1 |
SIN | Вычисление синуса аргумента, указанного в градусах. Так, FN$SIN(0)=FN$SIN(360)=0 |
SQR | Вычисление квадратного корня. Так,FN$SQR(0.64)=0.8 |
Логические функции | |
EQ0 | Определение равенства нулю аргумента. Так, если А=0,то FN$EQ0(A)=1, в противном случае FN$EQ0(A)=0 |
NOT | Отрицание (инверсия). Эта функция аналогична функции EQ0,но использует значение только 1 и 0.Так,FN$NOT(1)=0 и FN$NOT(0)=1 |
GT0 | Проверка условия А>0.Так,если A>0 ,то FN$GT0(A)=1, в противном случае FN$GT0(A)=0 |
GE0 | Проверка условия A>=0 |
LT0 | Проверка условия A<0 |
LE0 | Проверка условия A<=0 |
NE0 | Проверка условия A<>0 |
В функции вместо независимой переменной может использоваться адрес блока. В этом случае независимой переменной может быть любой СЧА, однако наиболее часто используется СЧА RNj. Так, например, запись
tre FUNCTION RN4,D3
.6,Stan1/.8,Stan2/1,Stan3
означает, что в 60% всех случаев переходить нужно в блок с адресом Stan1, в 20% - в блок с адресом Stan2 и в 20% - в блок с адресом Stan3 в зависимости от величины RN4.