Aufgabenblatt 6: Kontrollstrukturen / Arrays

Aufgabe 6.1: Einfaches Roulette

Roulette

Ziel ist es, ein Spiel zu programmieren, das einem einzelnen Spieler ermöglicht, eine stark vereinfachte Art des Spiels Roulette zu spielen:

Bei unserem Rouletterad kann die Kugel nur auf Zahlen zwischen 0 und 10 fallen. Der Spieler kann ausschließlich auf eine einzelne Zahl setzen.

Ihr Programm soll folgenden grundlegenden Ablauf umsetzen:

  1. Der Spieler startet mit einem Startkapital von €1000.

  2. Der Spieler kann nun einen Betrag auf eine Zahl setzen: a. Eingabe einer Zahl zwischen 0 und 10. b. Danach Eingabe des Betrags, der gesetzt werden soll. c. Überprüfen Sie die Eingaben jeweils darauf, ob sie sinnvoll sind, also ob die Zahl zwischen 0 und 10 liegt und ob der Spieler das Geld für den Einsatz besitzt.

  3. Das Rouletterad dreht sich. Das Ergebnis wird zufällig ermittelt (s. Hinweis) und ausgegeben.

  4. Hat der Spieler richtig gelegen, erhält er als Gewinn seinen 10-fachen Einsatz zurück. Lag er falsch, ist der Einsatz verloren.

  5. Falls der Spieler noch Geld besitzt, weiter bei Schritt 2. Ansonsten ist der Spieler pleite und das Spiel beendet.

Hinweise:

  • Simulieren Sie Ihr Rouletterad mit einem Zufallszahlengenerator (Klasse Random) wie in der Aufgabe Zahlenraten beschrieben.
  • Achtung: Diese Aufgabe wird auf einem der folgenden Aufgabenblätter weiter ausgebaut und muss dann abgegeben werden.

Aufgabe 6.2: Namensliste eingeben und ausgeben

Schreiben Sie ein Programm, das eine Liste von 8 Namen einliest und in umgekehrter Reihenfolge wieder ausgibt. Nutzen Sie dazu Arrays!

Aufgabe 6.3: Liste von Zufallszahlen

Schreiben Sie ein Programm, das…

  1. ein Array von 40 Zufallszahlen zwischen 0 und 100 erzeugt,
  2. diese Liste ausgibt,
  3. anschließend das arithmetische Mittel berechnet und ausgibt,
  4. dann die Liste nach dem Minimal- und dem Maximalwert durchsucht und das Ergebnis ausgibt,
  5. und schließlich die Standardabweichung berechnet und ausgibt.

Hinweise:

  • Zufallszahlen zwischen 0 und n-1 erzeugen Sie nach folgendem Rezept (generator können Sie beliebig häufig zur Erzeugung von zufälligen Zahlen verwenden):
int n = 10;
Random generator = new Random();
int zahl = generator.nextInt(n);
  • Das arithmetische Mittel von n Werten Xi berechnet sich zu

    Mittelwert

  • Die Standardabweichung einer Stichprobe von n Werten Xi berechnet sich zu

    Standardabweichung

  • Die Quadratwurzel einer Variablen x berechnen Sie mit Math.sqrt(x).

Aufgabe 6.4: Häufigkeitsverteilung der Zufallswerte

Schreiben Sie ein Programm, das zunächst ein Array x von 100000 Zufallszahlen zwischen 0 und 15 erzeugt.

Erzeugen Sie nun ein weiteres Array anzahl. Jeder Eintrag dieses Arrays soll die Häufigkeit des Auftretens einer bestimmten Zahl in x enthalten, beispielsweise anzahl[4] die Häufigkeit der der Zahl 4.

Geben Sie die Liste der Häufigkeiten aus! Treten alle Werte ungefähr gleich häufig auf?

Aufgabe 6.5: Primzahlen bestimmen mit dem Sieb des Eratosthenes

Eine Primzahl ist eine natürliche Zahl, welche nur durch sich selbst teilbar ist1.

Alle Primzahlen kleiner als 50 sind: 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43 und 47.

Das Sieb des Eratosthenes ist ein Algorithmus zur Bestimmung aller Primzahlen kleiner oder gleich einer Zahl n2:

  • Erzeuge ein boolesches Array istPrim mit der Größe n+1. Jeder Eintrag istPrim[i] soll am Ende angeben, ob die Zahl i eine Primzahl ist. Initialisiere die Einträge des Arrays zu true.

  • Für jeden Wert i = 2..n, prüfe ob istPrim[i] == true. Falls ja: Setze für alle Vielfachen j = i * x beginnend bei j = i * i dieser Zahl istPrim[j] = false:

    1. Setze j = i*i
    2. Solange j <= n: Markiere istPrim[j] = false und erhöhe j um i.
  • Gib alle Zahlen i (2...n) aus, für die gilt: istPrim[i] == true


  1. siehe auch https://de.wikipedia.org/wiki/Primzahl 

  2. siehe auch https://de.wikipedia.org/wiki/Sieb_des_Eratosthenes, insbesondere die Animation verdeutlicht das Vorgehen sehr gut!