Delphi-PRAXiS :: Das Forum für Fragen zu Delphi
Das Experten Forum für Delphi Programmierer
Hilfe für Borland Delphi gibts es hier im Forum
Delphi Quelltexte und Source Codes
 
Winter 2008 - lieben Dank an Julius für ds Bild
Delphi-PRAXiS :: Foren-ÜbersichtForen-Übersicht Delphi-PRAXiS Modul-ÜbersichtSite-Map Delphi-PRAXiS durchsuchenSuchen Delphi-PRAXiS Code-LibraryCode-Library Jetzt registrieren!Registrieren Login  
   
 
0
 
Delphi für Win32
random
Ein Delphi (Win32)-Thema von glitterangel87.

Vorheriges Thema anzeigen  |  Nächstes Thema anzeigen
Neuen Beitrag schreiben Auf Beitrag antworten
als PDF-Datei herunterladenThema ausdrucken
 
Delphi-PRAXiS Forum - Übersicht -> Object-Pascal / Delphi-Language
Seite 1 von 1   [ 13 Beiträge ]  
 
 Autor 
 Nachricht 
 
glitterangel87 #1|Beitrag #390773Verfasst am: 01.07.2005, 09:12      Titel: random Antworten mit Zitat
Mitglied
Alter: 21
Status: offline
Beiträge: 12
angemeldet: 18.12.2004
Wohnort: Salzburg


Sprache: Delphi (Win32)

hi! ich möchte eine Lottoziehung simulieren. deshalb habe ich randomize (bzw. random) verwendet. aber wie bekannt ist, gehen die zahlen bei lotto erst ab 1 los. jetzt hatte ich mir eigentlich gedacht, wenn ich eingebe

v:=random(49)+1;

dass keine 0 kommen sollte. denkste. wie mach ich das? kann mir BITTE wer helfen?

lg ~glitterangel

-------------------------------------------------------------------------------
Very Happy ~*adela*~ Very Happy
-------------------------------------------------------------------------------
nach oben nach unten
Benutzer-Profile anzeigen Private Nachricht senden
Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen im Forum zu suchen. Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen bei Google zu suchen. Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen bei Wikipedia zu suchen.
 
 
Matze #2|Beitrag #390775Verfasst am: 01.07.2005, 09:15      Titel: Re: random Antworten mit Zitat
Moderator
Alter: 23
Status: offline
Beiträge: 11.308
angemeldet: 07.07.2003
Wohnort: Hochdorf (BaWü)
Turbo Delphi für Win32

Das stimmt aber schon so Grübelnd...

Grüße, Matze

Wer hat denn mein Ding da hoch gemacht?
Ein Kollege
nach oben nach unten
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen im Forum zu suchen. Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen bei Google zu suchen. Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen bei Wikipedia zu suchen.
 
 
Kompon Ente #3|Beitrag #390777Verfasst am: 01.07.2005, 09:16      Titel:  Antworten mit Zitat
ehem. Benutzer


Hi,

also ich hab mal ein Würfel programmiert und da hab ich's exakt so gemacht.

Bei mir funktioniert's! Neutral

Deshalb -> kA!
nach oben nach unten
Benutzer-Profile anzeigen Private Nachricht senden
Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen im Forum zu suchen. Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen bei Google zu suchen. Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen bei Wikipedia zu suchen.
 
 
alcaeus #4|Beitrag #390778Verfasst am: 01.07.2005, 09:17      Titel: Re: random Antworten mit Zitat
aktives Mitglied
Alter: 24
Status: offline
Beiträge: 6.283
angemeldet: 11.08.2003
Wohnort: Dietersheim b. München
RAD-Studio 2007 Enterprise

Hallo GlitterAngel87,

hast du auch einen Randomize()-Aufruf im OnCreate des Forms? Evtl. ist das das Problem Wink

Greetz
alcaeus

Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
nach oben nach unten
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen im Forum zu suchen. Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen bei Google zu suchen. Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen bei Wikipedia zu suchen.
 
 
Treffnix #5|Beitrag #390780Verfasst am: 01.07.2005, 09:19      Titel: Re: random Antworten mit Zitat
Mitglied
Alter: 29
Status: offline
Beiträge: 762
angemeldet: 25.06.2003
Wohnort: Mönchengladbach
Delphi 7 Professional

Auch ohne Randomize dürfte keine 0 kommen. Poste doch mal die ganze Funktion.

 Zuletzt bearbeitet von Treffnix am 01.07.2005, 09:20, insgesamt 1-mal bearbeitet.
nach oben nach unten
Benutzer-Profile anzeigen Private Nachricht senden
Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen im Forum zu suchen. Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen bei Google zu suchen. Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen bei Wikipedia zu suchen.
 
 
Matze #6|Beitrag #390785Verfasst am: 01.07.2005, 09:20      Titel: Re: random Antworten mit Zitat
Moderator
Alter: 23
Status: offline
Beiträge: 11.308
angemeldet: 07.07.2003
Wohnort: Hochdorf (BaWü)
Turbo Delphi für Win32

alcaeus hat folgendes geschrieben:
hast du auch einen Randomize()-Aufruf im OnCreate des Forms? Evtl. ist das das Problem Wink

Das bewirkt doch nur, dass bei jedem Programmstart nicht die gleichen "Zufallszahlen" erzeugt werden. Das obige Beispiel sollte ohne Randomize doch genauso funktionieren. Confused

Grüße, Matze

Wer hat denn mein Ding da hoch gemacht?
Ein Kollege

 Zuletzt bearbeitet von Matze am 01.07.2005, 09:20, insgesamt 1-mal bearbeitet.
nach oben nach unten
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen im Forum zu suchen. Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen bei Google zu suchen. Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen bei Wikipedia zu suchen.
 
 
ste_ett #7|Beitrag #390802Verfasst am: 01.07.2005, 09:51      Titel: Re: random Antworten mit Zitat
Mitglied
Alter: 26
Status: offline
Beiträge: 465
angemeldet: 10.09.2004
Wohnort: Dülmen
Delphi 7 Professional

Exakt.

Zitat:

In Delphi gibt Random eine Zufallszahl im Bereich 0 <= X < Range zurück. Wird der Parameter Range nicht angegeben, liefert Random einen Real-Wert im Bereich 0 <= X < 1.


"random(49)+1" liefert (0-48 ) + 1, also 1 - 49.

"Geht nicht!" ist keine Fehlerbeschreibung und "Hab ich schon versucht!" keine Antwort!

Hey, it compiles! Ship it!

 Zuletzt bearbeitet von ste_ett am 01.07.2005, 09:53, insgesamt 2-mal bearbeitet.
nach oben nach unten
Benutzer-Profile anzeigen Private Nachricht senden
Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen im Forum zu suchen. Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen bei Google zu suchen. Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen bei Wikipedia zu suchen.
 
 
glitterangel87 #8|Beitrag #390856Verfasst am: 01.07.2005, 10:54      Titel: Re: random Antworten mit Zitat
Mitglied
Alter: 21
Status: offline
Beiträge: 12
angemeldet: 18.12.2004
Wohnort: Salzburg


das ist das ganze! und ich schwör euch: gestern sind mir sooo oft 0 gekommen, da hab ich mir gedacht, ich dreh gleich durch!

Delphi-Quellcode: zusammenfalten | markieren
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
   for i:= 1 to 6 do
    begin
      randomize;
      a[i]:=random(49)+1;
    end;
   repeat
     c:=true;
     for i:= 1 to 5 do
      begin
        if a[i]>a[i+1] then
         begin
           h:=a[i];
           a[i]:=a[i+1];
           a[i+1]:=h;
           c:=false;
         end;
      end;
   until c;
   Label1.Caption:= IntToStr(a[1]);
   Label2.Caption:= IntToStr(a[2]);
   Label3.Caption:= IntToStr(a[3]);
   Label4.Caption:= IntToStr(a[4]);
   Label5.Caption:= IntToStr(a[5]);
   Label6.Caption:= IntToStr(a[6]);

end;


wo kann der fehler liegen?

[edit=alcaeus]Delphi-Tags eingefuegt. In Zukunft bitte selbst machen. Danke Mfg, alcaeus[/edit]

-------------------------------------------------------------------------------
Very Happy ~*adela*~ Very Happy
-------------------------------------------------------------------------------

 Zuletzt bearbeitet von alcaeus am 01.07.2005, 10:55, insgesamt 1-mal bearbeitet.
nach oben nach unten
Benutzer-Profile anzeigen Private Nachricht senden
Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen im Forum zu suchen. Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen bei Google zu suchen. Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen bei Wikipedia zu suchen.
 
 
marabu #9|Beitrag #390868Verfasst am: 01.07.2005, 11:10      Titel: Re: random Antworten mit Zitat
Mitglied
Status: offline
Beiträge: 10.082
angemeldet: 06.04.2005
Wohnort: Limburg (Lahn)
Delphi 7 Architect

Hallo Adela,

die Funktion Random() ist zwar ganz nützlich für das Ziehen der Lottozahlen, aber alleine schafft sie das dann doch nicht. Die Funktion Random() garantiert dir über einen ausgeklügelten mathematischen Ansatz eine ausreichend gute Gleichverteilung der Funktionswerte bei entsprechend großen Stichproben, aber sie garantiert dir keine Duplikatfreiheit bei den ersten 6 Werten.

Du wirst dir etwas überlegen müssen, damit bei der Ziehung der zweiten Zahl die erste nicht wieder Teil der Ziehungsmenge ist.

Grüße vom marabu


Ein Beispiel:

Delphi-Quellcode: zusammenfalten | markieren
type
  TOddSet = set of byte;

var
  Ziehung: TOddset;

procedure Draw(count, total: byte; var oddSet: TOddSet);
begin
  oddSet := [];
  while SizeOf(oddSet) < count do
    oddSet := oddSet + [Succ(Random(total))];
end;

 Zuletzt bearbeitet von marabu am 01.07.2005, 11:28, insgesamt 1-mal bearbeitet.
nach oben nach unten
Benutzer-Profile anzeigen Private Nachricht senden
Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen im Forum zu suchen. Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen bei Google zu suchen. Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen bei Wikipedia zu suchen.
 
 
Treffnix #10|Beitrag #390869Verfasst am: 01.07.2005, 11:12      Titel: Re: random Antworten mit Zitat
Mitglied
Alter: 29
Status: offline
Beiträge: 762
angemeldet: 25.06.2003
Wohnort: Mönchengladbach
Delphi 7 Professional

Also ich habs gerade mal getestet und ich hatte nicht einmal ne 0. Selbst wenn ich die Range auf 1 geändert habe. Zum Lottospielen solltest du aber noch überprüfen, ob eine Zahl bereits vorkam.

Wie hast du denn die Variablen deklariert?

Habs jetzt mal so angenommen:
Delphi-Quellcode: markieren
var i, h: Integer;
    c: Boolean;
    a: array[1..6] of Integer;
nach oben nach unten
Benutzer-Profile anzeigen Private Nachricht senden
Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen im Forum zu suchen. Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen bei Google zu suchen. Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen bei Wikipedia zu suchen.
 
 
r2c2 #11|Beitrag #390875Verfasst am: 01.07.2005, 11:26      Titel: Re: random Antworten mit Zitat
Mitglied
Alter: 20
Status: offline
Beiträge: 784
angemeldet: 09.05.2005
Wohnort: Rhoihesse
Turbo Delphi für Win32

glitterangel87 hat folgendes geschrieben:

Delphi-Quellcode: markieren
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
   for i:= 1 to 6 do
    begin
      randomize;
      a[i]:=random(49)+1;
    end;
...


wo kann der fehler liegen?

Also einen Fehler hab ich gefunden, wenn es auch IMHO nicht der ist, der ne 0 hervorbringen könnte:
Randomize sollte man im Create aufrufen und dann möglichst nie mehr. So erhälst du(außer du hast wirklich n extrem langsamen PC) 6 mal die selbe Zahl.

mfg

Christian


Kaum macht man's richtig, schon klappts!
nach oben nach unten
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen im Forum zu suchen. Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen bei Google zu suchen. Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen bei Wikipedia zu suchen.
 
 
malo #12|Beitrag #391002Verfasst am: 01.07.2005, 14:27      Titel: Re: random Antworten mit Zitat
aktives Mitglied
Alter: 17
Status: offline
Beiträge: 1.971
angemeldet: 19.09.2004
Wohnort: Oberhausen


Eins noch: Randomize aus der Schleife raus! Das kommt ins OnCreate-Event des Forms Wink


Ceterum censeo Carthaginem esse delendam.
nach oben nach unten
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen im Forum zu suchen. Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen bei Google zu suchen. Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen bei Wikipedia zu suchen.
 
 
Treffnix #13|Beitrag #391007Verfasst am: 01.07.2005, 14:32      Titel: Re: random Antworten mit Zitat
Mitglied
Alter: 29
Status: offline
Beiträge: 762
angemeldet: 25.06.2003
Wohnort: Mönchengladbach
Delphi 7 Professional

malo hat folgendes geschrieben:
Eins noch: Randomize aus der Schleife raus! Das kommt ins OnCreate-Event des Forms Wink


Hast du mal den Thread über deinem gelesen? Rolling Eyes
nach oben nach unten
Benutzer-Profile anzeigen Private Nachricht senden
Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen im Forum zu suchen. Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen bei Google zu suchen. Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen bei Wikipedia zu suchen.
 
Anzeige-Optionen:    
 
Delphi-PRAXiS Forum - Übersicht -> Object-Pascal / Delphi-Language Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1   [ 13 Beiträge ]  
 
  Neuen Beitrag schreiben Auf Beitrag antworten
als PDF-Datei herunterladenThema ausdrucken
 
   
Gehe zu:  
Du darfst keine Beiträge in dieses Forum schreiben.
Du darfst auf Beiträge in diesem Forum nicht antworten.
Du darfst Deine Beiträge in diesem Forum nicht bearbeiten.
Du darfst Deine Beiträge in diesem Forum nicht löschen.
Du darfst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten.
Du kannst Dateien in diesem Forum nicht herunterladen.


Impressum / Kontakt
Allgemeine Geschäftsbedingungen
Verhaltenskodex & FAQ

Delphi-PRAXiS :: Das Forum für Delphi-Programmierer
Das Experten Forum für Delphi ProgrammiererHilfe für Borland Delphi gibts es hier im ForumDelphi Quelltexte und Source CodesDelphi-PRAXiS :: Das Forum für DelphiWindows APIInternet und NetzwerkeVCL und Datenbanken
 

Delphi-PRAXiS V.2005 III
© 2002-2009 by Daniel R. Wolf
powered by phpBB © phpBB Group

Impressum / Kontakt Allgemeine Geschäftsbedingungen