Читайте также: |
|
Арифметические переменные представляют собой арифметические сочетания значений различных СЧА, в том числе и других арифметических переменных аналогично арифметическим выражениям в Фортране. Переменная задается одним оператором, называемым оператором описания переменной (оператор VARIABLE), в нем содержится задаваемое арифметическое выражение. Например, следующий оператор описания VARIABLE определяет арифметическую переменную RSLTV:
RSLTV VARIABLE Q$WAITL+3-P7#FN$DSTRB
При любом обращении к переменной RSLTV (употребляется обозначение V$RSLTV) её значение вычисляется как текущая длина очереди WAITL плюс константа 3 и минус произведение значения параметра 7 обрабатываемого в данный момент сообщения на значение функции DSTRB.
Значение арифметической переменной может использоваться следующим образом:
1) как аргумент поля блока. В этом случае значение арифметической переменной может представлять: номер объекта j, номер объекта j логического атрибута (блок GATE), номер параметра сообщения (блоки ASSIGN, INDEX, LOOP, MARK, SPLIT), значение атрибута;
2) как аргумент функции;
3) как значение зависимой переменной атрибутивной функции;
4) как аргумент таблицы;
5) как операнд другой арифметической переменной или булевской переменной.
В арифметических переменных используются следующие пять арифметических операций:
- алгебраическое сложение (+);
- алгебраическое вычитание (-);
- алгебраическое умножение (#);
- алгебраическое деление (/), остаток отбрасывается, сохраняется только частное;
- деление по модулю (@);
- возведение в степень (^);
- деление нацело (\).
В выражении переменной может быть задано произвольное число перечисленных выше операций в различных сочетаниях. Знак результата вычислений определяется по обычным алгебраическим правилам. Допустимы отрицательные значения переменных. Выражения переменных анализируются слева направо. Возведение в степень, умножение, деление и деление по модулю выполняются раньше, чем сложение и вычитание. Перед выполнением любой арифметической операции определяется значение каждого элемента и выделяется его целая часть.
Все операции алгебраические. Постоянные без знака считаются положительными.
Любые стандартные числовые атрибуты, а также библиотечные функции и другие арифметические переменные могут быть использованы в выражении арифметической переменной. Запрещается только использование самой вычисляемой переменной. В противном случае происходит ошибка выполнения. Нельзя использовать непосредственно переменные со знаком, так как знаки в этом случае рассматриваются как знаки арифметических операций.
GPSS/PC допускает использование скобок в выражениях арифметических переменных. Скобки могут быть использованы для группировки членов или для обозначения операции умножения. Выражение переменной может содержать не более пяти пар скобок (не считая скобок, используемых при описании матриц ячеек). В выражении, содержащем скобки, прежде всего вычисляется значение группы элементов, ограниченных самой правой из левых скобок. Число правых и левых скобок в выражении должно быть одинаково. Ошибки при использовании обнаруживаются на фазе ввода. Например, выражение 5#FN3+5#V6+5#P11 может быть записано в виде 5#(FN3+V6+P11).
Дата добавления: 2015-11-16; просмотров: 123 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Переменные и выражения | | | Блок GENERATE |