Name: Seite 1. Beantworten Sie die Fragen in den Aufgaben 1 und 2 mit einer kurzen, prägnanten Antwort.

Ähnliche Dokumente
Name: Seite 1. Beantworten Sie die Fragen in den Aufgaben 1 und 2 mit einer kurzen, prägnanten Antwort.

Name: Seite 2. Beantworten Sie die Fragen in den Aufgaben 1 und 2 mit einer kurzen, prägnanten Antwort.

Name: Seite 2. Beantworten Sie die Fragen in den Aufgaben 1 und 2 mit einer kurzen, prägnanten Antwort.

Grundlagen. Name: Seite 2

Grundlagen Java. Name: Seite 2

Name: Seite 2. Beantworten Sie die Fragen in den Aufgaben 1 und 2 mit einer kurzen, prägnanten Antwort.

In C und Java müssen Variablen und Methodenergebnisse durch Typangaben erläutert werden. Welche der folgenden Aussagen sind korrekt und welche nicht:

Probeklausur Java Einführung in die Informatik. Wintersemester 2016/2017

Probeklausur Java Einführung in die Informatik. Wintersemester 2017/2018

Klausur Algorithmen und Datenstrukturen

Aufgabe 1 (12 Punkte)

13. Bäume: effektives Suchen und Sortieren

13. Bäume: effektives Suchen und Sortieren

Stud.-Nummer: Datenstrukturen & Algorithmen Seite 1

Prof. H. Herbstreith Fachbereich Informatik. Leistungsnachweis. Informatik 1 WS 2001/2002

Prüfung Algorithmen und Datenstrukturen I

Programmierung für Mathematik HS11

Otto-von-Guericke-Universität Magdeburg Fakultät für Informatik Institut für Simulation und Graphik Prof. Dr. Holger Theisel

Probeklausur Java Einführung in die Informatik. Wintersemester 2014/2015

Klausur zur Lehrveranstaltung. Technische Informatik für Ingenieure WS 2008/09

Erste Java-Programme (Scopes und Rekursion)

pue13 January 28, 2017

Prüfung Algorithmen und Datenstrukturen I

Informatik II Prüfungsvorbereitungskurs

Gliederung. 5. Compiler. 6. Sortieren und Suchen. 7. Graphen

Klausur "ADP" SS 2015

Probeklausur zur Vorlesung

Klausur - Informatik I SS 05. Note: Bearbeitungszeit 120 Minuten Keine Hilfsmittel

Klausur Sommersemester 2012 Datenstrukturen und Algorithmen 24. September 2012

Technische Universität Braunschweig Institut für Programmierung und Reaktive Systeme

Methoden und Wrapperklassen

JAVA für Nichtinformatiker - Probeklausur -

Abschlussklausur. Lösung

7. Dynamische Datenstrukturen Bäume. Informatik II für Verkehrsingenieure

Neben der Verwendung von Klassen ist Vererbung ein wichtiges Merkmal objektorientierter

Institut für Programmierung und Reaktive Systeme 2. Februar Programmieren I. Übungsklausur

2. Unterprogramme und Methoden

2 Programmieren in Java I noch ohne Nachbearbeitung

Übungen zu Middleware Universität Erlangen-Nürnberg Informatik 4, 2007 Z-Java-Exceptions.fm

Pro Informatik 2009: Objektorientierte Programmierung Tag 18. Marco Block-Berlitz, Miao Wang Freie Universität Berlin, Institut für Informatik

Tutoraufgabe 1 (Starke Zusammenhangskomponenten):

Beispiellösung zur Klausur AI2 im Sommersemester 2007

Fakultät IV Elektrotechnik/Informatik

Bachelorprüfung: Objektorientierte Softwareentwicklung

Datenstrukturen und Algorithmen (SS 2013) Prof. Dr. Leif Kobbelt Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael Kremer

Datenstrukturen und Algorithmen (SS 2013)

Institut für Programmierung und Reaktive Systeme 25. Januar Programmieren I. Übungsklausur

Universität zu Lübeck Institut für Telematik. Prof. Dr. Stefan Fischer

1. Typen und Literale (6 Punkte) 2. Zuweisungen (6 = Punkte)

NAME, VORNAME: Studiennummer: Matrikel:

Klausur Algorithmen und Datenstrukturen

7. Sortieren Lernziele. 7. Sortieren

Übung Algorithmen und Datenstrukturen

Klausur Algorithmen und Datenstrukturen

Punkte. Teil 1. Teil 2. Summe. 1. Zeigen Sie, dass der untenstehende Suchbaum die AVL-Bedingung verletzt und überführen Sie ihn in einen AVL-Baum.

Stud.-Nummer: Algorithmen & Datenstrukturen Seite 1

Datenstrukturen (SoSe 12) Klausur (Modulabschlussprüfung)

Klausur zur Vorlesung Informatik 1 im Wintersemester 2014/2015 am 18. Februar Bearbeitungszeit: 90 Minuten Gesamtpunktezahl: 90 Punkte

Institut für Programmierung und Reaktive Systeme. Java 2. Markus Reschke

JAVA - Methoden,... T.Bosse

Klausur Software-Entwicklung März 01

Klausur zur Lehrveranstaltung. Technische Informatik für Ingenieure WS 2009/10

Übung Algorithmen und Datenstrukturen

EINI LogWing/WiMa. Einführung in die Informatik für Naturwissenschaftler und Ingenieure. Vorlesung 2 SWS WS 17/18

Konstruktor. public Rational(int i) { Zaehler = i; Nenner = 1; }

Aufgabe 1 (Programmanalyse, Punkte)

f 1 (n) = log(n) + n 2 n 5 f 2 (n) = n 3 + n 2 f 3 (n) = log(n 2 ) f 4 (n) = n n f 5 (n) = (log(n)) 2

Präsenzübung Datenstrukturen und Algorithmen SS 2014

Probeklausur C/C++ Einführung in die Informatik. Wintersemester 2016/2017

Probeklausur Java Einführung in die Informatik. Wintersemester 2014/2015. Musterlösung

Vorkurs Informatik WiSe 17/18

Carlos Camino Grundlagen: Algorithmen und Datenstrukturen SS 2015

Objektorientierte Programmierung Studiengang Medieninformatik

Algorithmen und Datenstrukturen 07

Klausur Algorithmen und Datenstrukturen I SS 03

Kapitel 9. Programmierkurs. Attribute von Klassen, Methoden und Variablen. 9.1 Attribute von Klassen, Methoden und Variablen

Algorithmen und Datenstrukturen 1 VU 6.0 Nachtragstest SS Oktober 2014

Abschlussklausur Lösung. Bitte in Druckschrift leserlich ausfüllen!

Physikalisch Technische Lehranstalt Wedel 31. Januar 2004 Prof. Dr. Uwe Schmidt

C# - Einführung in die Programmiersprache Methoden. Leibniz Universität IT Services

Algorithmen und Datenstrukturen. Kapitel 4: Suchverfahren. Skript zur Vorlesung. Algorithmen und Datenstrukturen

Vorkurs Informatik WiSe 16/17

Teil 5 - Java. Programmstruktur Operatoren Schlüsselwörter Datentypen

Name:... Matr.-Nr... Bearbeitungszeit: 120 Minuten

Allgemeine Informatik II 14. Juli 2007 (SS 2007) Prof. Dr. Franz Schweiggert / Norbert Heidenbluth

Stud.-Nummer: Datenstrukturen & Algorithmen Seite 1

Technische Universität Braunschweig

Welche Informatik-Kenntnisse bringen Sie mit?

Muster. Informatik 3 (Februar 2004) Name: Matrikelnummer: Betrachten Sie den folgenden Suchbaum. A G H J K M N

Stud.-Nummer: Datenstrukturen & Algorithmen Seite 1

Datenstrukturen und Algorithmen 2. Klausur SS 2001

Fragenkatalog 1. Kurseinheit

Beispielprüfung Datenstrukturen und Algorithmen D-INFK

Dr. Lars Hildebrand Fakultät für Informatik Technische Universität Dortmund

Transkript:

Name: Seite 1 Beantworten Sie die Fragen in den Aufgaben 1 und 2 mit einer kurzen, prägnanten Antwort. Aufgabe 1 (8 Punkte) 1. Wie wird bei der Zusicherungsmethode die Zusicherung genannt, die vor Eintritt und vor Austritt bei Schleifen gilt? 2. Mit welcher Traversierung durch einen Suchbaum erhält man eine aufsteigend sortierte Folge? 3. Wieviele Bits werden für die Codierung einer double-zahl verwendet? 4. Nach welchem Prinzip arbeitet ein Keller? 5. Wie ist die Laufzeit (O-Notation) von QuickSort im Worst Case abhängig von der Array-Länge n? 6. Wie sieht -2 in der 4Bit 2-er Komplementdarstellung aus? 7. Wie nennt man minimal ausgeglichene AVL-Bäume? 8. Welche zwei Typen von Knoten besitzt ein Spielbaum?

Name: Seite 2 Aufgabe 2 (8 Punkte) Alle Fragen beziehen sich auf die Programmiersprache Java 5. 1. Welche Methode muss eine ausführbare Klasse immer besitzen? 2. Wie nennt man eine Methode, wenn sie in einer abgeleiteten Klasse die gleiche Signatur hat wie in der Oberklasse? 3. Was verwendet man, wenn man mit Hilfe der Klasse Collections eine Liste sortieren will, die jedoch keine Comparable-Objekte enthält? 4. Mit welchem Schlüsselwort kennzeichnet man in Java Klassenmethoden? 5. Wie lautet der Ausdruck, um zu überprüfen, ob eine Referenz f auf ein Objekt vom Typ String verweist? 6. Was bedeutet der Rückgabewert void bei Methoden in Java? 7. Gegeben ist folgender Ausdruck: int a = 1 == 2? 3 : 4; Welchen Wert hat a? 8. Die Klasse MyException erbt von der Klasse Exception. Wie lautet der Code innerhalb eines Methodenkopfes, mit dem Sie deklarieren, dass eine Methode eine MyException werfen könnte?

Name: Seite 3 Beantworten Sie die Aufgabe 3, indem Sie unten genau ein Kreuz machen. Ist Ihre Antwort richtig, erhalten Sie alle Punkte. Ist sie falsch, erhalten Sie keinen Punkt. Aufgabe 3 (5 Punkte) Gegeben sei folgende Java-Klasse: import AlgoTools.IO; public class Raum{ public Raum vor; public Raum hinter; public Raum neben; public String name; public void baueraum(raum vor, Raum hinter, Raum neben, String name){ this.vor = vor; this.hinter = hinter; this.neben = neben; this.name = name; public static void main(string[] args){ Raum kueche = new Raum(); Raum bad = new Raum(); Raum wohnzimmer = new Raum(); Raum schlafzimmer = new Raum(); kueche.baueraum(bad, wohnzimmer, schlafzimmer, "Kueche"); bad.baueraum(kueche, wohnzimmer, schlafzimmer, "Bad"); wohnzimmer.baueraum(kueche, schlafzimmer, bad, "Wohnzimmer"); schlafzimmer.baueraum(bad, wohnzimmer, kueche, "Schlafzimmer"); bad.hinter = kueche.neben; bad.name = schlafzimmer.hinter.name; wohnzimmer.vor = schlafzimmer.hinter; IO.println(bad.hinter.hinter.vor.neben.name); Welche Ausgabe hat die Methode main dieser Klasse? Kueche Bad Wohnzimmer Schlafzimmer

Name: Seite 4 Tragen Sie bei den Aufgaben 4 bis 10 Ihre Lösungen in den vorgesehenen Platz ein. Aufgabe 4 (7 Punkte) Betrachten Sie die Java-Klasse Sichtbar und geben Sie die Werte der Variablen a, b und c zu den Zeitpunkten 1-7 an. Falls eine oder mehrere der Variablen zu einem Zeitpunkt Ihrer Meinung nach nicht definiert sind, so setzen Sie an der entsprechenden Stelle ein Minus (-) in die Tabelle. public class Sichtbar { public static int a = 42; public static int[] b ={7; public static void main(string[] args) { /* Zeitpunkt 1 */ int a = methode1(b); /* Zeitpunkt 5 */ a = methode2(); /* Zeitpunkt 7 */ public static int methode1(int [] c){ /* Zeitpunkt 2 */ c[0]= 5; /* Zeitpunkt 3 */ c = new int[1]; /* Zeitpunkt 4 */ return c[0]; public static int methode2(){ /* Zeitpunkt 6 */ return 2+a; Zeitpunkt 1 2 3 4 5 6 7 int a int [] b int [] c

Name: Seite 5 Aufgabe 5 (5 Punkte) a) Tragen Sie die 32-Bit-Codierung nach Definition des Skriptes für die Zahl -6.5 in die vorgesehen Kästchen ein (3 Punkte). Vorzeichen Exponent reduzierte Mantisse b) Welche Zahl wird durch folgende Bitfolge codiert (2 Punkte)? 0 00000011 01000000000000000000000

Name: Seite 6 Aufgabe 6 (6 Punkte) Gegeben sei folgende Java-Klasse: import AlgoTools.IO; public class Raetsel { public static int frage(int n) { if (n < 0) throw new IllegalArgumentException("n < 0"); int x = 1, y = 1; for (int i = 1; i < n; i++) { y = y + x; x = y - x; return y; a) Was berechnet die Methode public static int frage(int n) der Klasse Raetsel für n 0? (4 Punkte) b) Wie ist die Laufzeit der Methode public static int frage(int n) in der O-Notation? (2 Punkte)

Name: Seite 7 Aufgabe 7 (6 Punkte) Gegeben sei folgende Java-Klasse: public class Fraglich { public static int methode(int a, int b, int c) { int wert = 0; for (int i = a; i > 0; i--) { for (int j = 0; j < b; j++) { wert += c; return wert; a) Was berechnet die Methode public static int methode(int a, int b, int c) der Klasse Fraglich für ganze Zahlen a, b, c 0? (4 Punkte) b) Wie ist die Laufzeit der Methode public static int methode(int a,int b,int c) in der O-Notation, wenn a = b? (2 Punkte)

Name: Seite 8 Aufgabe 8 (4 Punkte) Sortieren Sie die Zahlenfolge 7 5 4 6 3 2 1 8 nach der Methode des iterativen MergeSort. Stellen Sie die Arbeitsweise des Algorithmus dar, indem Sie die Gesamtfolge immer dann in eine neue Zeile schreiben, wenn alle Teilfolgen einer Länge fertig sortiert sind. Verwenden Sie senkrechte Striche ( ), um die Grenzen der Teilfolgen zu markieren.

Name: Seite 9 Aufgabe 9 (6 Punkte) Gegeben sei folgendes char-array: O L I V E R Sortieren Sie das char-array mit dem Heapsort-Verfahren aus der Vorlesung lexikografisch. a) Geben Sie für die erste Phase den Baum sowie den daraus erzeugten Heap an. (2 Punkte) Ursprungsbaum: Heap: b) Für Phase 2 geben Sie jeweils den Baum nach Entfernen der Wurzel, den reorganisierten Heap, sowie das zugehörige aktuelle char-array für jeden Sortierschritt nach dem Reorganisieren an. (4 Punkte)

Name: Seite 10 Aufgabe 10 (5 Punkte) Gegeben sei folgender Baum: 5 2 8 3 4 9 6 1 Tragen Sie die Traversierungen dieses Baumes in folgender Tabelle ein: Preorder Inorder Postorder Tiefensuche Breitensuche

Name: Seite 11 Aufgabe 11 (6 Punkte) Gegeben sei die Postorder-Traversierung eines Suchbaums: 14 9 18 17 19 42 25 23 16 Zeichnen Sie den zugehörigen Baum.

Name: Seite 12 Aufgabe 12 (6 Punkte) Gegeben sei folgender AVL-Baum: 80 75 85 70 a) Fügen Sie in den Baum die Zahl 60 ein, indem Sie den Knoten direkt in den obigen AVL-Baum einzeichnen. Versehen Sie den kompletten Baum mit Balancen. (1 Punkt) b) Führen Sie eine eventuell notwendige Rotation aus und zeichnen Sie den reorganisierten Baum erneut. Vermerken Sie, welche Rotation Sie verwenden haben. (2 Punkte) c) Fügen Sie in den neu gezeichneten Baum in Aufgabenteil b) die Zahl 73 ein und versehen Sie den kompletten Baum mit Balancen (1 Punkt). d) Führen Sie die notwendige Rotation aus und zeichnen sie den reorganisierten Baum unten nochmals. Vermerken Sie die Art der Rotation, die Sie verwendet haben (2 Punkte).

Name: Seite 13 Tragen Sie bei Aufgabe 13 Ihre Lösungen in den vorgesehenen Platz ein. Aufgabe 13 (6 Punkte) Geben Sie jeweils an, ob der Graph topologisch sortiert werden kann. Ist der Graph topologisch sortierbar, geben Sie die zugehörige Sortierung an. Wenn der Graph nicht topologisch sortierbar ist, begründen Sie, warum. a) A B D C b) topologisch sortierbar? Sortierung oder Begründung A B D C c) topologisch sortierbar? Sortierung oder Begründung A B E D C topologisch sortierbar? Sortierung oder Begründung

Name: Seite 14 Bei den Aufgaben 14 bis 16 müssen Sie selbst einige Zeilen Java-Code schreiben. Nutzen Sie den vorgesehenen Platz zwischen den geschweiften Klammern. Aufgabe 14 (6 Punkte) Ergänzen Sie in der gegebenen Klasse BaumTools die Methode hoehe, die die Anzahl der Ebenen des Baumes zurückgibt. Hinweis: Verwenden Sie Rekursion! public class BaumTools { public static int hoehe (Baum b){

Name: Seite 15 Aufgabe 15 (8 Punkte) Ein Spielzeughersteller verkauft Flummis mit besonderer Sprungkraft. Wenn sie aus einer bestimmten Höhe h (in Metern) fallen gelassen werden, erreichen sie nach jedem Aufkommen 90 Prozent der Höhe des letzten Sprunges. Ergänzen Sie die rekursive Methode huepferrek(double h) so, dass sie berechnet und zurückgibt, wie oft der Flummi hüpft, bevor er nur noch weniger als einen Millimeter vom Boden abhebt. Implementieren Sie außerdem die Methode huepferiter(double h), die das gleiche berechnet, jedoch nicht rekursiv, sondern iterativ! Achten Sie auf eine geeignete Fehlerbehandlung und verwenden Sie als Fehlerklasse die Klasse RuntimeException! Hinweis: Ein Millimeter entspricht einem tausendstel Meter. public class Flummi { public static int huepferrek(double h) { public static int huepferiter(double h) {

Name: Seite 16 Aufgabe 16 (7 Punkte) Schreiben Sie Klasse KreisListe, die von VerweisListe erbt. Eine KreisListe hat die Eigenschaft, dass beim Durchlaufen der Liste niemals an der Endposition stehen geblieben wird. Statt dessen wird in dem Moment, wo die Endposition erreicht wird, wieder an den Anfang der Liste gesprungen. Implementieren Sie die Klasse KreisListe mit der oben beschriebenen Eigenschaft. Dazu müssen sie eine der Listen-Methoden überschreiben. Ergänzen Sie den unten stehenden Code. public class KreisListe {