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

15. Проверка числовых выражений в gpss. Изменение значений параметров в gpss.

Проверка числовых выражений в GPSS

Часто возникает задача проверки 2-х СЧА. Для этого используется оператор

TEST X A, B, (C)

В качестве A и B всегда используются имена СЧА. Условие, по которому вычисляется результат определяется логическим оператором X. X определен также, как и в операторе SELECT.

X

Описание (параметры A и B)

G

A>B

GE

A≥B

E

A=B

NE

A≠B

L

A<B

LE

A≤B

Транзакт, попадая в этот блок, проверяет условие заданное операндом X. Если условие выполняется, транзакт переходит в следующий блок. Если не выполняется – уходит на метку, указанную в операнде C. Транзакт задерживается и не попадает в следующий блок до тех пор, пока очередь Q1 не станет меньше очереди Q2: TEST LE Q1, Q2.

В GPSS возможна организация циклических компонентов модели. Для этого используется оператор: LOOP A,B где A – предварительно требует записи счетчика циклов. В А всегда записывается номер параметра, в котором представлен счетчик циклов. В – параметр, определяющий имя блока перехода. Транзакт, попадая в этот блок, вычитает из счетчика «1» и проверяет счетчик не равенство 0. Если значение ≠ 0, то осуществляется переход по метке B. Если 0, то цикл заканчивается и транзакт поступает в следующий блок.

Изменение значений параметров в GPSS

По умолчанию в GPSS с каждым транзактом связано 12 параметров. Ссылка на параметр всегда состоит из 2-х частей:

  1. символ Р;

  2. номер параметра.

Значение параметра – это целое число со знаком, занимающее 16 или 32 разряда. Что пользователь понимает за числом параметра транзакта, определяет он сам. Допустим, ведется статистика автомобилей на СТО:

Параметр Р1

Марка

Р2

Цвет

Р3

Год выпуска

1

«Жигули»

1

Бирюзовый

1

до 1990

2

«Москвич»

2

Красный

2

до 2000

3

«Волга»

3

Голубой

3

после 2000

Параметры могут использоваться в качестве операндов отдельных блоков

RAS FUNCTION P3, D3

1,2/2,4/3,1

ADVANCE FN$RAS, 2

Пользователь может изменить параметр: ASSIGN A, B

A – определяет номер заменяемого параметра;

B – новое значение параметра.

Т.к. ASSIGN работает только с параметрами, то символ Р опускается.

ASSIGN 3, 18; // P3=18

ASSIGN 3±, 18; определяет изменение существующего значения параметра или +18 или -18.

Пример: магазин состоит из 3-х отделов и одной кассы на выходе магазина. Покупатели приходят в магазин по пуассоновскому закону с λ=75 с. Покупатели могут заходить в любой из отделов или во все отделы сразу. В каждом из отделов покупатель задерживается.

Отдел

Вероятность

Задержка

Число покупок

1

0.75

120±60

3±1

2

0.55

150±30

4±1

3

0.82

120±45

5±1

Подойдя к кассе, он может добрать 2±1 покупку. Кассир подсчитывает стоимость пропорционально количеству предметов в каждой корзине. Определить загрузку кассира, число корзин, длину очереди. На один предмет требуется 3с.

PUAS FUNCTION RN1, C24

--------------------------------------

P10 FUNCTION RN2, D3

0.33,2/0.66,3/1,4

P20 FUNCTION RN3, D3

0.33,3/0.66,4/1,5

P30 FUNCTION RN4, D3

0.33,4/0.66,5/1,6

DOP FUNCTION RN5, D3

0.33,1/0.66,2/1,3

CONST FUNCTION RN6, D3

1,3/18,54/1,4

GENERATE 75, FN$PUAS

ENTER KOR

TRANSFER .25,,OTD2

ADVANCE 120,60

ASSIGN 1+,FN$P10

OTD2 TRANSFER .45,OTD3

ADVANCE 150,30

ASSIGN 1+,FN$P20

OTD3 TRANSFER .18,OUT

ADVANCE 120,45

ASSIGN 1+,FN$P30

OUT ASSIGN 1+, FN$DOP

QUEUE OCHER

SEIZE KAS

DEPART OCHER

ADVANCE FN$CONST

RELEASE KAS

LEAVE KOR

TERMINATE