![]() |
AW: Ich weiß nicht, was da falsch ist
Delphi-Quellcode:
wofür soll das gut sein?
maxi := high(Werte[i]);
Gruß K-H |
AW: Ich weiß nicht, was da falsch ist
Hey,
okay ich habe folgendes herausfinden können: Die Prozedur funktioniert von der Logik her einwandfrei. Das Problem ist der zugewiesene Wert für "maxi". Ich muss ihn irgendwie mit den Werten in Verbindung bringen... Setzte ich die Konstante max auf 100 und weise maxi den Array zu, funktioniert die Prozedur... Das mal als kleine Zwischennachricht... falls es euch nicht schon längst aufgefallen ist :P Gruß, thechus |
AW: Ich weiß nicht, was da falsch ist
Zitat:
Gruß K-H |
AW: Ich weiß nicht, was da falsch ist
Code:
procedure TForm1.SelectionSort(var Werte: Array of Integer); var i,k,maxi,j,wert:integer; begin maxi := high(Werte); for i := 0 to maxi - 1 do begin wert := werte[i]; k := i; for j := i + 1 to maxi do if werte[j] < wert then begin wert := werte[j]; k := j; end; werte[k] := werte[i]; werte[i] := wert; end; end; Funktioniert! DANKE!!! :thumb::thumb::thumb: Gruß, thechus |
AW: Ich weiß nicht, was da falsch ist
Nein funktioniert nicht...
Omg was ist denn da passiert... Der sortiert nur noch lauter Nullen. Ich muss den Array von der Größe her einfach an den die Menge der Elemente aus Anzahl anpassen oder diese unsortierten Werte direkt auslesen können.. Aber wie?? gott.. mist :pale: Gruß, thechus... |
AW: Ich weiß nicht, was da falsch ist
Ach, da ist noch was falsch: Dein Beitragstitel. Bitte ändere ihn doch so, dass man erkennen kann um was es geht.
|
AW: Selectionsort - Problem mit richtiger Zuweisung der Werte
Done
|
AW: Selectionsort - Problem mit richtiger Zuweisung der Werte
Nein, nein, nein.
maxi soll... die ANZAHL der Elemente enthalten (-1) ! Wenn also deine Variable 'Anzahl' die Anzahl der Element enthält, die sortiert werden sollen, dann solltest Du... welche Anweisung schreiben? (Schaffste schon). |
AW: Selectionsort - Problem mit richtiger Zuweisung der Werte
Grr... ich komm nur wage drauf ...
Mein Ansatz wäre sowas wie " maxi := high(werte[anzahl])" aber das scheint auch irgendwie Mist zu sein. Die Prozedur, die die zufälligen werte ausgibt ist folgende:
Code:
Ich steh da so richtig auf dem Schlauch grad..
procedure TForm1.Button1Click(Sender: TObject);
var i: integer; begin ListBox1.clear; randomize; zahl := random(Anzahl); if combobox1.itemindex = 0 then begin Anzahl:=StrToInt(Edit1.Text); randomize; for i := 1 to Anzahl do begin werte[i] := random(Anzahl); if i < 500 then Listbox1.items.add(inttostr(werte[i])); end; end; [...] aber danke für deine Geduld.. :thumb: ich brüte weiter. Gruß, thechus |
AW: Selectionsort - Problem mit richtiger Zuweisung der Werte
Wolltest du vielleicht auf:
maxi := high(Anzahl); hinaus? Anzahl ist ja ein fester Wert (z.b. 100). Da hätte man für high doch stets 100 raus. anzahl ist aber nur die Anzahl der Zahlen, die alle einen Wert zwischen 0 und 100 haben können. Die höchste Zahl kann auch mal 98 sein. Oh man :pale: Ich hoffe das war verständlich. Danke für die Hilfe. Gruß, thechus |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:29 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz