Hochschule der Medien Stuttgart Studiengang Audiovisuelle Medien Praktikum Informatik - 1 Aufgabensammlung Prof. Uwe Schulz, Prof. Dr. Simon Wiest Sommersemester 2011 Organisation des Informatik Praktikums 1. Die Teilnahme am Praktikum ist Pflicht! Sie müssen an 80% der Termine Anwesend sein, bei 13 Terminen im Sommersemester dürfen Sie also nur zweimal unentschuldigt fehlen. 2. Sie können ab dem 3. Termin in jedem Praktikum den Dozenten eine Programmieraufgabe des letzten Aufgabenblatts abgeben. Die Abnahme der Übungen erfolgt in einem kurzen Fachgespräch von jeweils ca. 10 Minuten Dauer. Für die abgegebene Übung und das Gespräch erhalten Sie eine Note. 3. Im Laufe des Semesters werden zwei kurze Tests geschrieben. Die Note für das Praktikum ist das Mittel der drei Einzelnoten. 4. Vergessen Sie nicht, das Praktikum als Prüfungsleistung anzumelden! Dies geschieht online gegen Mitte des Semesters, gemeinsam mit der Anmeldung zu den anderen Prüfungen. Hinweise zur Installation der Programme für die Übungen Unter www.hdm-stuttgart.de/schulz/lehre/software finden Sie die Links zu den folgenden Programmen, die Sie benötigen, um die Übungen am eigenen Rechner durchzuführen: Java Developer Kit JDK: Java Compiler, API Bibliothek und VM . Aktuell ist die Version 6. www.oracle.com/technetwork/java/ Eclipse komfortable Entwicklungsumgebung: www.eclipse.org jdk-6-doc.zip auch unter java.sun.com zu finden. Enthält die Dokumentation zu den standard JavaKlassen. Entpacken Sie diese Dateien auf die Festplatte, z. B. in das Verzeichnis c:\dokumentation\javadoc, öffnen Sie die Datei index.html in einem Browser bzw. merken Sie sich die Adresse in Ihren Favoriten (Bookmarks). Guido Krügers Java Buch: laden Sie sich die .zip-Datei von www.javabuch.de herunter, entpacken Sie sie in ein Verzeichnis auf Ihrem Rechner und setzen Sie in Ihrem Browser ein Lesezeichen auf die Datei index.html im Verzeichnis html. HDM Stuttgart, Audiovisuelle Medien Aufgabensammlung Informatik 1, Sommer 2011 Bitte lösen Sie Aufgaben 1-6 bis zum 27.3.2011 Aufgabe 1 Lernen Sie nebenstehendes Java Programm auswendig! Achten Sie dabei besonders auf die Fehler, die Ihnen unterlaufen. Häufige Fehler sind: fehlendes Semikolon, falsche Klammer, z. B. ( statt { . public class Aufgabe1 { public static void main (String x[ ] ) { System.out.println(Hallo); System.out.println (wie geht es); } } Um dieses Programm auf dem Rechner zu implementieren, brauchen wir einen Java-Compiler, eine Java-Virtual Machine (JVM) sowie eine Software zum Bearbeiten (Editieren) des Programmtextes. Obwohl ein einfacher Text-Editor dazu völlig ausreicht, benutzen wir von Anfang an die professionelle Entwicklungsumgebung Eclipse, die sich in den letzen Jahren stark verbreitet hat. Das Java Develope Kit und Eclipse sind auf den Rechnern in den Übungesräumen vorinstalliert, Sie können die Software aber auch auf Ihrem privaten Rechner zuhause nutzen. Führen Sie jetzt die folgenden Schritte durch (zuhause beginnen Sie bei Schritt 3): 1. Melden Sie sich am System an Achtung: Im Laufe des Anmeldevorgangs erscheint ein Fenster mit schwarzem Hintergrund (MS-DOS Eingabeaufforderung), hier muss das Passwort nochmals eingegeben werden, ansonsten fehlt Ihre H-Disk (s. Schritt 2)! Wer noch keinen Account besitzt setzt sich zu jemand anderem dazu. 2. Starten Sie den Windows Datei-Explorer und stellen Sie fest, ob eine Disk H: existiert (wenn nicht: abmelden und nochmals anmelden, s. Schritt 1). 3. Starten Sie Eclipse (Start ->Programme->Eclipse) 4. Klicken Sie die „Welcome to Eclipse“-Seite weg. 5. Legen Sie ein neues Java-Projekt an (auf File->New->JavaProject oder auf File->New->Project klicken und dort Java Project auswählen). Nennen Sie das Projekt informatik1. Falls Sie in den Übungsräumen der Hochschule sind, gibt’s es im Verzeichnis H:\eclipse jetzt das Unterverzeichnis informatik1. 6. Um die Klasse Aufgabe1 zu erzeugen, klicken Sie auf File->New->Class und geben Sie als Name der Klasse Aufgabe1 ein. 7. Tippen Sie in das Eingabefenster das obige Programm ein. 8. Speichern Sie das Programm ab (File->Save oder die Tastenkombination Strg-s). Dabei wird es übersetzt und eventuelle Fehler werden angezeigt. Fehlermeldungen erscheinen im unteren Fenster von Eclipse unter Problems. Beseitigen Sie alle Fehler in Ihrem Programm. 9. Führen Sie das Programm aus. Dazu klicken Sie entweder auf die Schaltfläche mit dem weißen Dreieck im grünen Kreis oder Sie rufen mit der rehten Maustaste das kontextmenü auf und wählen „Run as Java Application“. Ihr Programm wird sofort ausgeführt. Es öffnet sich ein Fenster mit dem Titel Console in dem die Ausgabe Ihres Programmes erscheint: Hallo wie geht es Gratulation: Sie haben soeben Ihr erstes Java-Programm geschrieben und ausgeführt! 10. Wenn Sie Ihr Programm nochmals ausführen wollen, müssen Sei nur auf die Schaltfläche mit dem weißen Dreieck im grünen Kreis Klicken. Das zuletzt ausgeführte Programm wird dabei wieder gestartet. 2 HDM Stuttgart, Audiovisuelle Medien Aufgabensammlung Informatik 1, Sommer 2011 11. Öffnen Sie die Java Dokumentation im Web Browser (java.sun.com/javase/6/docs/api). Diese Dokumentation können Sie sich auch auf Ihren Rechnre herunterladen um sie jederzeit lesen zu können (Details finden Sie auf meiner Homepage). 12. Versuchen Sie herauszufinden, von welchem Typ das Objekt System.out ist. Hinweis: Sie können entweder out in der der Klasse System, oder über den Index der API Beschreibung die Methoden print() und println() suchen. Aufgabe 2 Finden Sie die Fehler in untenstehendem Java Programm und führen Sie es aus. Was ist die Bedeutung der Zeichenfolge \n? Schauen Sie in der Java API Dokumentation nach, was die Methoden print() und println() machen und was der Unterschied zwischen println() und print() ist. Um das Programm zu starten, führen Sie die Schritte 9 bzw. 10 aus Aufgabe 1 erneut durch. public class Aufgabe2 { public static void main (String x ) { System.out.println(Hallo); System.out.print (wie \ngeht \nes) } } Aufgabe 3 die Klasse String Testen Sie folgendes Java Programm. Von welchem Typ ist die Variable tier? Was bewirkt der Operator + bei Strings? Lesen Sie die Einleitung zur Klasse String in der Java API Dokumentation aufmerksam durch und lesen public class Aufgabe3 { public static void main (String x[] ) { String tier = "Die Kuh"; System.out.println(tier + " ist uebern Fence gejumpt\n"); System.out.print("und hat dabei den Benz gerammt\n"); } } 3 HDM Stuttgart, Audiovisuelle Medien Aufgabensammlung Informatik 1, Sommer 2011 Aufgabe 4 Schreiben Sie ein Java Programm, welches als Ausgabe das Java Programm aus Aufgabe 1 erzeugt. Die Schwierigkeit liegt darin, ein Hochkomma (")auszugeben! Schlagen Sie z. B. im Javabuch von Guido Krüger (www.javabuch.de) in Kapitel 4.2.2 nach, wie man ein Hochkomma innerhalb eines Strings angibt. Aufgabe 5 Schreiben Sie eine Java Klasse, welche zusätzlich zur Methode main die statische Methode zeichneDreieck(), enthält.. Diese Methode soll die nebenstehende Ausgabe erzeugen, (durch vier Aufrufe der Methode System.out.println). Rufen Sie die Methode zeichneDreieck in main. Rufen Sie die Methode zeichneDreieck mehrfach auf, um mehrere Dreiecke hintereinander zu zeichnen. | * | *** | ***** | ******* Aufgabe 6 Programme, die nur Text ausgeben sind nicht zeitgemäß. Wir schreiben deshalb Windows-basierte Programme, wie sie heute üblich sind. Das ist zwar anspruchsvoller, macht aber mehr Spaß. Geben Sie folgendes Programm ein, übersetzen Sie es und führen sie es aus: / erstes Java Swing-Beispiel import javax.swing.*; import java.awt.*; public class Aufgabe6 extends JFrame{ public static void main(String[] args) { new Aufgabe6(); } public Aufgabe6(){ this.setDefaultCloseOperation(EXIT_ON_CLOSE); this.setTitle("Hello World"); this.setSize(200,150); this.setVisible(true); } } Dieses Programm erzeugt ein Objekte vom Typ Aufgabe6, der von JFrame abgeleitet ist und legt einige Eigenschaften dieses Ojekts fest. Wichtig: Schlagen Sie die Klasse JFrame und dort die Methoden setTitle, setSize und setVisible nach und versuchen Sie, deren Funktion so weit wie zur Zeit möglich zu verstehen. b) Fügen Sie folgende Zeilen vor this.setVisible() ein und führen Sie Ihr Programm aus: JButton knopf = new JButton("Do not push!"); Container cp = this.getContentPane(); cp.add(knopf); 4 | | | | HDM Stuttgart, Audiovisuelle Medien Aufgabensammlung Informatik 1, Sommer 2011 Was Sie nach der zweiten Semesterwoche wissen sollten Ein Java Programm ist ein Text, der mit einem Editor bearbeitet und in einer Datei mit der Endung .java abgespeichert wird. Der Java Compiler liest diesen Text und erzeugt daraus Dateien mit der Endung .class. Der Java Compiler ist Teil des Java SDK (Software Development Kit). Der Java Interpreter (Java Virtual Machine) führt diese Dateien aus. Der Interpreter ist Teil des JRE (Java Runtime Environment). Ein Mini-JRE ist in jedem Web-Browser enthalten. In einer .java Datei stehen eine oder mehrere Klassen. Genau eine dieser Klassen ist öffentlich (public) und heißt so wie der Dateiname (ohne die Endung .java). Vor den Klassen stehen eventuell noch import Anweisungen, die eine verkürzte Schreibweise für Klassen ermöglichen. In einer Klasse stehen eine oder mehrere Methoden. Enthält die öffentliche Klasse in einer .java Datei die Methode main, kann die Datei mit dem Interpreter ausgeführt werden. Der Kopf der Methode main muss exakt "public static void main(String[ ] ...)" heißen. Die Anweisungen im main Programm werden in ihrer Reihenfolge (von oben nach unten) ausgeführt. Eine Folge von Anweisungen, die nacheinander ausgeführt werden nennt man Sequenz. Später werden wir noch die Schleife und die Verzweigung als weitere Kontrollstrukturen kennen lernen. Eine Methode besteht aus mehreren Anweisungen, die nacheinander ausgeführt werden. Die Ausführung einer Anwendung beginnt mit der ersten ausführbaren Anweisung der Methode main. Das Java Software Developer Kit (JDK) bietet sehr viele Standardklassen im sogenannten Application Programmers Interface (API). Die (englische) Beschreibung dieser Klassen gehört zu den wichtigsten Unterlagen beim Programmieren mit Java. Sie finden sie unter http://java.sun.com/javase/6/docs/api/ Mit new wird ein neues Objekt erzeugt, dabei wird ein Konstruktor der Klasse gerufen. Die Anweisung JFrame f = new JFrame(); erzeugt somit ein neues Objekt vom Typ javax.swing.JFrame. Lassen Sie sich durch die komplizierte API Beschreibung und durch die Tatsache, dass Sie vieles noch nicht verstehen, nicht entmutigen! 5