Ein Automatensimulator

Slides:



Advertisements
Ähnliche Präsentationen
Developing your Business to Success We are looking for business partners. Enterprise Content Management with OS|ECM Version 6.
Advertisements

Die Schulkonsole für Lehrerinnen und Lehrer
Vorlesung: 1 Betriebliche Informationssysteme 2003 Prof. Dr. G. Hellberg Studiengang Informatik FHDW Vorlesung: Betriebliche Informationssysteme Teil3.
Sortieren I - Bubblesort -
LS 2 / Informatik Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
Vorteile der Online-Produkte
Telefonnummer.
CPCP Institute of Clinical Pharmacology AGAH Annual Meeting, 29. Februar 2004, Berlin, Praktischer Umgang mit den Genehmigungsanträgen gemäß 12. AMG Novelle.
Modelle und Methoden der Linearen und Nichtlinearen Optimierung (Ausgewählte Methoden und Fallstudien) U N I V E R S I T Ä T H A M B U R G November 2011.
Modelle und Methoden der Linearen und Nichtlinearen Optimierung (Ausgewählte Methoden und Fallstudien) U N I V E R S I T Ä T H A M B U R G November 2011.
Workshop zur Medienarbeit der katholischen Kirche Aspekte des Religionsmonitors Berlin, 02. April 2008.
1 JIM-Studie 2010 Jugend, Information, (Multi-)Media Landesanstalt für Kommunikation Baden-Württemberg (LFK) Landeszentrale für Medien und Kommunikation.
= = = = 47 = 47 = 48 = =
-17 Konjunkturerwartung Europa September 2013 Indikator > +20 Indikator 0 a +20 Indikator 0 a -20 Indikator < -20 Europäische Union gesamt: +6 Indikator.
IMS Universität Stuttgart 1 Einführung in XML Hannah Kermes HS: Elektronische Wörterbücher Do,
Java: Objektorientierte Programmierung
Sortierverfahren Richard Göbel.
Sortierverfahren Richard Göbel.
Java: Grundlagen der Sprache
DOM (Document Object Model)
© 2006 W. Oberschelp, G. Vossen Rechneraufbau & Rechnerstrukturen, Folie 2.1.
Grundkurs Theoretische Informatik, Folie 2.1 © 2006 G. Vossen,K.-U. Witt Grundkurs Theoretische Informatik Kapitel 2 Gottfried Vossen Kurt-Ulrich Witt.
Vorlesung: 1 Betriebliche Informationssysteme 2003 Prof. Dr. G. Hellberg Studiengang Informatik FHDW Vorlesung: Betriebliche Informationssysteme Teil2.
Vererbung Spezialisierung von Klassen in JAVA möglich durch
PKJ 2005/1 Stefan Dissmann Rückblick auf 2005 Was zuletzt in 2005 vorgestellt wurde: Klassen mit Attributen, Methoden und Konstruktoren Referenzen auf.
PKJ 2005/1 Stefan Dissmann Zusammenfassung Bisher im Kurs erarbeitete Konzepte(1): Umgang mit einfachen Datentypen Umgang mit Feldern Umgang mit Referenzen.
AC Analyse.
Schieferdeckarten Dach.ppt
DVG Klassen und Objekte
1 Teil 4 Übung: Uhr. 2 Zielsetzung Ziel ist es, mit Hilfe objektorientierter Modellierung ein System zu entwickeln, mit dem eine einfache Uhr simuliert.
Rechneraufbau & Rechnerstrukturen, Folie 12.1 © W. Oberschelp, G. Vossen W. Oberschelp G. Vossen Kapitel 12.
1. 2 Schreibprojekt Zeitung 3 Überblick 1. Vorstellung ComputerLernWerkstatt 2. Schreibprojekt: Zeitung 2.1 Konzeption des Kurses 2.2 Projektverlauf.
PRJ 2007/1 Stefan Dissmann Verkettete datenstruktur: Liste Problem: Liste, die eine beliebige Zahl von Elementen verwaltet Operationen: Erzeugen, Anfügen,
20:00.
© Gabriele Sowada © Gabriele Sowada 2 Manuell Beispiel 1 demonstriert die Vorgehensweise bei der manuellen Programm- Eingabe am.
„Küsse deine Freunde“ – FlexKom-App teilen
Delphi II - OOP IFB Fortbildung
Formale Sprachen und Automaten
Endliche Automaten Informatik JgSt. 13, Abitur 2009
Entwurfs- und Implementationsdiagramme
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich.
Syntaxanalyse Bottom-Up und LR(0)
Objektorientierte Software-Entwicklung
Automatensimulator Klaus Becker 2006.
NEU! 1 2. Wo kommt diese Art von Rezeptor im Körper vor?
Analyse von Ablaufdiagrammen
HORIZONT 1 XINFO ® Das IT - Informationssystem HORIZONT Software für Rechenzentren Garmischer Str. 8 D München Tel ++49(0)89 /
HORIZONT 1 XINFO ® Das IT - Informationssystem PL/1 Scanner HORIZONT Software für Rechenzentren Garmischer Str. 8 D München Tel ++49(0)89 / 540.
Ganzheitliches Projekt-, Ressourcen- und Qualitätsmanagement 1 Reports und AddOns Auf den folgenden Seiten wird Ihnen die Funktionsweise der Reports und.
UML-Kurzüberblick Peter Brusten.
PROCAM Score Alter (Jahre)
Vorlesung Mai 2000 Konstruktion des Voronoi-Diagramms II
Symmetrische Blockchiffren DES – der Data Encryption Standard
Großer Altersunterschied bei Paaren fällt nicht auf!
MINDREADER Ein magisch - interaktives Erlebnis mit ENZO PAOLO
1 (C)2006, Hermann Knoll, HTW Chur, FHO Quadratische Reste Definitionen: Quadratischer Rest Quadratwurzel Anwendungen.
+21 Konjunkturerwartung Europa Dezember 2013 Indikator > +20 Indikator 0 bis +20 Indikator 0 bis -20 Indikator < -20 Europäische Union gesamt: +14 Indikator.
Schutzvermerk nach DIN 34 beachten 20/05/14 Seite 1 Grundlagen XSoft Lösung :Logische Grundschaltung IEC-Grundlagen und logische Verknüpfungen.
1 Mathematical Programming Nichtlineare Programmierung.
1 Albert-Ludwigs-Universität Freiburg Rechnernetze und Telematik Prof. Dr. Christian Schindelhauer Informatik III Christian Schindelhauer Wintersemester.
Ertragsteuern, 5. Auflage Christiana Djanani, Gernot Brähler, Christian Lösel, Andreas Krenzin © UVK Verlagsgesellschaft mbH, Konstanz und München 2012.
Programmiervorkurs WS 2014 Referenzdatentypen
SiLeBAT Sicherstellung der Futter- und Lebensmittelwarenkette bei bio- und agro-terroristischen (BAT)-Schadenslagen.
Es war einmal ein Haus
1 Tagesüberblick 4 Lösung Hausaufgabe/Fragen Mustervergleiche.
Musterlösung IT-Struktur an Schulen © Zentrale Planungsgruppe Netze am Kultusministerium Baden-Württemberg Software-Verteilung mit ZENworks 4 Regionale.
1 10 pt 15 pt 20 pt 25 pt 5 pt 10 pt 15 pt 20 pt 25 pt 5 pt 10 pt 15 pt 20 pt 25 pt 5 pt 10 pt 15 pt 20 pt 25 pt 5 pt 10 pt 15 pt 20 pt 25 pt 5 pt Wie.
Das IT - Informationssystem
1 Medienpädagogischer Forschungsverbund Südwest KIM-Studie 2014 Landesanstalt für Kommunikation Baden-Württemberg (LFK) Landeszentrale für Medien und Kommunikation.
Monatsbericht Ausgleichsenergiemarkt Gas – Oktober
 Präsentation transkript:

Ein Automatensimulator Klaus Becker 2004

Automatensimulator Tag AusAusAn

Teil 1 Endliche Automaten

Beispiel: Ampelsteuerung Ziel ist es, eine steuerbare Ampel zu modellieren. /1/ Die Ampel kann mit Hilfe eines Steuersignals auf Tag- und Nachtbetrieb eingestellt werden. /2/ Im Tagbetrieb durchläuft die Ampel die üblichen Phasen. Alle Phasen sollen der Einfachheit halber gleich lang sein. /3/ Im Nachtbetrieb soll nur die gelbe Lampe blinken.

Zustandsbasierte Modellierung Erstellt mit Violet

Zustandsbasierte Modellierung

Automat als Datenverarbeitungsmodell Tag Eingabe Verarbeitung Ausgabe AusAusAn

Präzisierung des Automatenbegriffs Ein endlicher Automat ist ein Tupel A = (Z, za, E, A, , ) bestehend aus - einer endlichen Menge Z von Zuständen, - einem Anfangszustand zaZ, - einer endlichen Menge E von Eingabezeichen, - einer endlichen Menge A von Ausgabezeichen, - einer Überführungsfunktion : Z x E  Z und - einer Ausgabefunktion : Z x E  A. Zustandsmenge: Z = {rot, rotgelb, gruen, gelb, aus} Anfangszustand: za = gelb Eingabemenge: E = {Tag, Nacht} Ausgabemenge: A = {AnAusAus, AnAnAus, AusAusAn, ...} Überführungsfunktion: : (rot, Tag)  rotgelb, ... Ausgabefunktion: : (rot, Tag)  AnAnAus, ...

Beispiel: Steuerung einer Klimaanlage Aus der Bedienungsanleitung: Die Klimaanlage hat drei Schaltstufen: 1. Aus: Es leuchtet keine Kontrollleuchte. 2. Halbe Kühlleistung: Eine Kontrollleuchte ist an. 3. Volle Kühlleistung: Beide Kontrollleuchten sind an. Drücken Sie jeweils auf den Schalter, um zwischen den Schaltstufen umzuschalten. nach D. Jonietz: Lehrprobenentwurf

Übung Beschreiben Sie das Verhalten der Klimaanlage mit Hilfe eines endlichen Automaten. Geben Sie für Ihren Automaten auch die einzelnen Automatenbestandteile (Zustandsmenge etc.) an.

Auftrag und Pflichtenheft Teil 2 Auftrag und Pflichtenheft

Auftrag Es soll ein Programm zur Simulation von endlichen Automaten entwickelt werden. Mit Hilfe dieses Programms soll der Benutzer einen beliebigen Automaten festlegen und sein Verhalten simulieren können.

Prototyp

Pflichtenheft /0/ Der Benutzer kann einen beliebigen Automaten (in einer vorgegebenen Sprache) festlegen. /1/ Die Beschreibung des Automaten soll ein standardisiertes Format besitzen. Wir orientieren uns an der Automatendefinition und die benutzen die Sprache XML. /2/ Die Automatenbeschreibung kann gespeichert und wieder geladen werden. /3/ Zur Simulation des Automatenverhaltens kann der Benutzer beliebige Eingaben vorgeben und den Automaten diese Eingabe verarbeiten lassen. Das Programm zeigt dann die vom Automaten erzeugte Ausgabe an. /4/ Der jeweilige aktuelle Zustand des Automaten soll dem Benutzer angezeigt werden.

Exkurs: XML XML (Abk. für extended markup language) ist eine Metasprache zur Beschreibung von Auszeichnungssprachen für allgemeine Dokumente. XML wurde 1996 entworfen und 1998 eingeführt. XML ist aus SGML und HTML entstanden. (Duden Informatik) XML erlaubt es, neue Sprachen zu entwerfen, z. B. um eine Dokumentenstruktur festzulegen. <?xml version="1.0"?> <automat name="Ampel"> <zustandsmenge> <zustand>rot</zustand> <zustand>rotgelb</zustand> ... </zustandsmenge> ... </automat> Informationen zu XML: http://selfhtml.teamone.de/xml/

Exkurs: XML Die Informationen in einem XML-Dokument werden mit Hilfe von sog. Tags eingeschlossen. Z. B.: <zustand>rot</zustand> Ein Tag kann mit Attributen versehen werden. Z. B.: <automat name="Ampel"> Das gesamte XML-Dokument ist hierarchisch aus Tags und Texten aufgebaut. <?xml version="1.0"?> <automat name="Ampel"> <zustandsmenge> <zustand>rot</zustand> <zustand>rotgelb</zustand> ... </zustandsmenge> ... </automat>

Automatenbeschreibung mit XML <?xml version="1.0"?> <automat name="Ampel"> <zustandsmenge> <zustand>rot</zustand> <zustand>rotgelb</zustand> ... </zustandsmenge> <anfangszustand> <zustand>gelb</zustand> </anfangszustand> <eingabemenge> <eingabe>Tag</eingabe> <eingabe>Nacht</eingabe> </eingabemenge> <ausgabemenge> <ausgabe>AusAusAus</ausgabe> <ausgabe>AnAusAus</ausgabe> ... </ausgabemenge> ...

Automatenbeschreibung mit XML ... <ueberfuehrungsfunktion> <delta>rot,Tag,rotgelb</delta> <delta>rot,Nacht,aus</delta> <delta>rotgelb,Tag,gruen</delta> <delta>rotgelb,Nacht,aus</delta> <delta>gruen,Tag,gelb</delta> <delta>gruen,Nacht,aus</delta> ... </ueberfuehrungsfunktion> <ausgabefunktion> <lambda>rot,Tag,AnAnAus</lambda> <lambda>rot,Nacht,AusAusAus</lambda> <lambda>rotgelb,Tag,AusAusAn</lambda> <lambda>rotgelb,Nacht,AusAusAus</lambda> <lambda>gruen,Tag,AusAnAus</lambda> <lambda>gruen,Nacht,AusAusAus</lambda> <lambda>gelb,Tag,AnAusAus</lambda> ... </ausgabefunktion> </automat>

Vereinfachte Automatenbeschreibung <?xml version="1.0"?> <automat name="Ampel"> <zustandsmenge> <zustand>rot</zustand> <zustand>rotgelb</zustand> ... </zustandsmenge> <anfangszustand> <zustand>gelb</zustand> </anfangszustand> <eingabemenge> <eingabe>Tag</eingabe> <eingabe>Nacht</eingabe> </eingabemenge> <ausgabemenge> <ausgabe>AusAusAus</ausgabe> <ausgabe>AnAusAus</ausgabe> ... </ausgabemenge> ... Kann festgelegt werden Muss festgelegt werden linksbündig

Vereinfachte Automatenbeschreibung ... <ueberfuehrungsfunktion> <delta>rot,Tag,rotgelb</delta> <delta>rot,Nacht,aus</delta> <delta>rotgelb,Tag,gruen</delta> <delta>rotgelb,Nacht,aus</delta> <delta>gruen,Tag,gelb</delta> <delta>gruen,Nacht,aus</delta> ... </ueberfuehrungsfunktion> <ausgabefunktion> <lambda>rot,Tag,AnAnAus</lambda> <lambda>rot,Nacht,AusAusAus</lambda> <lambda>rotgelb,Tag,AusAusAn</lambda> <lambda>rotgelb,Nacht,AusAusAus</lambda> <lambda>gruen,Tag,AusAnAus</lambda> <lambda>gruen,Nacht,AusAusAus</lambda> <lambda>gelb,Tag,AnAusAus</lambda> ... </ausgabefunktion> </automat> Trennung mit Komma, keine Leerzeichen, alle Informationen in eine Zeile

Übung Beschreiben Sie den Klimaanlage-Automaten mit Hilfe der vereinfachten Automatensprache. Diese Automatenbeschreibung wird später zu Testzwecken benötigt.

Übung Die vorgestellte XML-Beschreibung eines Automaten kann auf verschiedene Weisen modifiziert und verbessert werden. - Die Tag-Bezeichner sind recht lang (viel Schreibarbeit). Man könnte hier geeignete Abkürzungen einführen. - Die Überführungs- und Ausgabefunktion können gemeinsam erfasst werden. - Die durch das Komma dargestellte innere Struktur der <delta>- und <lambda>-Einheiten sollte durch XML selbst erfasst werden. Entwickeln Sie einen geeigneten Vorschlag.

Objektorientierte Analyse Teil 3 Objektorientierte Analyse

Zielsetzung der OOA Modellierung des Problembereichs („Miniwelt“), der vom zu entwickelnden Informatiksystem erfasst werden soll. - Unabhängig von der späteren Implementierung wird die Miniwelt mit Hilfe von Objekten, Klassen sowie deren Beziehungen beschrieben. - Die Miniwelt wird dabei soweit abstrahiert, dass alle für den Auftraggeber relevanten Bestandteile des Problembereichs abgebildet sind. - Das Ergebnis einer OOA ist also eine präzise, abstrahierende Beschreibung der Miniwelt.

Beschreibung der Miniwelt Tag AusAusAn

Beschreibung der Miniwelt Tag <?xml version="1.0"?> <automat name="Ampel"> <zustandsmenge> <zustand>rot</zustand> <zustand>rotgelb</zustand> ... </zustandsmenge> <anfangszustand> <zustand>gelb</zustand> </anfangszustand> <eingabemenge> <eingabe>Tag</eingabe> <eingabe>Nacht</eingabe> </eingabemenge> <ausgabemenge> <ausgabe>AusAusAus</ausgabe> <ausgabe>AnAusAus</ausgabe> ... rotgelb ...

Übung Überlegen Sie sich, wie ein Objekt zur Beschreibung eines Automaten strukturiert sein könnte. Beschreiben Sie die Zuständigkeiten dieses Objektes und modellieren Sie seine Attribute und Methoden. Stellen Sie die Ergebnisse mit Hilfe geeigneter Diagramme dar.

Der Automat als Objekt Zuständigkeiten: - verwaltet die Automatenbeschreibung - verwaltet den aktuellen Zustand Dienste: - in den Anfangszustand setzen - zu einer Eingabe eine Ausgabe bestimmen und zur Verfügung stellen - zu einer Eingabe den neuen Zustand setzen - den aktuellen Zustand zur Verfügung stellen

Erste Objektdiagramme Zuständigkeiten: - verwaltet die Automatenbeschreibung - verwaltet den aktuellen Zustand Version 1: Version 2:

Ein erstes Klassendiagramm Dienste: - in den Anfangszustand setzen - zu einer Eingabe eine Ausgabe bestimmen und zur Verfügung stellen - zu einer Eingabe den neuen Zustand setzen - den aktuellen Zustand zur Verfügung stellen - die Beschreibung festlegen

Objektorientiertes Design Teil 4 Objektorientiertes Design

Zielsetzung des OOD Anpassung des OOA-Modells an die Rahmenbedingungen des zu erstellenden Systems - Genaue Spezifikation der Attribute (Datentypen) und Methoden (Parameter und ihre Datentypen) - Modellierung der Benutzungsoberfläche

Spezifikation der Attribute und Methoden Datentypen: - Eingaben, Ausgaben und Zustände werden als Zeichenketten dargestellt. - Die Automatenbeschreibung wird als Liste von Zeichenketten dargestellt.

Benutzungsoberfläche

Ereignisbehandlung Benutzeraktion Programmreaktionen Mausklick auf den „Laden“-Button Mausklick auf den „Speichern“-Button Mausklick auf den „Löschen“-Button Mausklick auf den „Übernehmen“-Button Mausklick auf den „Initialisieren“-Button Mausklick auf den „Verarbeiten“-Button Die Automatenbeschreibung wird in das Memo-Feld geladen. Die Automatenbeschreibung im Memo-Feld wird gespeichert. Das Memo-Feld wird gelöscht. Der Automat hat keine Beschreibung mehr. Der Automat übernimmt die Automaten-beschreibung. Der Automat wird in den Anfangszustand gesetzt. Der Automat übernimmt die Eingabe, berechnet die Ausgabe und geht in den neuen Zustand über. Die Ausgabe und der neue Zustand werden angezeigt.

Klasse TGUI

Übung Erstellen Sie mit Hilfe von UMLEd ein Klassendiagramm zur Klasse TAutomat mit integrierter Dokumentation.

Implementierung und Testen Teil 5 Implementierung und Testen

Beispiel: TAutomat.anfangszustand <?xml version="1.0"?> <automat name="Ampel"> <anfangszustand> <zustand>gelb</zustand> </anfangszustand> ... ALGORITHMUS anfangszustand Suche die Zeile <anfangszustand> Gehe zur nächsten Zeile Bestimme die Zeichenkette zwischen den Tags Weise „zustand“ den entsprechenden Wert zu

Exkurs: Stringverarbeitung mit Delphi function Length(S: string): integer; Beschreibung: Length gibt die Anzahl der im angegebenen String vorhandenen Zeichen zurück. Beispiel: L := Length('<zustand>') // L  9 function Pos(Substr: string; S: string): integer; Beschreibung: Pos sucht in dem String S nach dem Teilstring Substr. Wird der Teilstring gefunden, gibt Pos den Integer-Index des ersten Zeichens von Substr in S zurück. Die Groß/Kleinschreibung wird von Pos nicht berücksichtigt. Ist Substr nicht vorhanden, wird der Wert 0 zurückgegeben. Beispiele: Position := Pos('</z>', '<z>test</z>') // Position  8 Position := Pos('Hi', 'Delphibuch') // Position  5 Position := Pos('ihi', 'Delphibuch') // Position  0

Exkurs: Stringverarbeitung mit Delphi function Copy(S; Index, Count: Integer): string; Beschreibung: S ist ein Ausdruck des Typs String. Index und Count sind Integer-Ausdrücke. Copy gibt einen Substring zurück, das Count Zeichen ab S[Index] enthält. Ist Index größer als die Länge von S, gibt Copy einen leeren String zurück. Gibt Count mehr Zeichen an, als verfügbar sind, werden nur die Zeichen von S[Index] bis zum Ende von S zurückgegeben. Beispiele: Hilf := Copy('<z>test</z>',8,4) // Hilf  '</z>' Hilf := Copy('<z>test</z>',4,4) // Hilf  'test' Hilf := Copy('<z>test</z>',8,6) // Hilf  '</z>'

Exkurs: Die Delphi-Klasse TStringList TStringList verwaltet eine Liste, die Strings enthält. Beschreibung: TStringList-Objekte dienen zum Speichern und Verwalten von String-Listen. TStringList implementiert die von TStrings eingeführten abstrakten Eigenschaften und Methoden und führt selbst neue Eigenschaften, Ereignisse und Methoden ein, die - die in der Liste enthaltenen Strings sortieren. - doppelte Strings aus sortierten Listen entfernen. - auf Änderungen des Listeninhalts reagieren. (Quelle: Delphi-Hilfe)

Exkurs: Die Delphi-Klasse TStringList <?xml version="1.0"?> <automat name="Ampel"> <zustandsmenge> <zustand>rot</zustand> <zustand>rotgelb</zustand> <zustand>gruen</zustand> <zustand>gelb</zustand> <zustand>aus</zustand> </zustandsmenge> <anfangszustand> <zustand>gelb</zustand> </anfangszustand> ... beschreibung[0]: '<?xml version="1.0"?>' beschreibung[1]: '<automat name="Ampel">' Zugriff auf die Listenelemente beschreibung[2]: '<zustandsmenge>' ...

Exkurs: Die Delphi-Klasse TStringList '<?xml version="1.0"?>' Attribut 1 '<automat name="Ampel">' 2 '<zustandsmenge>' ... ... beschreibung.Count-1 '</automat>' procedure Add(S: string); - fügt die Zeichenkette S am Ende der Liste an procedure Clear; - löscht die gesamte Liste procedure Delete(Index: Integer); - löscht nur den Eintrag mit dem übegebenen Index procedure Insert(Index: Integer; S: string); - fügt die Zeichenkette S an die durch Index beschriebenen Zeile in der Liste ein procedure LoadFromFile(FileName: string); procedure SaveToFile(FileName: string); - lädt eine Liste aus einer Datei / speichert eine Liste in eine Datei Methoden

Übung Implementieren Sie zunächst die Klasse TAutomat gemäß der modellierten Klassenbeschreibung. Testen Sie das entwickelte System. Zum Testen soll zum einen der vorgefertigte Ampelautomat, zum anderen ein selbst erstellter Klimaanlagenautomat benutzt werden.

Erweiterung und Überarbeitung Teil 6 Erweiterung und Überarbeitung

Verarbeitung von Eingabefolgen Tag Tag Tag Nacht ... AnAusAus AnAnAus AusAusAn AusAusAus ...

Verarbeitung von Eingabefolgen Tag Tag Tag Nacht ... <?xml version="1.0"?> <automat name="Ampel"> <zustandsmenge> <zustand>rot</zustand> <zustand>rotgelb</zustand> ... </zustandsmenge> <anfangszustand> <zustand>gelb</zustand> </anfangszustand> <eingabemenge> <eingabe>Tag</eingabe> <eingabe>Nacht</eingabe> </eingabemenge> <ausgabemenge> <ausgabe>AusAusAus</ausgabe> <ausgabe>AnAusAus</ausgabe> ... TStringList gelb TStringList AnAusAus AnAnAus AusAusAn AusAusAus ... TStringList

Aufgabe Erweitern Sie den Automatensimulator um die Möglichkeit, ganze Eingabefolgen zu verarbeiten.

Aufgabe Der entwickelte Automatensimulator arbeitet recht ineffizient. Woran liegt das? Wie könnte man diesen Mangel beheben? Lösungsvorschlag von K. Merkert: http://hsg.region-kaiserslautern.de/faecher/inf/material/xml/delphi/xmlautomat.zip