Версия 2, книга 1 (Система программного обеспечения на языке GPSS), страница 14
Описание файла
Файл "Версия 2, книга 1" внутри архива находится в папке "Система программного обеспечения на языке GPSS". Текстовый-файл из архива "Система программного обеспечения на языке GPSS", который расположен в категории "". Всё это находится в предмете "имитационное моделирование дискретных процессов" из 7 семестр, которые можно найти в файловом архиве МГТУ им. Н.Э.Баумана. Не смотря на прямую связь этого архива с МГТУ им. Н.Э.Баумана, его также можно найти и в других разделах. Архив можно найти в разделе "книги и методические указания", в предмете "имитационное моделирование дискретных процессов" в общих файлах.
Просмотр 14 страницы текстового-файла онлайн
имя или номер, записанные в поле метки. В булевской переменной про-
веряется одно или несколько логических условий. Результатом провер-
ки является 1, если заданные условия удовлетворяются, и 0, если они
не удовлетворяются.
4.7. Операторы, используемые при описании булевских
переменных
В булевских переменных допускаются три типа операторов : ло-
гические, булевские и операторы отношения.
Логические операторы связаны с объектами оборудования и ис-
пользуются для определения состояния этих объектов. Имеются следую-
щие логические операторы:
- 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
заполнена.
- 30 -
Операторы отношения производят алгебраические сравнения опе-
рандов. Операндами могут быть целые константы или стандартные чис-
ловые атрибуты. Все операторы отношения записываются в кавычках.
Имеются следующие операторы отношений:
- '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. Сравнение деся-
тичных значений и значений с плавающей точкой недопустимо.
4.8. Булевские операторы
Существуют два булевских оператора. Оператор "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; и нулю, если значение СЧА ненулевое.
5. ФУНКЦИИ
5.1. Общая характеристика функций
В GPSS/PC два типа вычислительных объектов: арифметические
переменные и функции. В моделях на GPSS/PC значения функций (FNj) -
это часто используемые стандартные числовые атрибуты, так как мно-
гие взаимоотношения в системах могут быть описаны в терминах функ-
циональной зависимости между двумя переменными. Каждая функция
GPSS/PC связывает значение аргумента функции, который представляет
собой независимую переменную, со значениями зависимой переменной
функции (FNj).
- 31 -
Другим важным применением функций является генерация значений
случайных чисел. Для таких функций распределения вероятности аргу-
ментом является случайное число 0<=RN<1, а значения зависимых пере-
менных (FNj) являются случайными элементами переменных в моделях
системы.
5.2. Операторы описания функций
Имя функции должно записываться в поле метки оператора описа-
ния FUNCTION. Поле А оператора FUNCTION должно содержать аргумент
(независимую переменную) функции. Аргументом может быть любой из
стандартных числовых атрибутов, за исключением матрицы ячеек; в ка-
честве аргумента функции может быть использовано и значение любой
другой функции. Если в качестве аргумента функции используется слу-
чайное число RNj, то значениями аргумента будут числа, равномерно
распределенные в интервале 0<=RNj<1.
Следует отметить, что во всех других случаях использование
случайных чисел RNj дает значение в диапазоне 0<=RNj<999. Запись в
поле В определяет тип и число точек функции (число пар значений
X[i] и Y[i]). Например, в выражении Cn C определяет тип, а n - чис-
ло точек функции. Ниже перечислены типы функции и приведена мнемо-
ника каждого типа:
- непрерывная числовая - С;
- дискретная числовая - D;
- табличная числовая - L;
- дискретная атрибутивная - E;
- табличная атрибутивная - М.
За каждым оператором описания FUNCTION должны следовать опе-
раторы для задания координат (X[i] и Y[i]) функции. Не допускается
использование комментариев между оператором описания FUNCTION и
операторами, задающими значения функции. Для задания координат мож-
но использовать нецелые числа, например:
RLGEX FUNCTION RN1,C5
0,0/.33,.45/.40,1.60/.70,2.75/1.00,3.90
При написании операторов, задающих значения координат функ-
ции, необходимо придерживаться следующих правил:
- запись должна начинаться в позиции 1;
- значения координат X[i] и Y[i] одной точки функции разделя-
ются запятой;
- наборы координат разделяются знаком (/);
- координаты X[i] и Y[i], относящиеся к одной точке, должны
задаваться одним оператором;
- каждое последующее значение X[i] должно быть больше преды-
дущего;
- значения Y[i] не могут быть матрицами ячеек;
- каждая функция должна иметь, по крайней мере, две описанные
точки.
Примеры:
ABC FUNCTION P3,D4
0,5/1,1002/3,20/4,25
FUN3 FUNCTION RN7,C4
0,0/5,12/.68,15/1.0,20
ACT FUNCTION Q$ALINE,C16
0,0/5,1/10,2/20,3/30,4/40,5/50,6/.../100 ,11
110,12/120,13/130,14/140,15
5.3. Непрерывные числовые функции
Когда значение аргумента непрерывной числовой функции попада-
ет в интервал между двумя заданными значениями (X[i],X[i+1]), прог-
рамма производит линейную интерполяцию для определения значения
функции FN, находящегося в интервале между (Y[i],Y[i+1]) Значения