• Keine Ergebnisse gefunden

max. Punkte 8 8 8 8 10 28 70

N/A
N/A
Protected

Academic year: 2022

Aktie "max. Punkte 8 8 8 8 10 28 70"

Copied!
8
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Technische Universität Braunschweig

Institut für Programmierung und Reaktive Systeme

Programmieren II

Dr. Werner Struckmann 31. März 2014

Name:

Vorname:

Matrikelnummer: Kennnummer:

Anrede: Frau Herr

Studiengang: Bachelor Master Diplom Frühstudium Erasmus Fachrichtung: Informatik Wirtschaftsinformatik Mathematik Physik Mobilität und Verkehr Psychologie Maschinenbau ( Mechatronik)

Elektrotechnik Wirtschaftsingenieurwesen ( Bauing E-Technik Maschbau) Finanz- und Wirtschaftsmathematik IST Sonstige:

Die Bearbeitungszeit beträgt 120 Minuten. Die Klausur besteht aus 6 Aufgaben. Sie haben die Klausur bestanden, wenn Sie mindestens 35 von 70 möglichen Punkten erreicht haben.

Aufgabe 1 2 3 4 5 6 Σ

max. Punkte 8 8 8 8 10 28 70

Punkte

Note:

Bitte prägen Sie sich Ihre Kennnummer gut ein. Aus Datenschutzgründen wird das Klau- surergebnis nur unter dieser Kennnummer bekannt gegeben. Aus den gleichen Gründen können Ergebnisse weder telefonisch noch per E-Mail mitgeteilt werden.

(2)

Aufgabe 1: (Programmverständnis) Gegeben sei die folgende Klasse LinkedList:

public class LinkedList { private int item = -1;

private LinkedList next;

public LinkedList insertElement(int x) { LinkedList l = new LinkedList();

l.item = x;

l.next = next;

next = l;

return this;

}

public LinkedList insert(int x) { if (next==null || x>=next.item)

return insertElement(x);

else

return next.insert(x);

}

public String toString() { String s = "";

if (next!=null) { s = s + next.item;

if (next.next!=null) s = s + " | " + next;

}

return s;

}

public static void main(String[] args) { LinkedList l = new LinkedList();

l.insert(-5); l.insert(5); l.insert(1);

l.insert(-3); l.insert(3); l.insert(5);

System.out.println(l);

} }

Wie lautet die Ausgabe des Aufrufsjava LinkedList nachdem der Compiler diese Klasse übersetzt hat.

8 Punkte Lösung:

– 2 –

(3)

Aufgabe 2: (Generizität) Gegeben seien die Methode 01 public static int max (int[] a, int[] b) { 02 assert a!= null && a.length > 0;

03 assert b!= null && b.length > 0;

04 int x = a[0];

05 for (int j=1; j<=a.length-1; j++) { 06 if (a[j]>x) x=a[j];

07 }

08 for (int j=0; j<=b.length-1; j++) { 09 if (b[j]>x) x=b[j];

10 }

11 return x;

12 }

und die Anweisungen

13 int[] a = {-9,4,-1,6};

14 int[] b = {9,4,1,5};

15 int t = max(a,b);

a) Schreiben Sie diese Methode als generische Methode, die als Parameter zwei Felder von Elementen eines Typs T erhält. Stellen Sie sicher, dass T die benötigten Ope- rationen besitzt, so dass beim Übersetzen keine Fehlermeldungen oder Warnungen entstehen. Geben Sie nur die Zeilen an, die sich geändert haben.

b) Können die Zeilen 13 bis 15 unverändert übernommen werden? Wie müssen diese Zeilen ggf. abgeändert werden?

8 Punkte Lösung:

(4)

Aufgabe 3: (Klassen, Aufzählungstypen, Annotationen, Pakete, Parallelprogrammierung) Bitte kreuzen Sie an. Für jede richtige Antwort erhalten Sie einen Punkt, für jede falsche Antwort wird ein Punkt abgezogen. Kein Kreuz bzw. zwei Kreuze bedeuten 0 Punkte.

Die minimale Gesamtpunktzahl für diese Aufgabe beträgt 0 Punkte. Alle Fragen dieser Aufgabe beziehen sich auf Java.

wahr falsch Eine innere Klasse kann auf die Member-Variablen

ihrer äußeren Klasse zugreifen.

Anonyme Klassen können nicht instanziiert werden.

JedeEnum-Klasse implementiert die Schnittstelle Comparable.

Annotationen sind vordefiniert und können nicht selbst erstellt werden.

Annotationen können annotiert werden.

Die Klassen des Pakets java.utilwerden automatisch importiert.

Eine durchprotected deklarierte Variable

ist in allen Methoden des eigenen Pakets sichtbar.

Eine Semaphore kann nur Werte annehmen, die≥1 sind.

8 Punkte

Aufgabe 4: (Grafikprogrammierung) Beschreiben Sie kurz die Aufgaben der folgenden Komponentenklassen.

JLabel: Darstellung von Texten und Bildern JButton:

JCheckBox:

JRadioButton:

JTextArea:

JTextField:

JComboBox:

JList:

JDialog:

8 Punkte

– 4 –

(5)

Aufgabe 5: (Programmzuverlässigkeit) Gegeben sei die folgende Java-Methode:

static int f(int n) {

assert n>=1; // Vorbedingung P int i = 1;

int s = 3*n+1;

assert ... // Schleifeninvariante Q while (i < n) {

s = s+2*i;

i = i+1;

assert ... // Schleifeninvariante Q }

assert ... // Nachbedingung R return s;

}

a) Welchen Wert berechnet diese Methode? Formulieren Sie eine entsprechende Nach- bedingungR.

b) Geben Sie eine geeignete Schleifeninvariante Qan, mit deren Hilfe die partielle Kor- rektheit der Methode bezüglich P und R nachgewiesen werden kann. Sie brauchen den Nachweis nicht zu führen.

c) Formulieren SieQundRals Java-Ausdrücke, sodass diese in den obigenassert-An- weisungen verwendet werden können.

10 Punkte Lösung:

(6)

Aufgabe 6: (Datenstrukturen) Gegeben seien die folgenden KlassenKnotenundSuchbaum zur Implementierung binärer Suchbäume:

public class Knoten { public int wert;

public Suchbaum links, rechts;

public Knoten(int wert) { this.wert = wert;

this.links = new Suchbaum();

this.rechts = new Suchbaum();

} }

public class Suchbaum {

private Knoten wurzel = null;

public boolean isEmpty() { return wurzel == null;

}

public void insert(int x) { if (isEmpty())

wurzel = new Knoten(x);

else

if (x < wurzel.wert) wurzel.links.insert(x);

else

wurzel.rechts.insert(x);

}

public String toString() { if (isEmpty())

return "";

else

return wurzel.links+";"+

wurzel.wert+";"+wurzel.rechts;

} } Betrachten Sie den folgenden binären Suchbaum:

2 4 3

5 6

7 7

8 8

8

Dieser binäre Suchbaum kann mit der obigen Klasse erzeugt werden. Die Werte 7 und 8 sind mehr als einmal im Suchbaum enthalten. Die Methode insert gestattet also, dass Werte mehrfach im Suchbaum aufgenommen werden.

– 6 –

(7)

a) Was gibt das folgende Programmfragment aus?

Suchbaum t = new Suchbaum();

t.insert(6); t.insert(3); t.insert(8); t.insert(2); t.insert(5);

System.out.println(t);

b) Zeichnen Sie den Graphen des Baumes aus a) wie im obigen Beispiel.

c) Schreiben Sie eine Methodeblaetter(), die die Werte der Blätter des Suchbaums ab- steigend sortiert ausgibt. Für den obigen Suchbaum wäre die Ausgabe also:8 7 4 2 d) Wie wäre die Ausgabe der Methodeblaetter()für die Eingabe des Baumes aus a)?

e) Formulieren Sie die Methodevoid insert(int x)so um, dass der binäre Suchbaum Elemente nicht mehrfach, sondern höchstens einmal aufnimmt.

Sie können eigene Hilfsmethoden schreiben, dürfen aber weder Klassen noch Methoden importieren. Durch Ihren Code darf der aktuelle Suchbaum nicht verändert werden. Er- läutern Sie Ihren Code. Bitte schreiben Sie Ihre Erläuterung auf diese Seite. Verwenden Sie für Ihren Programmcode bitte die nächste Seite.

28 Punkte Lösung:

(8)

– 8 –

Referenzen

ÄHNLICHE DOKUMENTE

Einer von ihnen hat positiven Realteil, damit ist (2, 3)

c) Wahr. Damit das Produnkt der drei EWe einer 3 × 3-Matrix positiv ist, muss mindestens ein EW positiv sein und das GGW ist instabil... d) Wahr. Der L¨ osungsraum

Von der ersten zur zweiten Zeile wurden die

Technische Universit¨ at Berlin Fakult¨ at II.. Institut f¨ ur Mathematik

[r]

MARIEENNEMONDCAMILLEJORDAN(1838–1922)ar- beitetebeiderHerleitungdieserundweitererZerlegun-

BEGINNEN SIE ALLE AUFGABEN AUF JEWEILS EINEM NEUEN BLATT UND SCHREIBEN SIE AUF JEDES BLATT IHREN NAMEN UND MA- TRIKELNUMMER!!.. L¨ osen Sie die Differential- gleichung (**) und

Wenn Sie bei einer Aufgabe nicht weiterkommen, z.B. weil bereits ein Rechenfehler vorliegt, beschreiben Sie bitte m¨ oglichst genau das prinzipielle Vorgehen, mit dem Sie die