Пусть требуется для заданного числа вычислить значение факториала.
Присвоим сохраняемой величине с именем N_DAN начальное значение 10. Создадим один транзакт для последующего моделирования. Для обращения к процедуре вычисления факториала, получения результата вычисления и присвоения его искомой переменной используем блок SAVEVALUE. В нем производится вычисление и запись результата вычисления процедуры N_FACT в сохраняемую переменную REZ_FACT. Вызов процедуры вычисления представляется в круглых скобках с указанием фактического значения аргумента. Затем транзакт удаляется из модели.
INITIAL X$N_DAN,10
GENERATE,,,1
SAVEVALUE REZ_FACT,(N_FACT(X$N_DAN))
TERMINATE 1
PROCEDURE N_FACT(N_X)
BEGIN
IF ((N_X=0)OR(N_X=1)) THEN RETURN 1;
ELSE RETURN(N_XN#(N_FACT(N_X-1)));
END;
Диалоговые возможности GPSS World
Взаимодействие пользователя c системой GPSS World осуществляется c помощью оконного интерфейса в режиме активного диалога.
Диалоговые окна
В системе предусмотрены диалоговые окна, которые позволяют отображать информацию о состоянии отдельных объектов на экране дисплея. Эта информация может быть как статической, так и динамической. Главное окно, появляющееся при запуске системы, показано на рисунке 4.
Рисунок 4 – Главное окно GPSS World
Пункт File главного менюсодержит стандартные команды создания/сохранения GPSS-моделей или текстовых файлов.
Пункт Edit главного меню содержит команды редактирования GPSS-моделей.
Для удобства создания модели можно воспользоваться пунктом меню Edit/InsertGPSSBlock..., позволяющим выбрать из специального окна блоков и вставить в модель любой GPSS-блок (рис. 5). При выборе блока открывается окно c его параметрами (рис. 6). Использование этого средства GPSS World гарантирует правильность формирования строки модели c выбранным блоком.
Рисунок 5 – Окно вставки GPSS-блока в модель
Пункт меню Edit/Insert Experiment позволяет вставить в модель эксперимент.
Пункт меню Edit/Expression Window... предназначен для редактирования информации в окне выражений, если это окно использовалось в модели.
Пункт меню Edit/Plot Window... предназначен для редактирования информации в окне графиков.
Пункт меню Edit/Settings... позволяет задавать параметры имитации, отчетов, генераторов случайных чисел, функциональных клавиш и выражений.
Пункт Search главного меню помогает передвигаться внутри текстового объекта. Первый его пункт Find/Replace (Найти/Заменить) открывает обычный диалог для поиска и замены текстовой информации.
Последующий набор пунктов меню используется для работы c закладками, позволяя размещать невидимые маркировочные знаки, которые сохраняются c объектом. Они составляют циклический список, который можно просматривать c помощью соответствующих команд меню или c помощью клавиш.
Рисунок 6 – Окно с параметрами блока
Пункт меню Search/NextBookmark переводит к позиции следующей закладки в тексте. Пункт меню Search/Mark водит закладку в текущую позицию курсора, Search/Unmark – снимает выделение, удаляя текущую закладку, a Search/Unmark All снимает все закладки. Пункт меню Search/Select to Bookmark выделяет текст от текущей позиции курсора до текущей позиции закладки. Последние два пункта меню Search имеют дело c сообщениями об ошибках, которые возникают при трансляции GPSS-модели. Ошибки трансляции заносятся в циклический список. Этот список хранится вместе c GPSS-моделью и модифицируется при повторной трансляции. Для поиска ошибок используется пункты меню Search/Next Error (следующая ошибка) и Search/Previous Error (предыдущая ошибка). Для быстрого поиска c помощью клавиатуры используются комбинации клавиш [b+a+N] и [b+a+P] соответственно. Курсор останавливается перед ошибкой.
Пункт View главного меню управляет отображением информации в окнах. Пункт меню View/Notices (заметки) выводит информацию о текущей версии GPSS World и ее особенностях. Пункт меню View/Toolbar позволяет отображать или не отображать панель инструментов в главном окне. Пункт меню View/Entity Details управляет выдачей детальной информации для некоторых динамических окон. Например, в окне блоков может быть показана детальная информация по всем блокам модели (рис.7) или отображаться только их графическое представление. Пункт меню View/Simulation Clock позволяет отображать часы модельного времени в нижнем правом углу главного окна.
Рисунок 7 – Детальная информация по блокам модели
Пункт Command главного меню используется для создания и управления объектами имитации. Пункт меню Command/Create Simulation (создать имитацию) вызывает транслятор для создания объекта имитации, который включает кроме GPSS-модели, также файлы, связанные c ней. Команда меню Command/Retranslate доступна для выполнения повторной трансляции после исправления ошибок. Остальные пункты меню Command выполняют команды
Пункт Windows главного меню GPSS World предоставляет пользователю возможность использования различных окон для наблюдения и взаимодействия c моделью в процессе имитации. Окна, отображающие визуальное состояние имитации, могут быть сохранены и распечатаны. Некоторые окна делают как бы мгновенный снимок состояния различных объектов имитации в некоторый момент модельного времени. Изображения в окнах изменяются динамически в интерактивном режиме взаимодействия c моделью. Следует отметить, что открытые динамические окна существенно замедляют скорость прогона модели.
При моделировании может быть открыто любое число динамических окон для следующих объектов: блоков, устройств, накопителей, очередей, логических ключей, сохраняемых величин, матриц, таблиц.
Кроме того, можно воспользоваться окнами для графиков и выражений, что позволяет проследить изменения значений переменных во время имитации.