Einzelnen Beitrag anzeigen

Fritzew

Registriert seit: 18. Nov 2015
Ort: Kehl
678 Beiträge
 
Delphi 11 Alexandria
 
#26

AW: Array sortieren

  Alt 25. Jul 2017, 19:55
So jetzt doch einfach mal eine Lösung für sein Problem:
Da er ja schon 12 Jahre hier angemeldet ist wird es ja wohl keine Hausaufgabe sein
Delphi-Quellcode:
program Project32;
{$APPTYPE CONSOLE}
uses
  System.SysUtils;
type
  TRec = record
    Datum: TDateTime;
    Kunde: string;
    Nummer: Integer;
  end;

Var a : array of TRec;

// Erzeugt und füllt das Array
procedure init;
var
  I: Integer;
  ltemp : TRec;
  le : Extended;
  ln : integer;
 begin
   setlength(a, 100);
   randomize;
   for I := Low(a) to High(a) do
    begin
      ltemp.Datum := date + random(400)+ random;
      ln := random(1000);
      ltemp.Kunde := 'Kunde'+inttostr(ln);
      ltemp.Nummer := random(ln);
      a[i] := ltemp;
    end;
 end;

 // Ausgabe auf Console
 procedure printA;
 Var i : integer;
 begin
   for I := Low(a) to High(a) do
    begin
      writeln(DateTimeToStr( a[i].Datum), ' ', a[i].Kunde, ' ', a[i].Nummer);
    end;
 end;

 //Sortiere
 procedure Sort;
 var i, j : integer;
     ltemp : TRec;
 begin
   for i := Low(a) to High(a)-1 do // -1 weil letztes müssen wir nicht prüfen
    for J := succ(i) to High(a) do // i + 1 bis zum letzen
    // Prüfe auf >
     if a[i].Datum > a[j].Datum then
     // Ja tausche
      begin
        ltemp := a[i];
        a[i]:=a[j];
        a[j]:= ltemp;
      end;
 end;

begin
  try
    init;
  // printA;
    Sort;

    printA;
    writeln('fertisch.....') ;
    readln;
  except
    on E: Exception do
      Writeln(E.ClassName, ': ', E.Message);
  end;
end.
Fritz Westermann
  Mit Zitat antworten Zitat