Aufgabe 1

public class NormalisierbareWS extends GanzWSReihung {
	public NormalisierbareWS(int groesse) {
		super(groesse);
	}
	public void normalisieren(int n) {
		int index = aeltestes;
		int max = 0;
		for (int i = 0; i < anzahl; i++) { // maximales Element suchen
			if (inhalt[index] > max)
				max = inhalt[index];
			else if (- inhalt[index] < max)
				max = - inhalt[index];
			index = (index + 1) % inhalt.length;
		};
		if (max != 0) {
			max /= n;
			index = aeltestes;
			for (int i = 0; i < anzahl; i++) { // normalisieren
				inhalt [index] /= max;
				index = (index + 1) % inhalt.length;
			};
		}
	}
}

Aufgabe 2

Bemerkung: der Fall

wohin.verbindung == null

funktioniert genauso, wie wenn verbindung besetzt ist.


Aufgabe 3

Kreuzen Sie die richtigen Antworten an und geben Sie Ihre Begründung mit Stichworten dazu. Ohne Begründung gilt Ihre Antwort als falsch.

Die Datei iostream.h enthält ein C++-Modul.
(X) Falsch
Grund: Sie enthält nur die Spezifikation des Moduls

Die Knoten-Klasse einer rückwärts verketteten Liste kann auch für eine doppelt verkettete Liste benutzt werden.
(X) Falsch
Grund: Die doppelt verkettete Liste braucht zwei verbindung-Komponenten auf Nachbarknoten

Die Anzahl der Elemente in der Reihung-Implementierung eines Multibehälters kann nach der Erzeugung des Multibehälter-Objekts nicht mehr verändert werden.
(X ) Falsch
(X) Richtig
Grund: Die Reihungsgröße kann nicht verändert werden; die Anzahl der relevanten Objekte kann in einer int-Komponente gespeichert werden

In C++ kann man Objekte auch ohne new erzeugen.
(X) Richtig
Grund: Stapelobjekte, z.B. Eimer eimer;

Eine for-Schleife (in Java und in C++) ist garantiert keine Endlosschleife.
(X) Richtig
(X) Falsch

Grund: (Richtig): Man kann sie falsch programmieren (z.B. die Laufvariable im Schleifenrumpf verändern)
(Falsch): vorausgesetzt, man programmiert sie richtig; Anzahl der Durchläufe steht beim Eintritt in die Schleife fest

Operanden von Operatoren können in Java nur Variablen, in C++ auch Objekte sein.
(X) Richtig
Grund: Überladen von Operatoren ist in C++ möglich, in Java nicht

Durch die Vereinbarung int[] reihung; entsteht keine Reihung.
(X) Richtig
(X) Falsch
Grund: Richtig in Java (new int[20] nötig), falsch in C++ (Reihung auf dem Stapel möglich)

Zwei String-Objekte referiert durch z1 und z2 können die gleiche Zeichenkette enthalten, auch wenn der Vergleich z1 == z2 das Ergebnis false liefert.
(X) Richtig
Grund: z1 == z2 ist true, wenn die zwei Referenzen dasselbe Objekt referieren. Unterschiedliche Objekte können den gleichen Inhalt haben.


Aufgabe 4

interface ErweiterteListe extends lehrbuch.kapitel8.PositionierbareListe {
	public void plus(final ErweiterteListe liste); // Mutator
	// public ErweiterteListe plus(final ErweiterteListe liste); // Alternativ: Funktion // const
	public void minus(final ErweiterteListe liste); // Mutator
	// public SackAlgebra minus(final ErweiterteListe liste); // Alternativ: Funktion // const
}

Aufgabe 5

Fehler: endlose Rekursion, wenn sie nicht (z.B. durch eine Abfrage oder eine Ausnahme) abgebrochen wird

public int summe(final int n) {
	if (n == 1)
		return 1
	else
		return n + summe(n-1);
}