Angewandte Mathematik und Programmierung



Ähnliche Dokumente
Angewandte Mathematik und C++ Programmierung

Programmierung und Angewandte Mathematik

OOP und Angewandte Mathematik. Eine Einführung in die Anwendung objektorientierter Konzepte in der angewandten Mathematik

Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++, 1. Teil

Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++, 1. Teil

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf Seite 1 von 29

Algorithmen zur Datenanalyse in C++

RO-Tutorien 15 und 16

Angewandte Mathematik und Programmierung

2 Programmieren in Java I noch ohne Nachbearbeitung

Grundlagen. Die Komponenten eines C Programms. Das erste Programm

Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++, 2. Teil

Einführung in die C-Programmierung

Inhaltsverzeichnis. Inhalt. Bemerkung... 9 Vorwort Programme und Programmiersprachen

RO-Tutorien 17 und 18

OOP und Angewandte Mathematik. Eine Einführung in die Anwendung objektorientierter Konzepte in der angewandten Mathematik

Integer Integer Integer (Voreinstellung) Integer Gleitkomma Gleitkomma leer/unbestimmt Integer ohne Vorzeichen Integer (explizit) mit Vorzeichen

RO-Tutorien 3 / 6 / 12

Einführung in die Programmierung Wintersemester 2008/09

Unterlagen. CPP-Uebungen-08/

Visual C#.NET. Bearbeitet von Patrick A. Lorenz

Einführung in C. EDV1-04C-Einführung 1

Einführung Sprachfeatures Hinweise, Tipps und Styleguide Informationen. Einführung in C. Patrick Schulz

2. Programmierung in C

Effektiv Programmieren in С und C++

Herzlich willkommen!

Inhaltsverzeichnis I Grundlagen...1 II Programmieren in C/C

Programmierung und Angewandte Mathematik

2. Programmierung in C

Teil 5 - Java. Programmstruktur Operatoren Schlüsselwörter Datentypen

Einstieg in die Informatik mit Java

Gedächtnis. Während der Abarbeitung eines Algorithmus müssen sich Dinge gemerkt werden bzw. auf Dingen wird gerechnet. Zugriff.

Elementare Datentypen in C++

Einführung in C. Alexander Batoulis. 5. Mai Fakutltät IV Technische Universität Berlin

Einleitung Entwicklung in C Hello-World! Konstrukte in C Zusammenfassung Literatur. Grundlagen von C. Jonas Gresens

2. Programmierung in C

Inhaltsverzeichnis. Grundlagen und Einführung (1. Band) 1

Programmierung und Angewandte Mathematik

Tutorium Rechnerorganisation

Repetitorium Informatik (Java)

Einstieg in die Informatik mit Java

Allgemeines. Verschiedene Sprachkonzepte C-Sprachfamilie C-ähnliche Programmiersprachen Allgemeines zu C. #include <stdio.h>

C++ vs. Java. Hello world! Java C++ class HelloWorld { static public void main(string args) { System.out.println("Hello World!

Einführung in die Programmierung

Objektorientierte Programmierung mit C++ SS 2007

Übung zur Vorlesung Wissenschaftliches Rechnen Wintersemester 2013/14 Auffrischung zur Programmierung in C++, 1. Teil

Die Programmiersprache C Eine Einführung

Einheit Lexikalische Grundlagen der Programmiersprache C Lexikalische Einheiten

Peter Prinz Ulla Kirch-Prinz C+ + Lernen und professionell anwenden. ffl mitp

4.2 Programmiersprache C

Grundlagen der Modellierung und Programmierung, Übung

Das Einsteigerseminar Objektorientierte Programmierung in Java

Programmieren in C. C Syntax Datentypen, Operatoren und Kontrollstrukturen. Prof. Dr. Nikolaus Wulff

Programmiervorkurs Einführung in Java Tag 1

Begleittext: Einführung in das Programmieren in Java für Nichtinformatiker

Numerische Methoden und Algorithmen in der Physik

Gliederung. n Teil I: Einleitung und Grundbegriffe. n Teil II: Imperative und objektorientierte Programmierung

Einheit Datentypen in der Programmiersprache C Schwerpunkt: Elementare (arithmetische) Datentypen

JavaScript. Dies ist normales HTML. Hallo Welt! Dies ist JavaScript. Wieder normales HTML.

Arbeitsblätter für die Lehrveranstaltung OOP JAVA 1

Praktische Informatik 1

Berichte aus der Informatik. Dieter Pawelczak. Start in die C-Programmierung

Klausur: Grundlagen der Informatik I, am 06. Februar 2009 Gruppe: A Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.

Übungen zur Vorlesung Wissenschaftliches Rechnen I

Grundelemente objektorientierter Sprachen (1)

Inhalt. 1 Einstieg in die Welt von C Erste Schritte in C 31. Vorwort... 15

Programmieren in C. Eine Einführung in die Programmiersprache C. Prof. Dr. Nikolaus Wulff

Polymorphismus 179. Function.h. #include <string>

Einführung Programmierpraktikum C Michael Zwick

Alexander Niemann. Das Einsteigerseminar" < Objektorientierte ^ Programmierung in Java. bhv. i.-

Polymorphismus 44. Function.hpp. #include <string>

Java I Vorlesung Imperatives Programmieren

76,81,85 11' 16, 17 10, 13, 14,44,47,49,69, 70,75,99 42,43,44,49 94,95 97,98 42,48,49,50,56,63, 65,92,105 97,98 19,94,108 19, 101

Intensivübung zu Algorithmen und Datenstrukturen

3 Grundstrukturen eines C++ Programms anhand eines Beispiels

Programmierung und Angewandte Mathematik

Repetitorium Programmieren I + II

Programmierkurs C++ Variablen und Datentypen

Inhaltsverzeichnis. Kapitel i: Schnelleinstieg 13. Kapitel 2: Was sind Programme? 17. Kapitel 3: Wie erstellt man eigene Programme?

III.1 Prinzipien der funktionalen Programmierung - 1 -

OOP und Angewandte Mathematik. Eine Einführung in die Anwendung objektorientierter Konzepte in der angewandten Mathematik

Vorwort zur zweiten Auflage 1. Vorwort zur ersten Auflage 2

1. Grundzüge der Objektorientierung 2. Methoden, Unterprogramme und Parameter 3. Datenabstraktion 4. Konstruktoren 5. Vordefinierte Klassen

Informatik I (D-ITET)

Nachklausur: Grundlagen der Informatik I, am 02. April 2008 Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.

Nachklausur: Grundlagen der Informatik I, am 02. April 2008 Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.

Angewandte Mathematik und Programmierung

Einführung in die Programmiersprache C

Objektorientierte Programmierung. Agenda für heute, 1. April, Eines der drei wichtigsten Programmierparadigmen

Klausur: Grundlagen der Informatik I, am 27. März 2009 Gruppe: F Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.

Funktionales C++ zum Ersten

SE2-6. Übung Johannes Bürdek

Grundelemente objektorientierter Sprachen (1)

C++ - Einführung in die Programmiersprache Zeiger, Referenzen und Strukturen. Leibniz Universität IT Services Anja Aue

Beispiele für Ausdrücke. Der imperative Kern. Der imperative Kern. Imperativer Kern - Kontrollstrukturen. Deklarationen mit Initialisierung

Einführung in Java. Ausgewählte Quellen zu Java

Transkript:

Angewandte Mathematik und Programmierung Einführung in das Konzept der objektorientierten Anwendungen zu wissenschaftlichen Rechnens mit C++ und Matlab SS2013

Organisatorisches Dozenten Gruppe: Ango (2.250), Ludger Buchmann(2.250) Webseite: http://www.gm.fh-koeln.de/~afomusoe Fachemail: OOP_AngewandteMathe_FHKOELN@yahoogroups.com Sprache: Deutsch und Englisch Voraussetzung: keine Unterlagen: Vorlesungsfolien, Skript, RRZN/Uni Hannover - C++ für C-Programmierer(1998) und RRZN/Uni Hannover Grundlagen der Programmierung mit Beispielen in C++ und Java(2000) Sprechstunden: Mittwochs bis Freitags(09:30-11:30 und 13:00-14:30) Erwartungen: Aktive Teilnahme an Vorlesung und Übung ( Punktsystem ) Aktives eigenständiges Programmieren (mind. 1 Übungsaufgabe pro Rubrik!) Auseinandersetzen mit den Übungsaufgaben, zumindest Fragen formulieren können! Gemeinsam Spaß beim Studium von C++ und OOP Programmierung haben Angewandte Mathematik und Programmierung 2

C++ Tools Zur Programmierung benötigen Sie einen Editor und einen Compiler: Sie wissen schon: Programme werden als einfacher (ASCII-)Text in einem Editor aufgesetzt. Es gibt einfache bis komplexe Editoren mit sehr schönen Benutzeroberfläche. Wir werden ein Paar Exemplare benutzen. Alles was wir brauchen: Mingw GCC für C++ Hilfsprogram Notepad++ (Hilfsprogramm zum Kodieren) Dev-C++ Visual C++ 2010 Express Merken: Vermeiden Sie jede Art von Ablenkung. Verwenden Sie nur diese Tools für die ganze Vorlesung. Bitte für die Tests, reichen Sie nur die Quelldateien ein. Programmierung und Angewandte Mathematik 3

Compiler Die genaue Handhabung der Compiler variiert sehr stark von System zu System. Zum Beispiel in UNIX mit Kommandozeile oder Makefiles starten und MS- DOS/Windows meist mit integrierten grafischen Oberflächen. Steht das Programm komplett in einer Datei progname.cpp, dann lässt es sich beispielsweise mit dem Mingw GCC Compiler auf jedem System übersetzen mit dem Aufruf "g++ progname.cpp -o progname" und starten mit "progname" -o in diesem Sinne bedeutet Output Ordner, und progname ist der Ordner. progname ist ein Executable Datei. Also progname.exe Der Compiler g++ kompiliert progname.cpp pp und erstellt die progname.exe Programmierung und Angewandte Mathematik 4

Reservierte Schlüsselwörte in C/C++ Auto, const, double, float, int, short, struct, unsigned, break, continue, else, for, long, signed, switch, void, case, default, enum, goto, register, sizeof, typedef, volatile, char, do, extern, if, return, static, union, while, virtual. Programmierung und Angewandte Mathematik 5

Datentypen Für die Verarbeitung von Informationen in einem Programm müssen im Speicher des Rechners Plätze (Variablen) zur Aufnahme dieser Informationen reserviert werden. Bevor diese Variablen benutzt werden können, müssen sie zuerst deklariert werden. Dies geschieht am Anfang einer Funktion vor allen ausführbaren Anweisungen. Prinzipiell gibt zwei Arten von Datentypen, die Primitive (vorgegeben) und Nicht- Primitive (Benutzerdefiniert) aber Unter einem Datentyp versteht man eine Zusammenfassung von Wertebereichen und Operationen zu einer Einheit. Anstelle von Datentyp wird mitunter der Begriff Wertart verwendet. Programmierung und Angewandte Mathematik 6

Datentypen- Für später! benutzerdefinierte Datentypen (user-defined types) Die Ableitungsvorschrift ist Bestandteil eines Programms. Der Datentyp wird vom Programmierer als Benutzer der Programmiersprache eingeführt. Programmierung und Angewandte Mathematik 7

Elementare Datentypen Elementare Datentypen sind Integer (Teilbereich der ganze Zahlen) Real (Teilbereich der reellen Zahlen) Boolean (Wahrheitswerte) Char (Zeichen aus einem bestimmten Zeichensatz) Diese Datentypen sind in den meisten Programmiersprachen - oft in verschiedenen Varianten vordefiniert (oder vorgegeben) Alle anderen Datentypen lassen sich aus den elementaren Datentypen ableiten (konstruieren). Die Werte der elementaren Datentypen sind skalar, unterscheiden sich syntaktisch eindeutig voneinander. Programmierung und Angewandte Mathematik 8

Deklaration von elementare Datentypen Die Deklaration führt einen Namen ein und ordnet ihm einen Typ zu. Siehe Beispiele: Anhang! Programmierung und Angewandte Mathematik 9

Datentypen Abgeleitete Datentypen Mit Hilfe von Konstruktoren kann aus einem oder mehreren Basisdatentypen ein neuer Datentyp abgeleitet werden. Als Basisdatentyp kommen elementare oder zuvor abgeleitete Datentypen in Frage. Vordefinierte abgeleitete Datentypen Diese Datentypen sind nicht in allen Programmiersprachen vordefiniert, Beispiele sind String (Zeichenketten) Complex (komplexe Zahlen) Sind derartige Datentypen vordefiniert, so kann mit ihnen wie mit elementaren Datentypen gearbeitet werden. In anderen Sprachen müssen diese Datentypen aus den elementaren Datentypen abgeleitet werden, also z.b String aus Char und Complex aus Real. Programmierung und Angewandte Mathematik 10

Deklaration und Definition Definition und Deklaration sind zwei verschiedene Dinge in C++ oder in der Programmierung überhaupt. Eine Deklaration informiert den Compiler über die Eigenschaften etwa von einem Typen oder einer Funktion, definiert aber keinen Code, der im ausführbaren Programm verwendet wird. Also namens Gebung von Variablen und Methoden. Wenn wir ein struct/method/klasse/variable deklarieren, deklarieren wir im Grunde nur ein Muster. Beispiel: void hallo(); // Deklaration von "hallo" (ohne Definition) Eine Definition andererseits, definiert etwas, das im ausführbaren Programm tatsächlich existiert, etwa eine Variable oder Code-Zeilen. void hallo(){ ::std::cout << "Hallo!\n"; } // Definition von "hallo" ***int main(){ hallo (); Return 0; } // Verwendung von "hallo in main Angewandte Mathematik und Programmierung 11

Paradigmen Der Schwerpunkt in dieser Vorlesung liegt auf der Vermittlung objektorientierter Programmiermethoden, in einfacher und anschaulicher Form, anhand zahlreicher konkreter Beispiele und Übungsaufgaben. Wichtig! Ob die Programmiersprache nun C++, Java, Visual Basic oder einen anderen Namen trägt, ist sekundär; Wichtig ist das Verständnis der dahinter stehenden Grundkonzepte. Objektorientierte Programmierung ist ein Paradigma. Paradigma: Ein Beispiel, das als Muster oder Modell dient. Vier vorwiegend bekannte Haupttypen: Prozedurale/Imperative Logische Funktionale Objektorientierte Angewandte Mathematik und Programmierung 12

Paradigmen Viele von Ihnen haben bisher nur prozedurale programmiert. Imperative /prozedurale Paradigma: Die Funktionen stehen im Vordergrund. Mit bedingten Anweisungen und Sprung-Anweisungen können Programmteile übersprungen oder wiederholt werden. Bei prozeduralen Programmiersprachen werden zu lösende Probleme in Teilprobleme aufgeteilt -auch Funktionen (C/C++) bzw. Prozeduren (Modula, PASCAL) genannt. Angewandte Mathematik und Programmierung 13

Paradigmen Funktionale- Paradigmen: Menge von Funktionsdefinitionen und einem Ausdruck. Typischer Vertreter ist die Sprache LISP. Logische-Paradigmen: Hier werden nur Fakten und Regeln angegeben. Problemlösung wird nicht genauer spezifiziert, sondern vom Interpreter-Programm erstellt. Man kann Logische Paradigmen in Prolog und SQL sehen. Unterschiede: Funktionale und logische Stille trennen sehr klar die WELCHE Aspekte eines Programms (Programmierer Verantwortung) und die WIE Aspekte (Durchführungsbeschlüsse). Imperative/prozedurale p und objektorientierte Programme enthalten im Gegensatz sowohl die Spezifikation und die Details der Implementierung, sie sind untrennbar miteinander verbunden. Angewandte Mathematik und Programmierung 14

Paradigmen- objektorientiert Hier stehen die Daten (Eigenschaften) und nicht die Funktionen oder Prozeduren des Programms im Vordergrund. Die Daten werden in Objekten gekapselt (Information hiding), die auch über Funktionalitäten verfügen, um die Daten zu ändern. In diesem Zusammenhang spricht man jedoch nicht von Funktionen, sondern von Mthd Methoden. Programme werden aus verschiedenen Objekten aufgebaut. Beispiel-Sprachen: C Sprache wurde im Hinblick auf objektorientierte i Programmierung zu C++ weiterentwickelt. C++ ist hybrid aus imperativem/prozeduralem C und objektorientierten Erweiterungen aufgebaut. Heute ist Java neben C++ state of the Art. Angewandte Mathematik und Programmierung 15

C und C++ - was ist neu in C++? Objektorientierte Konzepte : Klassen, Vererbung (auch Mehrfachvererbung), Kapselung, Polymorphismus, Function Overriding und Overloading, Operator Overloading Viele Ähnlichkeiten mit Java, aber auch einige Unterschiede im Detail Klassen als benutzerdefinierte Typen Referenzen : Verstecken e e von Daten Garantierte Initialisierung und Finalisierung Steuerbare implizite Typumwandlung Dynamische Typung (Bindung) Eine Referenz ist ein Alias für ein existierendes Objekt; wird intern typischerweise durch Pointer realisiert Spielt bei der Parameterübergabe by reference an eine Funktion und bei Operator Overloading eine wichtige Rolle Angewandte Mathematik und Programmierung 16

C und C++ - was ist neu in C++? Templates : Exceptions Namespaces Zur Parametrisierung von Klassen oder Funktionen Zur standardisierten Fehlerbehandlung, ähnlich wie in Java Ähnliches Konzept wie Packages in Java; vor allem um Namenskollisionen zu vermeiden (z.b. zwei mal denselben Namen für eine Klasse), relativ neu in C++ Angewandte Mathematik und Programmierung 17

C und C++ - was ist neu in C++? Syntaktische Details Datentyp bool, Kommentare mit //, Datentypkonversion mit Funktionsschreibweise type(...), Deklaration von Variablen nicht nur am Anfang eines Blocks, Default-Werte für Argumente in Funktionen/Methoden C++ Standard Library Komplette C Standard Library, plus neue Funktionalität iostream Library: Als Eratz (oder besser als zweite Möglichkeit) der Input/Outpt Funktionen (stdio.h) der C Standard Library Standard Template Library (STL): Klassen für vectors, queues, lists etc. Angewandte Mathematik und Programmierung 18