КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Проверка числовых выражений
Сохраняемые величины В GPSS пользователю предоставляется возможность задать «свои» глобальные переменные, значения которых должны быть заданы перед моделированием и к которым можно обратиться из любого места модели и в любой момент. Их называют сохраняемыми величинами (ячейками). А совокупность логически связанных ячеек может образовывать матрицу. СЧА Хj или X$ <имя> дает значение соответствующей сохраняемой величине. Например, Х2 – значение ячейки или X$ sag – значение ячейки sag. С матрицами связан числовой атрибут MXj (m, n) – значение, записанное в строке m и столбце n матрицы j. Или MX$ <имя матрицы > (m, n), если матрица имеет символьное имя перед использованием матрица определяется оператором описания matrix. Начальные значения ячеек и матриц можно задать с помощью оператора initial. Оператор описания matrix g появляется до момента использования матрицы так как и инициализация переменных. Формат блока initial: Initial А, В, где А - имя сохраняемой величины; В – начальное значение. Примеры. 1) X$ timer, 100000 - ячейке timer присваивается начальное значение 100000. 2) initial Х 3, 25 – ячейке с № 3 присваивается значение 25. 3) initial МХ 8 (2,4), - 54 - Величина (– 54) записывается во вторую строку, столбец 4 матрицы 8. 4) Initial MX$ cost (26), 100 - Величина 100 записывается в строку 2, столбец 6 матрицы cost.
Значение сохраняемой величины изменяется при входе транзакта в блок saveralue A [+, -], B, где А – номер или имя сохраняемой величины; В – величина, используемая для модификации. Примеры. 1) saveralue p 5, V$ alpha - при входе транзакта в блок saveralue сначала вычисляется величина переменной alpha, а полученный результат присваивается сохраняемой величине, номер которой записан в параметре Р5. 2) saveralue 5+, х2 - при входе транзакта в этот блок величина х5 увеличивается на значение величины х2. 3) saveralue prof-, fn$ costol - при входе транзакта в блок сохраняемая величина х$ prof уменьшается на значение функции fn$ costol.
Для описания матриц используется оператор <метка> matrix А, В, С, где А – не используется, оставлен для совместимости с более ранними версиями GPSS; В – число строк матрицы (целое число); С – число столбцов матрицы (целое положительное).
Для записи значения матрицы и для изменения ее элементов используется оператор msavevalue A [+, -], В, С, D, где А – имя матрицы; В – номер строки; С – номер столбца; D – величина, используемая для модификации.
Сравнить СЧА можно с помощью блока test_X_А, В, С, где Х – вспомогательный оператор отношений, который может принимать значения: g A > B ne A ≠ B ge A ≥ B le A ≤ B e A = B l A < B A – СЧА, В – СЧА, С – имя блока, в который переходит транзакт при условии, что ответ на вопрос, подразумеваемый оператором отношения, отрицательный. При отсутствии операнда С проверку выполняют в режиме отказа. Примеры. 1) test le Q1, Q2 - проверяющий транзакт будет задержан в предыдущем блоке до тех пор, пока длина очереди не станет меньше или равна длине второй очереди. 2) режим условного перехода: test le_Q1, Q2, zhvs - проверяющий транзакт перейдет в следующий по порядку блок, если содержимое первой очереди меньше или равно содержимому второй очереди. Если это условие не выполняется, транзакт перейдет в блок с меткой zhvs. 3) test l f$ scaner, x$ max – util, lll seize scanner …… Lll queue Q scaner Если устройство scaner имеет коэффициент загрузки меньше, чем значение сохраняемой величины max util, то транзакт идет на обслуживание этим устройством. В противном случае переходит в устройство с меткой Lll. 4) пусть в точке перехода dispatcher необходимо удалить те транзакты, которые находились в модели больше чем 100 единиц модельного времени. Для этого можно использовать такие блоки: generat 18,6 – генерирует транзакты которые 18 ± 6 (?) … dispatcher test l M1, 100 kill … kll terminate
Дата добавления: 2014-01-07; Просмотров: 343; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |