![]() |
|
|
#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;
|