back to top   Aufgabenstellung (insg. 50 Punkte)

 

Die Aufgaben 1 mit 4 beziehen sich auf das nachfolgende XML-Eingabedokument:

<?xml version="1.0" encoding="ISO-8859-1"?>
<Hobbysten>
   <Person
      nachname="Schmidt" vorname="Helmut"
      geburtsjahr="1972" geschlecht="M">
      <PersAusweisNr>1234567890</PersAusweisNr>
      <Anschrift>
         <PLZ>86161</PLZ>
         <Ort>Augsburg</Ort>
      </Anschrift>
      <Hobbies>Lesen Foto Reisen</Hobbies>
   </Person>
   <Person
      nachname="Schmidt" vorname="Helmut"
      geburtsjahr="1942" geschlecht="M">
      <PersAusweisNr>0987654321</PersAusweisNr>
      <Anschrift>
         <PLZ>48123</PLZ>
         <Ort>Muenster</Ort>
      </Anschrift>
      <Hobbies>Foto Tennis</Hobbies>
   </Person>
   <Person
      nachname="Schmidt" vorname="Ilona"
      geschlecht="W" geburtsjahr="1945">
      <PersAusweisNr>2345676543</PersAusweisNr>
      <Anschrift>
         <PLZ>86123</PLZ>
         <Ort>Augsburg</Ort>
      </Anschrift>
      <Hobbies>Konzert</Hobbies>
   </Person>
   <Person
      nachname="Korn" vorname="Joachim"
      geschlecht="M" geburtsjahr="1972">
      <PersAusweisNr>1111111111</PersAusweisNr>
      <Anschrift>
         <PLZ>48234</PLZ>
         <Ort>Muenster</Ort>
      </Anschrift>
      <Hobbies>Reisen</Hobbies>
   </Person>
   <Person
      nachname="Huber" vorname="Philipp"
      geschlecht="M" geburtsjahr="1949">
      <PersAusweisNr>777777777</PersAusweisNr>
      <Anschrift>
         <PLZ>86454</PLZ>
         <Ort>Augsburg</Ort>
      </Anschrift>
   <Hobbies>Golf Ski Konzert</Hobbies>
   </Person>
</Hobbysten>

Download dieser XML-Datei

1. Formulierung von Lokatorpfaden (10 Punkte)

Geben Sie einen XPath-Ausdruck an, der folgende Knotenmengen lokalisiert:

  1. Alle Personen die 1972 geboren sind.
  2. Die Vornamen aller Personen die Schmidt mit Nachnamen heißen.
  3. Die Personen-Elemente deren einziges Hobby Konzert ist.
  4. Den Wohnort der Personen die vor 1970 geboren wurden.
  5. Die Personalausweisnummer aller Personen die Golf spielen.

2. Vorformulierte Lokatorpfade (10 Punkte)

Welche Knotenmengen liefern die folgenden XPath-Ausdrücke:

  1. /Hobbysten/Person[3]/@nachname
  2. //PLZ[starts-with(.,"48")]
  3. //Person[@nachname = preceding::Person/@nachname or @nachname = following::Person/@nachname]
  4. //Person[@geburtsjahr < sum(//*/@geburtsjahr) div 5]
  5. //Person[(position() mod 2)=0]/@geschlecht

3. XSLT-Transformation (10 Punkte)

Schreiben Sie eine XSLT-Transformation, die aus der Eingabedatei folgende Ausgabe erzeugt:

<?xml version="1.0" encoding="ISO-8859-1"?>
<Personen>
   <Augsburger>
      <Person>
         <Name>
            <Vorname>Helmut</Vorname>
            <Nachname>Schmidt</Nachname>
         </Name>
         <Geburtsdatum jahr="1972"/>
         <PersAusweisNr>1234567890</PersAusweisNr>
         <Anschrift>86161-Augsburg</Anschrift>
      </Person>
      <Person>
         <Name>
            <Vorname>Ilona</Vorname>
            <Nachname>Schmidt</Nachname>
         </Name>
         <Geburtsdatum jahr="1945"/>
         <PersAusweisNr>2345676543</PersAusweisNr>
         <Anschrift>86123-Augsburg</Anschrift>
      </Person>
      <Person>
         <Name>
            <Vorname>Philipp</Vorname>
            <Nachname>Huber</Nachname>
         </Name>
         <Geburtsdatum jahr="1949"/>
         <PersAusweisNr>777777777</PersAusweisNr>
         <Anschrift>86454-Augsburg</Anschrift>
      </Person>
   </Augsburger>
   <Muensteraner>
      <Person>
         <Name>
            <Vorname>Helmut</Vorname>
            <Nachname>Schmidt</Nachname>
         </Name>
         <Geburtsdatum jahr="1942"/>
         <PersAusweisNr>0987654321</PersAusweisNr>
         <Anschrift>48123-Muenster</Anschrift>
      </Person>
      <Person>
         <Name>
            <Vorname>Joachim</Vorname>
            <Nachname>Korn</Nachname>
         </Name>
         <Geburtsdatum jahr="1972"/>
         <PersAusweisNr>1111111111</PersAusweisNr>
         <Anschrift>48234-Muenster</Anschrift>
      </Person>
   </Muensteraner>
</Personen>

4. Euklid'scher Algorithmus (20 Punkte)

Schreiben Sie eine XSLT-Transformation die mittels des Euklid'schen Algorithmus den größten gemeinsamen Teiler zweiter positiver Ganzzahlen errechnet und als XML-Dokument ausgibt.
Die notwendige Eingabe habe dabei folgendes Format:

<ggT>
   <input>
      <no1>18</no1>
      <no2>6</no2>
   </input>
</ggT>

Das Verfahren:
Der Euklidische Algorithmus ermittelt den größten gemeinsamen Teiler zweier positiver natürlicher Zahlen auf folgende Weise:
Basisprinzip ist die wiederholte Division mit Rest, die folgendermaßen angewandt wird.
Zunächst wird die erste übergebene Zahl mit Rest durch die zweite dividiert. Als Resultat erhält man neben dem positiv ganzzahligen Quotienten einen Rest, der stets größer gleich Null und kleiner als der Quotient selbst ist.
Im nächsten Berechnungsschritt wird der in der vorhergehenden Operation ermittelte Quotient durch den ebenfalls dort ermittelten Rest (wieder mit Rest) dividiert. Dies wird solange fortgeführt, bis als Rest 0 entsteht.
Der im vorausgegangenen Rechenschritt ermittelte Rest ist der größte gemeinsame Teiler.
Es gilt somit immer: Für a, b Eingangswerte mit a=>b, q ist der ganzzahlige Quotient a/b und r der bei der Division entstehende Rest:
a = b*q + r
Im nächsten Rechenschritt nimmt b den Platz von a bzw. r den von b ein.

Zahlenbeispiel:
Gesucht: größter gemeinsamer Teiler von 123 und 77:

123 : 77 =1 Rest 46
77 : 46 = 1 Rest 31
46 : 31 = 1 Rest 15
31 : 15 = 2 Rest 1
15 :1 = 15 Rest 0.
=> ggT(123,77) = 1.

back to top   Termine

 

Ausgabe: Mittwoch, 2001-12-12
Abgabe: Freitag, 2001-12-21




separator line
Service provided by Mario Jeckle
Generated: 2004-06-07T12:31:14+01:00
Feedback Feedback       SiteMap SiteMap
This page's original location This page's original location: http://www.jeckle.de/vorlesung/xml/p4.html
RDF metadata describing this page RDF description for this page