Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
КНИЖКА_Моделювання систем у GPSS World.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
7.15 Mб
Скачать

5.2. Блоки для зміни значень параметрів транзактів

Кожний транзакт характеризується різним числом параметрів. Інтерпре­тація змісту параметрів є довільною і задається розробником моделі. Блок ASSIGN є основним засобом для задавання значень параметрів транзактів. Він замінює, зменшує, або збільшує поточне значення параметра транзакту відповідно до заданого значення. Формат запису:

ASSIGN А,В,[С]

Операндом А задається номер параметра, якому присвоюється значення. Операнд А може бути назвою, додатним цілим числом, виразом у дужках, СЧА, СЧА*параметр. Знаки, вказані безпосередньо за номером параметра, харак­теризують режими збільшення (+) і зменшення (–).

Операнд В визначає значення, яке додається, віднімається або яким замінюється значення в параметрі, заданому операндом А. Якщо такий параметр не існує, він створюється зі значенням, рівним 0. Операнд В може бути таким же, як і операнд А, крім того, числом і рядком.

Операнд С задає номер модифікатора-функції, на яке множиться значення операнда В. Отриманий добуток стає значенням, що змінює значення параметра, заданого операндом А. Наведемо приклади запису блоку ASSIGN:

ASSIGN 1,2.5

ASSIGN 8+,Q2

ASSIGN 12-,15,7

ASSIGN Name,"Blak"

У першому прикладі параметру з номером 1 присвоюється значення 2.5. У другому прикладі до значення параметра 8 додається значення довжини поточної черги номер 2. У третьому прикладі зі значення параметра 12 віднімається добуток числа 15 на обчислене значення функції номер 7. У четвертому прикладі параметру з назвою Name присвоюється рядок Blak.

В GPSS World значення параметрів транзактів можна також змінювати блоком PLUS. Блок PLUS обчислює вираз й може записати його в параметр. Він має наступний формат:

PLUS А,[В]

Операнд А – вираз. Може бути назвою, числом, рядком, виразом у дужках, СЧА або СЧА*параметр.

Операнд В – це номер параметра транзакта, у якому зберігається результат. Він може бути назвою, додатним цілим числом, виразом у дужках, СЧА або СЧА*параметр. Наприклад:

PLUS (Exponential(328,0,15.5)+63.71),Shrek

При вході транзакта в блок PLUS обчислюється вираз в дужках, яким заданий операнд А. Отриманий результат присвоюється параметру з назвою Shrek. Якщо такий параметр не існує, він створюється.

Значення параметра транзакта можна ще змінити блоком INDEX:

INDEX А,В

Операнд А – номер параметра транзакта. Може бути назвою, додатним цілим числом, виразом у дужках, СЧА або СЧА*параметр.

Операнд В – числове значення, що додається до значення параметра операнду А. Може бути назвою, числом, виразом у дужках, СЧА або СЧА*параметр. Отриманий результат заноситься в перший параметр транзакта. Наприклад:

INDEX Kref,(Normal(32,Pat,Pilot)+X$Luft)

При вході транзакта обчислюється вираз в дужках, яким зазначений операнд В, і додається до значення параметра з назвою Kref. Результат додавання присвоюється параметру транзакта номер один. Якщо цей параметр не існує, він створюється.

Для визначення часу переміщення транзакта між довільними точками моделі використовується блок MARK. Він записує значення абсолютного модельного часу в активний транзакт або його параметр. Блок MARK має наступний формат:

MARK [A]

Операнд А – номер параметра транзакта, у який записується значення абсолютного модельного часу. Може бути назвою, додатним цілим числом, виразом у дужках, СЧА або СЧА*параметр.

Якщо операнд А не використовується, то транзакту, що увійшов у блок MARK, за замовчуванням встановлюється час входу в систему, рівний абсолютному часу моделювання.

Блок MARK можна використовувати для визначення часу пересування транзакту, що складається із часів оброблення на декількох етапах. За допо­могою блоку MARK потрібно записати абсолютний час моделювання почат­ку й кінця оброблення, а потім знайти різницю, що і буде шуканим часом.