Hey,
das ist mir gerade aufgefallen, als ich von Herrn Raabe hingewiesen wurde.
Ich hab den Wert geändert:
Code:
procedure TForm1.SelectionSort;
var i,k,maxi,j:integer;
wert: word;
begin
maxi := high(Anzahl);
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;
Anzahl und die Prozedur kommen hier ins Spiel:
Code:
procedure TForm1.Button2Click(Sender: TObject);
var
anfang, ende: real;
begin
ListBox2.clear;
Anzahl := StrToInt(Edit1.Text);
pause(100);
PnlZeit.Caption := 'Die Zeit läuft...';
Anfang := Time;
if combobox2.ItemIndex = 0 then bubblesort;
if combobox2.ItemIndex = 1 then selectionsort;
[...]
Momentane Fehlermeldung:
Es taucht beim Klick auf Button2 ein Fenster mit:
"Im Projekt Project1.exe ist ein Exeption der Klasse EAccessViolation aufgetreten[...]"
Debugger sagt:
[Warnung] Unit1.pas(110): Vorzeichenbehaftete und -lose Typen werden kombiniert - beide Operanden werden erweitert
Was ist denn da zu tun?
Danke für eure Hilfe!
Edit: Ich sollte noch hinzufügen, dass er die folgende Zeile Markiert:
Code:
for j := i + 1 to maxi do if werte[j] < wert then
Gruß,
thechus