Registriert seit: 25. Mär 2009
Ort: Sonneberg
7 Beiträge
|
Re: Hilfe zum programmieren von mergesort mit delphi
28. Mär 2009, 19:44
Delphi-Quellcode:
const n=10;
type tab=array[1..n] of integer;
var t:tab;
type data=array[1..n] of integer;
var d:data;
procedure mergesort( var l,r:integer);
var i, j, k, m : Integer;
Begin
i:=l; j:=r;
If (l < r) Then
Begin
m:= (r+l) div 2;
MergeSort(l, m);
MergeSort(m+1, r); (*hier erscheint jetzt der fehler* >[Fehler] Unit1.pas(47): E2033 Die Typen der tatsächlichen und formalen Var-Parameter müssen übereinstimmen) heißt das jetzt ich muss i und j verwenden?
For i:= l To m Do t[i]:= D[i];
i:= l;
For j:= m+1 To r Do t[r+m+1-j]:= D[j];
j:= r;
For k:= l To r Do
Begin
If (t[i] < t[j]) Then
Begin
D[k]:= t[i];
inc( i ) ;
end
Else
Begin
D[k]:= t[j];
dec( j );
end;
end;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
var i:integer;
begin
listbox1.Clear; listbox2.clear;
for i:= 1 to n do
t[i]:=random(N);
listbox1.items.add(IntToStr(t[i]));
mergesort(l,r);
for i:=1 to n do
listbox2.Items.add(inttostr(t[i]));
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
randomize;
end;
end.
[edit=Sharky]Delphi-Tags eingefügt. Bitte zukünftig selber daran denken. Mfg, Sharky[/edit]
|
|
Zitat
|