Оператор |
Описание |
PROCEDURE |
Определение PLUS процедуры |
TEMPORARY |
Определение и ограничение по области видимости локальной пользовательской переменной или локальной матрицы |
BEGIN/END |
Составной оператор для создания блока выражений PLUS |
присваивания |
Установка значения именованному элементу или элементу матрицы |
вызова процедуры |
Запуск библиотечной процедуры |
маркирования выражение |
Суперкласс выражений, которые начинаются с метки |
IF/THEN |
Проверка выражения и выполнение действия, когда результат равен "TRUE" |
IF/THEN/ELSE |
Проверка выражения и выполнение действия при любом результате |
WHILE/DO |
Выполнение повторяющихся действий |
GOTO |
Переход на новую строку в теле процедуры |
RETURN |
Завершение процедуры и возврат результата |
Давайте рассмотрим выражения более подробно.
Оператор присваивания обозначается через символ равно ("=") и используется по следующим правилам:
Л-значение = выражение;
Л-значение – поименованное значение, имя локальной переменной или элемент матрицы.
Выражение – любое разрешённое PLUS выражение.
Оператор BEGIN/END обычно используется для определения процедур и управляющих потоков в теле процедуры. Прежде чем привести пример использования этого составного оператора давайте рассмотрим другой оператор – PROCEDURE.
Данный оператор используется только для определения процедур, совместно с оператором BEGIN/END. Синтаксис его таков:
PROCEDURE <имя>([список аргументов]) BEGIN
[выражения]
END;
Имя – это собственное имя процедуры, по которому будет происходить обращение к ней. Имя процедуры подчиняется принятым в системе GPSS World правилам по созданию имён и меток.
Список аргументов – последовательность определённых пользователем имён, разделённая запятыми. Используется для задания списка формальных аргументов. Данный список является необязательным атрибутом при создании процедуры.
Выражения – тело процедуры, куда можно включать различные PLUS операторы.
Для определения локальных переменных PLUS процедуры служит оператор TEMPORARY, который имеет следующий синтаксис:
TEMPORARY <список_имён>;
Список имён – список определённых пользователем имён локальных переменных, разделённых запятыми.
Можно также в процедуре определить пользовательский массив, который также называют локальной матрицей. При этом синтаксис оператора TEMPORARY будет несколько иным:
TEMPORARY MATRIX <имя>[<список целых чисел>];
Имя – имя объявленной пользователем локальной матрицы.
Список целых чисел – последовательность от 1 до 6 положительных целых чисел, разделённых запятыми. Каждое число определяет размерность матрицы.
Рассмотрев основные операторы, можно перейти к созданию собственной процедуры. Назовём её MyProc. Пусть наша процедура имеет один формальный параметр FormalPar и одну собственную (локальную) переменную LocalVar. Тогда синтаксис должен быть примерно следующим:
PROCEDURE MyProc (FormalPar) BEGIN
TEMPORARY LocalVar;
END;
Помимо локальных переменных в процедурах можно использовать и глобальные. К таким относятся матрицы, созданные с помощью команд GPSS. Для обращения к глобальной матрице используется такой же синтаксис, что и при обращении к локальной. Также в процедуре можно использовать и различные СЧА, также как это делается и непосредственно в самой модели.
Теперь стоит поговорить об особенности PLUS процедур.
Сравнивая такие понятия как "функция" и "процедура" в различных языках программирования нельзя ничего однозначно сказать об их различиях. Хотя приняты следующие определения:
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.