Изучение основ моделирования в среде GPSS World. Создание пользовательских переменных. Блоки и команды для манипуляции с сохранёнными данными, страница 4

Ранее, на практических занятиях, мы изучали только блоки и команды языка GPSS.  С их помощью мы организовывали циклы и ветвления в модели. Но, честно говоря, это не так то просто. По этой причине и появился язык PLUS.

Данный язык является отличительной особенностью оболочки GPSS World, т.к. все предыдущие версии программных продуктов, использовавших язык GPSS, позволяли строить  алгоритмы модели только с использованием блоков языка. Язык PLUS, как я уже говорил, расширяет функционал оболочки и упрощает построение моделей.

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

Некоторые функции (например, для работы с потоками) дублируют работу блоков из стандартного набора языка GPSS. Но основной особенностью PLUS является написание пользовательских процедур.

Прежде чем приступать к созданию PLUS процедур, стоит ознакомиться со списком доступных операторов. В качестве арифметических и логических операторов разрешён набор, аналогичный набору из стандарта языка GPSS (см. таблицу 2).

Таблица 2. Список доступных арифметических и логических операторов

Оператор

Действие

Результат

Арность (число операндов)

Расположение

1

2

3

4

5

-

Отрицание

Аддитивная инверсия

унарный

справа

^

Возведение в степень

бинарный

справа

NOT (~)

Инверсия

1 или 0

унарный

справа

AND

Логическое И

1 или 0

бинарный

слева

OR

Логическое ИЛИ

1 или 0

бинарный

слева

G (>)

Больше

1 или 0

бинарный

слева

L (<)

Меньше

1 или 0

бинарный

слева

E (=)

Равно

1 или 0

бинарный

слева

NE (/=)

Не равно

1 или 0

бинарный

слева

LE (<=)

Меньше или равно

1 или 0

бинарный

слева

GE (>=)

Больше или равно

1 или 0

бинарный

слева

#

Умножение

Арифметическое произведение

бинарный

слева

/

Деление

Арифметическое частное

бинарный

слева

                                                           Таблица 2. Продолжение   

1

2

3

4

5

\

Целочисленное деление

Целое частное

бинарный

слева

@

Деление по модулю

Арифметический остаток

бинарный

слева

+

Сложение

Арифметическая сумма

бинарный

слева

-

Вычитание

Арифметическая разность

бинарный

слева

Список других допустимых операторов языка приведён в таблице 3.

Таблица 3. Список допустимых операторов языка