2.6k Aufrufe
Gefragt in Anwendungen(Java,C++...) von
hallo zusammen!
ich bin am üben mit c# und möchte folgendes problem lösen:
1. zufallszahl erzeugen - das klappt ganz gut.
2. eine soeben erzeugte zufallszahl auswerten; also wenn z.B. die zufallszahl 44 erzeut wird, dann soll in der konsolenanwendung ein beep-ton erzeugt werden oder wenn die 37 erzeugt wird, dann soll z.B. die konsole einen bestimmten text ausgeben.
genau diese auswertung bekomme ich nicht hin, keinen plan wie das funktioniert. könnt ihr mir bitte helfen?
danke im voraus, claudia!
-------------------------------------------------------------------------------------------
vlt. noch ein kurzer codeausschnitt:
random zufall = new random();
for(int x=1; x<=100; x++)
{
console.writeline("Erstelle {0}", zufall.next(0,100));
system.threading.thread.sleep(250);
}
-------------------------------------------------------------------------------------------
wie gesagt, das erzeugen der zufallszahl klappt, nur die auswertung von verschiedenen zufallszahlen stellt ein problemchen dar (zumindest für mich ;-))

6 Antworten

0 Punkte
Beantwortet von repiv Mitglied (272 Punkte)
Hallo,

wo ist das Problem? Einfach den Wert per if oder switch abfragen und die gewünschte Aktion ausführen.

zahl = zufall.Next(0, 100);
switch (zahl)
{
case 44:
Console.Beep();
break;
case 37:
Console.WriteLine("Test Text");
break;
}
0 Punkte
Beantwortet von
hallo repiv und vielen dank für die antwort.
so ungefähr hatte ich es mir zwar auch vorgestellt, funktioniert aber leider so nicht (jedenfalls nicht bei mir).
ich hatte auch schon versucht den code:
zahl=zufall.next(0,100)
beim erzeugen einubauen, aber da erzeugt das programm lediglich einmal eine zufallszahl (z.Bsp. 15) und genau die wird dann auch bei jedem schleifendurchlauf ausgegeben.
bei der auswwertung ist es so, wenn ich diese codefragment einbaue, ignoriert das programm die zahl die ich auswerten möchte und läuft einfach weiter.
gibt es vielleicht noch andere lösungsmöglichkeiten?
vielen herzlichen dank! claudi
0 Punkte
Beantwortet von
Hallo,

entweder Du erteugst die Zufallszahl außerhalb der Schleife oder Du überschreibst den Wert wieder.
Poste doch mal den Code inklusive switch. Ist ja nicht so viel. Da ist betimmt noch ein Fehler drin.
0 Punkte
Beantwortet von
hallo repiv, danke für die antwort. ich poste mal den code, vielleicht habe ich ja doch etwas übersehen:

int x, anzahl, zahl;

Console.Write("Wieviele Durchläufe möchten Sie haben? ");
anzahl = Convert.ToInt32(Console.ReadLine());
x = 1;

Random neueZahl = new Random();

zahl = neueZahl.Next(0, 100);
for (x = 0; x < anzahl; x++)
Console.WriteLine("Erzeugter Wert:\t{0}", zahl);

switch(zahl)
{
case 44:
Console.Beep();
break;
case 55:
Console.WriteLine("Informationstext 1");
break;
case 66:
Console.WriteLine("Informationstext 2");
break;
}

das ganze natürlich in der Main-Methode des konsolenprogramms.
wie gesagt, das problem ist, wenn ich da zahl schreibe, kommt bei jedem durchlauf dieselbe zufallszahl und bei der auswertung reagiert das programm gar nicht darauf.
wenn ich zufall.next(0,100) statt zahl schreibe, dann bringt das programm bei jedem durchlauf eine andere zufalls zahl, aber die auswertung klappt trotzdem nicht.
ich hoffe du findest noch etwas, was nicht stimmen sollte. danke, claudi
0 Punkte
Beantwortet von repiv Mitglied (272 Punkte)
Hallo,

danke für den Beispielcode. Nun ist auch klar warum es nicht geht:

das Erzeugen der Zufallszahl muss natürlich in der Schleife passieren, genauso wie die Auswertung mit switch.
Ansonsten wird natürlich nur 1x eine Zahl erzeugt und die X mal ausgegeben.

Random neueZahl = new Random();
for (x = 0; x < anzahl; x++)
{
zahl = neueZahl.Next(0, 100);
Console.WriteLine("Erzeugter Wert:\t{0}", zahl);
switch (zahl)
{
case 44:
Console.Beep();
break;
case 55:
Console.WriteLine("Informationstext 1");
break;
case 66:
Console.WriteLine("Informationstext 2");
break;
}
}
0 Punkte
Beantwortet von
hallo repiv und vielen dank für deine hilfe. habe jetzt alles noch einmal in die schleife komplett eingebunden und es funktioniert echt super. na ja, ich muß wahrscheinlich wirklich noch eine ganze menge lernen, aber allein ist das nicht so einfach - deshalb finde ich es gut, das es dieses forum hier gibt. also vielen dank und vielleicht bis irgendwann einmal.
tschüß claudia.
...