Moin Leute,
ich stehe mal wieder vor einem Problem und ich komme nicht weiter!
Delphi-Quellcode:
function vertausche(a,b:integer):integer;
var hilf:integer;
begin
hilf:=a;
a:=b;
b:=hilf;
end;
procedure TForm1.Button1Click(Sender: TObject);
var word1, word2 : string;
var buchstabe:array [1..100] of integer;
var anzahl,i,j,k,w:integer;
begin
word1:=edit1.text;
word2:=edit1.text;
anzahl:=length(word1);
for i:=1 to anzahl do
begin
buchstabe[i]:=ord(word1[i]);
end; // end of for-schleife
for j:=anzahl downto 1 do
begin
for k:=1 to j do
begin
if (buchstabe[k-1]>buchstabe[k]) then vertausche(k-1, k);
end; // end of for(k)-schleife
end; // end of for(j)-schleife
for w:=1 to anzahl do
begin
word2[w]:=chr(buchstabe[w]);
end;
edit2.text:=word2;
end;
Das sit der Quelltext. Unsere Aufgabe war es, Buchstaben alphabetisch zu sortieren. Nun eine kleine Erklärung zum Quelltext. Ich lese aus dem Edit1-Feld ein string ein. jeden einzelnen Buchstaben wandle ich in den
Ascii-Code um, um ihn dann später mit Bubble-Sort zu sortieren. und aus dem
Ascii-Code mache ich in der dritten Schleife wieder ein Wort! Aber wo ist bei mir der Fehler? Er macht alles ohne Probleme, bloß das sich Edit2 aus Edit1 am Ende ergibt:
Men are born ignorant, not stupid; they are made stupid by education. - Bertrand Russell
I cannot teach anybody anything, i can only make them think. - Socrates