
- •1.2 Понятие имитационной модели и имитационного моделирования
- •1.3 Методология имитационного моделирования
- •1.4 Дискретное имитационное моделирование
- •Событийный подход
- •Подход сканирования активностей
- •Процессно-ориентированный подход
- •1.5 Направления реализации им
- •Тема 2. Автоматизация им
- •2.1 Формы представления знаний
- •2.2 Модифицированные продукционные правила
- •2.3 Ресурсы сложной дискретной системы и события
- •2.4 Идентификация событий в сдс
- •2.5 Действия и их формализация
- •2.6 Операции в сдс
- •Тема 3. Интеллектуальная моделирующая система на основе рдо-метода
- •3.1 Составляющие рдо-метода
- •3.2 Структура продукционного имитатора
- •3.3 Гибридные системы
- •3.4 Основные конструкции языка рдо
- •Алфавит
- •Лексемы и разделители
- •Типы данных. Соответствие типов
- •Арифметические и логические выражения
- •Синтаксис последовательностей
- •Типы ресурсов
- •А) Описание ресурсов
- •Б) Описание образцов
- •В) Описание операций
- •Г) Объект описания показателей
- •3.5 Поиск решений в продукционных системах а) Введение
- •Б) Основная процедура поиска
- •Поиск в глубину
- •Поиск в ширину
- •Г) Описание точек принятия решений
- •Тема 4. Языки имитационного моделирования gpss
- •Основные команды инетерпретатора gpsspc
- •Тема 5. Система имитационного моделирования Arena
- •Тема 6. Руководство пользователя системы имитационного моделирования rao-studio
- •Меню Edit
- •Меню Search
- •Меню View
- •Меню Insert
- •Меню Model
- •Интерфейс главного окна приложения Окно рабочего пространства
- •Окно вывода
- •Строка состояния
- •Работа с моделью Создание
- •Открытие
- •Сохранение
- •Редактирование
- •Выделение фрагментов текста
- •Работа с выделенными фрагментами
- •Откат изменений
- •Автозавершение (code completion)
- •Работа с шаблонами и вставка синтаксических конструкций
- •Работа с дополнительными буферами обмена
- •Поиск и замена подстрок
- •Поиск фразы по всей модели
- •Навигация по тексту с помощью механизма закладок
- •Скрытие фрагментов текста
- •Просмотр результатов моделирования
- •Автоматическое построение графиков
- •Настройки программного комплекса
- •Закладка General
- •Закладка Editor
- •Закладка Tabs
- •Закладка Styles and Color
- •Список литературы
- •Интернет ресурсы
Арифметические и логические выражения
Арифметические выражения в данной версии языка могут быть целого, вещественного и перечислимого типов. Выражения целого и вещественного типов состоят из операндов, знаков арифметических операций и круглых скобок.
Операндами арифметического выражения служат:
численные константы;
символьные константы;
глобальные переменные и функции;
функции;
последовательности;
параметры ресурсов;
параметры релевантных ресурсов;
параметры образцов;
параметры функций.
Возможность использования операндов зависит от контекста. Так, параметры функции можно использовать в арифметических выражениях лишь в теле алгоритмических функций, а параметры образца и параметры релевантных ресурсов - в теле образцов.
В выражениях целого и вещественного типа допустимы следующие арифметические операции: сложение (+), вычитание (-), умножение (*), деление (/). Порядок вычисления значения выражения определяется старшинством арифметических операций и скобками. Сначала выполняется вычисление значений в скобках, затем умножение и деление, и, наконец, сложение и вычитание.
Тип арифметического выражения определяется типами операндов, которые задаются пользователем при описании констант, функций, последовательностей, типов ресурсов, образцов. Выражение имеет целый тип, если все операнды имеют целый тип. Если в выражение входят только целые и вещественные операнды (хотя бы один), то выражение имеет вещественный тип. Выражения перечислимого типа состоят из единственного операнда перечислимого типа либо имени значения перечислимого типа. Арифметические операции над перечислимыми операндами не определены.
При вычислении значения арифметического выражения тип результата выполнения арифметической операции будет целым, если оба операнда целые. Если хотя бы один операнд имеет вещественный тип, то результат имеет вещественный тип. Результатом деления целых чисел является целое число - целая часть результата деления. Дробная часть отбрасывается. Например, результатом выражения 2 * (5 / 2) будет целое число 4, а выражения 2 * (5.0 / 2) - вещественное число 5.0.
При использовании в качестве операндов численных констант их необходимо отделять от стоящих перед ними знаков "+" или "-" по крайней мере, одним разделителем. В противном случае эти знаки воспринимаются не как знаки арифметических операций, а как знак численной константы.
Логические выражения состоят из стандартных логических функций, арифметических выражений, объединенных в пары операциями отношения, логических операций и квадратных скобок.
Операции отношения включают в себя:
= - равно;
<> - не равно;
< - меньше;
> - больше;
<= - меньше или равно;
>= - больше или равно.
Логические операции содержат: and - операция И; or - операция ИЛИ. При вычислении значения логического выражения сначала вычисляются значения арифметических выражений, затем результаты операций отношения и значения стандартных логических функций и в последнюю очередь выполняются логические операции. Оба арифметических выражения в операции отношения должны иметь один и тот же тип, либо одно должно быть вещественным, а второе - целым. Если одно из арифметических выражений в операции отношения имеет вещественный тип, то при выполнении операции отношения значение второго выражения также преобразуется к вещественному типу. Если оба арифметических выражения целого типа, то операция отношения выполняется над целыми операндами. Над выражениями перечислимого типа допустимы только операции "равно" и "не равно".
Порядок выполнения логических операций при вычислении выражения определяется старшинством и скобками. Сначала вычисляются значения в скобках, затем выполняются операции И, затем ИЛИ. При вычислении используется короткая схема, т.е. вычисляются значения не всех логических операндов, а только значения, необходимые для получения результата логической операции. Так, если первый операнд в операции ИЛИ имеет значение ИСТИНА, то независимо от значения второго операнда результат операции будет ИСТИНА, поэтому нет необходимости вычислять значение второго операнда. Аналогично, если в операции И первый операнд имеет значение ЛОЖЬ, то независимо от значения второго операнда значением операции будет ЛОЖЬ.