1. 2 Informatik 3 Praktikum 1.Heizobjekt und Toggles 2.Heizungssteuerungs- Automat 3.Testaufbau 4.Simulatoren 5.Histogramm 6.Grafikausgabe (Haus) 7.Bezier.

Slides:



Advertisements
Ähnliche Präsentationen
Ziele von EINI I + II Einführen in „Informatik“
Advertisements

der Universität Oldenburg
Klassen - Verkettete Liste -
Objektorientierte Programmierung
Konzepte objektorientierter Systeme
Universität Dortmund, Lehrstuhl Informatik 1 EINI II Einführung in die Informatik für Naturwissenschaftler und Ingenieure.
Seminar: "Einführung in C/C++" Einführung in die Programmiersprache C/C++ Donnerstag Andreas Döring SS 2004.
Threads Richard Göbel.
Java: Objektorientierte Programmierung
Java: Grundlagen der Objektorientierung
SWITCH - Anweisung.
Praktikum Entwicklung und Einsatz von Geosoftware I - Sitzung 6 Model-View-Controler als Grundlage für Nutzerschnittstellen Sommersemester 2003 Lars Bernard.
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Kapitel 7 Claudio Moraga, Gisbert Dittrich FBI Unido
Universität Dortmund, Lehrstuhl Informatik 1 EINI II Einführung in die Informatik für Naturwissenschaftler und Ingenieure.
Universität Dortmund, Lehrstuhl Informatik 1 EINI II Einführung in die Informatik für Naturwissenschaftler und Ingenieure.
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Vorlesung 2 SWS WS 99/00 Gisbert Dittrich FBI Unido
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Kapitel 2 Gisbert Dittrich; Claudio Moraga FBI Unido
Universität Dortmund, Lehrstuhl Informatik 1 EINI II Einführung in die Informatik für Naturwissenschaftler und Ingenieure.
Universität Dortmund, Lehrstuhl Informatik 1 EINI II Einführung in die Informatik für Naturwissenschaftler und Ingenieure.
Sebastian Grahn Sebastian Kühn
AWT – Detailbetrachtung Java 3D – Seminar im Wintersemester 2002/2003 Christian Schneider.
Projektplan: Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University.
Objektorientierte Programmierung
Einführung in Visual C++
Portierung von Java nach C
DVG Einführung in Java1 Einführung in JAVA.
Sommersemester 2004 Jan Drewnak Entwicklung und Einsatz von Geosoftware I Praktikum Sitzung 6 Sitzung 6: Model-View-Controller als Grundlage.
Objektorientierte Modellierung und Simulation technischer Systeme Vertiefungsveranstaltung im Studiengebiet SSG WS2006/2007 André Nordwig, Christoph Nytsch-Geusen.
Prof. Dr. Gerhard Schmidt pres. by H.-J. Steffens Software Engineering SS 2009Folie 1 Objektmodellierung Objekte und Klassen Ein Objekt ist ein Exemplar.
Einführung in die Programmierung Wintersemester 2013/14 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
University of Applied Sciences Übung Objektorientierte Programmierung II Dipl.-Inf. (FH) Markus Vogler.
Einführung in die Programmierung
Vortrag D. Braun, Praktikum. Übersicht Pleopatra API Pleopatra Tools Twitter Demonstration Ausblick.
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich.
Einführung in die Programmierung
Einführung in die Programmierung Wintersemester 2009/10 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Einführung in die Informatik für Naturwissenschaftler und Ingenieure
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Vorlesung 2 SWS WS 99/00 Gisbert Dittrich FBI Unido
Einführung in die Programmierung Wintersemester 2008/09 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Einführung in die Programmierung Wintersemester 2008/09 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Einführung in die Programmierung Wintersemester 2009/10 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Einführung in die Programmierung Wintersemester 2008/09 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich.
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fakultät.
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich.
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich.
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich.
Einführung in die Informatik für Naturwissenschaftler und Ingenieure
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich.
Einführung in die Programmierung Wintersemester 2008/09 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fakultät.
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich.
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fakultät.
Einführung in die Programmierung Wintersemester 2010/11 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Einführung in die Programmierung
Einführung in die Programmierung Wintersemester 2011/12 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Parallel Programming Proofs ( yay !)
OOP-Begriffe Abstraktion Modellieren Klasse Objekt Attribute Methoden
Informatik Objekte und Klassen 1. Objektorientiertes Modellieren und Programmieren 1.1 Objekte und Klassen.
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich.
Starten der Entwicklungsumgebung (IDE)
Polymorphie (Vielgestaltigkeit). Wenn eine Methode, wie z.B. print für verschiedene Programmteile steht (und z.B. einmal Objekte verschiedener Klassen.
A) Erklären Sie den Datentyp char. b) Erklären Sie den Datentyp Struct c) Erklären Sie die Wirkungsweise des Operators & bei Anwendung im Zusammenhang.
Java-Kurs Übung Benutzeroberflächen und Graphik Frames (Fenster)
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Thomas H. Kolbe Einführung in die Programmierung mit Java 4. Vorlesung WS 2001/2002.
Java-Kurs - 4. Übung Hausaufgabe Weitere Kontrollstrukturen
Wieland Schwinger Softwareentwicklung 2 Assertions.
Java-Kurs - 4. Übung Hausaufgabe Weitere Kontrollstrukturen
X. Übungsblatt – Aufgabe X In dieser Aufgabe soll ein synchron getakteter Steuerungsautomat für den in Abbildung 1 dargestellten Prozessor-Chip mit geringem.
Java-Kurs - 4. Übung weitere Kontrollstrukturen
 Präsentation transkript:

1

2 Informatik 3 Praktikum 1.Heizobjekt und Toggles 2.Heizungssteuerungs- Automat 3.Testaufbau 4.Simulatoren 5.Histogramm 6.Grafikausgabe (Haus) 7.Bezier mit MFC 8.Prozesse 9.Parallele Prog. I 10.Parallele Prog. II Vorlesung 1.Software-Engineering Grundlagen Softwaremodell Das V-Modell 2.Windows Applikationen Windows 32 API Fensterorientierte Applikationen 3.Parallele Programme Prozesse, Threads Kommunikation zwischen parallelen Programmen Konflikte

3 Grundlagen Einführung Modularisierung Interpretative Implementierung von Automaten

4 Automaten nicht interpretativ (aus IN1) Implementierung in der Programmstruktur

5 Interpretative Implementierung heißt: Umsetzung Ablauflogik in Daten (statt in ein Programm) Verwendung eines für beliebige Anwendungen benutzbaren Interpreter-Programms, das auf diesen Daten arbeitet

6 Jetzt: Automaten interpretativ

7 Beispielautomat: Dualzahlkonvertierer

8 Realisierung:

9 Automatentabelle struct AutoTabEintr AutoTab[] = { { ZiffLesen,Inp0, ZiffLesen,Update0, &ConvObj }, { ZiffLesen,Inp1, ZiffLesen,Update1, &ConvObj }, { ZiffLesen,InpEq, Ende, Output, &IOObj }, { Fehler, Reset, ZiffLesen,ResetAction, &ConvObj } }; // per Konvention: Noop==0 und Fehler== -1 enum Events { Inp1, Inp0, InpEq, Reset }; enum Actions { Noop=0, Update0, Update1, Output, ResetAction }; enum Zustaende { ZiffLesen, Ende, Fehler=-1 };

10 Verwendung der ISA-Relation class AutoClient { public: virtual void Action(short sActNr) {}; }; class AutoClient { public: virtual void Action(short sActNr) {}; }; class InputOutput: public AutoClient {... void Action(short sActNr); }; class InputOutput: public AutoClient {... void Action(short sActNr); }; class Converter: public AutoClient {... void Action(short sActNr); }; class Converter: public AutoClient {... void Action(short sActNr); }; Is a Spezialisierung

11 Verwendung virtueller Funktionen struct AutoTabEintr {public: short sZausg, sEvent, sZfolge, sAction; AutoClient *pAutoClient; }; struct AutoTabEintr {public: short sZausg, sEvent, sZfolge, sAction; AutoClient *pAutoClient; }; struct AutoTabEintr AutoTab[] = { { ZiffLesen,Inp0, ZiffLesen,Update0, &ConvObj }, { ZiffLesen,Inp1, ZiffLesen,Update1, &ConvObj }, { ZiffLesen,InpEq,Ende, Output, &IOObj }, { Fehler, Reset,ZiffLesen,ResetAction,&ConvObj } }; struct AutoTabEintr AutoTab[] = { { ZiffLesen,Inp0, ZiffLesen,Update0, &ConvObj }, { ZiffLesen,Inp1, ZiffLesen,Update1, &ConvObj }, { ZiffLesen,InpEq,Ende, Output, &IOObj }, { Fehler, Reset,ZiffLesen,ResetAction,&ConvObj } };... pTable[i].pAutoClient->Action(pTable[i].sAction);... pTable[i].pAutoClient->Action(pTable[i].sAction);...

12 Übersicht

13 IOObj: InputOutput cin>>ch; switch(ch) { case '0': sZust=pAutomat->Event(Inp0); break; case '1': sZust=pAutomat->Event(Inp1); break; case '=': sZust=pAutomat->Event(InpEq); break; default: cout<<"Eingabefehler"; break; } if(sZust==Ende) exit(0); if(sZust==Fehler) { cout<<"Falsche Eingabefolge, Reset"; pAutomat->Event(Reset); }

14 ConvObj: Converter void Converter::Action(short sActNr) { switch(sActNr) { case Update0: nWert *= 2; break; case Update1: nWert *= 2; nWert += 1; break; case ResetAction: nWert = 0; break; default: break; } int nWert;

15 IOObj: InputOutput void InputOutput::Action(short sActNr) { if(sActNr!=Output) cout<<"InputOutput: falsche Aktion "<<sActNr; else cout GetResult()<<" (dezimal)\n"; }

16 DualAuto: Automat for(int i=0; i<sAnzTab; i++) if((pTable[i].sZausg==sZustand)&& (pTable[i].sEvent==sEvNo)) { if(pTable[i].sAction != Noop) pTable[i].pAutoClient->Action(pTable[i].sAction); sZustand = pTable[i].sZfolge; return sZustand; } sZustand = Fehler; return sZustand;

17 Gesamtprogramm h cpp Hauptprogramm MnA2To10.CPP MsDev alle cpp h