1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59
| Procedure classer(var debutl : Pointskieur; nbskieur : integer);
var
Vactu, Vpres, Vinter : Pointskieur;
fini, permut : boolean;
i : integer;
BEGIN
WriteLn('hello de lu');
Repeat
fini := true;
Vactu := debutl;
Vpres := nil;
while Vactu <> nil do
begin
permut:=false;
if Vactu^.temps.min > Vactu^.next^.temps.min then
begin
fini:= false;
permut:= true;
end
else
begin
if (Vactu^.temps.min = Vactu^.next^.temps.min) and (Vactu^.temps.sec > Vactu^.next^.temps.sec) then
begin
fini:= false;
permut:= true;
end
else
begin
if (Vactu^.temps.min = Vactu^.next^.temps.min) and (Vactu^.temps.sec = Vactu^.next^.temps.sec)
and (Vactu^.temps.cen > Vactu^.next^.temps.cen) then
begin
fini:= false;
permut:= true;
end;
end;
end;
if permut then
begin
if Vpres = nil then
begin
debutl := Vactu^.next;
Vinter := Vactu^.next^.next;
debutl^.next := Vactu;
Vactu^.next := Vinter;
end
else
begin
Vpres^.next := Vactu^.next;
Vinter := Vactu^.next^.next;
Vactu^.next^.next := Vactu;
Vactu^.next := Vinter;
end;
end;
Vactu := Vactu^.next
end;
Until (fini);
end; |
Partager