F A C H H O C H S C H U L E F Ü R D I E W I R T S C H A F T F H D W , H A N N O V E R G RU ND L AGE N D ER I N FORM ATI K N ACHKLAUSUR Studiengang: Wirtschaftsinformatik Studienquartal: II. Theoriequartal Prüfungsumfang: Skript „Grundlagen der Informatik – Theoretische Grundlagen“, vom 8. 9. 2000 Dozent: Michael Löwe Termin: 18. Dezember 2000 Dauer: 60 Minuten 32 Punkte sind zu erreichen: davon Wissen 12 Punkte, Anwendung 12 Punkte, Transfer 8 Punkte. Bestanden ab 16 Punkte. TEIL I: WISSEN (15 MINUTEN) Aufgabe 1 (2 Punkte): Mit einem handelsüblicher PC kann man alle Turing-Maschinen bis zu einem gewissen Grad simulieren. Ein entsprechendes Programm ist in der Lehrveranstaltung vorgeführt worden. Warum muss man die Einschränkung „bis zu einem gewissen Grad“ machen? Aufgabe 2 (4 Punkte): Welche der folgenden Aussagen ist richtig, welche falsch? 1. Jede endliche Maschine hält für jede Eingabe immer an. 2. Die Ausgabe a jeder endlichen Maschine M ist höchstens um einen Faktor länger als die Eingabe e, das heißt: |a| nM |e|. 3. Jede Turing-Maschine hält für jede Eingabe immer an! 4. Die Ausgabe a jeder Turing-Maschine M ist höchstens um einen Faktor länger als die Eingabe e, das heißt: |a| nM |e|. Aufgabe 3 (3 Punkte): Zu welchem Zweck kodiert und normiert man endliche Maschinen und Turing-Maschinen? Aufgabe 4 (3 Punkte): Was besagt die Church’sche These? TEIL II: ANWENDUNG ( 25 MINUTEN) Definition 1: Eine Endliche Maschine M=(E, A, Z, T: E Z Z, F: E Z A*, z0, R) besteht aus: (1) einem Eingabealphabet E, (2) einem Ausgabealphabet A, (3) einer endlichen Zustandsmenge Z, (4) einer totalen Abbildung zur Zustandstransformation T: E Z Z, (5) einer totalen Abbildung zur Erzeugung der Ausgaben F: E Z A*, (6) einem Anfangszustand z0 Z und (7) einer Menge von Ruhezuständen R Z.. Aufgabe 5 (8 Punkte): Modellieren Sie einen Geldautomaten, wie wir ihn bei jeder Bank antreffen, als endliche Maschine! Der normale Ablauf ist dabei: EC-Karte eingeben, Geheimzahl eingeben, Betrag auswählen, EC-Karte entnehmen, Geld entnehmen. Kontostandsabfrage oder andere Dienste als die reine Geldausgabe sollen nicht modelliert werden. 1. Geben Sie das Eingabealphabet E an! Wählen Sie die Eingabezeichen so, dass die Modellierung übersichtlich bleibt. Zum Beispiel empfiehlt es sich die Geheimzahleingabe nur über zwei Ereignisse darzustellen, nämlich „korrekte Geheimzahl eingeben“ und „falsche Geheimzahl eingeben“. Gestatten Sie auch nur eine kleine feste Anzahl von verschiedenen vorgegebenen Auszahlungsbeträgen! 2. Geben Sie das Ausgabealphabet A an! Modellieren Sie die Ausgaben auf einer ähnlich abstrakten Ebene wie die Eingabeereignisse! 3. Geben Sie die Zustandsmenge Z sämtlicher interner Zustände Ihres Automaten an! Geben Sie den Anfangszustand an. Ruhezustände sind nicht zu modellieren! 4. Beschreiben Sie die Zustandsüberführungsfunktion T und die Ausgabefunktion F tabellarisch oder in Form eines Graphen. Achten Sie darauf, dass für alle Kombinationen aus Eingabeereignissen und Zuständen sowohl der Übergang als auch die Ausgabe definiert ist. Lassen sie Übergänge nur in den Fällen weg, wenn (a) der Zustand derselbe bleibt und (b) die Ausgabe leer () ist. Ihr System soll folgende Eigenschaften haben: (i) Abbruch soll weitgehend möglich sein! (ii) Mehrfache Fehleingabe der Geheimzahl soll behandelt werden! (iii) Ungültige EC-Karte soll behandelt werden! (iv) Jede Interaktion des Benutzers mit dem Automaten soll zu einem Feedback führen. Aufgabe 6 (4 Punkte): Stellen Sie sich vor, Ihre Firma hat bisher alle Systeme in der Programmiersprache COBOL entwickelt. Jetzt steigt sie auf JAVA um. Zur Konvertierung der alten Programme ist ein COBOL-JAVA-Konverter angeschafft worden, der auch ganz ordentlich funktioniert. Nur sehr selten stimmt das Verhalten der erzeugten Programme nicht mit den Originalen überein. Um diese sehr ärgerlichen Fälle herauszufiltern, werden Sie gebeten, ein Programm zu schreiben, das prüft, ob ein eingegebenes COBOL-Programm dasselbe Verhalten hat wie ein eingegebenes JAVA-Programm. Wie gehen Sie die Aufgabe an? Begründen Sie ihre Antwort ausführlich. TEIL III: TRANSFER (20 MINUTEN) Aufgabe 7 (3 Punkte): Ergänzen Sie Ihren Automaten aus Aufgabe 5 um die Ausgabe eines Erinnerungssignals, wenn die EC-Karte oder das Geld nicht innerhalb einer gewissen Zeit entnommen wurde. Erweitern Sie bitte E, A, Z, T und F. Definition 2: Eine Konfiguration k = (w, z, v) für eine Endliche Maschine M = (E, A, Z, T, F, z0, R) ist ein Element aus der Menge K = E* Z A*. Dabei ist w der noch nicht verarbeitete Eingabestrom, z der aktuelle Zustand und v die schon erzeugte Ausgabe. Aufgabe 8 (3 Punkte): Modellieren Sie eine Variante der Endlichen Maschinen mit (a) 2 verschiedenen Eingabeströmen mit gleichzeitiger Verarbeitung je einer Eingabe aus jedem Strom. (b) 2 verschiedenen Ausgabeströmen mit gleichzeitiger Ausgabe in beiden Strömen. (c) einem expliziten Lesekopf auf dem Eingabestrom, der sowohl nach rechts (wie bisher) als auch nach links (zum wiederholten Lesen zurückliegender Eingaben) positioniert werden kann. Dieser Kopf entspricht dem einer Turing-Maschine, nur dass hier ausschließlich gelesen und nicht geschrieben werden kann. Geben Sie sowohl die Definition der Maschine selbst (als Variante von Definition 1 oben), als auch der zugehörigen Konfigurationsmenge (als Variante von Definition 2 oben) an. Aufgabe 9 (2 Punkte): Was genau sagt der Satz von Rice aus?. 2