Hallo Zusammen,
ich bin zurzeit in einer Umschulung und muss mich von Java auf C# umorientieren. Ansich ist es überhaupt nicht schwierig, nur irgendwie verhält es sich für mich anders, als damals mit Java. Ich hänge bei genau drei Aufgaben bei der Umsetzung:
//EDIT: Okay, ich habe herausgefunden, dass die foreach Schleife gar nicht gebracht wird, sondern die Ausgabe von tempArray allein reicht.
Ich habe bestimmt große Denkfehler in meinem Code und die Wärme macht es gerade nicht einfach. Ich möchte aber gerne den Code bis morgen geschafft habe.
Deshalb freue ich mich auf eure Hilfe und bedanke mich im Voraus. 😉
ich bin zurzeit in einer Umschulung und muss mich von Java auf C# umorientieren. Ansich ist es überhaupt nicht schwierig, nur irgendwie verhält es sich für mich anders, als damals mit Java. Ich hänge bei genau drei Aufgaben bei der Umsetzung:
Ich komme hier nicht weiter, wie ich die zufällige Lottozahl neu generiere, wenn sie im Array schon vorhanden ist. Am besten keine vorgefertigten Methoden nutzen.
[CODE lang="csharp" title="Aufgabe 1"]/*Speichern Sie mit Hilfe des Zufallszahlengenerators die Lottozahlen vom nächsten Samstag in einem eindimensionalen Array.
Achtung: Keine Lottozahl darf doppelt vorkommen.*/
private static void Lottozahlen()
{
Random zufall = new Random();
int[] zahlen = new int[6];
int lottozahl;
for (int i = 0; i < zahlen.Length - 1; i++) //6 Durchläufe für 6 Zahlen
{
lottozahl = zufall.Next(1,50);
for(int j = 0; j < zahlen.Length; j++) //Im Array prüfen
{
if(zahlen[j] != 0)
if(zahlen[j] == lottozahl)
break;
}
}
}[/CODE]
[CODE lang="csharp" title="Aufgabe 1"]/*Speichern Sie mit Hilfe des Zufallszahlengenerators die Lottozahlen vom nächsten Samstag in einem eindimensionalen Array.
Achtung: Keine Lottozahl darf doppelt vorkommen.*/
private static void Lottozahlen()
{
Random zufall = new Random();
int[] zahlen = new int[6];
int lottozahl;
for (int i = 0; i < zahlen.Length - 1; i++) //6 Durchläufe für 6 Zahlen
{
lottozahl = zufall.Next(1,50);
for(int j = 0; j < zahlen.Length; j++) //Im Array prüfen
{
if(zahlen[j] != 0)
if(zahlen[j] == lottozahl)
break;
}
}
}[/CODE]
Hier ist das Problem, dass ich die Abfragen nicht hinbekomme. Es wird nie eine Ausgabe stattfinden. Für eine bessere Übersicht habe ich den Zähler nur bis 100 laufen lassen und noch kein Array erzeugen lassen.
[CODE lang="csharp" title="Aufgabe 2"]/*Entwickeln Sie ein Programm für eine statistische Erhebung. Die Personalnummern sind 5-stellig von 00001 bis 17689.
Es soll nur ein Teil der Mitarbeiter befragt werden. Ihr Programm soll jeden 6. Mitarbeiter, aber nicht jeden 8. Mitarbeiter,
dafür aber jeden 48. Mitarbeiter auswählen und in einem eindimensionalen Array ablegen. Zeigen Sie die ausgewählten Mitarbeiter an.*/
private static void Personalnummer()
{
for(int i = 0; i < 100; i++)
{
if ((i % 6) == 0)
if ((i % 8 == 0))
return;
else if((i % 48) == 0)
Console.WriteLine(i + "\n-----------");
}
}[/CODE]
[CODE lang="csharp" title="Aufgabe 2"]/*Entwickeln Sie ein Programm für eine statistische Erhebung. Die Personalnummern sind 5-stellig von 00001 bis 17689.
Es soll nur ein Teil der Mitarbeiter befragt werden. Ihr Programm soll jeden 6. Mitarbeiter, aber nicht jeden 8. Mitarbeiter,
dafür aber jeden 48. Mitarbeiter auswählen und in einem eindimensionalen Array ablegen. Zeigen Sie die ausgewählten Mitarbeiter an.*/
private static void Personalnummer()
{
for(int i = 0; i < 100; i++)
{
if ((i % 6) == 0)
if ((i % 8 == 0))
return;
else if((i % 48) == 0)
Console.WriteLine(i + "\n-----------");
}
}[/CODE]
Hier ist die foreach Schleife das Problem. Sie gibt mir mehr char's aus, als ich eingespeichert habe. Es sollten nur 7x '_' ausgegeben werden. Natürlich ist es noch nicht fertig, aber der Anfang sollte ja erstmal funktionieren, dass ich die Anzahl der zu suchenden Buchstaben als Unterstriche ausgegeben bekomme.
[CODE lang="csharp" title="Aufgabe 3"]private static void Hangman()
{
string wort = "hangman";
char[] wortArray = new char[wort.Length];
char[] tempArray = new char[wort.Length];
wortArray = wort.ToCharArray();
int versuche = 10;
int zaehler = 0;
Boolean gewonnen = false;
for(int i = 0; i < tempArray.Length; i++)
{
tempArray = '_';
}
while(versuche >= zaehler && gewonnen == false)
{
Console.Clear();
char eingabe;
foreach (char c in tempArray) // wird nicht benötigt
{
Console.Write(tempArray);
}
Console.Write("Welchen Buchstabe wählst Du?: ");
eingabe = Convert.ToChar(Console.ReadLine());
for (int i = 0; i < wortArray.Length; i++)
{
if (wortArray == eingabe)
tempArray = eingabe;
}
}
}[/CODE]
[CODE lang="csharp" title="Aufgabe 3"]private static void Hangman()
{
string wort = "hangman";
char[] wortArray = new char[wort.Length];
char[] tempArray = new char[wort.Length];
wortArray = wort.ToCharArray();
int versuche = 10;
int zaehler = 0;
Boolean gewonnen = false;
for(int i = 0; i < tempArray.Length; i++)
{
tempArray = '_';
}
while(versuche >= zaehler && gewonnen == false)
{
Console.Clear();
char eingabe;
foreach (char c in tempArray) // wird nicht benötigt
{
Console.Write(tempArray);
}
Console.Write("Welchen Buchstabe wählst Du?: ");
eingabe = Convert.ToChar(Console.ReadLine());
for (int i = 0; i < wortArray.Length; i++)
{
if (wortArray == eingabe)
tempArray = eingabe;
}
}
}[/CODE]
Ich habe bestimmt große Denkfehler in meinem Code und die Wärme macht es gerade nicht einfach. Ich möchte aber gerne den Code bis morgen geschafft habe.
Deshalb freue ich mich auf eure Hilfe und bedanke mich im Voraus. 😉
Zuletzt bearbeitet: