Musterlösung der Nachklausur PR25 im WS'99

Aufgabe 1

public class UngradierbareWS extends GanzWSReihung {
	public GradierbareWS(int groesse) {
		super(groesse);
	}
	public void ungradieren() {
		int index = aeltestes;
		int max = 0;
		for (int i = 0; i < anzahl; i++) { // jedes Element bearbeiten
			while (inhalt[index] % 2 == 0)
				inhalt[index] /= 2;
			index = (index + 1) % inhalt.length
		};
	}
}

Aufgabe 2

Wenn verbindung des letzten Knotens null ist (wie normalerweise), dann löst loeschen eine NullPointerException aus. Diese sollte in der Methode aufgefangen werden. Die Methode kann das erste Element nicht löschen.

Bei einer ringverketteten Liste wird das erste Element gelöscht (verbindung des letzten Knotens ist der erste).


Aufgabe 3

ggt(30, 18) = ggt (12, 18) = ggt(12, 6) = ggt(6, 6) = 6

(4 rekursiven Aufrufe)


Aufgabe 4

(X) Richtig Die Datei iostream.h enthält nicht nur C++-Klassen, sondern auch Objekte

Grund: z.B. cout

(X) Falsch Die Knoten-Klasse einer rückwärts verketteten Liste aus Java kann unverändert in C++ benutzt werden.

Grund: * muss dazu (Referenz in Java ist Zeiger in C++)

(X) Falsch Die Anzahl der Elemente in der Listen-Implementierung eines Multibehälters kann nach der Erzeugung des Multibehälter-Objekts nicht mehr verändert werden.

Grund: Neue Knoten können hinzugefügt werden

(X) Falsch In Java kann man Objekte auch ohne new erzeugen.

Grund: nur in C++

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

Grund: while (true) ist endlos

(X) Richtig Bei der Ausführung von cout << "Hallo"; in C++ wird eine Methode aufgerufen.

Grund: Die Methode operator<<

(X) Richtig Bei der Ausführung der Vereinbarung Integer i; entsteht ein Objekt

Grund: Richtig in C++, falsch in Java

(X) Richtig Wenn der Java-Vergleich r1 == r2 das Ergebnis true liefert, dann liefert auch die Methode r1.equals(r2) das Ergebnis true

Grund: r1 und r2 zeigen auf dasselbe Objekt; equals vergleicht das Objekt mit sich selbst