Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курс лекций МТС (Д,ОБ) очное заочное.docx
Скачиваний:
6
Добавлен:
01.07.2025
Размер:
788.24 Кб
Скачать

Ждать (оп1, оп2 затем оп3) затем оп4

Операция 4 будет поставлена в очередь только после выполнения операций 1 и 3.

Наконец конструкция ACT может быть задано именем общей цепочки:

“cchain

Имя cchain должно быть определенным ранее пользователем именем общей цепочки. Вместо этого имени подставляется сама общая цепочка.

Общая цепочка задается записью вида

ЦЕПЬ “cchain CHAIN

Требования к имени cchain те же, что и в записи ГРУППА и УСЛОВИЕ.

Если имя " cchain" описывает разветвляющую цепочку, то такое звено может быть только последним в цепочке, то есть после него не должно быть слова ЗАТЕМ.

Примеры цепочек:

Оп1 затем (оп2 затем оп3) оп4 затем оп5

Эта цепочка означает, выполняется операция 1, затем в очередь ставятся операции 2 и 4. После выполнения операции 2 выполняется операция 3, а после операции 4 – операция 5.

Отметим, что по данному выше описанию эту цепочку надо записывать в виде:

Оп1 затем ((оп2 затем( оп3))( оп4 затем (оп5))

Однако те скобки, которые не влияют на порядок действий можно опускать.

В то же время эту цепочку нельзя записать в виде

Оп1 затем оп2 затем оп3 оп4 затем оп5

поскольку такая запись означает, что после операции 1 выполняется операция 2, после нее ставятся на выполнение операции 3 и 4, а после выполнения операции 4 – операция 5.

Аналогичное правило опускания скобок справедливо и для звеньев-условий:

ЕСЛИ Ф1=1 ТО (ОП1 ЗАТЕМ ЕСЛИ (Ф2=2 ТО ОП2)) ИНАЧЕ (ОП3) И (ОП4)

эквивалентно

ЕСЛИ Ф1=1 ТО (ОП1 ЗАТЕМ ЕСЛИ Ф2=2 ТО ОП2) ИНАЧЕ ОП3 И ОП4

и означает что в случае выполнения условия Ф1=1 выполняется операция1, после выполнения которой в случае, если Ф2=2, выполняется операция 2. Если же Ф1 не равен 1, то вместо операции 1 выполняются операции 3 и 4.

Однако запись

ЕСЛИ Ф1=1 ТО ОП1 ЗАТЕМ ЕСЛИ Ф2=2 ТО ОП2 ИНАЧЕ ОП3 И ОП4

означает, что в случае выполнения условия Ф1=1 выполняется операция1, после выполнения которой в случае, если Ф2=2, выполняется операция 2. Из-за отсутствия скобок слово ИНАЧЕ относится здесь ко второму слову ЕСЛИ, поэтому операции 3 и 4 будут выполняться после операции 1, если Ф2 не будет равен 2.

В заключении пример полной записи, включающей в себя все типы звеньев.

ЦЕПЬ "Моя_Цепь" ЕСЛИ Ф1=1 ТО ОП10 ИНАЧЕ ОП11 ЗАТЕМ ОП12

ПРИ ОП1 (ЕСЛИ БУ8>60 ТО

ЖДАТЬ (ОП2(УНИК), MIN[БУ9:ОП2(ПР15,ВХ7), БУ10:ОП3(ПР15,ВХ7)]) ЗАТЕМ "Моя_Цепь"ИНАЧЕ "Моя_Цепь")

ОП15 ЗАТЕМ ЕСЛИ Ф3=1 ТО ОП20 ИНАЧЕ ЕСЛИ Ф3=2 ТО ОП21 ИНАЧЕ ОП22(Т-15)

Рекомендация:

Как видно, сложные цепочки трудны для восприятия, поэтому по возможности сложную запись лучше представить в виде нескольких более простых. Например, запись

ПРИ ОП1 (ЕСЛИ Ф1=1 ТО ОП2 ЗАТЕМ ЕСЛИ БУ1>50 ТО ОП3 ИНАЧЕ ОП4)

ЕСЛИ Ф1=2 ТО ОП5 ЗАТЕМ ЕСЛИ БУ1>50 ТО ОП6 ИНАЧЕ ОП7

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

ПРИ ОП1 ЕСЛИ Ф1=1 ТО ОП2

ЕСЛИ Ф1=2 ТО ОП5

ПРИ ОП2 ЕСЛИ БУ1>50 ТО ОП3 ИНАЧЕ ОП4

ПРИ ОП5 ЕСЛИ БУ1>50 ТО ОП6 ИНАЧЕ ОП7

Однако, сложная цепочка может быть полезна для задания параллельных процессов:

ПРИ ОП1 ЖДАТЬ(ОП2, ОП3) ЗАТЕМ ОП4

Кроме того, с помощью сложной записи можно сократить, например, следующую конструкцию.

ПРИ ОП1 ЕСЛИ Ф1=1 ТО ОП2 ИНАЧЕ ОП3

ПРИ ОП2 ОП4

ПРИ ОП3 ОП4

ПРИ ОП4 ЕСЛИ Ф1=1 ТО ОП5 ИНАЧЕ ОП6

Ее можно записать как

ПРИ ОП1 ЕСЛИ Ф1=1 ТО ОП2 ЗАТЕМ ОП 4 ЗАТЕМ ОП5

ИНАЧЕ ОП3 ЗАТЕМ ОП4 ЗАТЕМ ОП6

Пример, иллюстрирующий использование ключевого слова ВСЕГДА .

ПРИ ОП1 ЗАТЕМ ОП2 ЗАТЕМ ОП3

ПРИ ОП2 ОП4

ПРИ ОП2 ВСЕГДА ОП5

При выполнении операции 1 будет выполняться операция 2, после выполнения которой стартуют операции 3 и 5. Операция 4 не стартует, так как операция 2 является промежуточной операцией цепочки.

В заключение еще один пример, иллюстрирующий ключевые слова ЦЕПЬ и УСЛОВИЕ

ЦЕПЬ “ПАРАЛЛЕЛЬ” ЖДАТЬ(ОП1,ОП2)

УСЛОВИЕ “МОЕ_УСЛОВИЕ” Бу1>50 & Ф1=2

ПРИ ОП3 ЕСЛИ “МОЕ_УСЛОВИЕ” ТО “ПАРАЛЛЕЛЬ” ЗАТЕМ ОП3