Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
LK_KMPS.DOC
Скачиваний:
3
Добавлен:
23.04.2019
Размер:
1.34 Mб
Скачать

2.30Работа с ячейками.

Обращение к ячейке - Xномер. Это обращение возможно в качестве числового параметра для любого блока.

Пример: ADVANCE V3,X6 (отклонение записано в 6 ячейке)

Запись содержимого в ячейку.

Блок SAVEVALUE имеет следующий формат:

SAVEVALUE <A>,<B>

Блок SAVEVALUE используется для замены, увеличения или уменьшения текущего содержимого значений.

Значение в поле А может заканчиваться знаками + или -, указывающими на сложение или вычитание из существующего значения. Операнд может быть именем, положительным целым, СЧА или СЧА*<параметр>.

В поле В задается значение для запоминания, сложения или вычитания. Операнд может быть именем, целым, СЧА, или СЧА*<параметр>.

Пример:

SAVEVALUE ACCOUNT, 1000

Значение 1000 сохраняется в ячейке с именем ACCOUNT.

Операнд А используется для сохранения значения. Операнд В используется для определения нового значения, которое надо сохранить.

Если перед запятой стоит знак +, то операнд В добавляется к старому значению, если со знака -, то вычитается из старого значения. Если в операнде А нет знака, то старое значение сохраненной величины заменяется операндом В.

Стандартным числовым атрибутом, соответствующим описываемому оператору (SAVEVALUE) является:

X<номер сохраняемой величины> - возвращает содержимое сохраняемой величины.

Пример: SAVEVALUE 6-,Q3 (содержимое 6 ячейки уменьшается на длину 3-й очереди)

2.31Работа с сча заявок

Для изменения СЧА заявок используется блок ASSIGN

Блок ASSIGN имеет следующий формат записи:

ASSIGN <A>,<B>,[<C>]

Блок ASSIGN заменяет, увеличивает или уменьшает текущее значение параметра сообщения на заданное значение.

В поле А задается номер параметра, которому присваивается значение. Операнд А может быть именем, положительным целым числом, СЧА, СЧА*<параметр> и следующими за ними знаками +,-. Если значение параметра нужно увеличить или уменьшить, то справа в поле А ставится знак сложения или вычитания. Например, аргумент поля А может быть закодирован следующим образом:

1) 2 -заменяется текущее значение параметра 2;

2) 2- -вычитается заданное значение из текущего значения параметра 2;

3) 2+ -прибавляется заданное значение к текущему значению параметра 2;

Поле В определяет значение, которое следует добавить или вычесть из значения параметра, заданного аргументом поля А, или заменить его. Если такой параметр не существует, то он создается. Операнд В может быть именем, любым целым числом, СЧА, или СЧА*<параметр>.

Пример:

ASSIGN 2000+,-3

В этом примере значение поля В, равное -3, добавляется к значению параметра с номером 2000, который задан операндом А. Если такой параметр в сообщении отсутствует, то он создается со значением, равным 0, до того, как будет произведено добавление. Тогда значение параметра сообщения становится равным - 3.

Поле С задает номер модификатора-функции. При использовании поля С значение аргумента поля В умножается на значение модификатора - функции (от функции берется целая часть). Полученное произведение, от которого выделяется целая часть, становится значением, которое изменяет значение параметра, заданного в поле А. Следует отметить: если в поле С записано FN1, это не означает, что номер модификатора-функции равен 1, он равен целому значению FN1.

Рассмотрим модель, показывающую, как можно использовать блок ASSIGN для ввода информации о моделируемой системе в модель.

ff10 equ 10

ff1 equ 1

ff2 equ 2

ff3 equ 3

ff10 FUNCTION RN16 C3

0.075, 1/0.55, 2/.999, 3

ff1 FUNCTION ...

.

ff2 FUNCTION ...

.

ff3 FUNCTION ...

.

GENERATE 200, 12

ASSIGN 8, FN10

ASSIGN 2, FN*р8

Предполагается, что система связи получает информационные сообщения трех типов, причем каждый из них характеризуется своим распределением числа символов в сообщении. В модели в каждом сообщении параметр 8 будет указывать тип сообщения, а параметр 2 число символов в сообщении.

Блок ASSIGN может использоваться для управления логикой модели. Предположим, что система последовательно обрабатывает по одному символу поступившего информационного сообщения. рассмотрим часть модели, в которой блок ASSIGN используется для построения цикла обработки сообщения.

.

.

.

MET1 ASSIGN 1+,1

ADVANCE X1

TEST E р1,р2,MET1

.

.

.

Каждое сообщение представляет собой одно информационное сообщение и должно повторять блоки, изображающие процесс обработки символа, в данном случае блок ADVANCE, столько раз, сколько символов в соответствующем информационном сообщении. Длина информационного сообщения записана в параметр 2.

Для организации цикла с соответствующим числом повторений для каждого сообщения, используются блоки ASSIGN и TEST.

Блок ASSIGN добавляет единицу к счетчику числа выполненных циклов обработки сообщения (счетчик организован в параметре 1).

Предполагается, что параметр 1 устанавливается в "0" перед входом в цикл обработки. Пока не выполнится условие р1 = р2, блок TEST будет возвращать сообщение к началу цикла. После выполнения условия из блока TEST сообщение перейдет к следующему по номеру блоку.

СЧА, связанным с описанным оператором, является р<параметр> или *<параметр> - значение параметра. р<параметр> возвращает значение параметра, заданного <параметром>.

Пример: ASSIGN 1-,144(р1 уменьшается на 144)

Нередко присваивание используется для цикла LOOР.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]