Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - Zufallszahl zwischen 1 und 15
Stonebreaker - Do 17.07.03 20:43
Titel: Zufallszahl zwischen 1 und 15
hi Leutz!
ja, also wie gesgat brauche ich eine ganze Zufallszahl zwischen 1 und 15 (heißt: ich brauche die Zahlen 1 und 15 auch, muss ich dann zwischen 0 und 16 nehmen?)! Ich habe mir die Delphi-Hilfe angeschaut und dann so etwas gemacht (Ich hab das Beispiel jetzt nicht mit 15 verschieden Werten gemacht):
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: 24: 25: 26: 27: 28:
| procedure TForm1.Button1Click(Sender: TObject); var zahl:Integer; begin Randomize ; for zahl := 1 to 6 do begin
if zahl = 1 then label1.caption := 'hallo';
if zahl = 2 then label1.caption := 'moin';
if zahl = 3 then label1.caption := 'tach';
if zahl = 4 then label1.caption := 'ao';
if zahl = 5 then label1.caption := 'guten tag';
if zahl = 6 then label1.caption := grüß Gott'; end; end; end. |
Da da immer die selbe Zahl bei rum kommt, hab ich mich auf Delphi-source umgesehen und das hier gefunden:
bite hier klicken [
http://www.tipps.delphi-source.de/objectpascal/tut20010805-4.shtml]
da kapier ich allerdings nicht, was die Zahl in er Klammer zu bedeuten hat, da ich ja eine ganzeZufallszahl zwischen 1 und 15 brauche!!!
Ich hoffe ihr könnt und werdet mir helfen! Danke schon mal im voraus fürs lesen,
Stonie
Moderiert von
Tino: Delphi-Tags hinzugefügt.
Keldorn - Do 17.07.03 21:02
Hallo
nimm das randomize raus aus der buttonclick-procedure. randomize sollte nur einmal aufgerufen werden. ein guter Platz ist oncreate der Form.
du rufst random überhaupt nicht auf. random liefert die Zufalszahlen von 0 bis angegebener Wert-1
in deinem Fall wäre das
random (15) liefert würd dir 0.. 14 zurückgeben und noch 1 dazuaddieren bist du bei 1..15 . alles klar?
Delphi-Quelltext
1: 2: 3:
| if zahl = 1 then label1.caption := 'hallo'; ... |
gugg dir case an
Delphi-Quelltext
1: 2: 3: 4:
| case zahl of 1: label.caption := 'hallo'; 2: label.caption := 'moin'; else end, |
mfg frank
Stonebreaker - Do 17.07.03 21:12
danke, das mit dem case schau ich mir mal an! Aber ich will doch erst eine Zufallszahl bekommen, wenn ich auf den Button klicken, und wo bitte rufe ich das 2mal auf?
soll ich das so schreiben?:
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: 24: 25: 26:
| procedure TForm1.Button1Click(Sender: TObject); var zahl:Integer; begin zahl := random(15)+1;
if zahl = 1 then label1.caption := 'hallo';
if zahl = 2 then label1.caption := 'moin';
if zahl = 3 then label1.caption := 'tach';
if zahl = 4 then label1.caption := 'ao';
if zahl = 5 then label1.caption := 'guten tag';
if zahl = 6 then label1.caption := grüß Gott'; end; end. |
mfg, Stonie
derDoc - Do 17.07.03 21:30
Mach das doch so:
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: 24: 25: 26: 27: 28:
| procedure TForm1.Button1Click(Sender: TObject); var zahl: Integer; begin zahl := random(16); case zahl of 1: ; 2: ; 3: ; 4: ; 5: ; 6: ; 7: ; 8: ; 9: ; 10: ; 11: ; 12: ; 13: ; 14: ; 15: ; end; end;
procedure TForm1.FormCreate(Sender: TObject); begin Randomize; end; |
Keldorn - Do 17.07.03 21:39
derDoc hat folgendes geschrieben: |
zahl := random(16); //von 1 bis 15
|
sicher ? :wink:
ich hab nicht ohne grund geschrieben
Keldorn hat folgendes geschrieben: |
in deinem Fall wäre das
random (15) würd dir 0.. 14 zurückgeben und noch 1 dazuaddieren bist du bei 1..15 . alles klar?
|
Mfg Frank
Stonebreaker - Fr 18.07.03 11:51
okay, danke!
Es funzt jetzt auf jeden Fall!!!
Hab mich verzählt und jetzt 16 Werte genommen und es mit "random(16)+1" gemacht. Wie gesacht so klappt es!!!
mfg, Stonie
derDoc - Fr 18.07.03 12:43
@Keldorn:
Du hast recht
gibt von 0 bis 15 zurück.
Nightmare_82 - Di 22.07.03 17:30
ich würd an deiner Stelle einen Array mit den Strings anlegen, dann gehts leichter zu programmieren:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| const ITEMS = 15; const MyArray : array[0..ITEMS-1] of String = ('Hallo',.....) ... procedure TForm1.Button1Click(Sender: TObject); var zahl: Integer; begin zahl := random(ITEMS)+1; label1.caption:= MyArray[zahl-1];end; |
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!