Eine kurze Frage......

hannes06

Grünschnabel
Hallo Leute ich bin ganz neu hier....
und habe ein Problem beim Programmieren in der Schule ich besuche eine Htl...
Wir programmieren mit Microsoft Visual Basic 2005 Express Edition!
Die Aufgabenstellung:

Es soll ein Programm geschrieben werden, das mit jedem clicken eines
Command-buttons genau 20 Zufallszahlen von 0 bis 20 mit nicht mehr als 3 Wiederholung erzeugt und in einer Listebox ausgibt.


ich habe schon die 20 zufallszahlen aber manche kommen öfter als 3 mal vor...
wie kann ich dieses Problem beheben?


es währe sehr freundlich wenn mir jemmand weiterhelfen könnte!!
 
Die Zufallszahlen in eimen Dictionary merken.
Key= Zufallszahl
Value=Anzahl, wie oft diese Zahl schon gefunden

Code:
Dictionary<int, int> zahlen=new Dictioanry<int, int>();
...
if(!zahlen.ContainsKey(zufallszahl)) //Zufalls wurde vorher noch nie getroffen
  zahlen.Add(zufallszahl, 1);
else if(zahlen[zufallszahl]<3) //Zufallszahl wurde schonmal getroffen, aber noch nciht mehr als 3 mal
  zahlen[zufallszahl]++; //Anzahl um eins erhöhen
else
   Neue_Zufallszahl_anfordern_und_neu_prüfen ();
 
Hi

Du musst für jede neue Zahl einen Counter mitlaufen lassen.
Wenn der größer 3 ist musst die Zufallszahl neu generiert werden.

Für das "Speichern" der Counter würde sich zum Beispiel an Generic Dicrionary an. Als Key könnten zum Beispiel die Zahlen fungieren und als Value die Counter.
Zu dem bietet dir die Dictionary-Klasse die Methode ContainsKey, mit der du von vorn herein prüfen kannst, ob eine Zahl schon vorhanden ist oder nicht.
 
erst mal ein großes Dankeschön für eure Hilfe
jetzt werd ich mal versuchen die Aufgabe zu Lösen
bin mir aber noch nicht ganz sicher ob ich es schaffe
Ihr müsst wissen das ich sehr schlecht beim Programmieren bin.
mfg Hannes
 
Jetzt mach dich doch nicht schlechter als du bist! :) Jeder hat mal angefangen...

Nico und Spyke haben doch eine Lösung präsentiert... die ist gut und die würde ich für die Aufgabe verwenden! ;-)
 
Zurück