Aufgaben

  1. Schreibe das Programm Noten, das 5 zufällige Noten zwischen 1 und 15 erzeugt. Von diesen Noten soll erst die größte und dann die kleinste Note ausgegeben werden, dann der Durchschnitt und schließlich die Noten selbst. Lösung

  2. Schreibe das Programm Eratosthenes, das die Primzahlen von 2 bis 1000 nach dem Verfahren des Sieb des Eratosthenes bestimmt. Lösung

  3. Schreibe das Programm ZweiWürfel, das zwei Würfel 1000 Mal wirft und am Ende ausgibt, wie oft welche Summe geworfen wurde. Lösung

  4. Erweitere das Programm ZweiWürfel zu NWürfel dahingehend, dass du im Programm die Anzahl der Würfel, die Anzahl der Würfelseiten und die Anzahl der Würfe einstellen kannst. Gib wieder aus, wie oft jede Summe vorkam. Lösung

Zusatzaufgaben

Schon fertig? Dann gibt es hier noch Zusatzaufgaben ohne Lösungen:

  1. Schreibe das Programm Lottoziehung, das 6 aus 49 Zahlen zieht, ohne dass Doppelungen vorkommen. Du darfst dazu keine while-Schleife verwenden, diese kommt erst im nächsten Kapitel.

  2. Schreibe das Programm Regentropfen, das zufällig Regentropfen auf den Boden fallen lässt. Stelle dir nun vor, auf dem Boden sei ein in einem Quadrat einbeschriebener Kreis aufgemalt.

    Berechne aus der Anzahl der Tropfen, die im Kreis bzw. Quadrat landen eine Näherung für π\pi.

  3. Schreibe das Programm Barcode, das nach der Beschreibung auf Wikipedia einen EAN-13-Code erstellt. Dieser soll in unserem Fall aus einer Abfolge von Nullen und Einsen bestehen.

Noten

int[] note = new int[5];
for (int i = 0; i < note.length; i++) {
    note[i] = (int) (Math.random() * 15 + 1);
}

// Maximum und Minimum suchen, Summe für Durchschnitt
int maximum = note[0], minimum = note[0], summe = 0;
for (int i = 0; i < note.length; i++) {
    summe += note[i];
    maximum = maximum < note[i] ? note[i] : maximum;
    minimum = minimum > note[i] ? note[i] : minimum;
}
System.out.println("Größte Note: " + maximum + ", kleinste Note: " + minimum);
System.out.println("Durchschnitt: " + ((double) summe / note.length));
for (int i = 0; i < note.length; i++) {
    System.out.println(note[i]);
}
Java

Eratosthenes

int anzahl = 1000;
int[] zahlen = new int[anzahl]; // 0 noch da, 1 gestrichen

for (int i = 2; i <= anzahl / 2; i++) {
    if (zahlen[i] == 0) {
        for (int j = i * 2; j < anzahl; j += i) {
            zahlen[j] = 1; // entspricht dem Streichen
        }
    }
}
for (int i = 2; i < anzahl; i++) {
    if (zahlen[i] == 0) { // noch nicht gestrichen
        System.out.println(i);
    }
}
Java

ZweiWürfel

int anzahl = 1000, zz1, zz2;
int[] summen = new int[11];

for (int i = 0; i < anzahl; i++) {
    zz1 = (int) (Math.random() * 6 + 1);
    zz2 = (int) (Math.random() * 6 + 1);
    summen[zz1 + zz2 - 2]++;
}
for (int i = 0; i < summen.length; i++) {
    System.out.println((i + 2) + ": " + summen[i]);
}
Java

NWürfel

int anzahlWürfe = 10000;
int anzahlSeiten = 6;
int anzahlWürfel = 5;
int[] summen = new int[anzahlSeiten * anzahlWürfel - anzahlWürfel + 1];

for (int i = 0; i < anzahlWürfe; i++) {
    int summeAugenzahlen = 0;
    for (int j = 0; j < anzahlWürfel; j++) {
        summeAugenzahlen += (int) (Math.random() * anzahlSeiten + 1);
    }
    summen[summeAugenzahlen - anzahlWürfel]++;
}
for (int i = 0; i < summen.length; i++) {
    System.out.println((i + anzahlWürfel) + ": " + summen[i]);
}
Java