Fachbereich 12 – Institut für Informatik Dr. Karsten Tolle Datenbanken und Informationssysteme (DBIS) Grundlagen der Programmierung 2 Sommersemester 2010 Aufgabenblatt Nr. 7 Abgabe: Mittwoch 09. Juni vor! der Vorlesung Aufgabe 1 (20 Punkte) Falls sich noch kein JDK auf dem Rechner befindet, laden Sie ein Java Development Kit (http://java.sun.com/javase/downloads/index.jsp) herunter und installieren Sie es. Machen Sie sich mit den Befehlen javac und java vertraut, indem Sie diese Befehle ohne Parameter aufrufen und die Usage-Beschreibung sowie die Erklärung der möglichen Optionen durchlesen. a) Schreiben Sie auf welche Version genau bei Ihnen installiert ist oder von Ihnen installiert wurde. Geben Sie dabei die Versionsnummern des Compilers und des Interpreters getrennt an. (5 Punkte) b) Erläutern Sie kurz wofür die Option.-cp bzw. -classpath bei den beiden Befehlen javac und java genutzt wird. (5 Punkte) c) Erstellen Sie mit einem Texteditor eine Java-Klasse mit einer Main-Methode. Die MainMethode soll Ihren Vor- und Nachnamen, sowie ihre Matrikelnummer auf der Konsole ausgeben. Kompilieren Sie die Klasse und führen Sie die Main-Methode aus. (Die schriftliche Abgabe braucht nur den entsprechenden Java-Code enthalten. Schicken Sie zusätzlich Ihrem Tutor dem Java-Code und die kompilierte .class-Version per E-Mail!) (10 Punkte) Aufgabe 2 (50 Punkte) Gegeben ist der folgende Python-Code für die Funktion z_python: #! /usr/bin/env python def z_python(n): """Bestimmt entsprechende Zahlen bis n""" for p in range(2, n): for x in range(2,p): if p % x == 0 : print p, 'ist gleich', x , '*', p/x break else: # nichts gefunden print p, 'ist eine entsprechende Zahl' return a) Machen Sie sich klar, was die Funktion tut und beschreiben Sie dies kurz mit eigenen Worten. (6 Punkte) b) Welche Ausgaben erwarten Sie für die folgenden Aufrufe: (je 3 Punkte) 1. z_python(-12) 2. z_python(0) 3. z_python(17) c) Erstellen Sie eine Java-Klasse, welche die Methode z_java enthält. Diese Methode soll eine Übersetzung der gegebenen Funktion z_python sein, also das gleiche tun wie diese. Erläutern Sie insbesondere die Stellen, die nicht 1-1 übersetzt werden können, falls so etwas existiert. (35 Punkte) Aufgabe 3 (30 Punkte) Im Python Interpreter werden folgende Zeilen eingegeben: >>> >>> ... ... ... a, b = 0, 1 while b < 10: print b a, b = b, a+b a) Welche Ausgabe würde im Interpreter ausgegeben werden? (5 Punkte) b) Wandeln Sie diesen Python-Code in Java-Code um, der die gleiche Ausgabe erzeugen würde. Erläutern Sie insbesondere die Stellen, die nicht 1-1 übersetzt werden können, falls so etwas existiert. (25 Punkte)