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

Текст программы



Begin

comment Описание глобальных переменных;

comment Границы случайного равномерного распределения

времени подъезда машин к экскаватору;

real A_TCarIn, B_TCarIn;

comment Границы случайного равномерного распределения

времени отъезда машин от экскаватора;

real A_TCarOut, B_TCarOut;

comment Границы случайного равномерного целого распределения

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

integer A_GCar, B_GCar;

comment Границы случайного равномерного распределения

времени появления машин в системе;

real A_Mnew,B_Mnew;

comment Базовые числа для получения распределения;

integer U_TCarIn, U_TCarOut, U_GCar, U_Mnew;

comment Время моделирования;

real Tmod;

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

integer Proiz_Eks;

comment Задание начальных значений;

A_TCarIn:=20.0;

B_TCarIn:=30.0;

A_TCarOut:=20.0;

B_TCarOut:=30.0;

A_GCar:=3;

B_GCar:=5;

A_Mnew:=10.0;

B_Mnew:=20.0;

U_TCarIn:=3;

U_TCarOut:=7;

U_GCar:=13;

U_Mnew:=17;

Proiz_Eks:=2;

Tmod:=480.0;

comment Блок моделирования;

SIMULATION

Begin

comment Описание переменных блока моделирования;

comment Эскаватор;

Ref (Ekskavator) Eks;

comment Генератор;

Ref (Generator) Gen;

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

Ref (Head) HeadCar;

comment Общее количество груза;

Integer GrAll;

comment Общее время пребывания машин в системе;

Real TimeCarAll;

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

comment Класс "машина";

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;

comment Класс "экскаватор";

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;

comment Класс "генератор машин";

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;

comment Создание и активизация объектов;

Gen:-NEW Generator;

HeadCar:-NEW Head;

Eks:-NEW Ekskavator(Proiz_Eks);

ACTIVATE Gen;

comment Начало моделирования;

HOLD(Tmod);

comment Вывод результатов;

Outtext("Zagryzra = ");

OutFix((Tmod-Eks.TimeEksProstoy)/Tmod,2,4);

Outimage;

Outtext("Gryz za cmehy = ");

OutInt(GrAll,6);

Outimage;

Outtext(" Sredhee time = ");

OutFix(TimeCarAll/Gen.ColCar,2,6);

Outimage;

inint;

End;

End;

Результаты работы программы:

Загрузка экскаватора = 0.57

Объем груза за смену = 122

Среднее время пребывание самосвалов в карьере = 49.88





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



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