Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi 400 Zufallszahlen erzeugen & Bubble sortieren (https://www.delphipraxis.net/39266-400-zufallszahlen-erzeugen-bubble-sortieren.html)

hansklok 31. Jan 2005 08:02


400 Zufallszahlen erzeugen & Bubble sortieren
 
Hallo, meine Frage ist aus der Überschrift schon abzuleiten. Ich möchte ein Programm schreiben, dass mit Hilfe von Random 400 Zufallszahlen von 1-999 erzeugt und dann per Textout auf das Canvas der Form ausgibt. Durch einen Button Click sollen diese 400 Zahlen mit Hilfe des Bubblesort Algorithmus ebenfalls auf dem Canvas sortiert ausgegeben werden. Kann mir jemand bitte ein paar Codeschnipsel geben?

Danke

MfG
hansklok

sakura 31. Jan 2005 08:07

Re: 400 Zufallszahlen erzeugen & Bubble sortieren
 
Wie weit bist Du denn schon von alleine gekommen?

...:cat:...

hansklok 31. Jan 2005 08:11

Re: 400 Zufallszahlen erzeugen & Bubble sortieren
 
zunächst die 400 Zufallszahlen erstellen:

Delphi-Quellcode:
var
  Zahl: byte;
begin
  randomize; //Initialisieren des Zufallszahlengenerators
  Zahl:= Random(400); //0-400
end;
weiter bin ich leider noch nicht!

alcaeus 31. Jan 2005 08:16

Re: 400 Zufallszahlen erzeugen & Bubble sortieren
 
Hallo hansklok,

du musst die Zahlen in einem Array abspeichern, und dann mit Hilfe der Algorithmen in Daniels Sortieralgorithmen-Tutorial sortieren. So wie du den Code bis jetzt hast, wird eine Zahl von 0-399 generiert.

Greetz
alcaeus

Binärbaum 31. Jan 2005 10:27

Re: 400 Zufallszahlen erzeugen & Bubble sortieren
 
Zitat:

Zitat von hansklok
zunächst die 400 Zufallszahlen erstellen:

Delphi-Quellcode:
var
  Zahl: byte;
begin
  randomize; //Initialisieren des Zufallszahlengenerators
  Zahl:= Random(400); //0-400
end;
weiter bin ich leider noch nicht!

So gehts besser:
Delphi-Quellcode:
var
  zahlen: array[0..399] of Integer;
  i: Integer;
begin
  Randomize;
  for i:= 0 to 399 do
   zahlen[i]:= Random(1000); //Zufallszahlen von 0-999
end;
MfG
Binärbaum

freak4fun 31. Jan 2005 10:35

Re: 400 Zufallszahlen erzeugen & Bubble sortieren
 
Zitat:

Zitat von Binärbaum
Delphi-Quellcode:
var
  zahlen: array[0..399] of Integer;
  i: Integer;
begin
  Randomize;
  for i:= 0 to 399 do
   zahlen[i]:= Random(1000); //Zufallszahlen von 0-999
end;

Wenn man bei dem Random + 1 Rechnet
Delphi-Quellcode:
zahlen[i]:= (Random(1000)) + ;
bringt man da den Zufallsalgorithmus durcheinander? :gruebel:

MfG
fR34k

alcaeus 31. Jan 2005 10:37

Re: 400 Zufallszahlen erzeugen & Bubble sortieren
 
Zitat:

Zitat von freak4fun
Wenn man bei dem Random + 1 Rechnet
Delphi-Quellcode:
zahlen[i]:= (Random(1000)) + ;
bringt man da den Zufallsalgorithmus durcheinander? :gruebel:

Nein, warum? Du zählst ja nur 1 zum Ergebnis hinzu, mit der Folge dass werte von 1-1000 anstatt 0-999 rauskommen. Mit dem Zufallsgenerator hat das herzlich wenig zu tun...

Greetz
alcaeus

jfheins 31. Jan 2005 10:38

Re: 400 Zufallszahlen erzeugen & Bubble sortieren
 
Zitat:

Zitat von freak4fun
Wenn man bei dem Random + 1 Rechnet
Delphi-Quellcode:
zahlen[i]:= (Random(1000)) + 1;
bringt man da den Zufallsalgorithmus durcheinander? :gruebel:

Nein, dann hast du Zahlen von 1 bis 1000, nicht von 0 bis 999 ...

Mit dem Update wird alles besser ... :wink:

freak4fun 31. Jan 2005 10:39

Re: 400 Zufallszahlen erzeugen & Bubble sortieren
 
Super! :thumb:

MfG
fR34k

Binärbaum 31. Jan 2005 10:39

Re: 400 Zufallszahlen erzeugen & Bubble sortieren
 
@freak:
Nein, man sorgt nur dafür, dass alle Zahlen eins größer sind.
Wenn man
Delphi-Quellcode:
zahlen[i]:= Random(1000);
aufruft, erhält man ja eine Zufallszahl von 0-999. Falls man aber keine null haben will, nimmt man
Delphi-Quellcode:
zahlen[i]:= Random(1000)+1;
und erhält somit Zahlen von 1-1000. Der Zufallsalgorithmus bleibt davon ganz und gar unbeeindruckt.

MfG
Binärbaum

generic 1. Feb 2005 07:26

Re: 400 Zufallszahlen erzeugen & Bubble sortieren
 
Zitat:

Zitat von hansklok
zunächst die 400 Zufallszahlen erstellen:

Delphi-Quellcode:
var
  Zahl: byte;
begin
  randomize; //Initialisieren des Zufallszahlengenerators
  Zahl:= Random(400); //0-400
end;
weiter bin ich leider noch nicht!

ein byte nimmt nur 0-255 auf... d.h. du kannst dort keine zahl über 255 drin speichern ohne eine overflow-exception zu erzeugen.
und du erstellst auch keine 400 sondern nur 1 zufallszahl.

BTR2 5. Dez 2005 11:56

Wusste nicht wo drunter ich schreiben sollte
 
Hi
ich habe ein problem und zwar ich soll ein programm schreiben wo der computer eine zufallzahl zwischen 1-100 aus wählen soll. Ich hoffe ihr könnt mir dabei weiter hälfen.
Ich habe auch gehört das es irgend wie mit randomize und Random gehen soll. Aber irgend wie geht das nicht.
Ich finde das auch :kotz: weil ich schon soviel aus probiert habe aber es klappt nicht.

zecke 5. Dez 2005 12:54

Re: 400 Zufallszahlen erzeugen & Bubble sortieren
 
Das glaub ich nicht oder?

Bewege den Scrollbalken rechts am Rand deines Browsers nach oben, vielleicht findest Du eine Lösung. (Oder suche andere Lösungen hier im Forum dazu gibts auf jeden Fall etwas).

:wall:

BTR2 5. Dez 2005 13:01

Ja suppi
das was oben steht habe ich versucht in mein programm zu integrieren doch es ging nicht ich weiss nicht weiter ????

Ultimator 5. Dez 2005 13:04

Zitat:

Zitat von BTR2
Ja suppi
das was oben steht habe ich versucht in mein programm zu integrieren doch es ging nicht ich weiss nicht weiter ????

Das is doch keine Frage, wozu die Fragezeichen.
Außerdem wird es uns recht wenig helfen, wenn du uns deinen Code nicht zeigst, dass wir ihn verbessern können.
Eigentlich hätte ich schon wieder keine Lust, irgendwas zu machen, wenn man gleich pampig angemacht wird.

zecke 5. Dez 2005 13:11

Re: 400 Zufallszahlen erzeugen & Bubble sortieren
 
nunja schau doch mal was passiert wenn man zu Random(blubb) etwas hinzuaddiert. Vielleicht kommst Du dann auf die Lösung.

(sry für meine ungehaltenheit oben, aber das kann man echt mindestens mit der forumsuche rauskriegen, auch wenn die lösung oben fast 1 zu 1 steht :roll:)


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