Показать сообщение отдельно
  #1  
Старый 11.04.2008, 03:33
wolf-vega wolf-vega вне форума
Прохожий
 
Регистрация: 03.04.2008
Сообщения: 7
Репутация: 10
По умолчанию Расчет времени маршрута

Уважаемые возникла такая проблема.

Условие:
Имеется некий автобусный маршрут №1.
Мы имеем данные по данному маршруту, а именно:

а:=время выхода автобуса на маршрут;
b:=время схода автобуса с маршрута;
с:=время затрачиваемое автобусом на один рейс.

К примеру,
a:=06.00
b:=22.00
с:=00.30

Задача: Составить дневной график движения маршрута.

Т.е. он должен выглядеть так:
06.00 - 06.30
06.30 - 07.00
07.00 - 07.30
07.30 - 08.00
08.00 - 08.30
08.30 - 09.00 и т.д. до 22.00

Начал писать код, совсем запутался.
Подскажите, как лучше решить проблему.



Код:
function time(a, c: double): double;
var
h1: double;
begin
h1 := (INT(A) + INT(c)) * 60 + (frac(a) + frac(c)) * 100;
result := int(h1 / 60) + (h1 - int(h1 / 60) * 60) / 100;
end;

function time2(w, c: double): double;
var
h1: double;
begin
h1 := (INT(w) + INT(c)) * 60 + (frac(w) + frac(c)) * 100;
result := int(h1 / 60) + (h1 - int(h1 / 60) * 60) / 100;
end;

procedure TForm1.Button1Click(Sender: TObject);
 var
a,b,c,w,z,x:double;
begin

 a:=StrToFloat(Edit1.Text);
 b:=StrToFloat(Edit2.Text);
 c:=StrToFloat(Edit3.Text);
 w:=time(a,c);
 z:=time2(0,c);

 while w <= b do
  w:=w+z;

 ListBox1.Items.Add(FloatToStr(w)+' '+FloatToStr(z));

end;

end.
Ответить с цитированием