Thema: Delphi Quicksort: Nur Nullen

Einzelnen Beitrag anzeigen

Rumnic

Registriert seit: 15. Aug 2008
3 Beiträge
 
#8

Re: Quicksort: Nur Nullen

  Alt 16. Sep 2008, 22:24
Zitat von guidok:
Zitat von taaktaak:
Moin, Moin.
Zitat:
Aber ich würde für solche Daten Records, bzw. TLists verwenden, dann hat mein keine Probleme mit Begrenzern und dem Umkopieren.
Das kann ich nur bekräftigen! TList ist 'ne viel bessere Möglichkeit mit solchen Daten umzugehen. Also möglichst rechtzeitig damit beschäftigen und gar nicht erst den "falschen" Weg gehen.
Zitat:
Dazu soll gesagt sein, dass ich noch nicht lange am Programmieren bin und mein Informathik-Lehrer ziemlich flott vorran geht ^^.
Es gibt mit Sicherheit geschicktere Wege, aber es handelt sich hier um den Informatikunterricht, da sollte man schon ungefähr den Weg gehen, den der Lehrer vorgibt (es sei denn es ist völliger Quark, was es ja auch geben soll).

Wir haben bis jetzt nur mit Arrays gearbeitet. Jetzt kamen noch die Records dazu, von denen unser Lehrer uns einen in ein vorgefertigtes Programm mit den Elementen vName,nName und telefon gesetzt hat und die Aufgabe ist es jetzt, den Array nach Nachnamen und untereinander nach Vornamen zu sortieren. EIne kleine Überlegung haben wir schon angestellt, und zwar, dass man erst nach Vornamen sortieren muss und dann nach Nachnamen.
Der Array[1] sieht dann bsp so aus:
Müller, Lisa, 0123/456789

Es kam noch etwas ganz kurz zur Sprache am Ende der Stunde, was ich aber nicht genau mitbekommen habe. Das waar glaube ich so etwas wie : array[i].vName, um beim index i im Array nur auf den Vornamen zuzugreifen. Ich habe das dann in meinem Programm kurz ausprobiert, indem ich dem Quicksort nicht array sondern array.vName übergeben wollte. Das wurde mir allerdings rot unterstrichelt: "tArrEintrag enthält kein Element namen vName"

Delphi-Quellcode:
procedure TFormTelefon.Button2Click(Sender: TObject);
var i : word;
begin
  sortiere(arrEintrag.vName, low(arrEintrag), high(arrEintrag)); //warum??
  for i := 1 to high(arrEintrag) do
    memArray.lines.add(arrEintrag[i]);
end;
In der Obenflächenunit:
Delphi-Quellcode:
implementation

{$R *.dfm}

uses uStore, uSort ;

var arrEintrag : tArrEintrag; // <---
in uSort:
type tArrEintrag = array[1..100] of tEintrag; in uStore:
Delphi-Quellcode:
  tEintrag = record
              vName: tVName;
              nName: tNName;
              telefon: tTelefon;
            end;

Ich verstehe das jetzt als eine funktionierende "Kette".
arrEintrag ist als tArrEintrag definiert, tArrEintrag mit tEintrag und in tEintrag steht vName?!
  Mit Zitat antworten Zitat