- •Глава 1 2
- •Глава 2 32
- •Глава 1 Основные понятия имитационного моделирования
- •1.1Модели
- •1.2Структура имитационной модели
- •1.3Построение имитационной модели
- •1.4Методологические подходы в имитационном моделировании
- •1.4.1Дискретное моделирование
- •1.4.2Событийный подход
- •1.4.3Подход сканирования активностей
- •1.4.4Процессно - ориентированный подход
- •1.4.5Непрерывное имитационное моделирование
- •1.4.6Комбинированные дискретно - непрерывные модели
- •1.5Языки имитационного моделирования
- •Глава 2 Моделирование на языке Симула - 67
- •1.6Понятие объекта в языке Симула-67
- •2.1.1 Объекты и классы объектов
- •2.1.2 Создание объектов и их наименование
- •2.1.3 Иерархическое описание классов объектов
- •2.2 Средства доступа к атрибутам объектов
- •2.2.1 Дистанционные идентификаторы
- •2.2.2 Присоединяющие операторы.
- •2.2.3 Виртуальные атрибуты
- •2.3 Ввод - вывод в Симула-67
- •2.4 Средства имитационного моделирования
- •2.5 0 Средствах для сбора статистики и стохастического моделирования
- •2.6 Программа моделирования работы магазина
- •2.6.1 Постановка задачи
- •2.6.2 Описание программы моделирования
1.6Понятие объекта в языке Симула-67
2.1.1 Объекты и классы объектов
В языке Симула - 67 ( точнее, в Симула - 1, 1960 год ) впервые было введено такое понятие как объект и поэтому его справедливо можно считать первой системой объектно - ориентированного программирования. Объект - это программный компонент, обладающий атрибутами и способный выполнять определенные действия. Атрибутами могут быть переменные, массивы, процедуры, ссылки на другие объекты. Действия, выполняемые объектом, задаются последовательностью операторов, называемой сценарием его функционирования, поведения или правилами действий. Симула-объекты являются удобным средством для отображения существующих или проектируемых объектов реальности, а также абстрактных понятий. Каждый объект обладает системным атрибутом, указывающим на исполняемый оператор его правил действий. Этот атрибут называется локальным управлением (ЛУ).
В Симула-программе могут одновременно существовать несколько объектов, находящихся на разных стадиях исполнения своих сценариев поведения. Среди них только один объект в каждый момент времени выполняет операторы правил действий. Этот объект называется активным или текущим. ЛУ этого объекта совпадает с центральным управлением и двигается по операторам сценария его поведения. ЛУ любого другого объекта при этом остается неподвижным и указывает на оператор с которого начнется работа этого объекта, когда он станет текущим. Понятно, что операторы правил действий объекта могут быть использованы за несколько активных фаз, в промежутках между которыми работают другие объекты. Такой способ взаимодействия объектов получил название квазипаралельного исполнения, а сами объекты, в этом случае называются сопрограммами.
Объекты могут принадлежать к одному или нескольким множествам родственных объектов, называемых классами. Объекты первого класса имеют общую структуру атрибутов и одинаковые правила действий, но могут различаться конкретными значениями атрибутов. Классы объектов определяются в Симула-программах описаниями, которые называются декларациями классов. Синтаксически декларация класса очень похожа на описание процедуры.
Рассмотрим строение декларации класса на примере описания автобусов, различающихся своими параметрами :
| class АВТОБУС (P,L,B,H,N,T,S);
(1) | имя класса формальные параметры
| real Р , L , В , Н , Т , S ; integer N ; - спецификации параметров
(2) | begin real ПУТЬ;
| procedure ТЕХОСМОТР;…;
| procedure СТОП (V);real V;...;
| . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
| if ПУТЬ >=10000 then ТЕХОСМОТР;. | (3)
| . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
| if КРАСНЫЙ then СТОП (60); |
| . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
| end ( декларации класса автобус ) .
Здесь (1) - заголовок декларации класса, в котором формальные параметры P,..,S трактуются как вес, длина, ширина, высота, пассажировместимость рейсового автобуса, срок его эксплуатации, длина маршрута соответственно, (2) - тело декларации класса. (3) - описание сценария поведения автобуса. В роли формальных параметров деклараций классов могут использоваться переменные и массивы.
Телом декларации класса может быть любой оператор языка, чаще всего блок. Все переменные, массивы, процедуры, классы, описанные в декларации класса, считаются атрибутами объектов определяемого класса.
