Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Coding für Sortieralgorithmus (https://www.delphipraxis.net/140709-coding-fuer-sortieralgorithmus.html)

grumbeernils 24. Sep 2009 09:59


Coding für Sortieralgorithmus
 
hallo,


ich soll ein programm schreiben bei dem in einer listbox durch einen zufallsgenerator ausgewählte zahlen angezeigt werden und dass diese zahlen sortiert und in einer zweiten listbox anzeigt.
ist sehr dringend bekommen eine note drauf.
kann mir jemand helfen?

mkinzler 24. Sep 2009 10:02

Re: Coding für Sortieralgorithmus
 
Such mal nacg QuickSort, BubbleSort, ShellSort, ...

Btw. Wir sind weder ein Hausaufgabenforum noch sind für gute Noten zuständig.

DP-Maintenance 24. Sep 2009 10:05

DP-Maintenance
 
Dieses Thema wurde von "Sharky" von "Die Delphi-IDE" nach "Sonstige Fragen zu Delphi" verschoben.
Es geht ja nicht um die IDE.

Klaus01 24. Sep 2009 10:08

Re: Coding für Sortieralgorithmus
 
.. oder insertion sort (sortieren durch Einfügen)
.. das kommt der Aufgabenstellung wohl am nächsten.

Grüße
Klaus

grumbeernils 24. Sep 2009 10:14

Re: Coding für Sortieralgorithmus
 
ich brauch nur noch das coding für diesen zufallsgenerator da häng ich irgendwie.den rest hab ich schon hinbekommen.
gruß

Forlan 24. Sep 2009 10:16

Re: Coding für Sortieralgorithmus
 
such mal nach Hier im Forum suchenRandomize und Hier im Forum suchenRandom

Klaus01 24. Sep 2009 10:18

Re: Coding für Sortieralgorithmus
 
einmal randomize aufrufen im Form1.create
random() mal in der Delphi Hilfe nachschauen
dann sollte es klar werden wie es benutzt wird.

Grüße
Klaus

Forlan 24. Sep 2009 10:19

Re: Coding für Sortieralgorithmus
 
Zitat:

Zitat von Klaus01
einmal randomize aufrufen im Form1.create
random() mal in der Delphi Hilfe nachschauen
dann sollte es klar werden wie es benutzt wird.

Grüße
Klaus

Und dabei kann er sich auch merken: Randomize nur einmal aufrufen! :warn:
:zwinker:

grumbeernils 24. Sep 2009 10:26

Re: Coding für Sortieralgorithmus
 
klappt noch ned irgendwie hab das jetz mit dem randomize gemacht

hoika 24. Sep 2009 10:29

Re: Coding für Sortieralgorithmus
 
Hallo,

Zitat:

klappt noch ned
Das ist keine besonders gute Fehlermeldung ...

Zeig doch mal den bisherigen Code.

Folgendes Ergibt eine Zahl zwischen 0 und 99.

Delphi-Quellcode:
var
  i: Integer;
begin
  i:= Random(100);

Heiko

TeronG 24. Sep 2009 10:30

Re: Coding für Sortieralgorithmus
 
Zitat:

Zitat von grumbeernils
klappt noch ned irgendwie hab das jetz mit dem randomize gemacht

"klappt noch ned" ist keine Fehlerbeschreibung. ;)
Sag doch mal was die Fehlermelung bzw. das Symptom ist....
Oder Zeig mal wie du Random() verwendest...

hoika 24. Sep 2009 10:32

Re: Coding für Sortieralgorithmus
 
TeronG

schaust du mir beim Tippen über die Schulter ?? ;)


Heiko

TeronG 24. Sep 2009 10:33

Re: Coding für Sortieralgorithmus
 
:angel2:

Klaus01 24. Sep 2009 10:34

Re: Coding für Sortieralgorithmus
 
.. bedenken solltest Du auch das random keine
größeren Zahlen auswirft als Deine Listbox Einträge hat.


Grüße
Klaus

grumbeernils 24. Sep 2009 10:36

Re: Coding für Sortieralgorithmus
 
hier mal das bisherige coding:
Delphi-Quellcode:
var
Form1: TForm1;
i, j, help: integer;
Zahlen: array [0..6] of integer;

implementation

{$R *.dfm}

procedure TForm1.Button3Click(Sender: TObject);
begin
for i:= 0 to 6 do
Zahlen[i] := Random (100);

for i := 0 to 5 do
begin
ListBox1.Items.Add(inttostr(Zahlen[i]));
end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin


for j:= 0 to 5 do
begin

for i:= j to 5 do
begin
if (Zahlen[j] > Zahlen[i+1])
then
begin
help := Zahlen[j];
Zahlen[j] := Zahlen[i+1];
Zahlen[i+1] := help;
end
end;
end;

for i := 0 to 5 do
begin
ListBox2.Items.Add(inttostr(Zahlen[i]));
end;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
ListBox1.Clear;
ListBox2.Clear;
end;



end.
[edit=mkinzler]Delphi-Tag eingefügt Mfg, mkinzler[/edit]

Forlan 24. Sep 2009 10:38

Re: Coding für Sortieralgorithmus
 
Solange er noch nichts schreibt versuch ich mal eine mögliche Fehlerquelle von ihm auszuschließen... :mrgreen:
In eine Listbox fügst du einen Zufallseintrag wiefolgt ein...

Delphi-Quellcode:
ListBox1.Items.Add(IntToStr(Random(x))
Wobei x natürlich eine Variable vom Typ Integer ist, was das Casting eigentlich auch schon verrät. :stupid:

[Edit] Der rote Kasten... =D Das hat er ja richtig gemacht^^[/Edit]

hoika 24. Sep 2009 10:41

Re: Coding für Sortieralgorithmus
 
Hallo,

also BubbleSort

Delphi-Quellcode:
for j:= 0 to 5 do
begin
  for i:= j+1 to 5 do
  begin
    if (Zahlen[j] > Zahlen[i])
j+1


Dein Code klappt zwar,
aber die vergleichst in der i-Schleife sonst
ja den den ersten Eintrag mit sich selbst.


#Edit#:
if (Zahlen[j] > Zahlen[i+1])

Ah so, sieht aber blöd aus :=)
Habe es oben im Code mal geändert.


Heiko

TeronG 24. Sep 2009 10:51

Re: Coding für Sortieralgorithmus
 
anmerkung am Rande:
Zahlen: array [0..6] of integer;
Aber im weiteren Verlauf machst du immer nur 0 bis 5 ... (evtl. wegen dem i+1?)

leddl 24. Sep 2009 10:54

Re: Coding für Sortieralgorithmus
 
Zitat:

Zitat von TeronG
anmerkung am Rande:
Zahlen: array [0..6] of integer;
Aber im weiteren Verlauf machst du immer nur 0 bis 5 ... (evtl. wegen dem i+1?)

Nicht nur eventuell, sonst würde es knallen ;)
Du musst ja schließlich den letzten Eintrag nur mit dem Vorletzten vergleichen. Ein weiterer Vergleich würde ins Leere laufen ;)

Hoika sollte aber in der inneren Schleife ruhig todesmutig noch einen weiteren Schleifendurchlauf einplanen :mrgreen:

grumbeernils 24. Sep 2009 10:55

Re: Coding für Sortieralgorithmus
 
so jetz läuft alles!!!!! :thumb:
vielen dank an euch alle!! :cheers:

gruß
nils

hoika 24. Sep 2009 11:06

Re: Coding für Sortieralgorithmus
 
Hallo,

und noch einen weiteren Tip.

Delphi-Quellcode:
var
  zahlen: array[0..6] of Integer;
  i:Integer;
begin
  for i:= Low(zahlen) to High(zahlen)

Damit kann das array-Größe später auch noch geändert werden,
ohne überall rumzufummeln.


Übrigens ist es doch schön, dass du es (fast) alleine hinbekommen hast.

Jetzt kannst du es dem Lehrer sogar erklären ;)


Heiko

leddl 24. Sep 2009 11:16

Re: Coding für Sortieralgorithmus
 
In diesem Fall aber eher
Delphi-Quellcode:
for i:= Low(zahlen) to High(zahlen)-1
:mrgreen:

hoika 24. Sep 2009 13:06

Re: Coding für Sortieralgorithmus
 
Hallo,

naja, das mit dem 5 und 6 sollte er noch ändern.


Heiko

TeronG 24. Sep 2009 15:06

Re: Coding für Sortieralgorithmus
 
Zitat:

Zitat von leddl
Du musst ja schließlich den letzten Eintrag nur mit dem Vorletzten vergleichen.

Jo .. aber der letzte Eintrag wir ja öfter mal im Code ausgelassen. ;)

leddl 24. Sep 2009 15:11

Re: Coding für Sortieralgorithmus
 
Zitat:

Zitat von TeronG
Zitat:

Zitat von leddl
Du musst ja schließlich den letzten Eintrag nur mit dem Vorletzten vergleichen.

Jo .. aber der letzte Eintrag wir ja öfter mal im Code ausgelassen. ;)

Ok entschuldige, ich nehme alles zurück. Die zwei Stellen, an denen die Listboxen gefüllt werden, sind mir nicht aufgefallen. Ich hatte mein Hauptaugenmerk auf die Sortierung gerichtet ;)


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:57 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