Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Otvety_Mstk.doc
Скачиваний:
6
Добавлен:
01.07.2025
Размер:
5 Мб
Скачать
☆

47. Оператор описания переменной. Арифметические операции.

В языке GPSS имеются три типа переменных: Арифметические переменные с фиксированной точкой; Арифметические переменные с плавающей точкой; Булевы переменные. Переменная задается одним оператором, называемым оператором описания переменной: VARIABLE Оператор имеет следующий формат: 1. Поле метки, содержащее имя переменной, 2. Поле операции, слово VARIABLE, 3. Поле операндов, содержащее выражение для вычисления значения переменной. VADD_VARIABLE P10+25 Значение переменной VADD вычисляется как P10+25. COMP_VARIABLE X1*P4/10 Арифметические переменные с фиксированной точкой вычисляются следующим образом: 1. Сначала берется целая , часть от входящих в выражение значений и производится вычисление; 2. Затем выделяется целая часть результата. Арифметические переменные с плавающей точкой отличаются лишь тем, что окончательный результат преобразуется к целому числу. В булевых переменных допускаются три типа операторов: логические, булевы и операторы отношений. Когда задается булева переменная, то перед словом VARIABLE пишется буква В.

47. Логические и булевы операторы, операторы отношений.

Булевы переменные с использование всего лишь одного блока дают возможность принимать решения в зависимости от состояния и значения атрибутов многих объектов GPSS. Булева переменная представляет собой логическое выражение, составленное из различных СЧА и др. булевых переменных. Булева переменная определяется командой NAME BVARIABLE A, где NAME – имя булевой переменной, по желанию она может быть заменена номером при помощи команды EQU. А – логическое выражение. В выражении можно использовать арифметические(+-сложение;- вычитание; # - умножение; / - деление (результатом является целая часть частного); @ - деление по модулю; ^ - возведение в степень; \ - деление без остатка (перед делением у обоих операндов отбрасываются дробные части) и логические переменные (“G” - >, “L” - <, “E” - =, “GE” - ≥, “LE”- ≤, “NE” - ≠). Конечный результат преобразуется в целое значение 0, если равен 0. или в целое значение1, если отличен от 0.

Логические операторы вязаны с объектами аппаратной категории и используется для определения состояния этих объектов. 1)FVj =1, если устройство j доступно, иначе-0; 2)FIj=1, если устройство j обслуживает прерывание, иначе-0; 3)SFj=1, если МКУ j заполнено полностью, иначе-0; 4)SEj=1, если МКУ j пусто, иначе-0; 5)SVj=1, если МКУ j доступно, иначе-0; 6)LSj=1, если логический ключ j включен, иначе-0. j – имя или номер. oky BVARIABLE FV$REM1-булева переменная oky=1, если устройство REM1 доступно, иначе-0.

Операторы отношения- производят алгебраическое сравнение операндов. Prov1 BVARIABLE V$VseAvt’G’16- булева переменная Prov1=1, если переменная VseAvt больше16, иначе-0.

Булевых операторов два: OR – или,AND-и. Оператор ИЛИ проверяет выполнение хот бы одного из условий, оператор И требует выполнения обоих условий.

Prov1 BVARIABLE FI$Rem’OR’SF4- булева переменная Prov1=1, если выполняется одно из условий: устр-во REm обслуживает прерывание или память номер 4 не заполнена.

Prov2 BVARIABLE FI$Rem’AND’SF$4 - булева переменная Prov2=1, если выполняется j,f условия: устр-во REm обслуживает прерывание и память номер 4 не заполнена.

Prov3 BVARIABLE V$Rem – вычисляется значение арифметической переменной с именем Rem, и если оно отлично от 0- значение булевой переменной Prov3=1, иначе 0.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]