Zahlenfolge herausfiltern?



  • hallo an alle,

    ich bin ein newbie in sachen programmierung. das schon mal gleich am anfang 😉

    mein problem ist folgendes:

    ich programmiere mit c++ (dev-c++ 4.9.9.2). ich möchte mir ein programm schreiben, mit dem ich nach bestimmten zahlenfolgen eine meldung bekomme, dass eine zahlengruppe seid z.b. 10 nummern nicht vorgekommen ist.

    MAL ALS BEISPIEL:

    ich habe 3 vorgegebene zahlengruppen:

    gruppe 1: 23, 45, 38, 98, 2, 13
    gruppe 2: 3, 15, 18, 29, 56, 67
    gruppe 3: 1, 9, 48, 76, 34, 54

    also in jeder gruppe 6 zahlen, wobei keine zahl doppelt vorkommt (sei es in einer gruppe oder in allen 3 gruppen, d.h. 18 voneinander unabhängige, verschiedene zahlen).

    mal angenommen ich habe ein objekt mit 18 flächen und jede der oben genannten zahlen ist auf einer fläche dieses objektes verzeichnet (so ne art überdimensionaler mehrflächiger würfel 😉 )
    wenn ich dieses objekt nun schmeiße und es dann wieder zum stehen kommt, kann man also eine von den 18 zahlen ablesen.
    das nur mal so zum versuchsaufbau (der aber für das programm eher nebensächlich ist, weil es auch nur ein eben gewähltes beispiel ist....hätte auch was anderes sein können. es sollte nur die idee klargemacht werden)

    wenn ich jetzt z.B. folgendes ergebnis nach 10 würfen notiert habe:

    1, 9, 48, 76, 34, 54, 3, 15, 18, 29

    dann sieht man ja das diese 10 "geworfenen zahlen" nur aus gruppe 2 und gruppe 3 stammen, d.h. es wurde seid 10 würfen keine zahl aus der gruppe 1 geworfen!

    wie kann ich das denn jetzt in einem c++ programm umsetzen?
    ich will ja praktisch nur eine "zahleneingabe", die durchgängig abläuft und falls eine zahl aus einer der oben genannten gruppen z.B. 10 oder 12 mal nicht erschienen ist, dass das eine meldung wie z.B. "eine zahl aus der gruppe 1 o.ä. ist seid 10 o.ä. nicht erschienen".

    ich hoffe ihr versteht was ich meine. im prinzip ist es ein ganz simples kleines programm, aber mich überfordert es auf jeden fall, da ich nicht weiß, wie ich das mit einer schleife hinbekomme, dass die zahlen durchgängig eingegeben werden können und nur bei "nichterscheinen" einer zahl nach x würfen eine meldung kommt.

    ich hoffe ihr könnt mir helfen und ein paar tipps geben! vielen dank und bis hoffentlich bald!

    gruß faye



  • 1. Du machst einen Zähler je Gruppe
    2. Nach jedem Wurf guckst Du zu welcher Gruppe die Zahl gehört (Je Gruppe ein vector, find zum suchen)
    3. Setze den Zähler von der Gruppe, zu der die geworfene Zahl gehört, zurück und die anderen erhöhst Du um einen.



  • hi airdamn,

    danke für deine schnelle antwort. wie ich aber oben schon geschrieben habe, bin ich ein absoluter neuling beim prgrammieren. versteht mich nicht falsch....ich will nicht, dass mir hier jemand das programm schreibt, aber ich brauche doch etwas starthilfe!

    zu 1) wie mache ich denn diesen zähler? mach ich das mit so einer "do-schleife" und dann i++?

    zu 2) vector und find sind mir auch neu. wie setze ich diese denn ein?

    zu 3) was bewirkt dass denn?

    danke!



  • Zähler sind einfache Variablen (z.b. int gruppe1, gruppe2, gruppe3), die für Dich zählen sollen, wie viele Runden es her ist dass eine Zahl aus der jeweiligen Gruppe geworfen wurde.

    vector ist ein Container aus der STL (Standard Template Library).
    Kannst stattdessen auch arrays verwenden, aber Container wie vector nehmen einem die Arbeit für die Speicherverwaltung ab und bieten einiges an Funktionalität.



  • ok. ich glaube ich werde mich mal an einem quelltext probieren. wenn du nichts dagegen hast, kannst du ihn dir ja dann mal anschauen! also danke erstmal.


Anmelden zum Antworten