Klausur20003N

Werbung
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
Herunterladen