![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | 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; |