Sie sind auf Seite 1von 6

Objektorientierte und funktionale Programmierung im SS 2013

bungsblatt Nr. 7
Dieses bungsblatt ist in der Zeit zwischen 03.06.2013 und 09.06.2013 zu bearbeiten.

Dr. Andreas Hoffmann Dr. Alexander Holland Prof. Dr. Madjid Fathi

1. Arrays und Schleifen (Java)


Betrachten Sie den folgenden Quellcode: public class ArrayWork { public static double ArrayFunc(double[] w, int func) { //Ihre Loesung }

15 min, 8 P

public static void main(String[] args) { int arg=Integer.parseInt(args[0]); double werte[] = {1.9, 4.6, 99.0, 12.49, 78.99, 0.5, 56.98, 8.90, 119.90, 2.20}; System.out.println(ArrayWork.ArrayFunc(werte, arg)); } } Das Programm ArrayWork.java soll verschiedene Operationen auf ein Array mit double-Werten realisieren. Das Array ist bereits vorgegeben (double werte[]) und die entsprechende Operation wird per Programmparameter als int-Wert angegeben (int arg). Das Array und der Parameter werden einer Funktion ArrayFunc bergeben in der die folgenden Funktionen implementiert werden sollen: - func=1: Gib den kleinsten Wert aus dem Array zurck - func=2: Gib den grten Wert aus dem Array zurck - func=3: Gib den arithmetischen Mittelwert aus dem Array zurck - func=4: Addiere alle Elemente des Arrays, addiere 19 % MwSt. und gib das Ergebnis zurck. - Fr alle anderen Werte von func soll 0 zurckgegeben werden.

Dieses Dokument wurde am 09.06.2013 um 18:02 Uhr erstellt. Seite 1/6

Objektorientierte und funktionale Programmierung im SS 2013


bungsblatt Nr. 7

Dr. Andreas Hoffmann Dr. Alexander Holland Prof. Dr. Madjid Fathi

Implementieren Sie die gewnschte Funktionalitt unter der Verwendung von Schleifen und weiteren Funktionen. Laden Sie Ihre Lsung als ArrayWork.java in DUESIE hoch!

2. Arrays und Schleifen (Java)

10 min, 8 P

Erstellen Sie ein Java-Programm, das eine Methode addVektor definiert, die zwei int-Arrays (a und b) als Parameter erhlt, eine Vektor (d.h. elementweise) -Addition ausfhrt und das Ergebnis als int-Array zurckliefert. Der Methoden-Kopf soll wie folgt aussehen: public static int[] addVektor(int[] a, int[] b) Gehen Sie davon aus, dass die beiden Arrays die gleiche Gre haben. Verwenden Sie fr Ihr Programm das folgende Hauptprogramm:

Speichern Sie die Datei unter VektorWork.java ab und laden sie in DUESIE hoch.

Dieses Dokument wurde am 09.06.2013 um 18:02 Uhr erstellt. Seite 2/6

Objektorientierte und funktionale Programmierung im SS 2013


bungsblatt Nr. 7

Dr. Andreas Hoffmann Dr. Alexander Holland Prof. Dr. Madjid Fathi

3. Arrays und Schleifen (Java)

10 min, 10 P

Erweitern Sie das Programm aus Aufgabe 2 so, dass es auch Arrays unterschiedlicher Gre behandeln kann. Dazu soll bei der Berechnung wie folgt vorgegangen werden: Array a: 2 Elemente Array b: 4 Elemente c[0] = a[0] + b[0] c[1] = a[1] + b[1] c[2] = b[2] c[3] = b[3] Verwenden Sie nun das folgende Hauptprogramm:

ndern Sie bitte den Klassennamen aus Aufgabe 2 in VektorMultWork um! ndern Sie die Methode addVektor enstprechend der gewnschten neuen Funktionalitt. Speichern Sie Ihre Datei als VektorMultWork.java ab und laden Sie diese Datei in DUESIE hoch!

Dieses Dokument wurde am 09.06.2013 um 18:02 Uhr erstellt. Seite 3/6

Objektorientierte und funktionale Programmierung im SS 2013


bungsblatt Nr. 7

Dr. Andreas Hoffmann Dr. Alexander Holland Prof. Dr. Madjid Fathi

4. Java Verstndnisfragen (Freitext)

10 min, 8 P

Schreiben Sie bitte die Antworten in das Freitextfeld. Halten Sie sich mglichst kurz. a) Was ist die Aufgabe der Garbage Collection im Allgemeinen? Wer verwaltet die Garbage Collection in Java? b) Erlutern Sie den Unterschied zwischen call-by-value und call-by-reference. Wieso wird call-by-reference ausgefhrt, wenn ein Objekt an eine Methode bergeben wird? c) Beschreiben Sie die Idee des Exception Handling in Java.

_____________________________________________________________ _____________________________________________________________ _____________________________________________________________ _____________________________________________________________ _____________________________________________________________ _____________________________________________________________ _____________________________________________________________ _____________________________________________________________ _____________________________________________________________ _____________________________________________________________

Dieses Dokument wurde am 09.06.2013 um 18:02 Uhr erstellt. Seite 4/6

Objektorientierte und funktionale Programmierung im SS 2013


bungsblatt Nr. 7

Dr. Andreas Hoffmann Dr. Alexander Holland Prof. Dr. Madjid Fathi

5. Quellcode Analyse (Freitext)


Laden Sie sich die Datei Geo.zip herunter und entpacken Sie die Dateien in ein Verzeichnis Ihrer Wahl. Das Programm verschiebt ein zuvor erzeugtes Quadrat um eine Einheit nach rechts oben (Delta x=1, Delta y=1). Die Ausgaben erfolgen rein textuell, d.h. die einzelnen Koordinaten werden ausgegeben.

20 min, 15 P

a) Die zip-Datei besteht aus insgesamt 4 Java-Dateien: TestIt.java, Punkt.java, Linie.java und Quadrat.java. Kompilieren Sie die Dateien und starten Sie die Datei TestIt. Funktioniert das Programm korrekt? Schauen Sie sich das Ergebnis der Koordinatenverschiebung genau an! !! (Eine Fehlerbeseitigung wird hier noch nicht erwartet und auch keine Angaben in dem Freitextfeld!) b) Machen Sie sich mit dem Programm vertraut, indem Sie ein UML-Klassendiagramm, ausgehend von den Quellcodes der einzelnen Klassen, erstellen. (Das UML-Diagramm mssen Sie NICHT in DUESIE hochladen, es soll Ihnen beim Verstndnis des Programms helfen!) c) Erstellen Sie nun ein Objektdiagramm mit allen von der Anwendung erzeugten Objekten. Erkennen Sie nun, warum das Quadrat nicht um 1 Koordinaten-Einheit verschoben wird, sondern um 2? Schreiben sie das Freitextfeld die Begrndung warum das Quadrat nicht um 1 Koordinaten-Einheit, sondern um 2 Koordinaten-Einheiten verschoben wurde! d) Schreiben Sie nun in das Textfeld alle notwendigen nderungen, damit das Programm korrekt funktioniert. Hinweis: Es sind nur in einer Klasse nderungen vorzunehmen!

Dieses Dokument wurde am 09.06.2013 um 18:02 Uhr erstellt. Seite 5/6

Objektorientierte und funktionale Programmierung im SS 2013


bungsblatt Nr. 7

Dr. Andreas Hoffmann Dr. Alexander Holland Prof. Dr. Madjid Fathi

_____________________________________________________________ _____________________________________________________________ _____________________________________________________________ _____________________________________________________________ _____________________________________________________________ _____________________________________________________________ _____________________________________________________________ _____________________________________________________________ _____________________________________________________________ _____________________________________________________________

Viel Erfolg.

Dieses Dokument wurde am 09.06.2013 um 18:02 Uhr erstellt. Seite 6/6