![]() |
|
#16
|
|||
|
|||
![]() Ну в таком случае можно извратится до такого:
Код:
type TMyRec = record AName: String; ADate: array [1..3] of Integer; end; var MyRec : array [1..10] of TMyRec; AMyRec: TMyRec; for i := 1 to 10 do for j := 1 to 10-i do if MyRec[j].ADate[1] < MyRec[j+1].ADate[1] then begin AMyRec := MyRec[j]; MyRec[j] := MyRec[j+1]; MyRec[j+1] := AMyRec; end; for i := 1 to 10 do for j := 1 to 10-i do if MyRec[j].ADate[2] < MyRec[j+1].ADate[2] then begin AMyRec := MyRec[j]; MyRec[j] := MyRec[j+1]; MyRec[j+1] := AMyRec; end; for i := 1 to 10 do for j := 1 to 10-i do if MyRec[j].ADate[3] < MyRec[j+1].ADate[3] then begin AMyRec := MyRec[j]; MyRec[j] := MyRec[j+1]; MyRec[j+1] := AMyRec; end; MyRec[j].ADate[1] - дата MyRec[j].ADate[2] - месяц MyRec[j].ADate[3] - год |
#17
|
|||
|
|||
![]() к сожалению не работает
![]() p.s. я уже так извращался |
#18
|
|||
|
|||
![]() Как не работет? У меня работало О_о
|
#19
|
|||
|
|||
![]() стоп, я делал почти так.. я сначала сортировал год, потом месяц, потом число.. ща попробую твоим вариантом..
по поводу того что не работает я имел ввиду мой пост.. там где идея про longint |
#20
|
|||
|
|||
![]() все, проверил.. пашет )) я был близок) спасибо всем)
|
#21
|
|||
|
|||
![]() Странно, у меня работает:
Код:
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; |