Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
задания.doc
Скачиваний:
92
Добавлен:
15.03.2015
Размер:
2.13 Mб
Скачать

Tabulate a

Табл. 32. Значения операндов

Операнд

Значение

Результат по умолчанию

А

Имя (символьное или числовое) таблицы, в которой табулируется соответствующий СЧА

Ошибка

Операнд А задает имя таблицы, в которую попадают выбороч­ные значения. Одну таблицу можно использовать в нескольких бло­ках TABULATE модели. Отметим, что СЧА, по которому собирается статистика, в блоке TABULATE не указывается, так как он уже запи­сан в операторе TABLE.

Стандартные числовые атрибуты таблицы:

ТВ<номер таблицы>, ТВ$<имя таблицы> - вычисленное среднее значение соответствующего СЧА;

ТС<номер таблицы>, ТС$<имя таблицы> - общее число вхо­дов в таблицу;

ТВ<номер таблицы>, ТВ$<имя таблицы> - вычисленное среднеквадратическое отклонение соответствующего СЧА.

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

Ранее были рассмотрены прямые способы адресации, когда:

1) номер объекта задается константой

QUEUE 2 ; Стать в очередь 2

SEIZE 1 ; Занять устройство 1

2) номер объекта задается СЧА

LEAVE P1 ; Освободить МКУ с номером, задаваемым параметром 1

Адресация может быть относительной и по отношению к само­му блоку. Это осуществляется при помощи записи *+/–n. Например,

TRANSFER ,*+2

В этом случае сам блок TRANSFER является ориентировочным блоком. Транзакт пытается войти во второй, относительно блока TRANSFER, блок.

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

Общий формат косвенной адресации:

C4A*C4Aj или СЧА*СЧА<имя>

Там, где допустимо использование СЧА, обычно могут исполь­зоваться и СЧА*СЧА.

При использовании косвенной адресации параметр Р может опускаться.

При использовании косвенной адресации при обращении к устройствам, МКУ или функциям через параметры приходится применять числовые значения имен. Транслятор GPSS/PC на этапе компиляции сам присваивает именам числовые значения, однако, при этом пользователь не контролирует такое присвоение. Для того, чтобы не возникали конфликты между числовыми значениями имен, присвоенных транслятором, и именами, заданных пользователем, необходимо использовать простое правило: в модели использовать имена либо только числовые, либо только символьные.

Назначение именам числовых значений осуществляется с помо­щью оператора EQU (аналог #define в языке программирования Си).

Косвенная адресация является мощным инструментом языка GPSS, позволяющим существенно сократить размер модели и во многих случаях уложиться в ограничения для бесплатно распространяемых студенческих версий языка GPSS (в модели должно быть до 150 блоков).

4.19. Обработка транзактов, принадлежащих одному семейству

Кроме блока GENERATE, для создания транзактов может ис­пользоваться блок SPLIT (РАЗДЕЛИТЬ), который выполняет функ­цию копирования транзакта, входящего в него. Этот транзакт назы­вается начальным или порождающим. Все копии формируются в момент входа начального транзакта в блок SPLIT. Каждая новая ко­пия становится членом семейства (ансамбля) транзактов, порож­денных одним начальным транзактом, который был создан блоком GENERATE.

Блок имеет такой формат (значение операндов приведено в табл. 33):