AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Sortieren funktioniert nicht

Offene Frage von "jonsen2.0.0.9"
Ein Thema von jonsen2.0.0.9 · begonnen am 2. Feb 2010 · letzter Beitrag vom 3. Feb 2010
 
jonsen2.0.0.9

Registriert seit: 5. Dez 2009
67 Beiträge
 
Delphi 7 Personal
 
#1

Sortieren funktioniert nicht

  Alt 2. Feb 2010, 19:38
Hallo,

so in der Schule arbeiten wir jetzt mit arrays...deshalb hab ich mal Bubble Sort versucht.

Ich finde aber den fehler nicht....das funktioniert bei mir irgendwie nicht

Außerdem fände ich es toll wenn ihr mir verbesserungen z.B. bei meiner repeat-until schlife geben würdet.

Mein Programm is halt noch nich so gut

Delphi-Quellcode:
var
  Form1: TForm1;
  ar:array[1..100] of integer;
  temp:integer; //in temp sicher ich einen wert

implementation

{$R *.dfm}

procedure sortieren();
Var i,i2:integer;
    a,a2,sicher:integer; //sicher ist damit keine entlosschleife entsteht...is bis jetzt immer so gewesen :(
begin
sicher:=0;
repeat
 sicher:=sicher+1;
 a2:=100; //a2 gibt an wie oft die for i to do schleife laufen soll
 a:=0;
 for i:=1 to 100 do
  if ar[i]>ar[i+1] then //wenn ar[i] kleiner ist als ar[i+1] dann soll
   begin
    temp:=ar[i]; //temp su ar[i] werden
    ar[i]:=ar[i+1]; //ar[i] kann ich dann mit ar[i+1] überschreiben
    ar[i+1]:=temp; //und ar[i+1] mit dem ursprünglichen wert von ar[i] ersetzen
   end;
 for i2:=1 to a2 do
  if ar[i]<=ar[i+1] then
   a:=a+1 //hier gucke ich ob ALLE passen....wenn nicht wird noch einmal sortiert
  else
   a2:=100;
until (a>=100) or (sicher>=10000000) //wenn entweder 10.000.000 mal sortiert wurde oder alles passt wird beendet
end;

procedure fuellen();
Var i:integer;
begin
for i:=1 to 100 do
 ar[i]:=random(999)+1; //hier wird mein array gefüllt
end;


procedure TForm1.Button1Click(Sender: TObject);
Var i:integer;
begin
fuellen;
for i:=1 to 100 do
 begin
  listbox1.Items.Delete(i);
  listbox1.Items.Add(inttostr(ar[i])); //hier wird die listbox in der die zahlen stehen sollen gefüllt.
 end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
randomize;
end;

procedure TForm1.Button2Click(Sender: TObject);
Var i:integer;
begin
sortieren;
for i:=1 to 100 do
 begin
  listbox1.Items.Delete(i);
  listbox1.Items.Add(inttostr(ar[i]));
 end;
end;

end.
Danke schonmal

MFG
Jonsen
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:55 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz