Thema: Delphi Sortieralgorithmen

Einzelnen Beitrag anzeigen

AlexanderBrade

Registriert seit: 14. Dez 2008
189 Beiträge
 
Delphi 2005 Personal
 
#5

Re: Sortieralgorithmen

  Alt 8. Mär 2009, 11:06
Delphi-Quellcode:
setlength(C,8); //Festlegen der Länge des Feldes C [Musik und Kunst]
C[0]:=strtoint(edit7.Text); //usw.
C[1]:=strtoint(edit19.Text);
C[2]:=strtoint(edit31.Text);
C[3]:=strtoint(edit43.Text);
C[4]:=1;
C[5]:=1;
C[6]:=1;
C[7]:=1;

if (panel12.caption='KUN') or (panel12.caption='MUS') then //Soltte Kunst zusätzlich belegt worden seim, müssen diese Eingaben auch ins Feld einbezogen werden
begin
C[4]:=strtoint(edit11.Text); //usw.
C[5]:=strtoint(edit23.Text);
C[6]:=strtoint(edit35.Text);
C[7]:=strtoint(edit47.Text);
end;

if (panel13.caption='KUN') or (panel13.caption='MUS') then //siehe oben
begin
C[4]:=strtoint(edit12.Text);
C[5]:=strtoint(edit24.Text);
C[6]:=strtoint(edit36.Text);
C[7]:=strtoint(edit48.Text);
end;

for ii:=1 to 7 do //vom zweiten Element bis zum Vorletzten
begin
     for jj:= 8 downto ii do //Vom letzten bis zum i.-Element
     begin
          if C[jj] < C[jj-1] then //wenn j.-Element kleiner als j.-1-Element...
          begin //..tauschen:
               kk := C[jj-1]; //Wert des j.-1-Elements in Hilfsvariable
               C[jj-1] := C[jj]; //j.-1-Element soll j.-Element werden
               C[jj] := kk ; //j.-Element-Inhalt soll Hilfsvariable sein
          end;
     end;
end;

if C[7] = B[0] then B[0]:=1; //Das ist ohnehin Quark, diese Vergleiche können so nicht funktionieren!!!
if C[6] = B[6] then B[6]:=1;
if C[5] = B[12] then B[12]:=1;
if C[4] = B[18] then B[18]:=1;

if (panel12.caption='KUN') or (panel12.caption='MUS') then
begin
if C[7] = B[4] then B[4]:=1;
if C[6] = B[10] then B[10]:=1;
if C[5] = B[16] then B[16]:=1;
if C[4] = B[22] then B[22]:=1;
end;

if (panel13.caption='KUN') or (panel13.caption='MUS') then
begin
if C[7] = B[5] then B[5]:=1;
if C[6] = B[11] then B[11]:=1;
if C[5] = B[17] then B[17]:=1;
if C[4] = B[23] then B[23]:=1;
end;
C ist als dynamisches array definiert. Das gnaze klappt solnage nur Musik gewählt ist. Im Prinzip besthet das Problem im unteren Teil, ich muss gezielt die zwei besten Werte(von 4 oder 8 insgesamt) aus dem Feld ausschließen um sie dadurch auch aus der Sortierung auszuschließen. Im Moment kann das unten mit dem Vergelcihen nicht klappen. Ich muss die zwei Werte(C[7] und C[8]) gezielt ausschließen. Dazu ist es denke ich notwendig zu wissen wo diese beiden Elemente vorher standen!
  Mit Zitat antworten Zitat