|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Моделирование системы
Здраствуйте, есть такая задача:
Смоделировать работу ремонтных доков. Есть три корабля и два дока. Один корабль всегда в очереди, когда один починили, третий стает в очередь. Примерно так. Время прибытия и обслуживания рандомное. Если у кого есть желание, помогите, я не в силах=( |
#2
|
|||
|
|||
По-хорошему, надо вводить типы. Будут 3 корабля типа TShip и 2 дока типа TDock. Осталось всунуть туда поля, методы и свойства. Напр., у Дока должно быть поле TShip, если оно nil, то док свободен, если нет - указывает, какой в нём корабль. У Дока должен быть метод Обслуживание, который зависит от случайного времени. Надо бы описать, что хотелось бы видеть на выходе, напр., график для каждого корабля, сколько времени и в каком доке он находился.
|
#3
|
|||
|
|||
как-то так?
Код:
Type TShip = class tip:byte; tpr:integer; tob:integer; Constructor Create(num:integer); type TDock = class busy:byte; Constructor Create(num:integer); .... function generate(); var i:integer; begin randomize; r_Ship:=(-1/A)*ln(1-random); end; Последний раз редактировалось Admin, 01.06.2011 в 21:29. |
#4
|
|||
|
|||
1) оформляйте class правильно: в конце ставьте end, а все члены распределяйте по областям private, protected, public.
2) Поля у TShip не понятны для чего, поэтому не могу прокомментировать. 3) У Дока я же вам предлагал как определять занятость: FShip: TShip. Если это поле nil, то корабля в доке нет. Создаёте 3 корабля (можно через массив) и два дока: Код:
var Ships: array[1..3] of TShip; Docks: array[1..2] of TDock; ... for i:= 1 to 3 do begin Ships[i]:= TShip.Create; end; for i:= 1 to 2 do begin Docks[i]:= TDock.Create; end; Код:
for i:= 1 to 2 do begin Docks[i].FShip:= Ships[i]; end; |