Вычисляемые и запоминающие объекты — КиберПедия 

Особенности сооружения опор в сложных условиях: Сооружение ВЛ в районах с суровыми климатическими и тяжелыми геологическими условиями...

Архитектура электронного правительства: Единая архитектура – это методологический подход при создании системы управления государства, который строится...

Вычисляемые и запоминающие объекты

2017-11-28 319
Вычисляемые и запоминающие объекты 0.00 из 5.00 0 оценок
Заказать работу

К ним относятся переменные, функции и хранимые значения.

Арифметическая переменная в GPSS является СЧА, определяемым пользователем. Ссылка на арифметическую переменную производится с помощью СЧА, Vf или V$ имя, где f - номер переменной, а "имя" - символическое имя в случае символического определения. Арифметическая переменная определяется с помощью задаваемого пользователем арифметического выражения, являющегося набором СЧА, связанных арифметическими операциями и круглыми скобками. В GPSS/PC используются арифметические операции: + (сложение), (вычитание), # (умножение), / (деление), \ (целочисленное деление), @ (деление по модулю), при котором результат равен остатку от деления, ^ (возведение в степень). При записи арифметических выражений могут использоваться встроенные функции: ABS(), ATN(), SIN(), COS(), TAN(), SQR(), EXP(), LOG(), INT ().

В арифметическом выражении последовательность вычислений определяется приоритетом операций и круглыми скобками.

Арифметическая переменная определяется следующим образом. Имя переменной помещается в поле имени, а в поле операции помещается слово VARIABLE или FVARIABLE для целой или действительной переменной. В поле операндов записывается арифметическое выражение.

Отличие переменных целых и действительных заключается в следую-щем. При вычислении целых переменных отбрасываются дробные части всех промежуточных результатов. При вычислении действительной переменной действия выполняются с дробными числами и отбрасывается дробная часть только результата. Операция деления по модулю @ для действительной пе-ременной не используется.

Булевские переменные дают возможность принимать решения в зави-симости от состояния и значения многих объектов GPSS, используя для этого только один блок. Булевские переменные описываются и используются так же, как и арифметические переменные. Булевская переменная определяется с помощью задаваемого пользователем логического выражения, являющегося набором СЧА, операций отношения: ‘L’, ‘LE’, ‘G’, ‘GE’, ‘E’, ‘NE’, логиче-ских указателей, определяющих состояние устройств (F$ имя, FI$ имя, FV$ имя), накопителей (SE$ имя, SF$ имя, SV$ имя), логических ключей (LS$ имя) и логических операторов (‘NOT’, ‘AND’, ‘OR’). Булевская переменная принимает значение 1, если логическое выражение ИСТИННО, и 0, если ЛОЖНО. Например, переменная STOR BVARIABLE ‘NOT’F$CPU’AND’Q$BUF’LE’5 примет значение 1, если устройство CPU не занято и длина очереди BUF меньше или равна 5.

Хранимыми значениями называются постоянные ячейки памяти, в которые можно обратиться из любого места модели во время моделирования. Они являются СЧА и обозначаются XJ или Х$ имя, где J – число, а "имя" – символическое имя.

Значение СЧА изменяется при входе транзактов в блок SAVEVALUE (СОХРАНИТЬ ВЕЛИЧИНУ). В операнде А указывается номер или символи-ческое имя хранимого значения. В поле В указывается СЧА, значение кото-рого необходимо сохранить.

Блок SAVEVALUE может использоваться в режиме накопления. Тогда в поле А после имени ставится знак + или –.

Матрицы сохраняемых величин дают возможность упорядочить сохра-няемые значения в виде матриц m * n, где m – число строк, n – число столб-цов матрицы. Каждая матрица должна быть перед началом моделирования определена с помощью оператора MATRIX (определить матрицу), имеющего следующий формат:

Имя MATRIX A, B, C.

Поле A оператора не используется и сохранено в GPSS/PC для совмес-тимости со старыми версиями GPSS. В полях B и C указываются соответст-венно число строк и столбцов матрицы, задаваемые константами, причем общее число элементов, равное произведению B на C, не должно превышать 8191.

Например, оператор MTAB MATRIX,10, 2 определяет матрицу с именем MTAB, содержащую десять строк и два столбца.

В начале моделирования элементы всех определенных матриц устанавливаются равными 0. Для установки отличных от 0 начальных значений отдельных элементов матриц используется оператор INITIAL, имеющий следующий формат: INITIAL MX $ имя (a, b), значение или INITIAL MXj (a, b), значение. Здесь имя и j – соответственно имя и номер матрицы; a и b – номера соответственно строки и столбца, задаваемые константами; значение – присваиваемое элементу матрицы начальное значение, задаваемое также константой.

Для изменения значений элементов матриц в процессе моделирования служит блок MSAVEVALUE (сохранить значение элемента матрицы), имеющий следующий формат:

Имя MSAVEVALUE A, B, C, D.

В поле A указывается имя или номер матрицы, после которого, как и в блоке SAVEVALUE, может стоять знак + или –. В полях B и C указываются номера соответственно строки и столбца, определяющие изменяемый элемент матрицы. В поле D указывается величина, используемая для изменения заданного элемента матрицы.

Например, MSAVEVALUE 5, 3, 2, X1, MSAVEVALUE MTAB +, P $ ROW, P $ COL, 1

Матрицы имеют единственный СЧА с названием MX, ссылка на который записывается в следующем виде MX $ имя (a, b) или MXj (a, b). Здесь имя и j - соответственно имя и номер матрицы; a и b - номера соответственно строки и столбца, задаваемые константами или ссылками на СЧА параметров транзактов.

Например:

MX5 (2, 1),

MX $ MTAB (P $ ROW, P $ COL)

Косвенная адресация

Иногда при моделировании возникают ситуации, при которых в качестве исходного данного должен использоваться СЧА, номер которого зависит от свойств транзакта, производящего ссылку на этот СЧА.

В GPSS/PC косвенная адресация осуществляется через значения параметров транзактов. При записи между соответствующим СЧА и номером параметра ставится знак *. Например, Q*6 - величина текущего содержимого очереди, номер которой записан в шестом параметре транзакта; FN*3 - значение функции, номер которой записан в третьем параметре транзакта.

 


Поделиться с друзьями:

Таксономические единицы (категории) растений: Каждая система классификации состоит из определённых соподчиненных друг другу...

История создания датчика движения: Первый прибор для обнаружения движения был изобретен немецким физиком Генрихом Герцем...

Археология об основании Рима: Новые раскопки проясняют и такой острый дискуссионный вопрос, как дата самого возникновения Рима...

Папиллярные узоры пальцев рук - маркер спортивных способностей: дерматоглифические признаки формируются на 3-5 месяце беременности, не изменяются в течение жизни...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.012 с.