![]() Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Вычислительные категории
В 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
|