1. Liebe Forumsgemeinde,

    aufgrund der Bestimmungen, die sich aus der DSGVO ergeben, müssten umfangreiche Anpassungen am Forum vorgenommen werden, die sich für uns nicht wirtschaftlich abbilden lassen. Daher haben wir uns entschlossen, das Forum in seiner aktuellen Form zu archivieren und online bereit zu stellen, jedoch keine Neuanmeldungen oder neuen Kommentare mehr zuzulassen. So ist sichergestellt, dass das gesammelte Wissen nicht verloren geht, und wir die Seite dennoch DSGVO-konform zur Verfügung stellen können.
    Dies wird in den nächsten Tagen umgesetzt.

    Ich danke allen, die sich in den letzten Jahren für Hilfesuchende und auch für das Forum selbst engagiert haben. Ich bin weiterhin für euch erreichbar unter tti(bei)pcwelt.de.
    Dismiss Notice

C++ Random Variable ausfragen?

Discussion in 'Programmieren' started by .Leon, Oct 31, 2008.

Thread Status:
Not open for further replies.
  1. .Leon

    .Leon ROM

    Hi, sorry erstmal für den Titel. Aber ich erklär erstmal das Problem.

    Ich bin gerade dabei ein Quiz-Programm in C++ zu schreiben, als Übung.
    Die Fragen habe ich als Objekte realisiert, alles kein Thema.

    Nun aber sollen die Fragen nicht Linear hintereinander kommen, sondern in Zuälliger reihenfolge.

    Wie kann ich das am besten bewerkstelligen, wenn ich eine zu große Gesamtzahl an Fragen habe?

    klar kann ich

    int zufallszahl=rand() % 5;

    if (zufallszahl==4)
    {
    gib frage x aus.
    }

    Jedoch wäre das bei vielen Fragen etwas umständig. Deshalb habe ich die Frage-Objekte so auftgebaut :

    Frage1
    Frage2
    Frage3
    ....

    Meine Idee wäre daher z.B. :

    if (zufallszahl=6)
    {
    cout<<Frage+zufallszahl.Fragetext<<endl;
    }

    Doch geht so was überhaupt?

    Danke schonmal für jede Antwort.

    Gruß Leon
     
  2. kazhar

    kazhar Viertel Gigabyte

    ich mach das normalerweise so, dass ich meine objekte in einen einfach verketteten ring packe und immer eine zufällige anzahl von schritten im ring nach vorne gehe. wenn ich nicht irgendwann das selbe objekt nocheinmal ziehen will nehme ich es nach er auswahl aus dem ring heraus.
     
  3. daboom

    daboom Megabyte

    Eine andere, ziemlich einfache Methode, wäre noch, Deine Frage-Objekt (bzw. Pointer darauf) in ein Array zu packen und da mit der Zufallszahl als Index reinzugreifen, also ungefähr so etwas:

    Frage[10] fragen;

    int rnd = random() % 10;

    cout << fragen[rnd]->Fragetext << endl;

    Allerdings müsstest Du dabei immer eine konstante bzw. maximale Anzahl an fragen haben, d.h. während der Laufzeit dürften keine bzw. nicht zu viele Fragen dazu kommen. Da ist eine Lösung mit einer dynamischen Datenstruktur wie einer Liste schon eleganter (wie der "verkette Ring", den kazhar vorgeschlagen hat)
     
Thread Status:
Not open for further replies.

Share This Page