Programmierparadigmen

Slides:



Advertisements
Ähnliche Präsentationen
Imperative Programmierung
Advertisements

Objektorientierte Programmierung
Variablen und Datentypen
Was ist neu in VS 2003 ? Ein Überblick. Bernd Marquardt Software & Consulting
10. Grundlagen imperativer Programmiersprachen
Java: Grundlagen der Sprache
Fakten, Regeln und Anfragen
Das Java-Hamstermodell
DVG Klassen und Objekte
Delphi Eine objektorientierte Programmiersprache © Beushausen 2000.
Plattformunabhängige Programmiersprache
Eine Einführung in die Entwicklung ereignisgesteuerter Programme
Delphi II - OOP IFB Fortbildung
Agenda für heute, 8. Juni, 2006 Strukturierte Variablen: RecordsStrukturierte Variablen: Records Kombiniertes Strukturieren Bitmap-Dateien Datentypen:
Wiederholte Programmausführung
Willkommen... Studentinnen und Studenten der Studiengänge Umweltnaturwissenschaften Erdwissenschaften Agrarwissenschaften zur.
Agenda für heute, 20. Juni, 2010 Strukturieren von Programmen: UnitsStrukturieren von Programmen: Units Datentypen: Unterbereichstypen Übung 7: Bitmap-Dateien.
Konzept einer Programmiersprache!
Grundlagen von Objekt-Pascal Erstellt von J. Rudolf überarbeitet von H.Brehm.
Permanente Datenspeicherung
Programmiersprachen Proseminar Grundlagen wissenschaftlichen Arbeitens
Variablen in Programmiersprachen
Algorithmen und Datenstrukturen Übungsmodul 1
MODULA-2.
Objektorientierte Programmierung
Agenda für heute, 22. Juni, 2006 Direkte FilezugriffeDirekte Filezugriffe Datentypen: Mengen Individualisierbare Datentypen.
Willkommen... Studentinnen und Studenten der Studiengänge Umweltnaturwissenschaften Erdwissenschaften Agrarwissenschaften zur.
Agenda für heute, 18. Mai, 2006 Strukturierung von Programmen: ProzedurenStrukturierung von Programmen: Prozeduren Strukturierung von Programmen: Units.
Datentypen: integer, char, string, boolean
Agenda für heute, 20. April, 2006 Wiederholte ProgrammausführungWiederholte Programmausführung Algorithmische Grundlagen Bedingungen zum Abbruch von Programmschleifen.
Willkommen... Studentinnen und Studenten der Studiengänge Umweltnaturwissenschaften Erdwissenschaften Agrarwissenschaften zur.
Agenda für heute, 12. Mai, 2005 ProzedurenProzeduren Funktionsprozeduren Prozedurparameter Lokale und globale Variablen Datentypen: Ordinaltypen.
Programmierparadigmen
Agenda für heute, 28. April, 2005 Strukturierte VariablenStrukturierte Variablen Arrays.
Agenda für heute, 2. Juni, 2005 Permanente DatenspeicherungPermanente Datenspeicherung Lesen und schreiben in Pascal Filetypen: Drei Kategorien Arbeiten.
Agenda für heute, 7. April, 2005 Bedingte ProgrammausführungBedingte Programmausführung Algorithmische Grundlagen Vergleichsoperatoren, Wahrheitswerte.
Agenda für heute, 14. April, 2005 Wiederholte ProgrammausführungWiederholte Programmausführung Algorithmische Grundlagen Bedingungen zum Abbruch von Programmschleifen.
Agenda für heute, 26. Mai, 2005 Strukturierte Variablen: RecordsStrukturierte Variablen: Records Kombiniertes Strukturieren Individualisierbare Datentypen.
Erste Schritte in DELPHI
Programmieren in C Grundlagen C 2
Hochschule Fulda – FB ET Sommersemester 2014
Programmieren in C Grundlagen C 2
Programmierparadigmen
Delphi Einführung Von Frank Schullerer. Inhalt  1 Einführung  2 Die integrierte Entwicklungsumgebung  3 Komponenten  4 Das erste Programm  5 Die.
Agenda für heute, 21. April, 2005 Interaktion mit Pascal-ProgrammenInteraktion mit Pascal-Programmen Dateneingabe Programmsteuerung Debugging Datentypen:
Extended Pascal Erweiterung von Pascal shadi Behzadipour shadi Shadi behzadipour.
Programmiersprache PASCAL
Objektorientierte (OO) Programmierung
Actionscript 3.0 Philipp Oberweger Erstellt von: Philipp Oberweger
Objektorientierte Programmierung §Klassen §Objekte §Attribute §Eigenschaften §Methoden §Datenkapselung §Ereignisse §Vererbung §Entwicklungszeit §Laufzeit.
Seminar Softwareproduktlinien Domänenspezifische Sprachen Sascha Draffehn von.
UNIVERSITY OF APPLIED SCIENCES Brückenkurs Programmieren Einführung in die IT für Social Media Systems.
Wiederholte Programmausführung
Programmieren und Problemlösen
Units und Übung 7 Barbara Scheuner
Entwicklungsumgebung Lazarus
Objektorientierte Programmierung
Strukturierte Variablen: Records
Datentypen: integer, char, string, boolean
Programmieren und Problemlösen
Struktur-Funktions-Modelle von Pflanzen
Strukturierte Variablen: Records
Datentypen: integer, char, string, boolean
Reihungen Prof. Dr. Christian Böhm In Zusammenarbeit mit Gefei Zhang
SS 04 Christiane Rauh Christian Hellinger
Struktur-Funktions-Modelle von Pflanzen
Implementieren von Klassen
Objektorientierte Programmierung
Datentyp- umwandlung.
The Programming Language Pascal
 Präsentation transkript:

Programmierparadigmen Agenda für heute, 26. April, 2007 Programmierparadigmen Imperatives vs. objektorientiertes Programmieren Ereignisse und Objekte Delphi Datentypen: Real Strukturierte Variablen: Records

Programmierparadigmen Imperative Programmiersprachen In Prozeduren zusammengefasste, sequentiell ausgeführte Anweisungen Die Prozeduren werden ausgeführt, wenn sie als Teil des Programmablaufs aufgerufen werden Objektorientierte Programmiersprachen Imperative Prozeduren, die ausgeführt werden, wenn ein bestimmtes Ereignis eintritt Die Prozeduren sind Bestandteil von sog. Objekten Andere, hier nicht behandelte Programmierparadigmen Funktionale Sprachen Logikorientierte Sprachen Regelorientierte Sprachen 2/19 Programmieren und Problemlösen © Institut für Computational Science, ETH Zürich

Programmierparadigmen Funktionale Sprachen Berechnungen werden als Auswertung mathematischer Funktionen verstanden Logikorientierte Sprachen Orientieren sich in der Beschreibung der Programme an der Prädikatenlogik Regelbasierte Sprachen Kommen in wissensbasierten Systemen (Expertensysteme) zur Anwendung Ein funktionales Programm ist eine Abbildung von Eingabedaten auf Ausgabedaten, wohingegen ein imperatives Programm eine Arbeitsanweisung für eine Maschine ist. In einem funktionalen Programm wird die Reihenfolge der Berechnungsschritte in der Regel nicht festgelegt, während ein imperatives Programm ohne die Reihenfolge der Abarbeitungsschritte gar nicht verstanden werden kann. Bsp.: Lisp, Scheme, Haskell Beschreibung der Programme mit der Prädikatenlogik. Logikorientierte Programmiersprachen haben ungewöhnliche Eigenschaften (Backtracking, Unifikationsalgorithmenn), die sie für gewisse Arten von Problemen vorherbestimmt, die mit anderen Programmiersprachen nur sehr schwer zu lösen sind. Bsp.: Prolog 3/19 Programmieren und Problemlösen © Institut für Computational Science, ETH Zürich

Imperatives vs. objektorientiertes Programmieren Programmierparadigmen Imperatives vs. objektorientiertes Programmieren Ereignisse und Objekte Delphi Datentypen: Rea Strukturierte Variablen: Recordsl

Objektorientiertes Programmieren (OOP) Voraussetzungen für die objektorientierte Programmierung Ereignisse Ein Programm prüft ständig ob gewisse Ereignisse stattgefunden haben und reagiert darauf mit Nachrichten an Prozeduren Verwaltung von Objekten Durch einen Datentyp, in dem sowohl Eigenschaften der Speicherung als auch Prozeduren deklariert sind Wir befassen uns mit konzeptionellen Aspekten der OOP weil diese notwendig sind um die technischen Grundlagen von Delphi zu verstehen. 4/19 Programmieren und Problemlösen © Institut für Computational Science, ETH Zürich

Imperatives vs. objektorientiertes Programmieren Imperativ: Wiederholte, sequentielle Verarbeitung. Objektorientiert: Ereignis-gesteuerte Verarbeitung Bei Mausklick dividiere Menü Auswahl Aktion Beispiel: zeilenweise Verarbeitung Beispiel: grafische Verarbeitung 5/19 Programmieren und Problemlösen © Institut für Computational Science, ETH Zürich

Ereignisse und Objekte Programmierparadigmen Imperatives vs. objektorientiertes Programmieren Ereignisse und Objekte Delphi Datentypen: Real Strukturierte Variablen Records

Typische Ereignisse bei Windows-Anwendungen Befehlsereignisse Starten von Programmen, Speichern von Dateien, usw. Eingabeereignisse Drücken einer Tastaturtaste, Bewegen der Maus, usw. Fensterereignisse Öffnen, Schliessen, eines Fensters, Grösse verändern, usw. 6/19 Programmieren und Problemlösen © Institut für Computational Science, ETH Zürich

Typische Ereignisse bei Windows-Anwendungen Timer-Ereignisse Nachführen einer Uhr, Zeitpläne verwalten, usw. Systemereignisse Netzwerksteuerung, Interaktion mit Peripheriegeräten, usw. 7/19 Programmieren und Problemlösen © Institut für Computational Science, ETH Zürich

Typische Objekte bei Windows-Anwendungen 8/19 Programmieren und Problemlösen © Institut für Computational Science, ETH Zürich

Delphi Programmierparadigmen Imperatives vs. objektorientiertes Programmieren Ereignisse und Objekte Delphi Datentypen: Real Strukturierte Variablen: Records

Grafische Programmierumgebung Delphi Grundlagen Object-Pascal Erweiterung von Pascal durch Klassen und Objekte Grafische Programmierumgebung "Drag-and-drop"-Entwurf von Programmoberflächen "Visual Component Library" (VCL) Integrierte Entwicklungsumgebung (IDE) Verwaltung von Projekten, insb. Abhängigkeiten zwischen Units Regeln bez. Programmorganisation 9/19 Programmieren und Problemlösen © Institut für Computational Science, ETH Zürich

Sichtbare Objekte in Delphi 10/19 Programmieren und Problemlösen © Institut für Computational Science, ETH Zürich

Unsichtbare Objekte in Delphi Dateiöffnungs- Dialog Drucker- Dialog Timer HTTP-Transfer Speicherungs- Dialog FTP-Transfer 11/19 Programmieren und Problemlösen © Institut für Computational Science, ETH Zürich

Am Beispiel der Komponente "Button": Ereignisse in Delphi Am Beispiel der Komponente "Button": 12/19 Programmieren und Problemlösen © Institut für Computational Science, ETH Zürich

Die Projektverwaltung in Delphi In Delphi wird ein Programm Projekt genannt. Ein Delphi-Projekt besteht aus mehreren Dateien von denen jede durch eine spezifische Erweiterung gekennzeichnet ist: .dpr Die Projektverwaltungs-Datei (wird von Delphi automatisch erzeugt und nachgeführt) .pas Quelltext-Datei (Objekt-Pascal-Code, in Units gegliedert) .dfm Binäre Datei für den Aufbau eines Formulars .res Datei mit vom Projekt beanspruchten Ressourcen .dof Projektoptionsdatei (Einstellungen für Compiler und Linker) .exe Ausführbares Programm Wichtiger Hinweis: Immer alle Dateien speichern!! 13/24 Programmieren und Problemlösen © Institut für Computational Science, ETH Zürich

Datentypen: Real Programmierparadigmen Imperatives vs. objektorientiertes Programmieren Ereignisse und Objekte Delphi Datentypen: Real Strukturierte Variablen: Records

Der Datentyp real Teilbereich der reellen Zahlen Der Wertebereich ist vom Prozessor abhängig. Beispiel: 5.0 x 10 -324 .. 1.7 x 10 308 (8 Byte, 15-16 signifikante Stellen) Operationen: +, –, *, /, ROUND, TRUNC, ABS Das Resultat eines Ausdrucks mit Integer-Werten kann sowohl an eine Integer-Variable als auch an eine Real-Variable zugewiesen werden. 14/19 Programmieren und Problemlösen © Institut für Computational Science, ETH Zürich

Reelle Typen in Delphi 6 Typ Bereich Signifikante Stellen Grösse in Byte Real48 2.9 x 10-39 .. 1.7 x 1038 11-12 6 Single 1.5 x 10-45 .. 3.4 x 1038 7-8 4 Double 5.0 x 10-324 .. 1.7 x 10308 15-16 8 Extended 3.6 x 10-4951 .. 1.1 x 104932 19-20 10 Comp 2-63+1 .. 263-1 19-20 8 Currency 922337203685477.5808.. 922337203685477.5807 19-20 8 Der generische Typ Real ist in der aktuellen Implementation mit dem Typ Double identisch. 15/19 Programmieren und Problemlösen © Institut für Computational Science, ETH Zürich

Konsequenzen der endlichen Darstellung für real Gegeben sind folgende Anweisungen: a:= 4 / 3 – 1; a:= 3 * a – 1; Welchen Wert erhält a? 3(4/3-1)-1 = 4-3-1 = 0 Angenommen, wir haben 4 Ziffern um eine relle Zahl darzustellen: 4 = 4. 0 0 0 3 = 3. 0 0 0 1 = 1. 0 0 0 das bedeutet: 4/3 = 1. 3 3 3 4/3-1 = 0. 3 3 3 deshalb: 3*(4/3-1) = 0. 9 9 9 3*(4/3-1)-1 = –0. 0 0 1 Also: a = –0. 0 0 1 ≠ 0 Lösung: 3 * 4 / 3 – 3 * 1 rechnen 16/19 Programmieren und Problemlösen © Institut für Computational Science, ETH Zürich

Automatische Typenkonversion In Ausdrücken können Integer- und Real-Werte gemeinsam vorkommen. Wenn für eine der Operationen +, – oder * ein Operand vom Typ Real ist, dann wird der andere Operand automatisch zu Real konvertiert bevor der Operator angewandt wird. Beispiel: (6 + 4) * (1 + 0.1) Die Faktoren in Klammern werden zuerst ausgewertet: 6 + 4 = 10 (Integer) Im zweiten Faktor ist 0.1 vom Typ Real, deshalb wird 1 zu Real konvertiert: 1 + 0.1 = 1.1 (Real) Der Multiplikationsoperator * hat einen Integer-Operanden (10) und einen Real-Operanden (1.1). Der Integer-Operand wird zu Real konvertiert: 10.0 * 1.1 = 11.0 (Real) Beachte: Das Resultat ist vom Typ "Real" obwohl es ein ganzzahliger Wert ist! 17/19 Programmieren und Problemlösen © Institut für Computational Science, ETH Zürich

Strukturierte Variablen: Records Programmierparadigmen Imperatives vs. objektorientiertes Programmieren Ereignisse und Objekte Delphi Datentypen: Real Strukturierte Variablen: Records Programmieren und Problemlösen © Institut für Computational Science, ETH Zürich

Strukturierung von Variablen: Records Der Datentyp Record erlaubt Variablen, die aus mehreren Feldern bestehen. Die einzelnen Felder können von unterschiedlichem Typ sein. var R: record Tag: byte; Monat: string[9]; Jahr: integer; Werktag: boolean end; Variablebezeichner Recordfeld Feldbezeichner Feldtyp 18/19 Programmieren und Problemlösen © Institut für Computational Science, ETH Zürich

Records: Datenzugriff Für den Zugriff auf ein Recordfeld muss der Bezeichner der Record- Variablen zusammen mit dem Bezeichner des Feldes angegeben werden. R 12 'Juni' 2000 false R.Monat = Feld mit Wert 'Juni' Recordbezeichner Feldbezeichner Punkt 19/19 Programmieren und Problemlösen © Institut für Computational Science, ETH Zürich