Aufgabe 1

Implementieren Sie ist ein Java-Programm, welches aus 10 einzugebenden Zahlen folgende Werte ermittelt:

  • Summe
  • Minimum und Maximum
  • Mittelwert
  • Anzahl positiver Werte

Ermitteln Sie die einzelnen Ergebnisse jeweils in einer Methode mit Rückgabewert. Die Eingabe der 10 Einzelwerte und die Ausgabe der Ergebnisse soll in der main-Methode erfolgen.


Aufgabe 2 (Gummibärchen)

In einer Tüte Gummibärchen sind (lt. Hersteller) 12 Gummibärchen enthalten. L. Ecker Maul kann dies gar nicht glauben, da die Tütchen viel zu schnell leer sind. Daher beschließt er einen Test zu machen. Er kauft sich eine genügende Anzahl dieser kleinen Tütchen und führt eine Gummibärchenvolkszählung durch …

Implementieren Sie ein Java-Programm, welches für eine gewünschte Anzahl von Tütchen diesen Test durchführt. Die Anzahl der Tütchen soll zu Beginn abgefragt werden. Am Ende soll natürlich die Anzahl der korrekten Tütchen angegeben werden. Weitere Daten für die Auswertung (Wie viele Tütchen hatten zu wenige, wie viel zu viele? …) können Sie eigenständig ergänzen.


Aufgabe 3 (Messwerte)

Bei einem elektrophysikalischen Versuch wird die Augenblicksspannung eines Wechselspannungsvorgangs gemessen. Die Spitzenspannung beträgt 12V. Das Messinstrument gibt 1000 digitale Messwerte in (ganzzahligen) Stufen von 1 Volt bis 12V über einen längeren Zeitraum aus.

Bei der Auswertung ist nun festzustellen, wie häufig die gemessenen Augenblicksspannungen aufgetreten sind. (Da wir „keine Lust“ haben, 1000 Messwerte per Hand einzugeben, müssen diese auf andere Weise erzeugt werden …)

Implementieren Sie ein geeignetes Java-Programm, welches zuerst die 1000 Messwerte erzeigt und danach die Häufigkeit der einzelnen Augenblicksspannungen ermittelt (Hinweis: Man bräuchte zwei Arrays …)


Aufgabe 4 (Notenspiegel)

Implementieren Sie ein Java-Programm, welches die Einstiegsaufgabe zum Thema Arrays realisiert.


Aufgabe 5 (Array füllen)

Implementieren Sie ein Java-Programm, welches drei Arrays der Länge 20 füllt … nach folgenden Kriterien:

  • Feld 1 enthält nur gerade (zufällige) Zahlen,
  • Feld 2 enthält ganze (zufällige) Zahlen, die aufwärts sortiert sind
  • Feld 3 enthält ganze (zufällige) Zahlen, die abwärts sortiert sind.

Die drei Felder sollten jeweils erzeugt und ausgegeben werden.


Aufgabe 6 (Suche im Feld)

In einem Feld soll nach einem bestimmten Wert gesucht werden. Ist der Wert vorhanden, wird der Index geliefert, in dem der Wert steht. Überlegen Sie, welcher Wert zurückgegeben werden könnte, falls der Wert nicht im Feld enthalten ist.

Implementieren Sie ein geeignetes Java-Programm, welches in einem zu Beginn (im Programm) angegebenen Feld mit einer Methode int searchIndex(int[] a, int value) testet, ob value in a enthalten ist und nach den oben vereinbarten Regeln einen Wert zurück gibt.


Aufgabe 7 (Tausch von Elementen)

Implementieren Sie eine Methode swap(int[] a, int i, int j), die zwei Werte in einem Integer-Array tauscht. Die Methode wird mit dem Feld a und den beiden Indizes der zu tauschenden Parametern aufgerufen werden. Das Ergebnisfeld soll zurückgegeben werden.

Das zu sortierende Feld ist in der main-Methode zu vereinbaren und auszugeben, ebenso ist das geänderte Feld auszugeben. Die Ausgabe hat nach dem Aufruf wie folgt auszusehen:

Feld: 4 2 10 3 -5 0 17
Parameter 1: 3
Parameter 2: 5
neues Feld: 4 2 10 0 -5 3 17

Aufgabe 8 (Löschen von Elementen)

Implementieren Sie eine Methode delElement(int[] a, int w), welche einen Wert w aus dem Array a löscht. Die eventuell entstehende leere Stelle soll durch „Aufrutschen“ beseitigt werden. Die Methode gibt das neue Feld zurück.

Beachte die Möglichkeit, dass das Element nicht vorhanden ist.

Beispiel: Der Funktion wird das Array a = [3,4,1,9,-5,4] übergeben und folgendermaßen modifiziert:

Feld: 3 4 1 9 -5 4
zu löschendes Element: 9
neues Feld: 3 4 1 -5 4

Das Ergebnis soll an die main-Methode zurückgegeben werden.

Aufgabe 9 (Aufsummieren)

Implementieren Sie eine Methode sumUp(int[] a), der ein Array vom Typ int übergeben wird.

An Index i \in \{0,...,a.length-1\} soll nun der neue Wert a[0] + ... + a[n] geschrieben werden. Dabei bezeichnen a[0] usw. die Werte in a, die in die Methode übergeben wurden.

Beispiel: Der Funktion wird das Array a = [3,4,1,9,-5,4] übergeben und folgendermaßen modifiziert:

-> [3, 3+4, 3+4+1, 3+4+1+9, 3+4+1+9+(-5), 3+4+1+9+(-5)+4]
-> [3, 7, 8, 17, 12, 16]

Das Ergebnis soll an die main-Methode zurückgegeben werden. Als Maske können Sie folgenden Quelltext verwenden:

public class Aufsummieren {

    public static int[] sumUp(int[] a) {
        
    }

    public static void main(String[] args) {
        int[] zahlen = {4,3,1,9,-5,4};

        ...
        sumUp(zahlen);
        ...
    }
}

Aufgabe 10 (Mischen)

Gegeben sind zwei beliebig große Felder a und b, die positive ganze Zahlen (vom Datentyp int) in
aufsteigend sortierter Reihenfolge enthalten.
Gesucht ist ein Java-Programm, das ein aufsteigend sortiertes Feld c aus a und b berechnet, sodass c alle
Zahlen in aufsteigend sortierter Reihenfolge enthält, die in a und/oder in b vorkommen.

Beachte, dass in jedem Feld (also auch im Ergebnisfeld c) Werte mehrfach vorkommen können.

Folge a:
 Länge: 6
 Folge: 2 4 4 10 15 15
Folge b:
 Länge: 4
 Folge: 3 4 5 10
Ergebnisfolge c: 2 3 4 4 4 5 10 10 15 15
  1. Gib einen Algorithmus im Pseudocode an.
  2. Implementiere eine Methode int[] mische (int[] a, int[] b), welche den beschriebenen Algorithmus realisiert.
  3. Teste dein Programm mit folgenden Feldern:
1. Fall: Beispiel aus Angabe
     Folge a: 2 4 6 10 15 15
     Folge b: 3 4 5 10
     Ergebnisfolge c: 2 3 4 4 5 6 10 10 15 15
2. Fall: Beispiel aus Angabe mit a und b vertauscht
     Folge a: 3 4 5 10
     Folge b: 2 4 6 10 15 15
     Ergebnisfolge c: 2 3 4 4 5 6 10 10 15 15
3. Fall: a enthält alle kleinen, b alle größeren Zahlen
     Folge a: 1 2 3 4
     Folge b: 5 6 7 8 9
     Ergebnisfolge c: 1 2 3 4 5 6 7 8 9
4. Fall: Fall 3 mit a und b vertauscht
     Folge a: 5 6 7 8 9
     Folge b: 1 2 3 4
     Ergebnisfolge c: 1 2 3 4 5 6 7 8 9
5. Fall: gleiche Zahlenfolge von a und b
     Folge a: 1 2 3 4 5
     Folge b: 1 2 3 4 5
     Ergebnisfolge c: 1 1 2 2 3 3 4 4 5 5
6. Fall: Lauter gleiche Zahlen, a und b gleich
     Folge a: 1 1 1
     Folge b: 1 1 1
     Ergebnisfolge c: 1 1 1 1 1 1
7. Fall: Nur jeweils eine Zahl in a und b
     Folge a: 1
     Folge b: 2
     Ergebnisfolge c: 1 2
8. Fall: Fall 7 mit a und b vertauscht
     Folge a: 2
     Folge b: 1
     Ergebnisfolge c: 1 2
9. Fall: Nur jeweils eine (gleiche) Zahl in a und b
     Folge a: 1
     Folge b: 1
     Ergebnisfolge c: 1 1
10. Fall: Folge a hat Länge 0
     Folge a:
     Folge b: 1 2 3 4 5
     Ergebnisfolge c: 1 2 3 4 5
11. Fall: Folge b hat Länge 0
     Folge a: 1 2 3 4 5
     Folge b:
     Ergebnisfolge c: 1 2 3 4 5
12. Fall: Beide Folgen haben Länge 0
     Folge a:
     Folge b:
     Ergebnisfolge c: