Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Описание классов



Объект «машина»

Правила поведения объекта «машина»:

1. Машина подъезжает к экскаватору и встает в очередь на погрузку.

2. Экскаватор загружает машину по очереди.

3. Загруженная машина уезжает от экскаватора и покидает систему.

Описание класса «машина»

Process CLASS Car (TimeCarIn,GrCar,TimeCarout);

comment Car - имя класса;

comment Описание формальных параметров;

comment TimeCarIn,GrCar,TimeCarout - формальные параметры;

comment TimeCarIn - время подъезда к экскаватору;

comment GrCar - грузоподъемность;

comment TimeCarOut - время отъезда от экскаватора;

Real TimeCarIn,TimeCarOut;

Integer GrCar;

Begin

comment Описание переменных класса "машина";

comment TimeCarSys - время входа машины в систему;

real TimeCarSys;

comment Запоминание времени входа в систему;

TimeCarSys:=TIME;

comment Задержка на время подъезда к экскаватору;

HOLD(TimeCarIn);

comment Машина встает в очередь и активизирует экскаватор;

INTO(HeadCar);

ACTIVATE Eks;

comment Машина ожидает загрузки в очереди;

PASSIVATE;

comment Загруженная машина уезжает из системы;

HOLD(TimeCarOut);

GrAll:=GrAll+GrCar;

TimeCarAll:=TimeCarAll+(TIME-TimeCarSys);

end;

Объект «экскаватор»

Правила поведения объекта «экскаватор»:

1. Если в очереди есть машины, экскаватор выбирает первую машину из очереди.

2. Экскаватор загружает машину.

3. Загруженная машина уезжает от экскаватора и покидает систему.

4. Если в очереди нет машин, экскаватор переходит в режим простоя до тех пор, пока не приедет машина.

Описание класса «экскаватор»

Process CLASS Ekskavator(PrEks);

comment Ekskavator - имя класса;

comment Описание формальных параметров;

comment PrEks - производительность экскаватора;

integer PrEks;

Begin

comment Описание переменных класса "экскаватор";

comment TimeEksStart - время начала простоя;

comment TimeEksProstoy - простой экскаватора;

real TimeEksStart,TimeEksProstoy;

comment описание ссылочной переменной на машину;

ref(Car) M;

comment Сначала простой равен времени начала работы экскаватора;

TimeEksProstoy:=TIME;

comment Работа экскаватора;

comment Выбираем из очереди первую машину;

Work: FOR M:-HeadCar.First WHILE M=/=NONE DO

Begin

comment Удаляем машину из очереди;

M.out;

comment Загружаем машину;

HOLD(M.GrCar*PrEks);

comment Отправляем загруженную машину;

ACTIVATE M;

End;

comment Запоминаем время начала простоя экскаватора;

TimeEksStart:=Time;

comment Экскаватор простаивает;

PASSIVATE;

comment Приехала машина. Конец простоя экскаватора;

TimeEksProstoy:=TimeEksProstoy+(Time-TimeEksStart);

GOTO Work;

End;

Объект «генератор машин»

Правила поведения объекта «генератор машин»:

1. До времени окончания моделирования создавать объекты «машина» с соответствующими параметрами через случайные промежутки времени.

Описание класса «генератор машин»

Process CLASS Generator;

comment Generator - имя класса;

Begin

comment Описание переменных класса "генератор машин";

comment TCarIn - время подъезда машины к экскаватору;

comment TCarOut - время отъезда машины от экскаватора;

Real TCarIn, TCarOut;

comment GCar -грузоподъемность машины;

comment ColCar -количество созданных машин;

Integer GCar, ColCar;

comment описание ссылочной переменной на машину;

ref(Car) Mnew;

comment Сначала количество машин равно нулю;

ColCar:=0;

WHILE (TIME<=Tmod)

DO

Begin

comment Получение случайных величин, распределенных по

равномерному закону, для времени подъезда и для

времени отъезда машины;

TCarIn:=UNIFORM(A_TCarIn,B_TCarIn,U_TCarIn);

TCarOut:=UNIFORM(A_TCarOut,B_TCarOut,U_TCarOut);

comment Получение случайной величины, распределенной по

равномерному закону для целых чисел, для

грузоподъемности машины;

GCar:=RANDINT(A_GCar,B_GCar,U_GCar);

comment Создание новой машины;

Mnew:- NEW Car(TCarIn,GCar,TCarOut);

comment Машина поехала;

ColCar:=ColCar+1;

ACTIVATE Mnew;

comment Через случайное время появится новая машина;

HOLD(UNIFORM(A_Mnew,B_Mnew,U_Mnew));

End;

End;





Дата публикования: 2015-01-23; Прочитано: 163 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.007 с)...