Entwickler-Ecke
Sonstiges (Delphi) - Ich brauche eure Hilfe
elefantenfan88 - Di 03.11.09 19:11
Titel: Ich brauche eure Hilfe
ich muss ein bubblesort sortierverfarhen programmieren... ich habe 10 zahlen im zahlenfeld 1-1000 im ersten editfeld sollen diese unsortiert erscheinen, wenn man auf den button unsortiert klickt... diese funktion funktioniert bei mir schon.
nun muss ich den zweiten button so programmieren, das die in edit 1 gezeigten zahlen in edit 2 sortiert gezeigt werden:
ich habe es soweit programmiert, jedoch klappt es nicht... ich glaube mein fehler liegt in der letzen zeile, könnt ihr mir bitte helfen
mein Programm:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14:
| procedure TForm1.bt_sortClick(Sender: TObject); var i,j,Merke:Integer; begin for i:=9 downto 1 do for j:=1 to i do if zahlenf[j]> zahlenf[j+i] then begin Merke:=zahlenf[j]; Zahlenf[j]:= Zahlenf[j+i]; zahlenf[j+i]:=Merke; end; ed_ausgabe.text:= ed_ausgabe.text+' '+IntToStr(zahlenf[j]);
end; |
vielen dank
elefantenfan88
Moderiert von
Klabautermann: Delphi-Tags hinzugefügt
elundril - Di 03.11.09 19:13
vollig klar. du greifst außerhalb deiner schleife auf die schleifenvariable j zu. ;)
der code sollte dann so aussehen:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13:
| procedure TForm1.bt_sortClick(Sender: TObject); var i,j,Merke:Integer; begin for i:=9 downto 1 do for j:=1 to i do begin if zahlenf[j]> zahlenf[j+i] then begin Merke:=zahlenf[j]; Zahlenf[j]:= Zahlenf[j+i]; zahlenf[j+i]:=Merke; end; ed_ausgabe.text:= ed_ausgabe.text+' '+IntToStr(zahlenf[j]); end; end; |
(auf die korrektheit deines algos hab ich mal nicht geprüft. notfalls ein begin+end umstellen)
lg elundril
elefantenfan88 - Di 03.11.09 19:52
also irgendwie funktioniert das immer noch nicht heute ist einfach der berühmte wurm drin... ich habs jetzt also folgender maßen:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15:
| procedure TForm1.bt_sortClick(Sender: TObject); var i,j,Merke:Integer; begin for i:=9 downto 1 do for j:=1 to i do begin if zahlenf[j]> zahlenf[j+i] then begin Merke:=zahlenf[j]; Zahlenf[j]:= Zahlenf[j+i]; zahlenf[j+i]:=Merke; end; ed_ausgabe.text:= ed_ausgabe.text+' '+IntToStr(zahlenf[j]); end; end; |
ps: dane für euer hilfe
Moderiert von
Klabautermann: Delphi-Tags hinzugefügt.
elundril - Di 03.11.09 20:21
Kommt eine Fehlermeldung oder sortiert er nicht richtig?
außerdem verwende bitte für deinen Code die Delphi tags: [delphi]Dein Code[/delphi]
lg elundril
elefantenfan88 - Di 03.11.09 21:07
vielen dank ich habe meinen fehler schon selber gefunden
trotzdem vielen dak für deine bemühnungen
bis bald elefantenfan 88
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!