• Keine Ergebnisse gefunden

1. Testklausur — Sommersemester 2013 Datenstrukturen und Algorithmen 24. Mai 2013

N/A
N/A
Protected

Academic year: 2021

Aktie "1. Testklausur — Sommersemester 2013 Datenstrukturen und Algorithmen 24. Mai 2013"

Copied!
5
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

University of Applied Sciences Prof. Dr. Peter Becker

1. Testklausur — Sommersemester 2013 Datenstrukturen und Algorithmen

24. Mai 2013

Bevor Sie mit der Bearbeitung dieser Klausur beginnen, lesen Sie bitte folgende Hinweise.

Diese Hinweise sind bei der Bearbeitung zu beachten.

1. Pr¨ufen Sie die Vollst¨andigkeit Ihres Exemplars. Es sollte

• dieses Hinweisblatt und

• vier Aufgaben auf vier Bl¨attern umfassen.

2. Tragen Sie auf jedem L¨osungsblatt oben an den vorgesehenen Stellen Ihren Namen und Ihre Matrikelnummer ein. Bl¨atter ohne diese Angaben werden nicht bewertet.

Hinter den Aufgaben ist jeweils hinreichend Platz f¨ur die L¨osungen freigelassen. Reicht der Platz nicht aus, benutzen Sie die R¨uckseiten, wobei die Zuordnungen von L¨osungen zu Aufgaben deutlich erkennbar sein m¨ussen.

3. Geben Sie dieses Deckblatt zusammen mit den Aufgabenstellungen und den L¨osungen sowie alles weitere beschriebene Papier ab.

4. Zugelassene Hilfsmittel: keine

5. Mit ≥ 30 Punkten haben Sie die Klausur bestanden.

6. Ergebnis (bitte nichts eintragen):

1 (15) 2 (15) 3 (10) 4 (20)

PP unkte

(60)

Viel Erfolg!

(2)

Aufgabe 1 (15 Punkte)

• Ein Versandhandelsgesch¨aft verkauft B¨ucher und DVDs. Nur solche Objekte sollen er- zeugt werden k¨onnen.

• Sowohl B¨ucher als auch DVDs haben eine Bezeichnung, einen Nettoverkaufspreis, einen Bruttoverkaufspreis und einen Mehrwertsteuersatz.

• F¨ur B¨ucher ist zus¨atzlich der Autor bekannt, f¨ur DVDs der Regisseur.

• Der Bruttoverkaufspreis errechnet sich aus dem Nettoverkaufspreis plus Mehrwertsteuer.

• F¨ur B¨ucher fallen stets 7% Mehrwertsteuer (vom Nettoverkaufspreis) an, f¨ur DVDs 19%.

Definieren Sie Java-Klassen, die die oben genannten Punkte angemessen umsetzen. Stellen Sie dabei Methoden bereit, um

• die Bezeichnung zu ermitteln,

• den Nettoverkaufspreis zu setzen,

• den Nettoverkaufspreis zu ermitteln,

• den Bruttoverkaufspreis zu ermitteln,

• den Mehrwertsteuersatz zu ermitteln und

• B¨ucher bzw. DVDs als Zeichenkette zu repr¨asentieren (Methode toString()).

(3)

Aufgabe 2 (4+4+4+3=15 Punkte)

Gegeben sei die folgende Klasse Counter:

public class Counter { private int value = 0;

public void increment() { this.value++; } public int get() { return this.value; } }

F¨ur eine Anwendung ben¨otigen wir die folgende Funktionalit¨at: Immer wenn f¨ur einen Counter die Methode increment() aufgerufen wird, soll ein anderes Objekt (ein sogenannter Ob- server) dar¨uber benachrichtigt werden. Der Observer soll nicht aus einer bestimmten Klasse stammen m¨ussen. Außerdem muss sich der Observer vorher beim Counter registrieren.

(a) Definieren Sie eine Schnittstelle f¨ur die Benachrichtigung des Observers.

(b) Implementieren Sie die Schnittstelle aus (a) beispielhaft.

(c) ¨ Andern Sie die Implementierung von Counter so ab, dass sich ein Observer f¨ur die Benachrichtigung registrieren kann und im Falle eines Aufrufs von increment() auch benachrichtigt wird.

(d) Wie w¨urden Sie (c) l¨osen, wenn Sie den Quelltext von Counter nicht anpassen k¨onnten

(z.B. weil die Klasse Counter aus einer fremden Bibliothek stammt).

(4)

Aufgabe 3 (2+4+4=10 Punkte)

(a) Nennen Sie eine gepr¨ufte (ausgenommen Exception) und eine ungepr¨ufte Exception- Klasse.

(b) In der Methode foo(int a) soll die gepr¨ufte Exception ExceptionX ausgel¨ost wer- den, wenn der Methodenparameter a negativ ist. Skizzieren Sie den Aufbau der Methode foo(int a).

(c) Die Methode foo(int a) soll innerhalb der Methode bar() aufgerufen werden. Stel-

len Sie dar, welche M¨oglichkeiten Sie in bar() haben, um mit der Exception, die von

foo m¨oglicherweise ausgel¨ost wird, umzugehen.

(5)

Aufgabe 4 (20 Punkte)

Wir wollen eine generische Liste implementieren, in der die enthaltenen Objekte aufsteigend sortiert verwaltet werden. Das erste Element der Liste ist also stets ein kleinstes Element, das letzte ein gr¨oßtes Element. Die sortierte Liste soll einfach verkettet sein und die folgenden Methoden bereitstellen:

• insert: F¨uge ein neues Element in die Liste ein. Das Element muss gem¨aß der Sortie- rung an der richtigen Stelle in der Liste platziert werden.

• deleteMin: L¨osche das kleinste Element.

• getMin: Ermittle das kleinste Element der Liste.

• print: Gib die komplette Liste sortiert aus.

Geben Sie die Klasse komplett an (Klassenrahmen, innere Klassen, Instanzvariablen, Metho-

denk¨opfe und Implementierungen).

Referenzen

ÄHNLICHE DOKUMENTE

• Informationen zu einem K ¨orper (Art, Lage, Parameter, Volumen, Oberfl¨ache, Farbe) sollen auf einfache Weise ausgegeben werden k¨onnen.. (a) Implementieren Sie in Java

Node left; // Wurzel des linken Unterbaums Node right; // Wurzel des rechten Unterbaums }.. private Node root; // Wurzelknoten des

Eine Formel A in Klauselform ist genau dann unerf¨ullbar, wenn es eine endliche Konjunktion von Grundinstanzen ihrer Klauseln gibt, die unerf¨ullbar ist. Konjunktionen von

Geben Sie eine Formel der Pr¨ adikatenlogik erster Stufe an, die genau dann wahr ist, wenn es einen Turm gibt, der genau aus zwei Bl¨ ocken besteht..

Geben Sie eine Formel der Pr¨ adikatenlogik erster Stufe an, die genau dann wahr ist, wenn jeder Block und der oberste Block seines Turmes die gleiche Basis haben..

Geben Sie eine JML-Nachbedingung f¨ ur die Methode removeDup an, die besagt, dass im Ergebnis- Array kein Wert doppelt

Diese Funktion im Z¨ahler beschreibt eine nach oben ge¨offnete Parabel mit den zwei Nullstellen 1 und 4... VI.1 und P-VI.1 Untersuchen Sie, ob das Minimum, Maximum,