Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Übung: Array und Bubble sort (https://www.delphipraxis.net/33523-uebung-array-und-bubble-sort.html)

rossinie00 8. Nov 2004 17:09


Übung: Array und Bubble sort
 
hi,
soll fuer die schule eine uebung machen die einige arrays miteinander vergleicht.
in der zweitletzten spalte schreibt er zufallszahlen und in der letzten soll er sie mit bubble sort sortieren aber irgendwie macht ers nicht :-(
Code:
procedure TForm1.Button1Click(Sender: TObject);
var i,k,j,buffer,z,m: integer;
    zahlen,zahlendown,zufallsort,zufall: Array[1..10] of integer;
begin
  randomize;
    for i := 1 to 10 do
    begin
      zahlen[i] := i;
      sg.cells[1,i] := inttostr(zahlen[i]);
    end;
  for i := 1 to 10 do
    begin
      z := zahlen[i] + 1;
      sg.cells[2,i] := inttostr(z);
    end;
  for i := 1 to 10 do
    begin
      zahlendown[i] := i;
      m := zahlen[10] - zahlendown[i];
      sg.cells[3,i] := inttostr(m);
    end;
  for i := 1 to 10 do
    begin
      zufall[i] := random(100)+1;
      sg.cells[4,i] := inttostr(zufall[i]);
    end;

  { B U B B L E S O R T Sortierverfahren beginnt hier}

  for i:=10 downto 1 do
    begin
    for j:= 1 to i do
      begin
      if zufall[i]>zufall[j] then
        k := 0;
        inc(k);
        begin
          buffer:= zufall[i];
          zufall[i]:= zufall[j];
          zufall[j]:= buffer;
          sg.cells[5,k] := inttostr(zufall[j]);
        end;
      end;
    end;

end;

czapie 8. Nov 2004 17:39

Re: Übung: Array und Bubble sort
 
Auf alle Fälle steht das unterste "begin",
dort irgendwie ein bißchen seltsam!

czapie 8. Nov 2004 17:44

Re: Übung: Array und Bubble sort
 
Bubblesort:
Delphi-Quellcode:
for i:=1 to "Länge deines Arrays -1 " do //vom zweiten Element bis zum Vorletzten
begin
     for j:= "Länge deines Arrays" downto i do //Vom letzten bis zum i.-Element
     begin
          if DeinArray[j] < DeinArray[j-1] then //wenn j.-Element kleiner als j.-1-Element...
          begin                                //..tauschen:
               k := DeinArray[j-1]; //Wert des j.-1-Elements in Hilfsvariable
               DeinArray[j-1] := DeinArray[j];//j.-1-Element soll j.-Element werden
               DeinArray[j] := k; //j.-Element-Inhalt soll Hilfsvariable sein
          end;
     end;
end;

rossinie00 8. Nov 2004 20:28

Re: Übung: Array und Bubble sort
 
Liste der Anhänge anzeigen (Anzahl: 1)
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var i,k,j,buffer,z,m,u: integer;
    zahlen,zahlendown,zufallsort,zufall: Array[1..10] of integer;
begin
  randomize;
    for i := 1 to 10 do
    begin
      zahlen[i] := i;
      sg.cells[1,i] := inttostr(zahlen[i]);
    end;
  for i := 1 to 10 do
    begin
      z := zahlen[i] + 1;
      sg.cells[2,i] := inttostr(z);
    end;
  for i := 1 to 10 do
    begin
      zahlendown[i] := i;
      m := zahlen[10] - zahlendown[i];
      sg.cells[3,i] := inttostr(m);
    end;
  for i := 1 to 10 do
    begin
      zufall[i] := random(100)+1;
      sg.cells[4,i] := inttostr(zufall[i]);
    end;

  { B U B B L E S O R T Sortierverfahren beginnt hier}
 {
  for i:=10 downto 1 do
    begin
    for j:= 1 to i do
      begin
      if zufall[i]>zufall[j] then
        k := 0;
        inc(k);
        begin
          buffer:= zufall[i];
          zufall[i]:= zufall[j];
          zufall[j]:= buffer;
          sg.cells[5,k] := inttostr(zufall[j]);
        end;
      end;
    end;
              }
  for i:=1 to 10 -1  do
    begin
      for j:= 10 downto i do //Vom letzten bis zum i.-Element
        begin
          if zufall[j] < zufall[j-1] then //wenn j.-Element kleiner als j.-1-Element...
            begin                                //..tauschen:
              buffer := zufall[j-1]; //Wert des j.-1-Elements in Hilfsvariable
              zufall[j-1] := zufall[j];//j.-1-Element soll j.-Element werden
              zufall[j] := buffer; //j.-Element-Inhalt soll Hilfsvariable sein
            end;
     end;
Das kommt bei dem code:

czapie 8. Nov 2004 20:40

Re: Übung: Array und Bubble sort
 
Auf die Fehlermeldung kann ich dir so pauschal nichts sagen, setz mal ein paar
Breakpoints und guck, ob er aus dem Array irgendwo rausrennt, kann aber eigentlich
nicht sein.

Czapie.

rossinie00 8. Nov 2004 20:41

Re: Übung: Array und Bubble sort
 
ok habs array jetzt anstatt [1..10] auf [0..10] gesetzt da bleibt die exception aus, aber wie bekomm ich jetzt die ausgabe in sg.cells[5,x]

ibp 8. Nov 2004 20:57

Re: Übung: Array und Bubble sort
 
hä? hast du doch schon mal gemacht? oder nicht verstanden?

Delphi-Quellcode:
  for i := 1 to 10 do
    sg.cells[5,i] := inttostr(zufall[i]);

czapie 8. Nov 2004 21:01

Re: Übung: Array und Bubble sort
 
na dann gehst du eben mit einer Schleife nochmal
dein nun geordnetes Array durch und trägst die
Werte in die Tabelle ein.
:?: :!:


p.s.: @ibp, sorry alles klar

ibp 8. Nov 2004 21:05

Re: Übung: Array und Bubble sort
 
Zitat:

Zitat von czapie
p.s.: @ibp, sorry alles klar

ne schon ok, hatte erst nur hä? gepostet und dann mich besonnen! :-D

czapie 8. Nov 2004 21:10

Re: Übung: Array und Bubble sort
 
gut alles klar,
ich dachte eben schon meine Optik wollte mir nen Streich spielen.
Gute Nacht.


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:14 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz