Fachbereich Informatik/Mathematik LV Grundlagen der Informatik“ ” Prof. Dr.-Ing. habil. H. Fritzsche Dresden, den 10.2.2003 Prüfungsklausur Erreichbare Punkte: 60 Hilfsmittel: keine _________________________________ Name, Vorname, Matr.-Nr. 1. Entwickeln Sie ein Maschinenprogramm für die in der Vorlesung angegebene hypothetische Maschine, das y= ( 1 für (a 6= 0) ∧ (a Modulo 2 = 0) 0 sonst berechnet. Die Anfangsadresse des Programmes sei 000. Der Wert von a soll unmittelbar im Anschluß an die Befehlsfolge bereitgestellt werden, und an der Stelle von a soll nach Berechnung der Wert von y stehen. Weitere Speicherplätze können für benötigte Hilfsgrößen und Konstanten benutzt werden. Befehlscodes: 50 - STORE, 58 - LOAD, 5A - ADD, 5B - SUB, 5C - MULT, 5D - QUOT, 5E - MODULO, 47 - JUMP, 48 - JUMPZERO, 45 - STOP 8 Punkte 2. Gegeben seien die 8-Bit-Interndarstellungen für zwei ganze Zahlen x und y (negative Zahlen im Zweierkomplement): x: 00110101 y: 11100110 Geben Sie an a) die Interndarstellung von x + y b) die Interndarstellung von x - y 5 Punkte 3. Gegeben sei folgende Typ-Definition für Listen in Modula-2: TYPE pt = POINTER TO elem; elem = RECORD value:CARDINAL; next:pt END; Geben Sie eine Funktionsprozedur f in Modula-2 an, die ein Array a von CARDINALZahlen als call-by-reference“-Parameter und eine Funktionsprozedur p vom Typ ” ctc = PROCEDURE(CARDINAL):CARDINAL als call-by-value“-Parameter übergeben ” bekommt. f soll eine Liste mit HIGH(a)+1 Elementen vom Typ elem erzeugen und den Zeiger auf diese Liste als Wert zurückgeben. Die Liste soll so aufgebaut sein, dass für alle Elemente a[i] (1 ≤ i ≤ HIGH(a)+1) des Feldes a der Funktionswert p(a[i]) im Record-Feld value des i-ten Listenelementes abgespeichert ist. 10 Punkte b.w. 4. Beschreiben Sie eine Warteschlange als Klasse Queue in Form eines UML-KlassenDiagrammes. Geben Sie dabei alle Charakteristika an, die ein Anwender zur Benutzung der Klasse benötigt! Beschreiben Sie eine weitere Klasse SortedQueue und geben Sie deren Beziehung zur Klasse Queue an. SortedQueue soll gegenüber Queue in der Weise spezialisiert sein, daß die Elemente in der Schlange entsprechend ihrem Wert geordnet sind (Existenz eines Ordungskriteriums vorausgesetzt). Ein einzukettendes Element wird nicht an das Ende der Schlange gestellt, sondern entsprechend der Größe seines Wertes in der Schlange positioniert. 7 Punkte 5. Gegeben sei eine Grammatik G1 = (N1 , T1 , R1 , A) mit der Menge der Nichtterminalsymbole N1 = {A, B} , der Menge der Terminalsymbole T1 = { a, b, c}, der Menge der Regeln A → aBa (1) | bAb (2) |c (3) R1 = B → Bc (4) | aA (5) | (6) und dem Startsymbol A. a) beschreibt G1 eine reguläre Sprache? Begründen Sie Ihre Antwort! b) zeigen Sie, ob baaaacccaab eine gültige Zeichenkette ist ! Geben Sie eine Reihenfolge an, in der die Regeln bei einer Top-down-Analyse (beginnend beim Startsysmbol) angewendet werden! Gibt es mehrere unterschiedliche Sequenzen? 8 Punkte 6. Gegeben sei folgende MODULA-2-Deklaration für binäre Bäume: TYPE ptree=POINTER TO tree; tree =RECORD key:CARDINAL; lsucc,rsucc:ptree END Definieren Sie eine rekursive Funktionsprozedur anznull in MODULA-2, die die Anzahl der Knoten ermittelt, für die key=0 gilt! Der Zeiger auf den Baum ist anznull als Parameter zu übergeben! 10 Punkte 7. Werten Sie folgenden LISP-Ausdruck aus! Geben Sie auch die Ergebnisse der Auswertung aller Teilausdrücke an: (cons ’x (reverse(cdr(car(append ’((a(b c) d)) ’(e)))))) 6 Punkte 8. Versuchen Sie, die Allgemeingültigkeit folgender aussagenlogischer Formel mit Hilfe des Resolutionsprinzips zu beweisen: (B ∨ ¬D) ∧ (A ∨ ¬B ∨ ¬C) ∧ D → (A ∨ ¬C) 6 Punkte