310 likes | 375 Views
Mittwoch 9.15 Uhr – 10.00 Uhr S25 Praktikum zur Entwicklung von Simulationsmodellen: Mittwoch 14.00 Uhr – 17.00 Uhr GEO CIP-Pool. Entwicklung von Simulationsmodellen. Modul: 22a. http://www.bayceer.uni-bayreuth.de/mod/html/ws0708/geooekologie/simulationsmodelle. WS 2007/08
E N D
Mittwoch 9.15 Uhr – 10.00 Uhr S25 Praktikum zur Entwicklung von Simulationsmodellen: Mittwoch 14.00 Uhr – 17.00 Uhr GEO CIP-Pool Entwicklung von Simulationsmodellen Modul: 22a http://www.bayceer.uni-bayreuth.de/mod/html/ws0708/geooekologie/simulationsmodelle WS 2007/08 Dr. Falk-Juri Knauft
Entwicklung von Simulationsmodellen WS 2007/2008 – Überblick I http://www.bitoek.uni-bayreuth.de/mod/html/ws0708/geooekologie/simulationsmodelle http://www.bayceer.uni-bayreuth.de/mod/html/ws0708/geooekologie/simulationsmodelle
Paradigmen der Programmierung • Motivation • Definition Algorithmus • Prozedurale Programmierung • Deklarative Programmierung • Funktionale Programmierung • Logische Programmierung • Objektorientierte Programmierung Unter einem Paradigma versteht man eine forschungsleitende Perspektive oder Sichtweise, die für eine bestimmte Zeit und bestimmte Gruppe von Wissenschaftlern konsensbildend ist. (nach Thomas S. KUHN, 1976)
Motivation Def. Algorithmus Prozedurale Programm. Deklarative Programm. Objektorient. Programm. • Diese Vorlesung soll es Ihnen ermöglichen,... • durch Kenntnis der wesentlichen Programmier-Paradigmen ... • dasjenige auszuwählen,... • welches Ihnen am besten erlaubt ... • Ihr spezifisches Simulationsproblem zu lösen. Motivation: Problem 1
Motivation Def. Algorithmus Prozedurale Programm. Deklarative Programm. Objektorient. Programm. Problem: Wie kommt der Nagel in den Balken? • Hilfsmittel: • Schraubenzieher • Bohrmaschine • Säge • Hammer
Motivation Def. Algorithmus Prozedurale Programm. Deklarative Programm. Objektorient. Programm. • Diese Vorlesung soll es Ihnen ermöglichen,... • durch Kenntnis der wesentlichen Programmier-Paradigmen ... • dasjenige auszuwählen,... • welches Ihnen am besten erlaubt ... • Ihr spezifisches Simulationsproblem zu lösen. Motivation: Problem 1 Problem 2
Motivation Def. Algorithmus Prozedurale Programm. Deklarative Programm. Objektorient. Programm. m m Höhe Höhe Zeit Weg s m Problem: Modellierung des waagerechten Wurfes
Motivation Def. Algorithmus Prozedurale Programm. Deklarative Programm. Objektorient. Programm. • Diese Vorlesung soll es Ihnen ermöglichen,... • durch Kenntnis der wesentlichen Programmier-Paradigmen ... • dasjenige auszuwählen,... • welches Ihnen am besten erlaubt ... • Ihr spezifisches Simulationsproblem zu lösen. Motivation: Problem 1 Problem 2 Problem 3
Motivation Def. Algorithmus Prozedurale Programm. Deklarative Programm. Objektorient. Programm. Problem: Zuordnung räumlich bezogener Informationen
Motivation Def. Algorithmus Prozedurale Programm. Deklarative Programm. Objektorient. Programm. • Diese Vorlesung soll es Ihnen ermöglichen,... • durch Kenntnis der wesentlichen Programmier-Paradigmen ... • dasjenige auszuwählen,... • welches Ihnen am besten erlaubt ... • Ihr spezifisches Simulationsproblem zu lösen. Motivation: Problem 1 Problem 2 Problem 3 Problem 4
Motivation Def. Algorithmus Prozedurale Programm. Deklarative Programm. Objektorient. Programm. Problem: Hecht im Forellenteich
Motivation Def. Algorithmus Prozedurale Programm. Deklarative Programm. Objektorient. Programm. Definition Algorithmus
Motivation Def. Algorithmus Prozedurale Programm. Deklarative Programm. Objektorient. Programm. Modellierung der Information Modellierung der Verarbeitung • Information als Datentyp (integer, bool, real) in Variablen oder Variablen-Konstrukten (Arrays, Records) gespeichert • Referenzen/Zeiger verweisen auf Variablen • Folge globaler Zustandsänderungen (globaler Zustand als Gesamtheit der Variablen-Zustände) • Je Z.ä. wird Inhalt einer oder weniger Variablen geändert ... • ... oder es werden Variablen erzeugt oder entfernt • Z.ä. durch elementare Anweisung beschrieben (Zuweisung, Allokation, Deallokation, Lese- oder Schreiboperation) • Folgen von Z.ä. als zusammen-gesetzte Anweisung, evt. auch als unendliche Folge Prozedurale Programmierung
Motivation Def. Algorithmus Prozedurale Programm. Deklarative Programm. Objektorient. Programm. Prozeduren • Benannte parametrisierte Anweisungen, meist zur Erledigung von Aufgaben/ Teilaufgaben • Funktionsprozeduren liefern Ergebnisse • P. können andere P. aufrufen • P.aufrufe müssen eindeutig zugeordnet sein Prozedurale Programmierung Prozedur B:if i=1 then set c=blau Prozedur A:set i = i+1 Zustand 1:Variable int i=0Variable color c=grau Zustand 2:i=1c=grau Zustand 3:i=1c=blau
Motivation Def. Algorithmus Prozedurale Programm. Deklarative Programm. Objektorient. Programm. Deklarative Programmierung • Erschließung mathematischer Beschreibungsmittel für die Programmierung • Erleichterung des Umgangs mit komplexen Daten • Verzicht auf Variablen • Nicht Verarbeitungsvorschrift, sondern Spezifikation der Programm-Ergebnisse mit speziellen mathematischen Beschreibungsmitteln. • Modellierung von Informationen, sowie deren Beziehungen und Eigenschaften • Verarbeitung der Informationen zumeist implizit
Motivation Def. Algorithmus Prozedurale Programm. Deklarative Programm. Objektorient. Programm. Funktionale Programmierung Deklarative Programmierung • Programm als partielle Funktion von Eingabe- und Ausgabedaten • Ausführung durch Anwendung der Funktion auf die Eingabe • Deklaration von Datentypen und Funktionen, evt. auch geschachtelt • Ermöglicht die Nutzung komplexer Datenstrukturen ohne Zeiger und Variablen • Bsp.
Motivation Def. Algorithmus Prozedurale Programm. Deklarative Programm. Objektorient. Programm. Deklarative Programmierung Funktionale Programmierung Ein in waagerechter Richtung abgeworfener Körper führt zwei unabhängige Bewegungen zu gleicher Zeit aus: eine Bewegung mit konstanter Geschwindigkeit v0 in horizontaler Richtung (1) eine beschleunigte Bewegung in vertikaler Richtung (2) Die durch Gleichsetzen von Gleichung (1) und (2) nach der Zeit t entstehende resultierende Bewegung entspricht einer Kurve, der Wurfparabel (3): (3) ha = Fallhöhe,s = Wurfweite,g = Erdbeschleunigung.
Motivation Def. Algorithmus Prozedurale Programm. Deklarative Programm. Objektorient. Programm. Deklarative Programmierung Das Beispiel als Haskell-Code Funktionale Programmierung sq::Int sq y=y*y fallhoehe :: Int -> Real -> Int fallhoehe sgv = sq s * g / 2 * sq v e1 :: Real e1 = fallhoehe 5 9.81 10
Motivation Def. Algorithmus Prozedurale Programm. Deklarative Programm. Objektorient. Programm. Funktionale Programmierung Logische Programmierung Deklarative Programmierung • Programm als partielle Funktion von Eingabe- und Ausgabedaten • Ausführung durch Anwendung der Funktion auf die Eingabe • Deklaration von Datentypen und Funktionen, evt. auch geschachtelt • Ermöglicht die Nutzung komplexer Datenstrukturen ohne Zeiger und Variablen • Bsp. • Programm als Sammlung von Fakten und Folgerungs-beziehungen, an die Fragen gestellt werden können • Ausführung sucht Antworten auf solche Fragen • Nutzt formale Logik, um Fakten und Zusammenhänge zu beschreiben • Bsp.
Motivation Def. Algorithmus Prozedurale Programm. Deklarative Programm. Objektorient. Programm. Deklarative Programmierung Ein Beispiel im Prolog-Code Logische Programmierung istBlume( Rose ). blüht(x) :- istBlume(x). blüht( Rose )? ja blüht( Salat )? nein
Motivation Def. Algorithmus Prozedurale Programm. Deklarative Programm. Objektorient. Programm. Funktionale Programmierung Logische Programmierung Deklarative Programmierung • Programm als partielle Funktion von Eingabe- und Ausgabedaten • Ausführung durch Anwendung der Funktion auf die Eingabe • Deklaration von Datentypen und Funktionen, evt. auch geschachtelt • Ermöglicht die Nutzung komplexer Datenstrukturen ohne Zeiger und Variablen • Bsp. • Programm als Sammlung von Fakten und Folgerungs-beziehungen, an die Fragen gestellt werden können • Ausführung sucht Antworten auf solche Fragen • Nutzt formale Logik, um Fakten und Zusammenhänge zu beschreiben • Bsp. • Weitere Form Deklarativer Programmierung: • relationale Datenbank-Programmierung
Motivation Def. Algorithmus Prozedurale Programm. Deklarative Programm. Objektorient. Programm. Objektorientierte Programmierung Vorgänge werden durch handelnde Individuen (Instanzen oder„Objekte“) modelliert, die Aufträge erledigen und vergeben können. Nachricht => Auftragserteilung.
Motivation Def. Algorithmus Prozedurale Programm. Deklarative Programm. Objektorient. Programm. Hunger! Objektorientierte Programmierung Nachricht => Auftragserteilung.
Motivation Def. Algorithmus Prozedurale Programm. Deklarative Programm. Objektorient. Programm. Objektorientierte Programmierung Vorgänge werden durch handelnde Individuen (Instanzen oder„Objekte“) modelliert, die Aufträge erledigen und vergeben können. Nachricht => Auftragserteilung. Methode => Auftragsdurchführung.
Motivation Def. Algorithmus Prozedurale Programm. Deklarative Programm. Objektorient. Programm. Hunger! Objektorientierte Programmierung Methode => Auftragsdurchführung.
Motivation Def. Algorithmus Prozedurale Programm. Deklarative Programm. Objektorient. Programm. Objektorientierte Programmierung Vorgänge werden durch handelnde Individuen (Instanzen oder„Objekte“) modelliert, die Aufträge erledigen und vergeben können. Nachricht => Auftragserteilung. Methode => Auftragsdurchführung. Klassifikation => hierarchische Zusammenfassung von Objekten gleicher Eigenschaften.
Motivation Def. Algorithmus Prozedurale Programm. Deklarative Programm. Objektorient. Programm. Objektorientierte Programmierung Klassifikation => hierarchische Zusammenfassung von Objekten gleicher Eigenschaften.
Motivation Def. Algorithmus Prozedurale Programm. Deklarative Programm. Objektorient. Programm. Objektorientierte Programmierung Vorgänge werden durch handelnde Individuen (Instanzen oder„Objekte“) modelliert, die Aufträge erledigen und vergeben können. Nachricht => Auftragserteilung. Methode => Auftragsdurchführung. Klassifikation => hierarchische Zusammenfassung von Objekten gleicher Eigenschaften. Vererbung => Eigenschaften übergeordneter Hierarchie-Ebenen werden auch nachgeordneten zugeordnet.
Motivation Def. Algorithmus Prozedurale Programm. Deklarative Programm. Objektorient. Programm. Objektorientierte Programmierung Vererbung => Eigenschaften übergeordneter Hierarchie-Ebenen werden auch nachgeordneten zugeordnet.
Motivation Def. Algorithmus Prozedurale Programm. Deklarative Programm. Objektorient. Programm. Objektorientierte Programmierung Lösungsansatz: Hecht im Forellenteich • Klassen • Teich • Fisch • Forelle • Hecht • Methoden • GetTemperatur(private) • Fressen (public), • Fressen von Wasserflöhen • Fressen von Kleinfischen • Fressen von Forellen • Fressen von Entenküken • Eigenschaften • Größe, Temperatur,... • Hunger, Geruch, Wo? • Menge in g • Anzahl • Gewicht in g • Gewicht in g
Entwicklung von Simulationsmodellen Paradigmen der Programmierung • Prozedurale Programmierung • Deklarative Programmierung • Funktionale Programmierung • Logische Programmierung • Objektorientierte Programmierung