Aufgaben

HTML

  1. Verbessern Sie die folgenden HTML Fragmente

    1. <H1>Überschrift A
      <H2>Überschrift B</H3>
      
    2. <P>Ein Paragraph mit 
      <B>fettem <I>und fett-italic</B> 
      Text</I>.</P>
      
    3. <I><H2>kursive Überschrift</H2></I>
      
  2. Was bedeutet die folgende Zeile in HTML-Dateien?

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
    
  3. Wie stellen Sie Links innerhalb einer HTML-Seite her?

  4. Wozu dient das HTML Element META ?

  5. Geben Sie das HTML Fragment für ein Formular mit einem Texteingabefeld und einem Submit-Button zu dem CGI Programm http://parallel.rz/cgi-bin/ex2.cgi an.

šbungsaufgaben

Erstellen Sie Web Seiten, die weitestgehend wie folgt aussehen.

Aufgabe 1
Aufgabe 2

XHTML

  1. Geben Sie mindestens vier Unterschiede zwischen HTML (4.0) und XHTML (1.0) an.

  2. Wie mssen sich User Agents bei unbekannten Elementen, unbekannten Attributen, bzw. unbekannten Attribut-Werten verhalten?

  3. Browser haben meist gute Heuristiken um fehlerhaftes HTML doch noch am Bildschirm darzustellen. Wozu ben”tigt man trotzdem Tools wie HTML-Tidy?

šbungsaufgaben

Installieren Sie tidy und wenden Sie es auf Ihre Seiten aus den vorhergehenden Aufgaben an. Erstellen Sie die Antwort als wellformed XHTML 1.0 (Kontrolle durch tidy -e -xml). Erstellen Sie die Antwort als valid XHTML 1.0 (Kontrolle durch einen validierenden XML Parser, wie in Abschnitt XML beschrieben).

CSS

  1. Geben Sie die CSS-Regel für das Layout eines Paragraphen mit gelber Schrift auf blauem Hintergrund an.

  2. Mit welchen CSS-Eigenschaften kann das Layout einer Box definiert werden?

  3. Auf welche Arten kann CSS Stilinformation mit HTML Seiten verknüpft werden?

  4. Nennen Sie mindestens drei der neuen Medien, die durch CSS2 untersttzt werden sollen.

  5. Mit CSS2 wird man šberschriften automatisch numerieren k”nnen. Erl„utern Sie die dazu benutzten Konstrukte :before und content:.

šbungsaufgaben

Erstellen Sie eine Web Seite, die wie folgt aussieht.

Aufgabe 3

Validieren Sie die CSS Teile der Antwort mit dem CSS-Checker vom W3 Consortium.

Java

  1. Erläutern Sie die Aussage: Java ist die Programmiersprache des Web.

  2. Wozu benötigt man die Tools javac, java, javadoc und appletviewer?

šbungsaufgaben

Installieren Sie ein Java Entwicklungskit (zum Beispiel Sun JDK 1.3 oder IBM JDK 13.). Entwickeln Sie eine (Applet oder Kommandozeilen Version) des 'Hallo Welt'-Programms.

Java Sprache

  1. Erl„utern Sie den Unterschied zwischen einer Variablen und einem Wert.

  2. Gegeben seien drei reele Zahlen 3.0, 5.0, und 7.0. Schreiben Sie ein Programm, mit dem Sie das arithmetische Mittel der drei Zahlen berechnen und ausgeben.

  3. Schreiben Sie folgende Methoden fr die in der Vorlesung entwickelte Klasse BitString:

    1. public static String bitString(short b)
    2. public static String bitString(int b)
    3. public static String bitString(long b)

    Verwenden Sie fr eine Version a) die schon vorhandene Methode public static String bitString(byte b), und fr eine zweite Version b) Felder und Schleifen geeigneter L„nge.

  4. Schreiben Sie ein Programm mit dem Sie Sekunden in normale Stunden, Minuten und Sekunden umrechnen. Die Methode getHMS(int) soll eine Zeichenkette zurckgeben, in der aus dem Parameter (der Sekunden) die Stunden (HH), Minuten (MM) und Sekunden (SS) in folgendem Format ausgibt HH:MM:SS. Also aus der Eingabe 3661 soll die Zeichenkette 01:01:01 werden.

    Musterl”sungen fr einige Aufgaben

  5. Erläutern Sie den Unterschied zwischen Klassen und Objekten.

  6. (freiwillig) Entwickeln Sie analog zu den Klassen *BitString* Klassen *HexString*, mit denen die hexadezimal Darstellung von ganzen Zahlen erzeugt werden kann. šberlegen Sie wie Sie bezglich einer beliebigen Basis b eine Darstellung erzeugen k”nnen.

  7. Schreiben Sie ein Programm das mit Hilfe von Math.random() 100 Zufallszahlen im Intervall [0.0, 1.0] generiert. Z„hlen Sie (mit einem Programm) wieviele Zahlen davon im Intervall [0.0, 0.5) und wieviele im Intervall [0.5, 1.0] liegen.

  8. Schreiben Sie ein Programm, das beliebig viele W”rter von der Kommandozeile entgegen nehmen kann. Jedes Wort soll dann im umgekehrter Reihenfolge ausgegeben werden. Ist bei einem Wort der erste Buchstabe gross, soll auch im Ergebnis nur der erste Buchstabe gross sein. Zum Beispiel das Wort 'Java' soll zu 'Avaj' umgewandelt werden. Verwenden Sie fr die Zeichenketten Verarbeitung die Klasse StringBuffer.

  9. Schreiben Sie eine Klasse Complex, die fr die Arithmetik komplexer Zahlen verwendet werden kann. Der Konstruktor soll aus einem Paar reeler Zahlen (a,b) eine komplexe Zahl a + i b machen.
    Null ist 0 + i 0 , Einz ist 1 + i 0,
    Feststellen des Real- und Imagin„r-Teils,
    Test auf Gleichheit,
    Addition: (a + i b) + (c + i d) = (a+c) + i (b+d),
    Subtraktion analog, negative Zahl,
    Multiplikation: (a + i b) * (c + i d) = (ac-bd) + i (ad+bc),
    Konjugation: con(a + i b) = a - i b,
    Betrag: abs(a + i b) = a a + b b,
    Inverses: inv(a + i b) = con(a + i b)/abs(a + i b),
    Division: (a + i b) / (c + i d) = (a + i b) * inv(c + i d),

    Musterl”sungen fr einige Aufgaben

  10. Leiten Sie die in der vorhergehenden Aufgabe entwickelte Klasse Complex von der abstrakten Klasse Number ab. Implementieren Sie die fehlenden Mwthoden.

  11. (freiwillig) Schreiben Sie eine Klasse Rational, die fr die Arithmetik rationaler Zahlen verwendet werden kann. Der Konstruktor soll aus einem Paar ganzer Zahlen (long) (a,b) eine rationale Zahl a / b machen.
    Null ist 0 / 1 , Einz ist 1 / 1,
    Feststellen des Z„hlers und des Nenners,
    Berechen des grӇten gemeinsaman Teilers ggT(a,b),
    Krzen: (a / b) = ( a / ggT(a,b) ) / ( b / ggT(a,b) ),
    Nenner positiv machen: (a / -b) = ( -a / b ) (falls b > 0),
    Test auf Gleichheit (?),
    Vergleich: (a / b) < (c / d) <==> ad < bc,
    Addition: (a / b) + (c / d) = (ad + cb) / (bd),
    Subtraktion analog, negative Zahl,
    Multiplikation: (a / b) * (c / d) = (a c) / (b d),
    Betrag: abs(a / b) = ( abs(a) / b ) (?),
    Inverses: inv(a / b) = ( b / a ) (?),
    Division: (a / b) / (c / d) = (a / b) * inv(c / d),

    Bei den mit (?) bezeichneten Methoden muss sehr genau berlegt werden wie es gemacht werden soll.

  12. Schreiben Sie ein Programm das mit Hilfe von Math.random() 100 ganze Zufallszahlen im Intervall [0, 1000] generiert. Schreiben Sie ein Programm, das diese Zahlen aufsteigend sortiert und ausgibt. Als Sortierverfahren k”nnen Sie zum Beispiel Buble-Sort verwenden.

  13. Schreiben Sie ein Programm Grep <wort> [<datei>], das analog zum (Unix-)Kommando 'grep' funktioniert. D.h. alle Zeilen, die die Zeichenkette 'wort' enthalten sollen ausgegeben werden. Wenn kein 'datei'-Name angegeben ist, soll die Standard-Eingabe durchsucht werden.

    Musterl”sungen fr diese Aufgabe

  14. Lokalisieren Sie das Programm Persistenz in drei Sprachen: Deutsch, Englisch und eine weitere Sprache Ihrer Wahl (z.B. Franz”sisch, Italienisch, Trkisch, Russisch, Schw„bisch, Pf„lzisch, Bayrisch, S„chsisch, Platt).

    Musterl”sungen fr einige Aufgaben

XML

  1. Erläutern Sie das Verhältnis zwischen XML und HTML sowie SGML.

  2. Erläutern Sie den Grundaufbau eines gültigen XML Dokuments.

  3. Geben Sie eine DTD für folgendes XML Dokument an.

         <mitarbeiter pnr="123456">
         <name>Karl Dall</name>
         <abteilung>Jux und Dollerei</abteilung>
         </mitarbeiter>
    
  4. Installieren Sie einen validierenden XML Parser (zum Beispiel Apache Xerces). Validieren Sie das in der vorhergehenden Aufgabe 3 gegebene Dokument (erweitert entsprechend Aufgabe 2) gegen die erstellte DTD. Validieren Sie damit die XHTML Beispielseite von oben (freiwillig).

  5. Nennen und Beschreiben Sie wichtigsten Hilfsmittel die im Umfeld von XML entwickelt und verwendet werden.

  6. Nennen Sie einige XML Anwendungen.

DOM

  1. Erläutern Sie die Bedeutung von DOM.

  2. Was sind die Unterschiede zwischen einer Interface Beschreibung und Implementierungen?

  3. Wie k”nnen Sie mit DOM Methoden auf ein Element zugreifen, dessen Namen Sie kennen?

JAXP

  1. Installieren Sie JAXP (also den DOM und SAX Parser).

  2. Verwenden Sie die Klassen DOMLeser und SAXLeser auf die XML Dokumente und DTDs aus dem Abschnitt XML an. Vollziehen Sie den Ablauf der Programme nach.

    Hinweise und Anleitung

  3. Entwickeln Sie eine XML DTD fr Wechselkurse. Zum Beispiel fr folgende XML-Datei:

      <kurse>
       <kurs datum="2002-01-10 von="USD" nach="EUR" >1.10</kurs>
       <kurs datum="2002-01-10 von="EUR" nach="USD" >0.90</kurs>
       ...
      </kurse>
    

    Entwickeln Sie (analog zu DOMLager) eine Klasse Kurse, die eine Methode konvertiere(datum,von,nach,betrag) basierend auf der DTD fr 'kurse' bereitstellt.

    z.B. konvertiere("2002-01-10","USD","EUR",2.0) soll 2.20 liefern.

  4. Validieren Sie die Dokumente mit den DTDs zu Lager, Bestellung, Lieferung und Rechnung.

  5. Erweitern Sie 'Bestellung' um eine Unterscheidung zwischen Lieferanschrift und Rechnungsanschrift. Untergliedern Sie die Adresse in 'Name, Straáe, PLZ, Ort'.

  6. Schreiben Sie eine eigene Anwendung 'Nachbestellung', die den Lagerbestand analysiert, und bei Produkten, die einen zu geringen Bestand aufweisen eine Nachbestellung generiert.


Seite mit weiterem Material aus den šbungen.


© Universität Mannheim, Rechenzentrum, 1998-2003.

Heinz Kredel
Last modified: Thu Jan 16 21:34:48 CET 2003