Einzelnen Beitrag anzeigen

kleinewolke7

Registriert seit: 25. Mär 2009
Ort: Sonneberg
7 Beiträge
 
#11

Re: Hilfe zum programmieren von mergesort mit delphi

  Alt 28. Mär 2009, 18: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]
  Mit Zitat antworten Zitat