6. Zustandsorientierte Modellierung



Ähnliche Dokumente
Mediator 9 - Lernprogramm

Professionelle Seminare im Bereich MS-Office

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Erstellen von x-y-diagrammen in OpenOffice.calc

Suche schlecht beschriftete Bilder mit Eigenen Abfragen

Grundlagen der Theoretischen Informatik, SoSe 2008

Das RSA-Verschlüsselungsverfahren 1 Christian Vollmer

Anleitung über den Umgang mit Schildern

Die besten Excel-Tastenkombinationen im Überblick

Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster

MORE Profile. Pass- und Lizenzverwaltungssystem. Stand: MORE Projects GmbH

Übungen Programmieren 1 Felix Rohrer. Übungen

Arbeiten mit UMLed und Delphi

Zahlen auf einen Blick

Hilfe zur Urlaubsplanung und Zeiterfassung

Kara-Programmierung AUFGABENSTELLUNG LERNPARCOURS. Abb. 1: Programmfenster. Welt neu erstellen; öffnen; erneut öffnen; speichern; speichern unter

Wollen Sie einen mühelosen Direkteinstieg zum Online Shop der ÖAG? Sie sind nur einen Klick davon entfernt!

Das sogenannte Beamen ist auch in EEP möglich ohne das Zusatzprogramm Beamer. Zwar etwas umständlicher aber es funktioniert

Übungsaufgaben zur Programmiersprache Python

Tutorial: Entlohnungsberechnung erstellen mit LibreOffice Calc 3.5

ONLINE-AKADEMIE. "Diplomierter NLP Anwender für Schule und Unterricht" Ziele

Leichte-Sprache-Bilder

Schrittweise Anleitung zur Erstellung einer Angebotseite 1. In Ihrem Dashboard klicken Sie auf Neu anlegen, um eine neue Seite zu erstellen.

Welche Gedanken wir uns für die Erstellung einer Präsentation machen, sollen Ihnen die folgende Folien zeigen.

Hilfedatei der Oden$-Börse Stand Juni 2014

Professionelle Seminare im Bereich MS-Office

Erstellen einer Collage. Zuerst ein leeres Dokument erzeugen, auf dem alle anderen Bilder zusammengefügt werden sollen (über [Datei] > [Neu])

Diese Ansicht erhalten Sie nach der erfolgreichen Anmeldung bei Wordpress.

EINFACHES HAUSHALT- KASSABUCH

Deutsches Rotes Kreuz. Kopfschmerztagebuch von:

Informationsblatt Induktionsbeweis

Schritte 4. Lesetexte 13. Kosten für ein Girokonto vergleichen. 1. Was passt? Ordnen Sie zu.

OECD Programme for International Student Assessment PISA Lösungen der Beispielaufgaben aus dem Mathematiktest. Deutschland

Terminal Kasse und Berichte

Nicht kopieren. Der neue Report von: Stefan Ploberger. 1. Ausgabe 2003

Bilder zum Upload verkleinern

Fachdidaktik der Informatik Jörg Depner, Kathrin Gaißer

Stammdatenanlage über den Einrichtungsassistenten

Woche 1: Was ist NLP? Die Geschichte des NLP.

Anleitung Stempelerstellung Geocoinshop.de

Kreativ visualisieren

Die Post hat eine Umfrage gemacht

Primzahlen und RSA-Verschlüsselung

Wasserzeichen mit Paint-Shop-Pro 9 (geht auch mit den anderen Versionen. Allerdings könnten die Bezeichnungen und Ansichten etwas anders sein)

Animationen erstellen

Grundlagen der Tabellenkalkulation Die wichtigsten Funktionen im Überblick Christian Schett

Handbuch zur Anlage von Turnieren auf der NÖEV-Homepage

In diesem Tutorial lernen Sie, wie Sie einen Termin erfassen und verschiedene Einstellungen zu einem Termin vornehmen können.

Hinweise zum Übungsblatt Formatierung von Text:

1 Mathematische Grundlagen

Urlaubsregel in David

Fallbeispiel: Eintragen einer Behandlung

Inhaltsverzeichnis. 1. Empfängerübersicht / Empfänger hinzufügen 2. Erstellen eines neuen Newsletters / Mailings 3. Versand eines Newsletters

Papierverbrauch im Jahr 2000

Datenbanken Kapitel 2

Viele Bilder auf der FA-Homepage

1. Adressen für den Serienversand (Briefe Katalogdruck Werbung/Anfrage ) auswählen. Die Auswahl kann gespeichert werden.

Modellbildungssysteme: Pädagogische und didaktische Ziele

50 Fragen, um Dir das Rauchen abzugewöhnen 1/6

Bei der Anlage von Pauschalen ist folgendes zu beachten!!!!!!!!

Er musste so eingerichtet werden, dass das D-Laufwerk auf das E-Laufwerk gespiegelt

Windows. Workshop Internet-Explorer: Arbeiten mit Favoriten, Teil 1

Wordpress: Blogbeiträge richtig löschen, archivieren und weiterleiten

Erweiterung der Aufgabe. Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen:

CAQ Software für Ihr Qualitätsmanagement. Ablauf für die Erfassung der Fehler in der Fertigung

Grundlagen der Technischen Informatik. Sequenzielle Netzwerke. Institut für Kommunikationsnetze und Rechnersysteme. Paul J. Kühn, Matthias Meyer

Lehrer: Einschreibemethoden

Zahlenwinkel: Forscherkarte 1. alleine. Zahlenwinkel: Forschertipp 1

Software-Engineering SS03. Zustandsautomat

Nina. bei der Hörgeräte-Akustikerin. Musterexemplar

Zwischenablage (Bilder, Texte,...)

Schritt - für - Schritt - Anleitung

Der Kalender im ipad

teischl.com Software Design & Services e.u. office@teischl.com

Kostenstellen verwalten. Tipps & Tricks

1 topologisches Sortieren

Einführungskurs MOODLE Themen:

40-Tage-Wunder- Kurs. Umarme, was Du nicht ändern kannst.

Geld Verdienen im Internet leicht gemacht

Print2CAD 2017, 8th Generation. Netzwerkversionen

Informatik Kurs Simulation. Hilfe für den Consideo Modeler

Computeria Rorschach Mit Excel Diagramme erstellen

Würfelt man dabei je genau 10 - mal eine 1, 2, 3, 4, 5 und 6, so beträgt die Anzahl. der verschiedenen Reihenfolgen, in denen man dies tun kann, 60!.

Simulation LIF5000. Abbildung 1

Tevalo Handbuch v 1.1 vom

Wir basteln einen Jahreskalender mit MS Excel.

ARCO Software - Anleitung zur Umstellung der MWSt

Der Klassenrat entscheidet

Mathematik VERA-8 in Bayern Testheft B: Realschule Wirtschaftsschule

Schuljahreswechsel im Schul-Webportal

Informatik 2 Labor 2 Programmieren in MATLAB Georg Richter

Handbuch ECDL 2003 Basic Modul 6: Präsentation Diagramm auf einer Folie erstellen

2. Im Admin Bereich drücken Sie bitte auf den Button Mediathek unter der Rubrik Erweiterungen.

1: 9. Hamburger Gründerpreis - Kategorie Existenzgründer :00 Uhr

Serienbrieferstellung in Word mit Kunden-Datenimport aus Excel


Copyright Sophie Streit / Filzweiber / Fertigung eines Filzringes mit Perlen!

Evangelisieren warum eigentlich?

Tutorium zur Mikroökonomie II WS 02/03 Universität Mannheim Tri Vi Dang. Aufgabenblatt 3 (KW 44) ( )

Transkript:

bertram.hafner@t-online.de Informatik 11 Seite 25 6. Zustandsorientierte Modellierung Im Alltag benutzen wir vielfältige Automaten: denke an Getränkeautomat, Ampelanlage, Kaffeeautomat, Waschmaschine, Aufzug, CD-Spieler und so weiter. Diese Geräte vollziehen vordefinierte zeitliche Abläufe. Um diese Abläufe zu strukturieren, zerlegt man sie in Zustände, die der Automat annehmen kann. Von den Objekten wissen wir schon, dass ein Zustand festgelegt ist durch die Attributwerte des Objekts (siehe Karol oder siehe ein Objekt der Klasse TKonto). Zustandsübergänge werden bei Objekten durch Algorithmen realisiert. Karol (Zustand1) PositionX = 2 PositionY = 4 Richtung = O maxsprunghöhe = 1 Schritt() Karol (Zustand2) PositionX = 5 PositionY = 4 Richtung = S maxsprunghöhe = 1 Schritt() Konto1(Zustand1) Nummer = 1234 Inhaber = Huber Stand = 270,34 Einzahlen() Auszahlen() Überweisen() Konto1(Zustand2) Nummer = 1234 Inhaber = Huber Stand = 120,34 Einzahlen() Auszahlen() Überweisen() Auch bei Automaten werden die Zustände durch die Werte bestimmter Attribute (=Variablen) festgelegt. Bestimmte Ereignisse (Eingaben) lösen dann Zustandsübergänge aus, die man wieder als Algorithmen formulieren kann. Einen sehr einfachen Automaten stellt ein Stromkreis mit einem Wippschalter (Taster) dar. Dieser Automat kennt nur zwei Zustände und ein Ereignis: Zustand Z1: Zustand Z2: Ereignis T: Schalter offen, Lampe brennt nicht Schalter geschlossen, Lampe brennt Taste wird gedrückt Der Automat lässt sich durch folgendes Zustandsdiagramm beschreiben: Z1 T T Z2 Der Pfeil kennzeichnet den Start-Zustand, dieser ist hier gleichzeitig der End-Zustand (fett markiert). Das Ereignis T löst Zustandsübergange aus. Für Z1 ist der Folgezustand Z2, für Z2 ist der Folgezustand Z1. Um Automaten in den Griff zu bekommen benutzt man ein weiteres wichtiges Hilfsmittel: die Zustandstabelle: Zustand Schalter geschlossen Lampe Folgezustand bei T 1 nein aus 2 2 ja an 1 Der Zustand dieses Automaten ist allein festgelegt durch die Stellung des Schalters: geschlossen (ja/ nein).

bertram.hafner@t-online.de Informatik 11 Seite 26 Simulation in einem Delphi-Programm: Zur visuellen Umsetzung benutzen wir folgende Objekte: Taste: TButton Schalter, SchalterOffen: TImage Lampe, LampeGrau: TShape In Zustand 2 ist Lampe sichtbar, LampeGrau liegt dahinter. Ebenso ist Schalter (mit dem geschlossenen Schaltersymbol) sichtbar und überdeckt SchalterOffen. Die Schaltersymbole wurden im Bildeditor als Bitmap erstellt und in ein TImage-Objekt geladen. Das Ein- und Ausschalten der Lampe realisieren wir, indem wir die Eigenschaft Lampe.Visible auf true oder false setzen, entsprechend die Eigenschaft Schalter.Visible. Dieser einfache Sachverhalt ließe sich jetzt durch eine einfache Anweisung in der ButtonClick-Methode steu- ern: Da wir aber dieses Musterbeispiel auf komplexere Automaten übertragen wollen, packen wir die Aufgabe etwas Grund legender an: In der Zustandstabelle haben wir die benötigten Variablen und ihre Werte schon aufgelistet. Ich schlage vor, die Variablenwerte (=Daten) eines Zustands in einem Record zusammenzufassen. Deswegen deklarieren wir folgenden Record-Typ: TZustand = record S, L: boolean; fz: integer; end; Die gesamte Tabelle kommt dann in ein konstantes Array[1..2] of TZustand: const Tabelle: array[1..2] of TZustand = ((S: false; L: false; fz: 2), (S: true; L: true; fz: 1)); Der Automat muss natürlich jederzeit wissen, in welchem Zustand er sich befindet. Dazu erhält er die Integer-Variable z. Und den Zustandsübergang geben wir nicht wie oben in die Hand eines Button, sondern deklarieren eine Methode GeheInZustand(nr: integer), die beim Ereignis T (Tastendruck) aufgerufen wird. (Später bei anderen Automaten kann sie dann bei Eintritt eines beliebigen Ereignisses aufgerufen werden). Beim Programmstart (in der oncreate-methode von Form1) versetzen wir das System in den Start-Zustand: GeheInZustand(1). Beim Drücken der Taste lesen wir die Nummer des Folgezustands aus der Tabelle heraus: Tabelle[z].fz, wobei z die Nummer des Aktuellen Zustands enthält. Die gesamte Anweisung zum Wechsel in den nächsten Zustand lautet dann: GeheInZustand(Tabelle[z].fz).

bertram.hafner@t-online.de Informatik 11 Seite 27

bertram.hafner@t-online.de Informatik 11 Seite 28 Parallelschaltung mit zwei Schaltern Folgende Schaltung soll als Zustandsautomat simuliert werden: Jeder Druck auf eine Taste ändert den Zustand des zugehörigen Schalters und damit der ganzen Schaltung. Der Automat kennt zwei Ereignisse: T1, T2 (Druck auf Taste 1 / 2). Der Zustand der Schaltung hängt von zwei Variablen ab: Stellung von Schalter 1 und Schalter 2. Damit ergeben sich vier mögliche Zustände. Vervollständige folgende Zustandstabelle: Zustand Schalter 1 Schalter 2 Lampe 1 Lampe 2 1 offen offen aus aus 2 3 4 Folgezustand bei T1 bei T2 Zeichne ein Zustandsdiagramm: Aufgaben: 1. Programmiere die vorbereitete Delphi-Anwendung. Sie enthält alle Bauteile, aber noch keine Zeile Code. 2. Gib der Schaltung noch einen dritten Schalter im zweiten Zweig. Erweitere dazu deine Zustandstabelle.

bertram.hafner@t-online.de Informatik 11 Seite 29 Automat Ein endlicher, deterministischer Automat - hat eine feste Anzahl verschiedener Zustände. - Ein Zustand ist Startzustand, - (mind.) ein Zustand ist Endzustand. - Er kennt eine Menge von möglichen Eingaben (Ereignisse). - Eine Eingabe kann einen Zustandsübergang auslösen, - dabei werden bestimmte Aktionen ausgeführt. Beispiel: einfacher Getränke-Automat: Dieser nimmt nur 1Euro- und 50Cent-Münzen. Cola/Fanta kosten 1,50. Wenn 1,50 eingeworfen sind, nimmt er keine Münze mehr an und gibt auf Tastendruck das gewünschte Getränk aus. Zustandsübergangsdiagramm Eingabe / Aktion Einwurf 1 / Anzeige 1,00 hat 0 Einwurf 50 / Anzeige 0,50 Einwurf 50 / Anzeige 1,00 hat 0,5 hat 1 Taste Cola / Auswurf Cola, Anzeige 0,00 Taste Fanta / Auswurf Fanta, Anzeige 0,00 Einwurf 1 / Anzeige 1,50 hat 1,5 Einwurf 50 / Anzeige 1,50 Zustandsübergangstabelle Aktueller Zustand hat 0 hat 0,5 Eingabe (Ereignis) Einwurf 50 Einwurf 1 Einwurf 50 Einwurf 1 Anzeige 0,50 Anzeige 1,00 Anzeige 1,00 Anzeige 1,50 Aktion Folgezustand hat 0,5 hat 1 hat 1,0 hat 1,5 hat 1 Einwurf 50 Anzeige 1,50 hat 1,5 hat 1,5 Taste Cola Taste Fanta Auswurf Cola, Anzeige 0,00 Auswurf Fanta, Anzeige 0,00 hat 0 Diese Seite ist sinngemäß übernommen aus einer ppt-datei von U. Freiberger.

bertram.hafner@t-online.de Informatik 11 Seite 30 Die folgenden vorbereiteten Delphi-Beispiele liegen in einer S-Version und einer L-Version vor. Die Schüler-Version enthält eine klare Formulierung des Sachverhalts mit Aufgabenstellung. Die Delphi-Oberfläche mit allen nötigen Objekten ist bereits fertig vorgegeben, allerdings ohne jeglichen Programm-Code. Die Lehrer-Version ist eine fertige Delphi-Anwendung. Sie enthält aber außer dem Code: - Sachverhalt und Aufgabenstellung wie in der Schülerversion - die Lösung der gestellten Aufgabe in Form von Tabellen und Diagrammen. Der geschriebene Code hält sich sehr genau an diese Lösung. Diese L-Version ist im Unterricht sehr flexibel einsetzbar: - Zum kompletten Durchsprechen eines Beispiels von der Aufgabenstellung bis zum fertigen Programm. - Teilschritt als Aufgabe stellen, den Rest vorführen (z.b. nur Zustandsdiagramm erstellen lassen, nur Zustandstabelle erstellen lassen) - Beim Umsetzen in Programm-Code kann der Lehrer bestimmte Teile einfach zeigen oder auch abschreiben lassen. - Fertige Anwendung vorführen als Zielvorgabe für eine Projektarbeit. Fußgänger-Bedarfsampel

bertram.hafner@t-online.de Informatik 11 Seite 31 Getränkeautomat Dieses Beispiel ist aus mehreren Gründen schwieriger als die bisherigen: - Bisher hatten unsere Automaten nur eine einzige Variable z. Da dieser Automat viele Münzbeträge annimmt, sind die Zustände kaum mehr überschaubar, wenn wir alle denkbaren Beträge auflisten. Deswegen unterscheiden wir nur zwischen Geld reicht / Geld reicht nicht. Dann brauchen wir aber eine Variable a, in der sich der Automat den aktuellen Betrag merkt. - Die Aktionen, die durch die Ereignisse ausgelöst werden, sind umfangreicher. Wenn etwa eine Wahltaste gedrückt wird, muss das richtige Getränk ausgegeben werden, der Betrag um 1,50 vermindert werden, das Restgeld zurückgegeben werden, der Betrag auf Null gesetzt und die Anzeige aktualisiert werden. - Das Ereignis M (Münzwurf) in Zustand 1 führt nicht immer zum Folgezustand 2 sondern nur, wenn die Bedingung a+m 1,50 erfüllt ist. Lege dir in einer Zustandsübergangs-Tabelle (Ereignis-Tabelle) zurecht, bei welchem Ereignis welche Aktionen auszuführen sind. Da es vier Zustände gibt und vier Ereignisse, musst du dir 16 verschiedene Fälle durchdenken! Weil die Aktionen hier komplexer sind als bei der Ampel, genügt es nicht mehr, einfach zu schreiben geheinzustand(...) und dabei die Attribut-Werte aus einer Tabelle zu lesen. Deswegen brauchst du die Zustandsübergangs-Tabelle dann beim Programmieren der Ereignis-Methoden MuenzeClick(), RückgabeTasteClick(), WahlCClick(),... Zeichne das Zustandsdiagramm. Erstelle anschließend eine Zustandstabelle, in der du dir die Zustandswerte der verschiedenen Objekte zurecht legst: Ausgabefach (leer/voll), Wahltasten (aktiv/nicht aktiv) usw.

bertram.hafner@t-online.de Informatik 11 Seite 32 Aufzugsteuerung Wolf-Ziege-Kohl Stoppuhr