Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
КНИЖКА_Моделювання систем у GPSS World.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
7.15 Mб
Скачать
    1. Основні елементи мови

До основних елементів мови PLUS відносяться алфавіт, меню, вирази та оператори.

Імена – це створені користувачем послідовності алфавітно-цифрових та спеціальних символів для опису об’єктів, змінних і програм. Назва розпочи­нається з літери і може містити від одного до 250 алфавітно-цифрових симво­лів. Імена не повинні співпадати з ключовими словами і з СЧА GPSS.

Алфавітно-цифрові символи містять великі літери А...Z, малі а...z, цифри 0...9 і знак підкреслення. Літери кирилиці використовуються у коментарях програм.

Спеціальні символи “#”, “*”, “-“, “/”, “\”, “,”, “;”, “^” використовуються для позначення операторів і пунктуації.

Символ # використовується для позначення операції множення, а символ * – як оператор відносної адресації СЧА GPSS. GPSS World не розрізняє регістр абетки, тому використання великих чи малих літер не має жодного значення.

Проіменовані величини – це імена, розміщені в полі мітки чи в Plus-операторі присвоювання.

Якщо проіменовані величини використовуються для позначення операторів GPSS, що визначають об’єкти, вони називаються мітками об’єктів. Якщо проіменовані величини застосовуються для присвоєння значень, вони називаються змінними користувача.

Міткам об’єктів автоматично присвоюються системні номери (цілочисельні значення). За винятком міток блоків, міткам об’єктів можна присвоїти власні значення за допомогою команди EQU.

Змінні користувача можуть бути локальними і глобальними. Локальні змінні користувача задаються всередині Plus-процедури за допомогою оператора TEMPORARY. Один оператор TEMPORARY створює одну або декілька тимчасових неініціалізованих іменованих величин. Їх можна використовувати лише всередині тієї процедури, в якій вони були визначені. Інші змінні користувача є глобальними. Вони можуть використовуватись у всій моделі.

Plus-процедурі і Plus-експерименту обов’язково присвоюються імена. Імена процедур мають глобальну область видимості. Будь-яка процедура може викликатись із будь-якого місця моделі. Експерименти є спеціальним видом процедур. Вони ідентичні процедурам у синтаксисі. Але задаються різними ключовими словами PROCEDURE і EXPERIMENT. Експерименти можуть викликатись лише командою CONDUCT. Мітки матриць можуть мати локальну або глобальну область видимості. Локальні матриці задаються за допомогою оператора TEMPORARY MATRIX. Один оператор TEMPORARY MATRIX створює одну тимчасову неініціалізовану матрицю. Локальні матриці доступні лише в тій процедурі, в якій вони були задані. Глобальні матриці задаються командою MATRIX. Глобальні матриці, на відміну від локальних матриць, є постійними. До них можна звертатись із будь-якого місця моделі. Усі матриці створюються з неініціалізованими елементами. Їх ініціалізація здійснюється за допомогою оператора INITIAL або блоку MSAVEVALUE.

    1. Побудова виразів

Вирази будуються із використанням операторів і викликів процедур, які поєднують фактори. Вирази застосовуються в Plus-процедурах і в операндах операторів GPSS.

Змінні користувача, елементи матриць, комірки, параметри транзактів можуть мати значення різних типів даних. У GPSS World використовуються три основні типи даних – цілочисельний (integer), дійсний (real) і рядковий (string). Типи даних перетворюються явно за допомогою відповідних процедур, або неявно під час обчислення виразів.

До основних елементів виразів належать рядкові константи, дійсні константи, цілочисельні константи, імена, елементи Plus-матриці. звернення до процедур, стандартні числові атрибути. У виразах вони об’єднуються операторами і викликами процедур згідно з правилами, пов’язаними з конкретним оператором чи процедурою.

Оператори, які використовуються для об’єднання елементів у вирази, наведені у табл. 8.1. Зменшення пріоритетів враховано в арифметичних операторах.

Таблиця 8.1

Оператор

Дія

Результат

-

Заперечення

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

^

Піднесення до степеня

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

NOT або ~

Інверсія

1(TRUE) або 0 (FALSE)

AND

Логічне І

1(TRUE) або 0 (FALSE)

OR

Логічне АБО

1(TRUE) або 0 (FALSE)

> або ‘G’

Більше

1(TRUE) або 0 (FALSE)

< або ‘L’

Менше

1(TRUE) або 0 (FALSE)

= або ‘E’

Рівно

1(TRUE) або 0 (FALSE)

/ = або ‘NE’

Не рівно

1(TRUE) або 0 (FALSE)

<= або ‘LE’

Менше або рівно

1(TRUE) або 0 (FALSE)

>= або ‘GE’

Більше або рівно

1(TRUE) або 0 (FALSE)

# (або *)

Множення

Арифметичний добуток

/

Ділення

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

\

Цілочисельне ділення

Цілочисельне ділення

@

Цілочисельний залишок

Цілочисельний залишок

+

Додавання

Арифметична сума

-

Віднімання

Арифметична різниця

Відповідно до цих пріоритетів обчислюються вирази з автоматичним перетворенням операндів на необхідні типи даних. Наприклад, рядки, які об’єднані арифметичним знаком “+”, автоматично перетворюються на числа, які додаються.