• Keine Ergebnisse gefunden

” Java I“ SS 04 8. ¨ Ubung (14. 6. 2004)

N/A
N/A
Protected

Academic year: 2021

Aktie "” Java I“ SS 04 8. ¨ Ubung (14. 6. 2004)"

Copied!
2
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Vorlesung

” Java I“ SS 04 8. ¨ Ubung (14. 6. 2004)

http://www.coli.uni-sb.de/cl/courses/java-04/

Achte bei Deinen L¨osungen diesmal besonders darauf, geeignet auf Exceptions zu reagieren!

1 Kommentare entfernen (3+2 Punkte)

Schreibe ein Programm, das aus einer Eingabedatei alle Java-Kommentare entfernt, die mit // markiert sind. Die Datei ohne Kommentare soll in eine andere Datei geschrieben werden. Das Programm soll die Namen der Ein- und der Ausgabedatei auf der Kommandozeile entgegennehmen.

F¨ur die Bonuspunkte soll das Programm zus¨atzlich Kommentare der Form/* ... */

entfernen. Die Zeichen // und /* haben innerhalb der jeweils anderen Kommen- tarform keine besondere Bedeutung. Du kannst annehmen, dass die Kommentare syntaktisch korrekt und insbesondere nicht geschachtelt sind.

2 Hexdump (3+1 Punkte)

Schreibe ein Programm, das den Inhalt einer Datei Byte f¨ur Byte ausgibt. Auf jeder Zeile sollen 16 Bytes als Hexadezimalzahlen ausgegeben werden. (Wenn das Zeichen als byte einen negativen Wert b hat, soll b + 256 ausgegeben werden.) Wenn die Anzahl der Bytes in der Datei nicht durch 16 teilbar ist, soll die letzte Zeile mit Nullen aufgef¨ullt werden.

F¨ur den Bonuspunkt soll das Programm nach der Hexadezimal-Darstellung noch die einzelnen Bytes als Zeichen darstellen. Druckbare Zeichen sollen direkt angezeigt wer- den, w¨ahrend Kontrollzeichen (im Sinne vonCharacter.isISOControl) als Punkte gedruckt werden.

Beispiel(Eingaben sind kursiv gedruckt):

koller@cicero:~$java Hexdump Hexdump.java

2F 2F E4 0D 0A 69 6D 70 6F 72 74 20 6A 61 76 61 //?..import java 2E 69 6F 2E 2A 3B 0D 0A 0D 0A 0D 0A 63 6C 61 73 .io.*;...clas 73 20 48 65 78 64 75 6D 70 20 7B 0D 0A 20 20 20 s Hexdump {..

...

Hinweis: Verwende die Klasse FileInputStream.

(2)

3 Web-Crawler, Teil 1 (3 Punkte)

Schreibe ein Programm, das ein HTML-Dokument von einer URL herunterl¨adt und die Menge der von dort verlinkten URLs (mit<a href=...>-Elementen) aufsammelt.

Das Programm soll mit relativen Links umgehen k¨onnen.

Folgende Klassen k¨onnten n¨utzlich sein:

– URL im Package java.net stellt eine URL dar und kann einen InputStream zur¨uckgeben, von dem der Inhalt der Webseite ausgelesen werden kann. Man kann diesen InputStream einem Konstruktor der Klasse InputStreamReader

¨ubergeben.

– ParserDelegator im Package javax.swing.text.html.parser und HTMLEditorKit.ParserCallback im Package javax.swing.text.html stellen einen HTML-Parser zur Verf¨ugung. Ein Beispielprogramm, das diese Klassen verwendet, findest Du unterhttp://java.sun.com/products/jfc/tsc/articles/

bookmarks/.

N¨achste Woche werden wir das Programm zu einem vollst¨andigen Web-Crawler er- weitern. Achte also schon mal darauf, dass Deine Klasse geeignete Methoden anbietet, um bequem viele URLs parsen zu k¨onnen.

4 Exceptions zweckentfremden (1 Punkt)

Wie wir wissen, ist Restrekursion in Java f¨ur den Compiler nicht so einfach zu opti- mieren. Man kann aber Exceptions verwenden, um dennoch sofort nach Berechnung des korrekten Funktionswertes zum urspr¨unglichen Aufrufer zur¨uckzukehren. (Kon- stanten Speicherbedarf bekommt man damit nat¨urlich nicht.)

Schreibe eine Version der Fakult¨atsfunktion, die Exceptions in dieser Art zweckent- fremdet. Ist das guter Programmierstil oder nicht?

Abgabe bis 21. 6. 2004, 9 Uhr

(java-uebungen@coli.uni-sb.de)

Referenzen

ÄHNLICHE DOKUMENTE

dass jeder Thread sich bei einem zentralen Objekt obj anmeldet, wenn er gestartet wird, und wieder abmeldet, wenn er fertig ist; man kann dann in obj mitz¨ ahlen, wie viele Threads

Das Programm soll eine JSplitPane verwenden, die auf der linken Seite die Ver- zeichnisstruktur in einem JTree darstellt und auf der rechten Seite den Inhalt einer Datei in einem

2 SSt. Die Lehrveranstaltungen Mittelalterliche Literatur verstehen, Mediävistische Textwissenschaft und Literarische Kultur des Mittelalters sind in dieser Reihenfolge

(3) Voraussetzung für die Anmeldung zu einem Proseminar oder Praktikum aus den unter § 10 Abs 1 StudPlan genannten Fächern und Modulen ist der Nachweis von Vorkenntnissen

Dabei gilt: Wenn Bewerberinnen, die für die angestrebte Stelle gleich geeignet sind wie der bestgeeignete Mitbewerber, vorhanden sind, sind diese solange

(4) Die für die Objekte der Karl-Franzens-Universität Graz zu führenden Brandschutzbücher sind durch die/den ZBSB vierteljährlich - bei akuten Mängeln sofort –

Der Bereich Personalmanagement und Personalentwicklung verantwortet sowohl die interne Weiterbildung und Förderung aller MitarbeiterInnen als auch die

(2) Studierende, die vor dem erstmaligen Inkrafttreten dieses Studienplans ihr Studium begonnen haben, sind berechtigt, jeden der Studienabschnitte, die zum