Вопрос 42 Блоки ASSIGN, MARK,LOOP (формат и примеры использования).
Изменение значений параметров. Блок ASSIGN (НАЗНАЧИТЬ). При входе транзакта в этот блок значения параметров могут задаваться или изменяться. Формат блока: Таблица 4.29
Блок ASSIGN может быть использован как в режиме замещения значения параметра (начальное значение всех параметров транзактов равно 0), так и в режиме увеличения и уменьшения. В режиме увеличения предшествующее значение параметра увеличивается на значение, стоящее в операнде В. В режиме уменьшения оно уменьшается на величину, стоящую в операнде В. Режимы увеличения и уменьшения определяются введением соответственно знаков «плюс» и «минус» перед запятой, которая разделяет операнды А и В. При использовании операнда C значение операнда В умножается на значение функции, указанной в операнде C. Параметр, заданный в операнде А, изменяется на величину полученного произведения (в режиме увеличения и уменьшения) или приобретает значение результата (в режиме замещения). Пример 4.28 Блок ASSIGN в режиме присваивания: ASSIGN MEST,36 Параметру транзакта c именем MEST присваивается значение 36. ASSIGN 3,25 Параметру P3 присваивается значение 25. ASSIGN P4,FR$BB Параметру транзакта c номером, записанным в параметре P4, присваивается значение величины загрузки устройства BB (оба операнда заданы косвенным образом). Блок ASSIGN в режимах накопления и уменьшения: ASSIGN 4+,Q5 Параметр 4 увеличивается на значение, равное текущей длин очереди 5. ASSIGN P2-,7 От значения параметра, номер которого задан параметром P2 вычитается 7. Транзитное время. Блок MARK (ОТМЕТИТЬ).Стандартный числовой атрибут M1измеряет время, которое прошло c момента входа транзакта в модель. Однако очень часто требуется знать время, затраченное на перемещение транзакта между двумя произвольными точками модели. Для этого используется блок MARK. При входе транзакта в блок MARK значение таймера абсолютного времени записывается в качестве одного из его параметров. Такую запись называют отметкой транзакта. Формат блока MARK: MARK A Таблица 4.30
Пусть необходимо определить интервал времени, на протяжении которого транзакт проходит от точки Т1 к точке Т2. Для этого нужно выполнить два действия: 1) в точку Т1 поместить блок MARK j,где j – номер параметра, в который записывается значение абсолютного времени в момент записи; 2) в точке Т2 обратиться к СЧА c именем MPj,где j – номер параметра, в котором сделана отметка времени транзакта; СЧА MPj будет иметь такое значение:
Организация циклов. Блок LOOP (ЦИКЛ). C помощью параметров транзактов в программе можно организовать циклы. Для этого используется блок LOOP. Он управляет количеством повторных прохождений транзактом определенной последовательности блоков модели. Формат блока: LOOP A[,B] Таблица 4.31
Когда транзакт входит в блок LOOP,параметр, указанный в операнде А, уменьшается на единицу, А затем проверяется его значение на равенство нулю. Если значение не равно нулю, то транзакт переходит в блок, указанный в операнде В. Если значение параметра равно нулю, транзакт переходит в следующий блок. Переменная блока LOOP может только уменьшаться.
|