Hochschule der Medien Stuttgart Studiengang Audiovisuelle Medien Grundlagen der Informatik Aufgabensammlung Prof. Dr. Bernd Eberhardt Jochen Bomm Prof. Uwe Schulz Sommersemester 2006 HDM Stuttgart, Audiovisuelle Medien Aufgabensammlung Informatik 1, Sommer 2006 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 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. Sie müssen im Laufe des Semesters drei Aufgaben aus unterschiedlichen Übungsblättern abgeben. Die Note für das Praktikum ist das Mittel der drei Einzelnoten. Hinweise zur Installation der Programme auf der Begleit-CD Die Begleit-CD enthält die notewndigen Softwarepakete für die Durchführung der Übungen. Bitte installieren Sie diese in der folgenden Reihenfolge: 1. filzip302.exe installiert das Programm FilZip zum entpacken von .zip-Archiven. Dies ist nur notwendig, wenn Sie noch keine entsprechende Software wiez. B WinZip auf Ihrem Rechner haben. Auch für Windows-XP ist es nicht unbedingt notwendig, denn XP kann Zip-Archive ohne zusätzliche Software öffnen und entpacken – allerdings ziemlich langsam. 2. jdk-1_5_0_06-windows-i586-p.exe installiert das Java Developer Kit Version 5 Falls Sie eine ältere Version auf dem Rechner haben, sollten Sie diese vorher entfernen. 3. eclipse-SDK-3.1.1-win32.zip enthält die Eclipse Entwicklungsumgebung: entpacken Sie die Dateien in ein Verzeichnis Ihrer Wahl, z. B. C:\eclipse31 und starten Sie das Programm durch Doppelklick auf die Datei Eclipse.exe. Sie können z. B. eine Verknüpfung auf dem Desktop erstellen, damit Sie das Programm in Zukunft leichter finden. Starten Sie Eclipse und überprüfen Sie die Java Einstellungen, unter Window->Preferences->Java->Compiler sollte Comiler-Level 5.0 ausgewählt sein. 4. jdk-1_5_0-doc.zip enthält die Dokumentation zu den standard Java-Klassen. 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). 5. hjp4html.zip Das "Handbuch der Java Programmierung" in HTML-Format. Dateien in ein Verzeichnis entpacken (z.B. c:\dokumentation\Javabuch) und die Datei Cover.html in Ihrem Browser öffnen und Ihren Favoriten (Bookmarks) hinzufügen. 6. hjp4exam.zip Die Beispiele aus dem "Handbuch der Java Programmierung", z.B. in das Verzeichnis c:\dokumentation\Javabuch-Beispiele entpacken. 7. TIJ-3rd-edition4.0.zip - Das Buch "Thinking in Java" von Bruce Eckels, eines der besten Bücher zum Thema Objektorientierte Programmierung mit Java fuer alle, die tiefer einsteigen wollen. Weitere nützliche Software, für die Übungen aber nicht notwendig: 8. HKSetup.exe installiert das Programm HTML-Kit zur Bearbeitung von HTML-Seiten 2 HDM Stuttgart, Audiovisuelle Medien Aufgabensammlung Informatik 1, Sommer 2006 Bitte lösen Sie Aufgaben 1-6 in der 2. Semesterwoche (20.-26.3.2006) 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 fests, 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->Project klicken und dort Java Project auswählen). Nennen Sie das Projekt informatik1. Im Verzeichnis H:\eclipse gibt es jetzt das Unterverzeichnis informatik1. 6. Um die Klasse Aufgabe1 zu erzeugen, klicken Sie auf 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. Das ist für Eclipse-Anfänger der größte Stolperstein! Klicken Sie zunächst die Schaltfläche mit dem schwarzen Dreieck neben dem weißen Dreieck im grünen Kreis (siehe rechts). Es öffnet sich ein Menü, aus dem Sie den Punkt „Run“ (2. von unten) wählen. 3 HDM Stuttgart, Audiovisuelle Medien Aufgabensammlung Informatik 1, Sommer 2006 10. Der Dialog, der sich jetzt öffnet ist rechts abgebildet. Wählen Sie unter Configurations den Typ „Java Application“ aus und nicht das voreingestellte „Eclipse Application“ und auch nicht den Typ „Java Applet“! Klicken Sie dann auf New. Im rechten Teil des Dialogs erscheint als ausgewählte Klasse Aufgabe1. Diese Auswahl erfolgt automatisch, wenn Sie die Klasse Aufgabe1 vorher editiert haben und wenn die Klasse eine Methode main enthält, die public, void und static ist. 11. Klicken Sie auf Run und Ihr Programm wird 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-Program geschrieben und ausgeführt! 12. WennSie 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. 13. Öffnen Sie die Java Dokumentation im Web Browser (www.hdm-stuttgart.de/rz, dort unter Benutzerinformationen/FAQs ÆInternetdienste Æwww,html,cgi,perl,javaÆjdk1.4.1 Dokumentation Auf dieser Seite Klicken Sie API und Language, dort Java 2 Platform API Specification an). Diese Dokumentation ist auch CD zur Vorlesung enthalten. 14. Versuchen Sie herauszufinden, zu welcher Klasse das Objekt System.out gehört! 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 nebenstehendem 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. public class Aufgabe2 { public static void main (String x ) { System.out.println(Hallo); System.out.print (″wie \ngeht \nes″) } } Um das Programm zu starten, führen Sie die Schritte 9-11 aus Aufgabe 1 erneut durch. 4 HDM Stuttgart, Audiovisuelle Medien Aufgabensammlung Informatik 1, Sommer 2006 Aufgabe 3 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. die Klasse String 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"); } } 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 (das Javabuch ist auch auf der CD enthalten!). 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 { public static void main(String[] args) { JFrame frame = new JFrame(); frame.setTitle("Hello World"); frame.setSize(200,150); frame.setVisible(true); } } Dieses Programm erzeugt ein Objekte vom Typ JFrame, 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 frame.setVisible() ein und führen Sie Ihr Programm aus: JButton knopf = new JButton("Do not push!"); Container cp = frame.getContentPane(); cp.add(knopf); 5 HDM Stuttgart, Audiovisuelle Medien Aufgabensammlung Informatik 1, Sommer 2006 Was Sie nach der ersten 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 kennenlernen. • 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 es auf der Begleit-CD zur Vorlesung oder unter http://java.sun.com/j2se/1.4.2/docs/ und dort unter API&language, oder unter http://www.hdm-stuttgart.de/rz und dort unter Benutzerinformation/FAQsÆInternetdiensteÆ WWW, HTML, CGI, Perl, JavaÆJDK1.4.1 Documentation • 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! 6