Beruflich Dokumente
Kultur Dokumente
Ihre Matrikelnummer:
Achtung: Geben Sie keine weiteren persönlichen Daten außer der Matrikel-
nummer an!
Generelle Hinweise:
• Schreiben Sie lesbar (lesbar für die Korrektoren, nicht nur lesbar für Sie!).
• Schreiben Sie zu Ihrer Sicherheit die Matrikelnummer auf jedem Blatt in das jeweils
dafür vorgesehene Feld.
• Geben Sie in Ihrer Lösung zu jeder Aufgabe an, welcher Text zu welcher Teilaufgabe
gehört (wenn Sie Ihre Lösungen zu den Teilaufgaben strikt nacheinander, also
ohne Hin- und Hersprünge zwischen Teilaufgaben verfassen, reicht es natürlich,
die jeweilige Teilaufgabe jeweils zu Beginn anzugeben).
• Sie können selbstverständlich auch Zwischen- und Nebenergebnisse in Ihre Ab-
gabe schreiben, um leichter zum Ergebnis zu kommen. Stellen Sie dann aber die
eigentliche Lösung klar heraus.
• Sie müssen in jeder Aufgabe nur den reinen Code in HtDP-TL bzw. Java schreiben,
keine Verträge, Beschreibungen, Annotationen, Kommentare oder Checks/Tests.
Punkteverteilung:
Aufgabe 1 2 3 4 5 6 Summe
Punktzahl 24 20 22 18 20 23 127
Aufgabe 1 (HtDP-TL): 24 Punkte
Verbindliche Anforderung für alle drei Teilaufgaben: Zuweisungen mit set! oder
ähnliches ist nicht erlaubt, alle Teilaufgaben müssen durch normale Rekursion gelöst
werden, wie Sie es in der Vorlesung gesehen haben.
Ihre Lösung schreiben Sie auf die folgenden Seiten bis zur nächsten Aufgabe:
Ihre Matrikelnummer (zu Ihrer Sicherheit):
Ihre Matrikelnummer (zu Ihrer Sicherheit):
Aufgabe 3 (Java): 22 Punkte
Ihre Lösung schreiben Sie auf diese und die folgenden Seiten bis zur nächsten
Aufgabe:
Ihre Matrikelnummer (zu Ihrer Sicherheit):
Ihre Matrikelnummer (zu Ihrer Sicherheit):
Aufgabe 4 (Java): 18 Punkte
Ihre Lösung schreiben Sie auf die folgenden Seiten bis zur nächsten Aufgabe:
Ihre Matrikelnummer (zu Ihrer Sicherheit):
Ihre Matrikelnummer (zu Ihrer Sicherheit):
Aufgabe 5 (Java): 20 Punkte
Gegeben sei eine Klasse X, die generisch mit T parametrisiert ist. In Teil (a) und (b)
schreiben Sie die public-Objektmethoden m1 und m2 von X. Ihre Methoden können in
beiden Aufgabenteilen ohne Überprüfung davon ausgehen, dass der Parameter a nicht
gleich null ist und dass a positive Länge hat.
Die public-Methode m1 hat ein Array a von Typ int als Parameter und Rückgabetyp
void. Nach Anwendung von m1 soll im Index i ∈ {0, . . . , a.length − 1} der Wert
a[0]+a[1]+. . .+a[i] stehen, wobei a[0], a[1], . . ., a[i] die Werte in a unmittelbar
vor Anwendung von m1 bezeichnen.
Unverbindliche Hinweise: Überlegen Sie sich die Gesetzmäßigkeit, nach der die
Indizes 1, 2, 4, 5, 7, 8, . . . in a auf die Indizes 0, 1, 2, 3, 4, 5, . . . in b abzubilden sind.
Für die Länge von b werden Sie eine Fallunterscheidung benötigen, je nachdem, welchen
Rest a.length dividiert durch 3 ergibt. Denken Sie auch an die letzten beiden Elemente
von a.
Ihre Lösung schreiben Sie auf die folgenden Seiten bis zur nächsten Aufgabe:
Ihre Matrikelnummer (zu Ihrer Sicherheit):
Ihre Matrikelnummer (zu Ihrer Sicherheit):
Aufgabe 6 (Java): 23 Punkte
Gegeben sei eine Klasse Y, die nicht generisch parametrisiert ist. In Teil (a) und (b)
schreiben Sie public-Methoden m1 und m2 von Y, die generisch mit T parametrisiert
sind. Sie können ohne Überprüfung davon ausgehen, dass jeder Parameter vom Typ
ListItem<T> auf den Kopf einer korrekt gebildeten linearen Liste verweist (die auch
leer sein kann, das heißt, Wert null ist möglich).
Die public-Methode m1 von Y hat einen Parameter head vom Typ ListItem<T>.
Rückgabewert ist null, falls die Liste leer ist, ansonsten wird key vom letzten Ele-
ment der Liste zurückgeliefert.
Die public-Methode m2 von Y hat einen Parameter head vom Typ ListItem<T> und
liefert auch ListItem<T> zurück. Die Methode m2 entfernt alle Elemente aus dieser
Liste, deren Position in der Liste eine Quadratzahl ist, wobei das erste Listenelement
Position 0 hat (was natürlich auch eine Quadratzahl ist). Zurückgeliefert wird der Kopf
der Ergebnisliste.
Unverbindlicher Hinweis: Führen Sie zwei int-Variable position und base mit,
wobei position die Position des nächsten zu testenden Listenelements und base die
Basis der jeweils nächsten zu betrachtenden Quadratzahl ist.
1(a) A B C D E F
1(b) A B C D E F
1(c) A B C D E F G
1(d) A B C D E XXXXXXX
2(a) A B C D E F
2(b) A B C D E F
2(c) A B C D E F G H
3(a) A B
3(b) A B
3(c) A B C D E F G H
3(d) A B C D E F G H I J XXXXXXX
4(a) A B C D E F
4(b) A B C D E F
4(c) A B C D E F
5(a) A B C D E F
5(b) A B C D E F G H I J K L M N
6(a) A B C D E F G H
6(b) A B C D E F G H I J k L M N O