Sommersemester Jewgeni Rose. Technische Universität Braunschweig

Ähnliche Dokumente
JAVA für Nichtinformatiker - Probeklausur -

Informatik Hochschule Mainz Geoinformatik und Vermessung. Wiederholung. Frohes Fest und Guten Rutsch!

Institut für Programmierung und Reaktive Systeme 9. Januar Programmieren I. 6. Übungsblatt

Übungsblatt 13. Abgabe / Besprechung in Absprache mit dem Tutor

Programmierung für Mathematik (HS13)

Lineare Funktionen. Das rechtwinklige (kartesische) Koordinatensystem. Funktionen

Die Welt in unseren Programmen false -1.4E-12. false. Klassen

Institut für Programmierung und Reaktive Systeme 5. Dezember Programmieren I. 5. Übungsblatt

Institut für Programmierung und Reaktive Systeme 20. November Programmieren I. 4. Übungsblatt

Programmiertechnik Übungen zu Klassen & -methoden

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

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

Programmierkurs Java

Übungsblatt 13. Abgabe / Besprechung in Absprache mit dem Tutor

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

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

Lineare Funktion Eigenschaften von linearen Funktionen Übungen Bearbeite zu jeder der gegebenen Funktionen die Fragen:

Wiederholung der Endklausur am 24. September 2013

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

Probeklausur Informatik 2 Sommersemester 2013

Programmierung WS14/15 Lösung - Präsenzübung C. Aschermann, F. Frohn, J. Hensel, T. Ströder

Demo für

Tutoraufgabe 1 (Seiteneekte):

Einführung in die Programmierung

Klassenvariablen, Klassenmethoden

Klausur Grundlagen der Programmierung

Hochschule Augsburg, Fakultät für Informatik Name:... Prüfung "Programmieren 1", IN1bac, WS 10/11 Seite 1 von 6

Tutoraufgabe 1 (Programmanalyse):

Praktikum zu Einführung in die Informatik für LogWiIngs und WiMas Wintersemester 2017/18. Vorbereitende Aufgaben

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

Geoinformatik und Vermessung Prüfung 502 : Informatik (JAVA)

Fakultät IV Elektrotechnik/Informatik

Programmierung WS12/13 Lösung - Präsenzübung M. Brockschmidt, F. Emmes, C. Otto, T. Ströder

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

1. Aufgabe (6 Punkte): Java-Programmierung (Arrays)

Klausur zur Vorlesung Einführung in die Programmierung

Methoden. Gerd Bohlender. Einstieg in die Informatik mit Java, Vorlesung vom

Institut für Programmierung und Reaktive Systeme 4. Dezember Programmieren I. 5. Übungsblatt

Präsenzübung Programmierung WS 2017/2018

Geoinformatik und Vermessung Prüfung 502 : Informatik (JAVA)

Parameterübergabemechanismen für den Methodenaufruf

1.2 Attribute und Methoden Aufbau einer Java-Klasse:

Intensivübung zu Algorithmen und Datenstrukturen

Praktikum zu Einführung in die Informatik für LogWiIngs und WiMas Wintersemester 2016/17. Vorbereitende Aufgaben

Programmierstarthilfe SS 2009 Fakultät für Ingenieurwissenschaften und Informatik 4. Blatt Für die Woche vom bis zum 22.5.

Objektorientierung. Programmierstarthilfe WS 2010/11 Fakultät für Ingenieurwissenschaften und Informatik

Klausur Informatik 1 WS 07/08. Aufgabe Max. Punkte Punkte. Gesamtpunkte:

Programmierung WS17/18 Lösung - Präsenzübung 09./

Lineare Funktionen. Klasse 8 Aufgabenblatt für Lineare Funktionen Datum: Donnerstag,

Probeklausur zur Vorlesung

Programmieren, Wintersemester 13/14 Übungsleiter: Sebastian Ebers Aufgabenblatt 3

Tutoraufgabe 1 (Überladen von Methoden):

Einführung in die Programmierung. (K-)II/Wb17

Anregungen zu Übung 2

- EINSTIEG IN JAVA - (1/5) Datum:

IT 2 WS 2014/2015 Übungsblatt 3

IT 2 WS 2013/2014 Übungsblatt 3

Heute. Nachbetrachtung Wissensüberprüfung. Sortieren Interface Comparable TreeSet Sortieren von Arrays: Arrays.sort() 3.12.

Sortieren von Objekten

Universität Augsburg, Institut für Informatik Sommersemester 2001 Prof. Dr. Martin Ester 16. Juli Klausur

2 063,4,. % 7. : ,4 26,6 Die Innenwinkel des Dreiecks *) betragen 63,4, 26,6 und :90.

Algorithmen und Datenstrukturen SS Übungsblatt 1: Grundlagen

Musterübung 09: Vererbung und Dynamische Bindung

MATHEMATIK G10. (1) Bestimme die Gleichung der Geraden durch die beiden Punkte

Praktikum zu Einführung in die Informatik für LogWings und WiMas Wintersemester 2013/14

Tutoraufgabe 1 (Seiteneekte):

Einführung in das Programmieren Probeklausur Lösungen

Einführung in die Programmierung für NF MI. Übung 04

Klausur Software-Entwicklung März 01

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

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

Aufgabenblatt 5. Kompetenzstufe 1. Allgemeine Informationen zum Aufgabenblatt:

Folienpaket 9 Themenschwerpunkte: Vererbung und Polymorphie /2016 Dr. Daniel Haase - Vorkurse Informatik V3/V4

Fortgeschrittene Programmiertechnik Klausur SS 2015 Angewandte Informatik Bachelor

Einstieg in die Informatik mit Java

Prüfung Softwareentwicklung II (IB)

Aufgabe 1 (Programmanalyse, Punkte)

Programmierung

1 Aufgaben 1.1 Umgebungsvariable setzen: CLASSPATH

Vorname: Nachname: Matrikelnummer: Studiengang (bitte ankreuzen): Informatik Bachelor Informatik Lehramt Mathematik Bachelor Sonstige:

Prüfung Softwareentwicklung II (IB)

Nachklausur zu Einführung in die Programmierung 14. Oktober 2008 (SS 2008) Prof. Dr. Franz Schweiggert / Christoph Ott

Institut für Programmierung und Reaktive Systeme 18. Dezember Programmieren I. 6. Übungsblatt

Programmierstarthilfe SS 2010 Fakultät für Ingenieurwissenschaften und Informatik 6. Blatt Für die Woche vom bis zum 4.6.

Programmieren in Java -Eingangstest-

Stack. Seniorenseminar Michael Pohlig

Objektorientierte Programmierung

Kapitel 10. Komplexität von Algorithmen und Sortieralgorithmen

Einfache Arrays. Dr. Philipp Wendler. Zentralübung zur Vorlesung Einführung in die Informatik: Programmierung und Softwareentwicklung

1. Die rekursive Datenstruktur Liste

PROCESSING EINE ZUSAMMENFASSUNG. Created by Michael Kirsch & Beat Rossmy

Kantonsschule Solothurn RYS SS11/ Nach welcher Vorschrift wird der Funktionswert y aus x berechnet? Welcher Definitionsbereich ID ist sinnvoll?

und schneidet die -Achse im Punkt 0 3. Berechnen Sie die Koordinaten der Schnittpunkte von und. Lösung: 4 1;2 4

Zentralübung Grundlagen der Programmierung

Prüfung Datenstrukturen und Algorithmen, D-INFK. Datenstrukturen & Algorithmen

1.) Zahlensysteme (10 Punkte)

Musterlösung Stand: 5. Februar 2009

Tutoraufgabe 1 (Überladen von Methoden):

Transkript:

P r o b e k l a u s u r Z u s a t z a u f g a b e n E i n f ü h r u n g i n d a s P r o g r a m m i e r e n Sommersemester 2013 Jewgeni Rose Technische Universität Braunschweig j.rose@tu-bs.de 1

Aufgabe 1 Objektorientierung Gegeben sei folg Klasse Punkt: public class Punkt { private double x, y; // Nullpunkt public Punkt() { this(0, 0); public Punkt(double x, double y) { this.x = x; this.y = y; public double getx() { return x; public double gety() { return y; Dabei beschreibt die Klasse einen Punkt im Koordinatensystem mit den beiden Attributen x und y, welche für die jeweiligen Achsenwerte stehen. a) Erweitern Sie die Klasse Punkt um die zwei Methoden: public double abstand() { public double abstand(punkt p) { Die parameterlose Methode berechnet den Abstand zum Nullpunkt und die untere Methode den Abstand zum Punkt p. Der Abstand d zweier Punkte berechnet sich wie folgt: ( ) ( ) 2

b) Erstellen Sie eine eigene Klasse Gerade, die mit Hilfe der Klasse Punkt eine Gerade in der Ebene repräsentiert. Eine Gerade g sei dabei durch folg Gleichung definiert: y = mx + n m ist die Steigung der Geraden n ist der Achsenabschnitt ( ) Die Klasse Gerade soll im Konstruktor zwei Punkte p und q übergeben bekommen und daraus die Geradengleichung berechnen. m und n sollen in privaten Attributen gespeichert und mittels öffentlicher Methoden steigung und achsenabschnitt zugänglich gemacht werden. Hinweis: Sie können davon ausgehen, dass die Gerade keine Senkrechte ist. c) Erweitern Sie die Klasse Gerade um eine weitere Methode schnittpunkt welche den Schnittpunkt dieser Geraden zu einer anderen Geraden g berechnet. public Punkt schnittpunkt(gerade g) { Um den Schnittpunkt zweier Geraden zu berechnen, kann man beide Geradengleichungen gleichsetzen und nach x auflösen, was die x-koordinate liefert. Für die y- Koordinate setzt man x in eine der beiden Geradengleichungen ein und berechnet y. Hinweis: Sie können davon ausgehen, dass die Geraden nicht parallel zueinander stehen. 3

d) Erstellen Sie eine weitere Klasse Dreieck. Die Klasse soll im Konstruktor drei Punkte x, y und z übergeben bekommen und intern speichern. Darüber hinaus soll die Klasse die beiden Methoden inhalt und umfang besitzen, die entsprechend den Flächeninhalt und Umfang des Dreiecks berechnen. Nutzen Sie hierbei bereits vorhandene Methoden da wo es sich anbietet. Den Flächeninhalt A können Sie mit der Heron-Formel berechnen: ( ) ( ) ( ) wobei a, b und c die drei Seitenlängen des Dreiecks sind und s wie folgt berechnet wird: ( ) Aufgabe 2 for-schleifen a) Schreiben Sie eine statische Methode intersect die zwei ganzzahlige Mengen A und B erhält, deren Durchschnitt bildet und als Ergebnis eine neue Menge mit den Elementen zurückliefert. Beispiel: A = {2, 3, 4, 6, B = {1, 3, 6, 9 A B = {3, 6 public static int[] intersect(int[] a, int[] b) { b) Schreiben Sie eine statische Methode union die zwei ganzzahlige Mengen A und B erhält, deren Vereinigung bildet und als Ergebnis eine neue Menge mit den Elementen zurückliefert. Beispiel: A = {2, 3, 4, 6, B = {1, 3, 6, 9 A B = {1, 2, 3, 4, 6, 9 4

c) Schreiben Sie eine statische Methode complement die zwei ganzzahlige Mengen A und B erhält, deren Komplement bildet und als Ergebnis eine neue Menge mit den Elementen zurückliefert. Beispiel: A = {2, 3, 4, 6, B = {1, 3, 6, 9 A \ B = {2, 4 Hinweis: In der Mengenlehre gibt es im Allgemeinen keine Mengen, in denen die Elemente mehrfach vorkommen dürfen so auch hier nicht. Gehen Sie zudem bei allen Teilaufgaben sicher, dass das neue Array genauso groß ist, wie es Elemente enthält. Aufgabe 3 Rekursion, Sortieren Implementieren Sie den Algorithmus Quicksort für das Sortieren (von bspw. Feldern mit Zahlen). Der Pseudocode für den Sortieralgorithmus ist weiter unten aufgeführt. Sie können folg Methode als Ausgang für Ihr Programm betrachten: public static void quicksort(int[] array) { // Aufruf einer Hilfsmethode quicksort(int[], int, int) // (array, links, rechts) quicksort(array, 0, array.length - 1); 5

Quicksort: funktion quicksort(daten, links, rechts) i := links j := rechts pivot := daten[mitte] // teile das Feld in zwei Teile wiederhole solange i j // Suche von links ein Element, welches größer als // das Pivotelement ist wiederhole solange daten[i] < pivot i := i + 1 // Suche von rechts ein Element, welches kleiner als // das Pivotelement ist wiederhole solange daten[j] > pivot j := j - 1 falls i j dann tausche daten[i] mit daten[j] i := i + 1 j := j - 1 // Rekursionsschritt um beide Teile weiter aufzuteilen // und zu sortieren falls links < j dann quicksort(daten, links, j) falls i < rechts dann quicksort(daten, i, rechts) 6

Aufgabe 4 Automaten Im vierten Aufgabenblatt haben Sie bereits die sogenannten deterministischen endlichen Automaten (DEA) kennengelernt. Sie sind deterministisch, weil in jedem Schritt/Zustand jede Eingabe/jedes Verhalten eindeutig ist. Sie können also bei einer Eingabe x in Zustand Q1 nicht einmal in den Zustand Q2 und einmal in Q3 wechseln. Und endlich sind die Automaten, weil sie endlich viele Zustände besitzen. Ihre Aufgabe soll es jetzt sein einen sogenannten vdea zu konstruieren, wobei das v für vollständig steht. Das bedeutet, dass in jedem Zustand jede Eingabe definiert sein muss. a) Zeichnen Sie einen Automatengraphen (s. Blatt 4) für das folg Problem: Sie haben eine Eingabe als Zeichenkette (String) und sollen überprüfen ob das Wort SOS darin enthalten ist. Achten Sie darauf, dass das Wort für sich alleine steht. Groß- und Kleinschreibung soll nicht unterschieden werden. Eingaben die das Wort enthalten, müssen das mit einer positiven Rückgabe (vom Typ boolean) bestätigen. Der folg Beispielsatz soll false liefern: Ich habe soeben Sose falsch geschrieben. b) Implementieren Sie Ihren Graphen aus a) als Java-Programm. 7