Prof. Dr. Volker Gruhn 22. Juli 2003 Klausur Teilgebiet: Digitale Informationsverarbeitung Vor- und Nachname: Mat.-Nr.: Hinweise • Bevor Sie mit der Bearbeitung der Aufgaben beginnen, müssen Sie auf allen Blättern Ihren Namen und Ihre Matrikelnummer eintragen. • Der Klausurtext enthält ausreichend Platz zur Lösung der Aufgaben. Sie können auch die Rückseiten der Blätter für Ihre Lösungen nutzen. Sofern Sie zusätzliches Papier benötigen, wenden Sie sich an die Aufsicht. Die Nutzung eigenen Papiers ist nicht gestattet. • Sollte Ihre Lösung nicht unmittelbar unter oder neben der Aufgabenstellung stehen, machen Sie bitte einen entsprechenden Hinweis. Streichen Sie diejenigen Teile der von Ihnen geschriebenen Texte deutlich durch, die nicht in die Bewertung eingehen sollen. • Die Klausur ist zusammengeheftet. Die Heftung darf nicht geöffnet werden. • Die Aufsicht gibt Ihnen keine Hilfestellung beim Lösen der Aufgaben. • Teilnehmer, die eine Klausur nur über ein Teilgebiet schreiben, müssen zum Bestehen mindestens 24 Punkte erreichen. Maximal können 60 Punkte erreicht werden. • Teilnehmer, die eine Klausur über beide Teilgebiete schreiben, müssen zum Bestehen in beiden Teilgebieten jeweils mindestens 24 Punkte erreichen. Maximal können jeweils 60 Punkte erreicht werden Viel Erfolg! Aufgabe Erreichte Punkte Erreichbare Punkte 1 9 2 16 3 5 4 16 5 7 6 7 Summe 60 Lehrstuhl für Angewandte Telematik / e-Business, Institut für Informatik, Universität Leipzig Klostergasse 3, D-04109 Leipzig • http://www.lpz-ebusiness.de Klausur - Teilgebiet: Digitale Informationsverarbeitung Vor- und Nachname: Mat.-Nr.: Aufgabe 1: Maschinennahe Darstellung von Informationen Bei der maschinennahen Darstellung von Informationen wird häufig eine 2-wertige Darstellung auf Basis von 0-1-Folgen angenommen. Es ist aber auch möglich, Informationen in einer 3-wertigen Darstellung zu kodieren und in Folgen aus den Ziffern 0, 1 und 2 abzubilden. a) Geben Sie folgenden Informationsmengen in 2- und 3-wertiger Kodierung an. [2 Punkte] Informationsmenge 2-wertige Darstellung 3-wertige Darstellung {Nord, West, Süd, Ost} {0, 1, 2, 3, 4, 5} {wahr, falsch} {Hund, Katze, Maus} 22. Juli 2003 Seite 2 von 14 Klausur - Teilgebiet: Digitale Informationsverarbeitung Vor- und Nachname: Mat.-Nr.: b) Geben Sie die Größe der jeweils maximal darstellbaren Informationsmenge an, die in 2- und 3-wertiger Darstellung mit einer Folge der Länge 5 kodierbar ist. [1 Punkt] 22. Juli 2003 Seite 3 von 14 Klausur - Teilgebiet: Digitale Informationsverarbeitung Vor- und Nachname: Mat.-Nr.: c) Bilden Sie die unten in 2- bzw. 3-wertiger Darstellung angegebenen Zahlen in die jeweils andere Darstellung ab. [4 Punkte] 2-wertige Darstellung 3-wertige Darstellung 22222 1001 22. Juli 2003 Seite 4 von 14 Klausur - Teilgebiet: Digitale Informationsverarbeitung Vor- und Nachname: Mat.-Nr.: d) Addieren Sie die Zahlen 1111111 und 11010 in 2-wertiger Darstellung. Addieren Sie die Zahlen 11201 und 222 in 3-wertiger Darstellung. [2 Punkte] 22. Juli 2003 Seite 5 von 14 Klausur - Teilgebiet: Digitale Informationsverarbeitung Vor- und Nachname: Mat.-Nr.: Aufgabe 2: Boolesche Algebra a) Seien x, y und z boolesche Variablen. Definieren Sie formal mit Hilfe dieser Variablen die Begriffe „Idempotenz“, „Kommutativität“, „Assoziativität“, „Absorption“ und „Distributivität“. [5 Punkte] 22. Juli 2003 Seite 6 von 14 Klausur - Teilgebiet: Digitale Informationsverarbeitung Vor- und Nachname: Mat.-Nr.: b) Definieren Sie die Begriffe „boolescher Term“, „Literal“ und „Monom“. [3 Punkte] 22. Juli 2003 Seite 7 von 14 Klausur - Teilgebiet: Digitale Informationsverarbeitung Vor- und Nachname: Mat.-Nr.: c) Geben Sie die konjunktive Normalform (KNF) und disjunktive Normalform (DNF) der Schaltfunktion f an, die durch die folgende Tabelle beschrieben wird, und vereinfachen Sie diese so weit wie möglich. [8 Punkte] 22. Juli 2003 x y z f(x,y,z) 0 0 0 0 0 0 1 1 0 1 0 1 0 1 1 1 1 0 0 0 1 0 1 1 1 1 0 0 1 1 1 1 Seite 8 von 14 Klausur - Teilgebiet: Digitale Informationsverarbeitung Vor- und Nachname: Mat.-Nr.: Aufgabe 3: Kontextfreie Grammatik Gegeben sei die folgende kontextfreie Grammatik G = (S, VT, VN, P) mit S Startsymbol VT = {all, and, are, assimilated, base, belong, destroyed, have been, her, his, my, none of, planet, s, ship, some of, will be, your} Terminalsymbole VN = {Noun, Participle, Pronoun, Quantifier, S, Verb} Nichtterminalsymbole P = { S = [Quantifier] Pronoun Noun[s] {and Noun[s]} Verb Participle, Quantifier = all | none of | some of, Pronoun = her | his | my | your, Noun = base | planet | ship, Verb = are | belong | have been | will be, Participle = assimilated | destroyed } Regel R1 Regel R2 Regel R3 Regel R4 Regel R5 Regel R6 Kreuzen Sie in der folgenden Tabelle an, welche der Aussagen gelten. Geben Sie an, welche Regeln Sie zur Ableitung nutzen, falls das vorgegebene Wort w in der durch G bestimmten Sprache L(G) liegt, also w ∈ L(G) gilt. Geben Sie dabei bitte die Regeln in der Reihenfolge ihrer Verwendung an. Falls w ∉ L(G) gilt, geben Sie die Regeln an, die zur Ableitung eines möglichst langen, gültigen Anfangs von w vor dem Auftreten eines Fehlers führen. w w ∈ L(G) w ∉ L(G) zur Ableitung benutzte Regeln in Reihenfolge ihrer Verwendung a) [2,5 Punkte] all your base are belong to us b) [2,5 Punkte] your ships and planets will be assimilated 22. Juli 2003 Seite 9 von 14 Klausur - Teilgebiet: Digitale Informationsverarbeitung Vor- und Nachname: Mat.-Nr.: Aufgabe 4: Rekursive Funktionen Gegeben sei die folgende rekursive Funktion f : N+ \ {0} → N+ f(n) = 2n h(n) h(n) = { 33 n falls n = 1 f(n-1) sonst a) Berechnen Sie den Wert von f(3) und zeigen Sie Ihre Vorgehensweise anhand des Aufrufstacks. [2 Punkte] 22. Juli 2003 Seite 10 von 14 Klausur - Teilgebiet: Digitale Informationsverarbeitung Vor- und Nachname: Mat.-Nr.: b) Formulieren Sie einen iterativen Algorithmus zur Berechnung von f in Pseudocode oder Java. [7 Punkte] 22. Juli 2003 Seite 11 von 14 Klausur - Teilgebiet: Digitale Informationsverarbeitung Vor- und Nachname: Mat.-Nr.: c) Beweisen Sie per Induktion, dass Ihre Implementierung aus Teilaufgabe b) die in Teilaufgabe a) genannte Funktion realisiert. [7 Punkte] 22. Juli 2003 Seite 12 von 14 Klausur - Teilgebiet: Digitale Informationsverarbeitung Vor- und Nachname: Mat.-Nr.: Aufgabe 5: Sortierverfahren Gegeben sei das Array A = {22, 45, 78, 56, 90, 11, 76, 98}. Sortieren Sie A mit dem Quicksort-Algorithmus (das Pivot-Element sei das jeweils erste Element in dem betrachteten Teilarray) und geben Sie die Inhalte der Teilarrays in den einzelnen Schritten tabellarisch an. Geben Sie in jedem Schritt auch die Zahl der darin durchgeführten Element-Vergleiche an. [7 Punkte] 22. Juli 2003 Seite 13 von 14 Klausur - Teilgebiet: Digitale Informationsverarbeitung Vor- und Nachname: Mat.-Nr.: Aufgabe 6: Objektorientierte Modellierung Gegeben sei das folgende Szenario. „Die Mietwagenfirma Rent-A-Wreck verleiht Fahrzeuge der beiden Typen PKW und LKW. Jedes Fahrzeug wird charakterisiert durch ein amtliches Kennzeichen und die Dauer des derzeit laufenden Mietvertrags in Tagen. Für jedes Fahrzeug kann es zu einem beliebigem Zeitpunkt höchstens einen derzeitigen Mieter und höchstens einen vorgemerkten, zukünftigen Mieter geben. PKWs werden näher präzisiert durch die Zahl der Türen, LKWs durch das maximale Gewicht der Ladung. Die tägliche Mietgebühr wird individuell für jedes Fahrzeug als Euro-Betrag festgelegt. Es gibt zwei Gruppen von Mietern: Privat- und Geschäftskunden. Privatkunden zahlen grundsätzlich 100% der Ausleihgebühr, während Geschäftskunden einen individuell verhandelten Rabatt erhalten. Privatkunden sind durch ihren Namen und ihre Anschrift charakterisiert, Geschäftskunden besitzen einen Namen und eine Stammkunden-Nummer. Um den aktuellen Zustand eines Fahrzeugs darzustellen, sollen seine Attribute und auch die des derzeitigen und des vorgemerkten Mieters in einem zusammenhängenden String ausgegeben werden können. Diese Ausgabe sei in allen Klassen durch eine Methode toString realisiert. Bei der Ausgabe der Attribute eines Fahrzeugs sollen auch die für den derzeitigen Mieter berechneten Mietkosten ausgegeben werden.“ Analysieren Sie das beschriebene Szenario der Abläufe in einer Mietwagenfirma. Modellieren Sie die verwendeten Klassen und ihre Beziehungen in einem UMLKlassendiagramm inklusive ihrer Methoden, Attribute und Sichtbarkeiten. [7 Punkte] 22. Juli 2003 Seite 14 von 14