Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Zufallszahl sortieren (https://www.delphipraxis.net/115683-zufallszahl-sortieren.html)

MalteV 16. Jun 2008 11:09


Zufallszahl sortieren
 
Liste der Anhänge anzeigen (Anzahl: 1)
Moin,

ich habe ein Problem mit meinem Projekt und ich komme nicht dahinter

Und zwar sortiert er die Zahlen alle richtig, nur nimmt er die größte Zahl und ersetzt die durch die letzte Zufallszahl, sodass diese einmal mehr drin ist und die andere fehlt!

ich hoffe mal das einer von euch mir helfen kann :wink:

DP-Maintenance 16. Jun 2008 11:36

DP-Maintenance
 
Dieses Thema wurde von "Sharky" von "Projekte" nach "Sonstige Fragen zu Delphi" verschoben.
Ist ja nicht die Vorstellung/Anfrage zu einem Gemeinschaftsprojekt.

Fussball-Robby 16. Jun 2008 11:40

Re: Zufallszahl sortieren
 
Poste doch mal die relevanten Codestellen. Ich glaube nicht, dass viele Lust/Zeit dazu haben, sich den ganzen Quelltext anzugucken.

MalteV 16. Jun 2008 11:55

Re: Zufallszahl sortieren
 
ich denke der fehler sitzt irgendwo in diesem teil:
Delphi-Quellcode:
  for i := 1 to 10 do
  begin
    y := i;
    while zufallszahl[y+1] < zufallszahl[y] do
    begin
      tauschen (zufallszahl[y], zufallszahl[y+1]);
      if y > 1 then y := pred(y);
danke schonmal im vorraus...

[edit=Sharky]Delphi-Tags eingefügt. Mfg, Sharky[/edit]

Zax2030 16. Jun 2008 11:59

Re: Zufallszahl sortieren
 
Hallo,
ja da sitzt in jedem Fall ein Fehler, Du erstellst 10 Zufallszahlen aber greifst auf 11 zu:

For i := 1 to 10 do while zufallszahl[y+1] (10+1 macht 11)

Gruss

MalteV 16. Jun 2008 12:39

Re: Zufallszahl sortieren
 
ja, stimmt...

bringt aber auch nichts :(

den fehler hat der immernoch...

spaxxn 16. Jun 2008 12:45

Re: Zufallszahl sortieren
 
Zitat:

Zitat von MalteV
Delphi-Quellcode:
  for i := 1 to 10 do
  begin
    y := i;
    if (y + 1) <= 10 then begin
    while zufallszahl[y+1] < zufallszahl[y] do
    begin
      tauschen (zufallszahl[y], zufallszahl[y+1]);
      if y > 1 then y := pred(y);
    end;
  end else begin
    mach es halt anders :P
  end;
oder
Delphi-Quellcode:
  for i := 1 to 9 do
  begin
    y := i;
    while zufallszahl[y+1] < zufallszahl[y] do
    begin
      tauschen (zufallszahl[y], zufallszahl[y+1]);
      if y > 1 then y := pred(y);
    end;
  end;

oder so...

taaktaak 16. Jun 2008 13:20

Re: Zufallszahl sortieren
 
Moin, Moin.
Ist das Problem gelöst? Ich bin über diese Form des BubbleSort etwas irritiert :shock: Die Reihenfolge der for- und while-Schleifen ist m. E. vertauscht. Mit folgendem alternativem Code sollte es funktionieren:

Delphi-Quellcode:
repeat
  Done:=true;
  for i:=1 to 9 do
    if Zufallszahl[i]>Zufallszahl[i+1] then begin
      Tauschen();
      Done:=false
      end
  until Done;

MalteV 16. Jun 2008 16:04

Re: Zufallszahl sortieren
 
jo danke, aber spaxxn hat das problem schon gelöst...


vielen dank...alleine wäre ich echt nich weiter gekommen glaube ich...


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