Показать сообщение отдельно
  #21  
Старый 15.12.2008, 13:41
ART ART вне форума
Продвинутый
 
Регистрация: 13.02.2006
Адрес: Магнитогорск
Сообщения: 669
Репутация: 14745
По умолчанию

Странно, у меня работает:

Код:

type
 TDate  =  record
  Y: integer;
  M: integer;
  D: integer;
 end;

 TDates  =  array of TDate;

 var
 D: TDates;

procedure Sort;
var
 i, k: integer;
 flag: boolean;
 t: TDate;
begin
k  :=  1;
 repeat
  flag  :=  true;
  for i  :=  0 to High(D)  -  k do
   if (D[i].Y  *  1000  +  D[i].M  *  10  +  D[i].D)  >  (D[i  +  1].Y  *  1000  +  D[i  +  1].M  *  10  +  D[i  +  1].D) then begin
    t  :=  D[i];
    D[i]  :=  D[i  +  1];
    D[i  +  1]  :=  t;
    flag  :=  false;
   end;
   inc(k);
 until flag  =  true;
end;
Ответить с цитированием