Zufallsgenerator mit C++

Dieses Thema im Forum "Programmieren" wurde erstellt von Ganxxxta, 7. Dezember 2004.

Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. Ganxxxta

    Ganxxxta Byte

    Registriert seit:
    20. September 2004
    Beiträge:
    63
    Hallo,
    ich wollt fragen ob mir jemand mal ein Code Beispiel für nen Zufallsgenerator sagen kann. Hab nämlich erst vor kurzem angefangen zu programmieren.

    Danke im voraus
     
  2. Michi0815

    Michi0815 Guest

    Registriert seit:
    7. Januar 2004
    Beiträge:
    3.429
    #include <stdio.h>
    void srand(unsigned int);
    int rand(void);
    int main ()
    {
    int z;
    srand(4711); /*initialisieren des (zufalls)zahlengenerators mit 4711 */
    z = rand();
    printf("\nZahl: %d\n", z);
    return 0;
    }
     
  3. Ganxxxta

    Ganxxxta Byte

    Registriert seit:
    20. September 2004
    Beiträge:
    63
    Hi,
    Danke erst mal. Ich ab noch zwei Fragen: was bedeutet
    "srand(4711); /*initialisieren des (zufalls)zahlengenerators mit 4711 */" und ich wollt die Zahlen auf einem normalen schreibgeschützten Eingabefeld erscheinen lassen. Wie muss ich den Code einfügen dass die Zahlen dort angezeigt werden? Muss ich den einfach nur in die {} Klammern einfügen?
     
  4. specialist7

    specialist7 Kbyte

    Registriert seit:
    29. Juli 2002
    Beiträge:
    490
    hallo!

    srand bedeutet. dass er seine zufallsrechenoperation mit dieser zahl beginnt. die könntest statt dessen auch zum beispiel auch die ticks angeben, die seit systemstart vergangen sind. so erhälst du /fast) immer eine neue zufallszahl...

    benutzt die die standard winapi für dein eingabefeld oder mvc oder so etwas in der richtung?
     
  5. Ganxxxta

    Ganxxxta Byte

    Registriert seit:
    20. September 2004
    Beiträge:
    63
    hallo,
    ich benutze mfc. bis jetzt steht da nur

    void CGigantDlg::OnChangeEdit4()
    {

    }

    Ich will den code so einfügen, dass auf dem schreibgeschützten eingabefeld eine zufallszahl zwischen 100 und -100 erscheint.

    muss ich dann den code nur einfügen, also

    void CGigantDlg::OnChangeEdit4()
    {
    #include <stdio.h>
    void srand(unsigned int);
    int rand(void);
    int main ()
    {
    int z;
    srand(4711); /*initialisieren des (zufalls)zahlengenerators mit 4711 */
    z = rand();
    printf("\nZahl: %d\n", z);
    return 0;
    }

    wenn ich das so mache heisst es aber es gäbe 58 fehler.
     
  6. specialist7

    specialist7 Kbyte

    Registriert seit:
    29. Juli 2002
    Beiträge:
    490
    also mfc...

    onchange wird aufgerufen, wenn etwas geändert wird...

    und include kommt nach ganz oben in die src-datei... ;) vllt solltest du dir noch einmal die grundlagen anschauen. -.-
     
  7. Michi0815

    Michi0815 Guest

    Registriert seit:
    7. Januar 2004
    Beiträge:
    3.429
    was ich dir gegeben habe ist ein fix-fertiges c-programm. das kannst du doch nicht einfach wie es ist in eine methode reinpfriemeln :D

    zuerst (zum bleistift im init() oder wie das bei dir sonst heisst) musst du den zufallszahlengenerator initiieren. dazu brauchst du srand(<irgendwas>). idealerweise verwendest du wie oben schon gesagt die uhrzeit oder den tick dafür.

    in die CGigantDlg::OnChangeEdit4() kommt dann nur die zuweisung der zufallszahl mit rand() in das feld. nachdem rand() eine zahl zwischen 0 und 32767 liefert musst du das noch "aufbereiten" also z = (rand() % 200) - 100.
     
Status des Themas:
Es sind keine weiteren Antworten möglich.

Diese Seite empfehlen