Entwickler-Ecke

Sonstiges (Delphi) - zufallszahlen


minipliman - Di 10.01.06 17:06
Titel: zufallszahlen
also mein ziel ist es mit Canvas.TextOut 6 Zahlen Lottozahlen (1 bis 49) auszugeben, die dann auf knopfdruck sotiert werden.

ich bin jetzt schon am anfang an den zufallszahlen gescheitert

hier mein quelltext


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
procedure TForm1.Button1Click(Sender: TObject);
 begin
 begin
 randomize; //Zufallszahl
 I:= random(50); //Zufallszahl von 0 bis 19
 IF I > 0 THEN  //schließt die 0 aus -> Zufallszahl ist 1 bis 49
 Canvas.TextOut(25, 40, inttostr(I));
 end;

 begin
 randomize;   //Zufallszahl
 J:= random(50); //Zufallszahl von 0 bis 19
 IF J > 0 THEN  //schließt die 0 aus -> Zufallszahl ist 1 bis 49
 Canvas.TextOut(25, 60, inttostr(J));
 end;

 begin
 randomize;   //Zufallszahl
 K:= random(50); //Zufallszahl von 0 bis 19
 IF K > 0 THEN  //schließt die 0 aus -> Zufallszahl ist 1 bis 49
 Canvas.TextOut(25, 80, inttostr(K));
 end;
 end;


also sind erstmal nur drei zahlen aber das auf 6 zu machen is ja kein problem

das problem ist das alle 3 zahlen gleich sind, obwohl ich jedesmal remdomize eingegeben hab. woran liegts?


Arno Nym - Di 10.01.06 17:14

Hilfe zur Selbsthilfe :
guck einfach mal was in der Delphi-Hilfe über "Randomize" steht... :wink:


Bruder Lal - Di 10.01.06 17:15

randomize sollte nur einmal ausgeführt werden. Abgesehen davon kannst du ein array machen, um die Zufallszahlen zu generieren. So sparst du dir die fast identischen Prozeduren. Und rück bitte richtig ein.. bei diesen Prozeduren ist das noch kein Problem, aber vielleicht programmierst du auch mal anspruchsvollere Sachen...


minipliman - Di 10.01.06 17:25

oh ja array is ne gute idee danke, werd ich gleich mal probieren


[SaWa]barrier23 - Mo 03.04.06 19:26


Delphi-Quelltext
1:
I:= random(50); //Zufallszahl von 0 bis 19                    


was steckt da dahinter?man gibt 50 ein und hat die zahlen von 0-19!
was muss ich bei random eingeben damit ich die zahlen von 0-9 habe????



und dann brauch ich noch was für 0-1!also das entweder 0 oder 1 rauskommt!


Born-to-Frag - Mo 03.04.06 19:29

user profile icon[SaWa]barrier23 hat folgendes geschrieben:

Delphi-Quelltext
1:
I:= random(50); //Zufallszahl von 0 bis 19                    


was steckt da dahinter?man gibt 50 ein und hat die zahlen von 0-19!
was muss ich bei random eingeben damit ich die zahlen von 0-9 habe????


Random(50) gibt Zufallszahlen von 0..49 und nicht 0..19 :mahn:
Random(10) gibt dann 0..9 aus..

Ich glaube du vergisst Randomize oder wie kommst du auf 0..19??


EDIT: 0..1 ist dann logischerweise Random(2); ;)


[SaWa]barrier23 - Mo 03.04.06 19:31

ehm weils im quelltext dahinter steht ^^


alzaimar - Mo 03.04.06 19:50

Mann, schon mal was von Tippfehleren gehört? :lol:


Born-to-Frag - Mo 03.04.06 19:51

user profile icon[SaWa]barrier23 hat folgendes geschrieben:
ehm weils im quelltext dahinter steht ^^


omfg :rofl:


[SaWa]barrier23 - Mo 03.04.06 19:55

naja als anfänger glaubt man halt das was einer mit so vielen sternen schreibt ;)


alzaimar - Mo 03.04.06 20:09

Die Sterne bedeuten nur, das er viel labert. So wie ich.


Smarty - Mo 03.04.06 20:13

das wusste ich auch noch nicht... :?


cuejo - Mo 03.04.06 23:35
Titel: Kleiner Tipp:
probiers mal mit i:=random(49)+1;

Dann sparst du dir die nervige if i>0 Abfrage :dunce: