Aufgabenkontext
Im Fußballstadion des FC Abitur wird der Einlass über Eintrittskarten geregelt. Auf jeder Eintrittskarte sind ein eindeutiger Eintrittscode sowie das Datum und der Status des Besuchers aufgedruckt.
Am Stadioneingang wird der Eintrittscode auf der Karte maschinell auf Gültigkeit geprüft. Ein gültiger Eintrittscode beginnt immer mit einem # gefolgt von einem beliebig langen Block aus Nullen und Einsen, wobei die Anzahl der Einsen und die Anzahl der aufeinanderfolgenden Nullen immer gerade sein müssen. Ein gültiger Eintrittscode wird immer mit einem * beendet. Laut der Definition eines gültigen Eintrittscodes ist somit auch die Zeichenfolge#* erlaubt. Ein weiteres Beispiel für einen gültigen Eintrittscode ist auf der Karte in Abbildung 1 zu finden.
a)
“Geben Sie jeweils einen gültigen und einen ungültigen Eintrittscode der Länge 10 an.”
Gültig:#00100111* ungültig: #001001110
“Der Eintrittscode soll mithilfe eines endlichen Automaten auf Gültigkeit geprüft werden. Die einzelnen Zeichen werden dabei von links nach rechts eingelesen.
Entwerfen Sie einen deterministischen endlichen Automaten, der genau die gültigen Eintrittscodes akzeptiert.”
Alle nicht dargestellten Zustandsübergange führe in einen Fehlerzustand.
“Beurteilen Sie, ob der Automat so erweitert werden kann, dass zusätzlich zu den bisherigen Regeln für einen gültigen Eintrittscode die Bedingung erfüllt sein muss, dass die Anzahl der Nullen gleich der Anzahl der Einsen ist.”
Nein, weil er endlich ist. Ein endlicher Automatik kann sich die Anzahl nur mit Zuständen merken. Somit
Aufgabenkontext
Die Eintrittskarten mit gültigem Eintrittscode werden im Folgenden durch die Klasse Eintrittskarte (vgl. Abbildung 2) modelliert.
b)
Erläutern Sie den Aufruf der Operation Eintrittskarte mit den Werten “16.09.2023” und “#00100100001111*“.
Es wird eine neue Objektinstanz erzeugt indem der Konstruktor der Klasse Eintrittskarte aufgerufen wird.