А.1 Основные операторы управления

А. Операторы управления

Операторы управления и описания

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

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

SIMULATE — первый оператор в программе, указываю­щий на необходимость выполнения (счета) программы. Он име­ет вид:

л

< SIMULATE A>

где А — число минут машинного времени, по истечении которого моделирование будет завершено и на печать будет выведена нако­пленная к этому времени статистическая информация. Если поле А пусто, то работа программы завершается либо по истечении за­данного модельного времени моделирования, либо по окончании обслуживания заданного числа транзактов.

START, помещаемый в конце входных данных, ука­зывает, что входные данные получены и можно начинать счет. Наиболее простая форма записи:

<START А >

здесь А — число транзактов, которые должны пройти через сис­тему до выдачи окончательной статистики, так называемый счет­чик завершения (СЗ). Счет заканчивается, когда СЗ меньше, либо равен нулю. Значение СЗ уменьшается на величину, указанную в поле А блока TERMINATE.

Примеры:

а) организация завершения моделирования по прохождению в модели заданного числа транзактов:

GENERATE 20, 5 создание транзактов

TERMINATE 1 уничтожение транзакта с вычитанием 1 из СЗ

START 1000 число завершений (СЗ) равно 1000

Моделирование заканчивается после прохождения в модели 1000 транзактов.

б) организация завершения моделирования по времени (Т =3600):

GENERATE ,, 3600

TERMINATE 1

START 1

Заметим, что все остальные блоки TERMINATE, имеющиеся в программах, фрагменты которых приведены в примерах а), б), должны иметь нулевое поле А.

RESET, СLЕАR указывают на проведение нескольких прогонов ИМ в течение одного выполнения программы. По окон­чании каждого прогона: по команде RESET распечатывается и сти­рается вся накопленная статистика, обнуляется значение относи­тельного модельного времени С1 (модельного времени для отдельного прогона); по команде CLEAR дополнительно удаляются из модели все имеющиеся транзакты и обнуляется значение абсолютного модельного времени AС l. Операт CLEAR не оказывает влияния на амперпеременные.

END — последний оператор, указывающий на конец входных данных, причем все открытые файлы закрываются.

Таблица 4.6

Языки Функции GPSS / Н BASIC PASCAL FORTRAN
Повторение DO-ENDDO FOR NEXT FOR DO DO
Условие IF, ENDIF, ELSE, ELSEIF IF THEN ELSE

А2. Вновь введённые операторы. Среди вновь введённых в язык операторов управления, отметим 2 группы операторов, выполняющих функции, присущие УЯП.

Формат DO: < DO &index = A, B, C > где

А- число, СЧА , АМП , задающее начальное значение

В- предельное значение повторений (петель),

С- приращение (по умолчанию 1)

Пример: DO &1=1, 50 делать 50 раз

ENDO операндов не имеет и прекращает действие DO.

При использовании DO возможны два случая:

1. Значение А>В, процесс выходит из петли и моделирование продолжается с выполнения следующей после ENDDO директивы

2. АВ, действие DO продолжается до выполнения директивы

Группа операторов условий работает в обычной связке проверки булевских или логических условий: IF - ELSEIF- ELSE - ENDIF, операндами IF, ELSEIF являются проверяемые условия, ELSE, ENDIF операндов не имеют, причём ELSE задаётся один раз.

Среди вновь введённых операторов рассмотрим группу, осуществляющую связь внешних файлов с внутренними файлами модели, среди них FILEDEF, GETLIST, GETSTRING.

FILEDEF служит для соединения внешнего файла с внутренним файлом модели : < имя файла FILEDEF внешний файл >, например

INFILE FILEDEF ‘ trace, dat ‘

GETLIST предназначен для чтения входных величин , записанных в свободном формате : < [ имя ] GETLIST FILE = filename, (входные данные) >, например: GETLIST FILE = MYFILE, (X&,&I =1 ,5).

GETSTRING предназначен для чтения внешних файлов, содержащих АМП, формата :

< [ имя ] GETSTRING FILE = filename, ( &V ) > Прежние версии языка позволяли исполнять операторы последовательно в соответствии с блок-схемой, введение оператора GOTO обеспечивает переход в любую точку модели или отчёта. При чтении отчёта оператор работает только внутри документа, не давая возможности входа извне и выхода во внешние файлы. Формат: < [ имя ] GOTO имя объекта>. Связанный с ним оператор HERE аналогичен оператору CONTINUE в Фортране и указывает точку обращения к модели. Следующие три связанных оператора служат для получения отображения на экране линий данных отчёта: PICTURE, PUTPIC, PUTSTRING. PICTURE служит для создания краткого или полного отчёта с помощью оператора PUTPIC или блока BPUTPIC форматом :

< имя PICTURE [LINES =n] > например MYP PICTURE LINES=3. PUTSTRING используется, когда не нужны возможности PUTPIC.

PICTURE служит для создания краткого или полного отчета с помощью оператора PUTPIC или блока BPUTPIC форматом:

< имя PICTURE [LINES = n] > например MYP PICTURE LINES=3

PUTSTRING используется, когда не нужны возможности PUTPIC.

При работе с моделью часто приходится сохранять результаты, для этих целей существует два оператора SAVE, READ. SAVE позволяет записать образ модели в постоянную память или на дискету для работы с файлом и последующего запуска. Вызов сохранённого файла осуществляет оператор READ. Формат обоих операторов идентичен:

< SAVE [имя] >, например, SAVE RUN 2. Операнд А может отсутствовать.