Das liegt wohl an der Funktion
vertauschen.
So sollte es gehen:
Delphi-Quellcode:
procedure vertauschen(var a, b: Integer);//a,b müssen var-Parameter sein
var h: Integer;
begin
h:= a;
a:= b;
b:= h;
end;
Solange a und b keine Referenzparameter sind, sondern nur Wertparameter, nutzen sie dir gar nichts, da nach dem Ende der Prozedur a und b aus dem Speicher entfernt werden. Mit Referenzparameter kann man aber Werte an Variablen übergeben.
[Edit]
Die Zeile
if (buchstabe[k-1]>buchstabe[k]) then vertausche(k-1, k);
müsste doch
if (buchstabe[k-1]>buchstabe[k]) then vertausche(buchstabe[k-1], buchstabe[k]);
heißen, oder nicht?
[/Edit]
MfG
Binärbaum