Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Вычислительные категории






 

В GPSS имеется три типа переменных:

- арифметические переменные;

- арифметические переменные с " плавающей точкой";

- булевские переменные;

VARIABLE – переменная для целых чисел;

FVARIABLE – переменная для вещественных чисел;

BVARIABLE – булевская переменная;

+ – арифметическое сложение;

- – арифметическое вычитание;

* – арифметическое умножение;

/ – арифметическое деление;

@ – деление по модулю.

В булевских переменных допускаются три типа операторов: ло­гические, булевские и операторы отношения.

Логические операторы связаны с объектами оборудования и ис­пользуются для определения состояния этих объектов. Имеются следую­щие логические операторы:

- FVj или Fj равен 1, если устройство j занято или обслужива­ет прерывание, в противном случае - 0;

- FNVj равен 1, если устройство j не занято и не обслуживает прерывание, в противном случае - 0;

- Ij равен 1, если устройство j обслуживает прерывание, в противном случае - 0;

- NIj равен 1, если устройство j не обслуживает прерывание, иначе - 0;

- NUj равен 1, если устройство j не используется, 0 - в про­тивном случае;

- Uj равен 1, если устройство j используется, 0 - в противном случае;

- SFj равен 1, если многоканальное устройство j заполнено, иначе - 0;

- SNFj равен 1, если многоканальное устройство j не заполне­но, иначе - 0;

- SЕj равен 1, если многоканальное устройство j пусто, иначе - 0;

- SNEj равен 1, если многоканальное устройство j не пусто, иначе - 0;

- SVj равен 1, если многоканальное устройство j находится в состоянии использования, 0 - в противном случае;

- SNVj равен 1, если многоканальное устройство j не использу­ется, 0 - в противном случае;

- LRj равен 1, если логический ключ j выключен, иначе - 0;

- LSj равен 1, если логический ключ j включен, иначе - 0;

Например,

FACIL BVARIABLE NI$UNIT

STORE BVARIABLE SF$MANY

Булевская переменная FACIL равна 1, если устройство не обслу­живает прерывание. Усли же устройство обслуживает прерывание, то FACIL равна 0. Булевская переменная STORE равна 1, если память MANY заполнена.

Операторы отношения производят алгебраические сравнения опе­рандов. Операндами могут быть целые константы или стандартные чис­ловые атрибуты. Все операторы отношения записываются в кавычках. Имеются следующие операторы отношений:

- 'G' - больше;

- 'L' - меньше;

- 'E' - равно;

- 'NE' - не равно;

- 'LE' - меньше или равно;

- 'GE' - больше или равно;

Например,

ATEST BVARIABLE V$FIXED'G'5

BTEST BVARIABLE FN3'LE'P4

CTEST BVARIABLE X4'GE'P6

Булевская переменная ATEST равна 1, если переменная FIXED больше 5, в противном случае она равна 0. Булевская переменная BTEST равна 1, если значение функции 3(FN3) меньше или равно значе­нию параметра 4. В противном случае BTEST равна нулю. Булевская пе­ременная CTEST равна 1, если значение ячейки 4 больше или равно значению параметра 6.

Использование атрибутов с плавающей точкой возможно только таким образом, как и в булевской переменной CTEST. Сравнение деся­тичных значений и значений с плавающей точкой недопустимо.

Существуют два булевских оператора. Оператор " OR" соответст­вует оператору " или", оператор " AND" соответствует оператору " и". Оператор " или" проверяет, выполняется ли хотя бы одно из проверяе­мых условий, оператор " и" требует выполнения обоих условий. Напри­мер,

BVAR1 BVARIABLE NI2" OR" SF3

BVAR2 BVARIABLE NI2" AND" SF3

BVAR3 BVARIABLE (V2'G'5)" AND" (FN12" OR" LR7)

BRAV1 равно 1, если выполняется одно из условий. BRAV2 равно 1, только если выполняются два условия. BRAV3 равно 1, если значе­ние переменной 2 больше 5, и устройство 2 не обслуживает прерыва­ние, или если логический ключ 7 выключен. Скобки нужны только для задания определенных булевских соотношений. Например, выражение I3" AND" (I2 " OR" I4) истинно, если устройство 3 и устройство 2 (либо устройство 4) обслуживают прерывание. Выражение I3" AND" I2" OR" I4 ис­тинно, если устройство 4 или устройства 2 и 3 обслуживают прерыва­ния. Скобки следует использовать только в тех случаях, когда они необходимы. Применение лишних скобок приводит к лишним затратам времени и увеличению используемого объема памяти. Если булевская переменная задается одним стандартным числовым атрибутом, как нап­ример,

SNA1 BVARIABLE V $ EQUAT,

то значение этой переменной будет равно 1, если значение СЧА

равно 0; и нулю, если значение СЧА ненулевое.

 

SIMULATE

1 BVARIABLE F V1 * FV2

GENERATE 20, 7

TEST E BV1, 1.FINAL

TRANSFER BOTH, PER, POS

PER SEIZE 1

ADVANCE 38, 17

RELEASE 1

TERMINATE 1

POS SEIZE 2

ADVANCE 42, 21

RELEASE 2

FINAL TERMINATE 1

START 75

END

 






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.