Zufallszahlen Prüfungsaufgabe



  • Hallo
    kann mir bitte jemand erklären wie kann man eine zufällige Frgae mit bestimmte Schwierigkeit und Antwortmöglichkeiten anzuzeigen??
    Hiermit ist die Aufgabe damit die Frage klar kommt

    "" (( In einer Spielshow bekommt ein Kandidat Fragen gestellt, die er richtig beantworten muss. Schreiben Sie ein Programm, das ein solches Spieldurchführen
    kann. Benutzen Sie zum Speichern der Fragen und Antworten folgende Struktur:
    struct data
    {
    char frage[2000];
    char antwort[4][100];
    int schwierigkeit;
    int id;
    };
    Aus dieser Struktur wird ein Feld fragen[1000] aufgebaut. Wenn weniger als
    1000 Fragen enthalten sind, belegen Sie die Komponente id des ersten freien
    Elementes mit 0. Es gibt folgende vereinfachte Regeln:
    • Der Kandidat muss insgesamt 6 Fragen beantworten. Die Fragen haben 3
    Schwierigkeitsstufen. Er bekommt also zuerst 2 Fragen der Stufe 1, dann
    2 Fragen der Stufe 2 und zuletzt 2 Fragen der Stufe 3 gestellt.
    • Die Fragen werden zufällig aus einem Fragenpool ausgewählt.
    • Beim Stellen der Fragen sind die Antwortmöglichkeiten in zufälliger Reihenfolge anzuzeigen.
    • Fragen dürfen nicht doppelt gestellt werden.
    • Beantwortet der Kandidat eine Frage falsch, ist das Spiel zu Ende.
    Der Fragenpool und die dazugehörigen Antwortmöglichkeiten sind der Datei
    data.txt zu entnehmen. Die jeweils erste Antwort ist die richtige Antwort. Jede
    Zeile der Datei hat folgenden Aufbau:
    ID Frage Antwort Antwort Antwort Antwort Schwierigkeitsstufe
    In der letzten Zeile der Datei steht eine 0, die das Ende der Datei.
    Erstellen Sie eine zweite Variante des Programms, in der die ID nicht in der
    Datei enthalten ist. ""))



  • Du wirst eine Zufallszahl index zwischen 0 und 2000 benötigen: index = rand() % 2000 ist die einfachste Möglichkeit, das zu realisieren, und für den Zweck gut genug. Dann zeigst du die index-te Frage an.

    Das sollte erstmal helfen.



  • @peter00
    als erstes solltest du aus der datei die strukturen 'data' aufbauen, also pro zeile eine. dann würde ich sie nach data.schwierigkeit sortieren und dann die so entstandenen vektoren per random_shuffe mischen. dann hast du 'zufällige frage einer bestimmten schwierigkeit', indem du immer die erste frage eines dieser vectors nimmst und sie danach aus dem vector entfernst. dadurch werden auch wiederholungen ausgeschlossen.



  • OT

    Wenn weniger als
    1000 Fragen enthalten sind, belegen Sie die Komponente id des ersten freien
    Elementes mit 0.

    YAIT (yet another incompetent teacher)



  • @manni66 sagte in Zufallszahlen Prüfungsaufgabe:

    OT

    Wenn weniger als
    1000 Fragen enthalten sind, belegen Sie die Komponente id des ersten freien
    Elementes mit 0.

    YAIT (yet another incompetent teacher)

    somit muss er die id's bei 1 beginnen lassen. ist doch nicht außergewöhnlich. ich wette, die auto-increment id's in sql datenbanken können auch nicht 0 sein.



  • @Bushmaster
    Ein std:::vector hat kein erstes freies Element.



  • @manni66 sagte in Zufallszahlen Prüfungsaufgabe:

    @Bushmaster
    Ein std:::vector hat kein erstes freies Element.

    das feld fragen[1000] aber schon, wenn er weniger als 1000 fragen hat.
    bei 233 fragen soll in feld[233] eine data-struktur mit id=0 stehen.



  • @Bushmaster

    das feld fragen[1000]

    => YAIT (yet another incompetent teacher)



  • @manni66 sagte in Zufallszahlen Prüfungsaufgabe:

    @Bushmaster

    das feld fragen[1000]

    => YAIT (yet another incompetent teacher)

    nachher stellt sich noch raus, dass der op bloß plain old c verwenden darf. 😃



  • Dieser Beitrag wurde gelöscht!


  • @Bushmaster
    Danke
    ist das richtig wenn ich so schreibe

    void main()
    {
    int frageanzahl=200;
    int iR=Rand (500)%200;
    int inSchwer
    Data fargen [frageAnzahl];

    cout <<"Welche Schwierigkeit";
    cin>> inSchwer

    Data SchwerigFrage [FrageAnzahl;
    int t=0;
    for (int i=0;i<FrageAnzahl; i++)
    {
    if (fragen[i].schwierig == inSchwer)
    { schwerigFarge=fragen[i];
    }}
    Data RanFarge = schwerigFrage [iR];
    }



  • @peter00 Nein. Schonmal nicht weil es in C++ keine Arrays mit variabler (nicht zur Compilezeit bekannter) Länge gibt.


Anmelden zum Antworten