Autor Beitrag
elefantenfan88
Hält's aus hier
Beiträge: 14



BeitragVerfasst: Di 03.11.09 19:11 
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:
ausblenden 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 user profile iconKlabautermann: Delphi-Tags hinzugefügt
elundril
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3747
Erhaltene Danke: 123

Windows Vista, Ubuntu
Delphi 7 PE "Codename: Aurora", Eclipse Ganymede
BeitragVerfasst: 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:
ausblenden 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

_________________
This Signature-Space is intentionally left blank.
Bei Beschwerden, bitte den Beschwerdebutton (gekennzeichnet mit PN) verwenden.
elefantenfan88 Threadstarter
Hält's aus hier
Beiträge: 14



BeitragVerfasst: 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:

ausblenden 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 user profile iconKlabautermann: Delphi-Tags hinzugefügt.
elundril
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3747
Erhaltene Danke: 123

Windows Vista, Ubuntu
Delphi 7 PE "Codename: Aurora", Eclipse Ganymede
BeitragVerfasst: 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

_________________
This Signature-Space is intentionally left blank.
Bei Beschwerden, bitte den Beschwerdebutton (gekennzeichnet mit PN) verwenden.
elefantenfan88 Threadstarter
Hält's aus hier
Beiträge: 14



BeitragVerfasst: 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