Mikrorechentechnik II
|
|
- Teresa Kohl
- vor 5 Jahren
- Abrufe
Transkript
1 Mikrorechentechnik II Einführung in C++ Technische Universität Dresden Sommersemester 2010 Professur für Prozessleittechnik Prof. Dr.-Ing. L. Urbas
2 Warum C++? Bewährte objektorientierte Sprache in den Einsatzfeldern Echtzeitsysteme, Safety Critical Systems, KFZ, Computervision, Hardwarenah: Das bessere C Einschränkungen: striktere Typüberprüfung, const Erweiterungen: Überladen von Funktionen, Defaultargumente, Referenzen Höhere Abstraktionsmittel zur Beherrschung von Komplexität. Sprachsammlung Objektorientierte Programmierung: class Generische Programmierung: template TU Dresden, Präsentationsname XYZ Folie 2 von XYZ
3 Ablauf Ringpraktikum Zeitraum für Praktikumsversuche: bis Einschreibung in die Versuche: Voraussichtlich bis Wie in MRT1 Jede der 5 Studienrichtung bietet eine Reihe von Praktika an, aus denen je eines ausgewählt wird Jede Gruppe führt 5 Praktika durch 3
4 Termine und Themen Einführung C Klassen, Methoden und Objektinstanzen Überladen von Methoden und Operatoren Virtuelle Klassen und abstrakte Klassen Generische Programmierung mit Templates Standard Templates Library Boost Dies Academicus 4
5 Unterlagen Folien, Tafelbilder, Termine, Telefonnummern, Software, etc. 5 dort unter Studium, Downloads Literatur zum Selbststudium (SLUB) Lippmann, Lajoie, Moo ( ) C++ Primer. Addison- Wesley Stroustrup ( ) Die C++-Programmiersprache. Deutsche Übersetzung der Special Edition. Addison-Wesley Sedgewick (2002) Algorithmen in C++. Pearson Studium Handliche Referenz (9,90 EUR) L oudon (2003) C++. Kurz und gut. O Reillys Optimierung des Codes (SLUB) Meyers (2006) Effective C++. Addison-Wesley Meyers (2001) Effective STL. Addision-Wesely
6 Übersicht Teil 1: Wiederholung Sprachelemente C Teil 2: Einführungsbeispiel UPN-Rechner Funktionsorientiert, Datenorientiert, Objektorientiert Teil 3: Konzepte der Objektorientierung Polymorphie Kapselung Vererbung Teil 4: Einführung in C++ Syntaxelemente von C, aber doch ganz anders Klassen und Objekte 6
7 Warum Objektorientierung (OO)? OO als Antwort auf einige Probleme bei der Entwicklung großer Programme Wachsende Komplexität fordert Mittel zur stärkeren Abstraktion und dem Verstecken von Implementierungsdetails: Konzept der Klasse als Kombination von Daten und Methoden. Wiederverwendung von Daten und Methoden in unterschiedlichen Kontexten benötigt fast immer etwas Anpassung: Konzept der Vererbung als Modifikationsstrategie für Klassen Nahtlose Integration neuer Datentypen: Überladen von Methoden und Operatoren 7
8 Problem 1: Integration neuer Datentypen C: char s[100]; strcpy(s, "hello "); strcat(s, "world"); C++: string s; s = "hello "; s += "world"; Implementierungsdetails sind versteckt! Zeichenketten sind kein integraler Bestandteil von C Programmierung durch Aufruf von Funktionen ( str ) Erweiterbarkeit der Sprache limitiert Zeichenketten sind kein integraler Bestandteil von C++ Aber: Nahtlose Integration neuer Datentypen durch Klassen (string) Überladen von Operatoren (=, +=) 8
9 Problem 2: Initialisierung Funktionsprototypen für einen Kellerspeicher in C, typischerweise in einem Header definiert: void stack_init(stack s, int max_size); int stack_push(stack s, int value); int stack_pop(stack s, int *value); void stack_clear(stack s); void stack_destroy(stack s); Gewünschte Funktionalität: push, pop, clear Zusätzlich Speicherverwaltung (häufig Fehlerquelle!): Vor der Benutzung: init Nach der Benutzung: destroy C++: Construktur C++: Destruktor 9
10 Problem 3: Wiederverwendung Stack nimmt Elemente vom Typ int auf void stack_init(stack s, int max_size); int stack_push(stack s, int value); int stack_pop(stack s, int *value); void stack_clear(stack s); void stack_destroy(stack s); Typsicherer Stack für Daten vom Typ double oder char* in C? Lösungsansätze: Drei unterschiedliche Programme Ein Programm mit union-konstrukt und interner Behandlung der Unterschiede C++: Templates 10
11 Problem 4: Zentralisierung Aufgabenstellung: neuer Datentyp complex Modifikation von printf derart, dass printf diesen Typen handeln kann Problem: Quellen von printf müssten verfügbar sein Lösungsansätze in objektorientierten Paradigmen: Dezentralisierung: Datentypen haben Methoden, die selbst für die Formatierung der Ausgabe sorgen! 11
12 Grundelemente objektorientierter Sprachen Polymorphie (Vielgestaltigkeit) 12 Hinter Funktionen und Operatoren mit gleichen Namen können sich je nach Kontext unterschiedliche Algorithmen verbergen Klassenkonzepte Zusammenfassung von Daten und Methoden Zugriffskontrolle auf Daten und Methoden verstecken von Implementierungsdetails vor Klassenbenutzern Vererbung von Daten und Methoden Wiederverwendung in anderen Kontexten durch gezielte Änderung an Teilen Dynamische Speicherverwaltung für Objekte
13 Polymorphie Zur Unterscheidung von Funktionen (Methoden) und Operatoren wird vom Compiler nicht nur der Namen sondern auch der Typ der Argumente herangezogen. C: double f(int a, int b); double f(double a, double b); fehler z = f(1.5,1.3) C++: double f(int a, int b); double f(double a, double b); z = f(1.5,1.3) Ruft double f(double, double) 13
14 Polymorphie Zur Unterscheidung von Funktionen (Methoden) und Operatoren wird vom Compiler nicht nur der Namen sondern auch der Typ der Argumente herangezogen. Programmierer können Operatoren für eigene Typen definieren C: int k, i=1, j=2; double e, f=1, g=2; Point3D u, v = {1,2,3}, w = v; k = i + j; e = f + g; u = v + w; 14 Operatoren nur für elementare Typen C++: int k, i=1, j=2; double e, f=1, g=2; Point3D u, v(1,2,3),,w(v); k = i + j; e = f + g; u = v + w; operator+ in Klasse Point3D
15 Klassen Grundlegendes Sprachkonstrukt objektorientierter Sprachen Klasse (in C++) = Abstrakter Datentyp mit 15 Daten Methoden (Elementfunktionen) Operatoren (+,-, ) für die Klassen Zugriffskontrolle für Daten und Methode Konstruktor, Destruktor Verweis auf Elternteile, von denen Daten und Elementfunktionen geerbt werden
16 C++ : class class cfilter { float x1; float y1; // alter x-wert // alter y-wert Schlüsselwort class + Typname Elementdaten wie in struct public: void Reset () { x1=0.0; y1=0.0; } }; Zugriffskontrolle Elementfunktion mit Implementierung 16
17 Teil 3: Sprachelemente von C++: das bessere C Programmdateien Programmdatei, Header und #include-anweisung Ein-/Ausgabe Elementare Datentypen Datentypen Variablen: Vereinbarung und Implementierung Felder Zeiger und Referenzen Speicheranforderung new und delete Funktionen Schnittstellendefinition Defaultparameter Abstrakte Datentypen class 17
18 Programmdateien Programmdatei 18 Enthält den eigentlichen Algorithmus Dateierweiterung *.cpp oder *.cc Einbinden via #include- Direktive #include <stdio.h> #include "meins.h" #include <iostream> Header-Datei Schnittstellenvereinbar ung von Funktionen und Variablen Dateierweiterung: *.h oder *.hh (STL auch ohne Erweiterung) Preprozessor sucht in Systemverzeichnis Preprozessor sucht in Entwicklerverzeichnissen C++ Standard Template Library
19 Ein-/Ausgabe auf Console EinAusgabe Ersatz der C-stdio-Library durch iostream-library iostream profitiert von den neuen Konzepten in C++: Klassen, Überladen von Operatoren, Ausgabe Vordefinierte Ausgabeströme std::cout, std::cerr, std::clog Ausgabeoperator <<: Ausgabestrom << Objekt Namensraum #include <iostream> std::cout << "hallo" << std::endl; 19
20 Eingabe EinAusgabe Eingabeoperator >>: Eingabestream >> Objekt Lese drei Ganzzahlen von dem Eingabestrom: int i, j, k; std::cin >> i >> j >> k; Eingabe wird Wort für Wort, getrennt durch White Space (Leerzeichen, Tabulator, Zeilentrenner) gelesen. Einlesen bis zum Ende der Eingabe while (std::cin >> i) { std::cout << i; } 20
21 Ein-Ausgabe aus Strömen FileIO Verschiedene Ein-/Ausgabe-Quellen und Senken möglich: Console/Standard Ein/Ausgabekanäle: std::cout, std::cerr, std::clog, std::cin #include <iostream> Dateien: std::ifstream, std::ofstream #include <fstream> Zeichenketten: std::istrstream, std::ostrstream #include <strstream> 21
22 Kommentare C++ unterstützt den mehrere Zeilen überstreckenden C-Kommentar /*. */ Neu: Einzelzeilenkommentar // Beispiel: // kbhit function checks for keyboard input void kbhit() { } // do something. Alles von "//" bis zur Ende der Zeile wird ignoriert 22
23 Integrierte Datentypen Deklaration mit Initialisierung char int float double bool unsigned signed short Zeichen (1 Byte) Ganzzahl Fließkommazahl (einfach) Fließkommazahl (doppelt) Logischer Wert Wertebereich ohne Vorzeichen Wertebereich mit Vorzeichen 2 Byte int i=10; Modifier ohne Type: int short j; unsigned k1, k2=1, k3; long ilong; double d = 10.0; Liste j = 2; k1 = 2*i; u = i; u ist nicht deklariert const double pi = ; Double 2pi = ; long long long 23 long int 4 Byte. long double (12 Byte) 8 Byte. Groß/Kleinschreibung! Variablennamen müssen mit Buchstaben anfangen!
24 Variablen variables C typ name [=wert]; C++ typ name [=wert]; typ name(wert); int i=4, j=5; int i=4, j(5); Keine Deklaration nach erstem Statement in Block mehr möglich 24 { } Variablendeklaration Statements Deklaration auch zwischen Statements möglich { } Variablendeklaration Statements Variablendeklaration Statement
25 Kopiekonstruktor anstelle Zuweisung (und cast) C: int i; float f; f = i; // entspricht: f = (float) i; C++ int i; float f; f = float(i); Kopiekonstruktor Auch für neue, selbstdefinerte Typen definierbar 25
26 Konstanten const C Konstanten werden über den Präprozessor definiert C++ Konstanten werden wie Variablen deklariert #define MAX 1024 while (i < MAX) { const int MAX = 1024; while (i < MAX) { Nachteil: Lediglich Textersetzung, keine Typüberprüfung, limitiert auf integrale Typen 26 Das Schlüsselwort const wird auch in anderen Kontexten verwendet, um anzuzeigen, dass nur lesender Zugriff erlaubt ist
27 Felder wie in C 10 aufeinanderfolgende Ganzzahlen! Zusammengehörige Daten gleichen Typs können in Feldern gespeichert werden. Bei der Vereinbarung wird die Feldgröße in eckige Klammern angegeben. Der Zugriff auf ein einzelnes Element erfolgt unter Angabe eines Indexes in eckigen Klammern Index [0, Feldgröße) int a[10]; a[5] = 7; a[10] = 9; Das 6.te Element (wir zählen ab 1) bekommt den Wert 7 Achtung: Keine gültige Speicherstelle 27
28 Zeiger und Referenzen Referenz reference C (auch C++) void swap(int *i, int *j) { } main() { } 28 int t = *i; *i = *j; *j = t; int a=10, b=5; swap(&a, &b); Adressoperator cout << a << b << endl; C++ void swap(int& i, int& j) { int t = i; i = j; j = t; } main() { int a=10, b=5; swap(a, b); cout << a << b << endl; }
29 Überladen von Funktionen polymorph!! Zur Unterscheidung von Funktionen wird vom Compiler nicht nur der Namen sondern auch der Typ der Argumente herangezogen Die Definition einer bestehenden Funktion mit gleichem Namen aber unterschiedlichen Argumenten wird Überladen genannt Zur Übersetzungszeit wird entschieden, welche Funktion aufgerufen werden soll kein Laufzeitoverhead Zuordnung muss eindeutig möglich sein, sonst Übersetzungsfehler! 29
30 Default Argumente defaultparam Argumente von Funktionen können mit Defaultparametern versehen werden Syntax: typ funcname([typ argname [=defaultwert], ]) Achtung: Reihenfolgeeffekt, sobald ein Argument mit defaultwert versehen wurde, müssen alle folgenden ebenfalls defaultwerte haben void sample(double &value, double t=0.1); void sample(double &value, double t=0.1, double e); Nicht erlaubt void sample(double &value, double t=0.1, double e=0.001); 30
31 Speicheranforderungen memory C: Aufruf von Funktionen (malloc, free) C++: Integrierte Sprachelemente zur dynamischen Anforderung und Freigabe von Speicherplatz: new delete Erweiterbar: Funktion von new und delete kann für eigene Typen definiert werden (Konstruktor, Destruktor) und transparent genutzt werden. 31
32 Teil 2: Klassen und Objekte in C++ Eine Klasse definiert einen neuen abstrakten Datentyp und einen neuen Gültigkeitsbereich Klassenelemente wie in struct Elementfunktionen wie einfache Funktionen 32
33 class class cfilter { float K; float T; float Ta; public: }; // Filterverstärkung // Filterzeitkonstante // Tastzeit Zugriffskontrolle: public, protected, private void Reset () { x1=0.0; y1=0.0; } Elementfunktion mit int Param (float k, float t, float ta); Implementierung void SimStep (float x, float &y); Funktionsvereinbarung Semikolon! Schlüsselwort class/struct + Typname Elementdaten wie in struct 33
Mikrorechentechnik II. Einführung in C++ Professur für Prozessleittechnik Prof. Dr.-Ing. Leon Urbas
Mikrorechentechnik II Einführung in C++ Professur für Prozessleittechnik Prof. Dr.-Ing. Leon Urbas Sommersemester 2012 Warum C++? Bewährte objektorientierte Sprache in den Einsatzfeldern Echtzeitsysteme,
MehrMikrorechentechnik II. Klassen in C++
Mikrorechentechnik II Klassen in C++ class class cfilter { float K; float T; float Ta; public: // Filterverstärkung // Filterzeitkonstante // Tastzeit Zugriffskontrolle: public, protected, private void
MehrWintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf Seite 1 von 29
Kapitel 2 Einführung in C++ Seite 1 von 29 C++ Zeichensatz - Buchstaben: a bis z und A bis Z. - Ziffern: 0 bis 9 - Sonderzeichen: ; :,. # + - * / % _ \! < > & ^ ~ ( ) { } [ ]? Seite 2 von 29 Höhere Elemente
MehrEinführung in den Einsatz von Objekt-Orientierung mit C++ I
Einführung in den Einsatz von Objekt-Orientierung mit C++ I ADV-Seminar Leiter: Mag. Michael Hahsler Syntax von C++ Grundlagen Übersetzung Formale Syntaxüberprüfung Ausgabe/Eingabe Funktion main() Variablen
MehrÜberblick. R.Grossmann / P. Sobe 1
Überblick 1. Einführung C++ / Entwicklung/ Sprachfamilie 2. Nicht objektorientierte Erweiterungen von C 3. Grundlagen des Typkonzepts von C++ 4. Ziele der Objektorientierung 5. Objekt und Klasse, Elementfunktionen
MehrVorlesungsprüfung Programmiersprache 1
Vorlesungsprüfung Programmiersprache 1 Termin der Prüfung: 1) Di 20.03.2018 16:15 17:00 HSB 3 2) Di 15.05.2018 16:15 17:00 HSB 3 3) Di 12.06.2018 16:15 17:00 HSB 3 Stoffgebiete: 1) Ganzzahltypen: char,
MehrElementare Datentypen in C++
Elementare Datentypen in C++ bool signed/unsigned char signed/unsigned short int signed/unsigned int signed/unsigned long int (signed/unsigned long long int) float double long double void enum char Der
MehrC++ Notnagel. Ziel, Inhalt. Programmieren in C++
C++ Notnagel Ziel, Inhalt Ich versuche in diesem Dokument noch einmal die Dinge zu erwähnen, die mir als absolut notwendig für den C++ Unterricht und die Prüfungen erscheinen. C++ Notnagel 1 Ziel, Inhalt
MehrEinführung in C ++ und die Objektorientierte Programierung
1/38 Einführung in C ++ und die Objektorientierte Programierung Florian Adamsky, B. Sc. (PhD cand.) florian.adamsky@iem.thm.de http://florian.adamsky.it/ cbd Softwareentwicklung im WS 2014/15 2/38 Outline
Mehr4. Objektorientierte Programmierung mit C++
4. Objektorientierte Programmierung mit C++ Einführung C++ / Entwicklung der Sprachfamilie Erweiterungen der Sprache C: Ein- und Ausgabe, Referenzen, Speicherallokation und Freigabe Grundlagen des Typkonzepts
MehrErste Schritte der Programmierung in C
Erste Schritte der Programmierung in C C versus C++ Anatomie von C-Programmen für AVR- Mikrocontroller Unterschiede zwischen C++ und C 1 Grundlegende Unterschiede File-Extensions (Header und Quellcode)
MehrÜberblick. 5. Objekt und Klasse, Elementfunktionen
Überblick 1. Einführung C++ / Entwicklung/ Sprachfamilie 2. Nicht objektorientierte Erweiterungen von C 2.1 Das Ein-/Ausgabekonzept von C++ 2.2 Referenzen in C++ 2.3 Heap-Allokatoren in C++ 3. Grundlagen
MehrEinführung in die Programmierung mit C++
1 Seite 1 Einführung in die Programmierung mit C++ Teil III - Objektorientierte Programmierung 9. Klassen und Methoden Was sind Klassen? Seite 2 sprachliches Mittel von C++ um objektorientierte Programmierung
MehrAlgorithmen zur Datenanalyse in C++
Algorithmen zur Datenanalyse in C++ Hartmut Stadie 16.04.2012 Algorithmen zur Datenanalyse in C++ Hartmut Stadie 1/ 39 Einführung Datentypen Operatoren Anweisungssyntax Algorithmen zur Datenanalyse in
MehrObjektorientierte Programmierung mit C++ SS 2007
Objektorientierte Programmierung mit C++ SS 2007 Andreas F. Borchert Universität Ulm 5. Juni 2007 Polymorphismus #include Function.h class Function { public: virtual ~Function() {}; virtual std::string
MehrObjektorientierte Programmierung
C++ Objektorientierte Programmierung Erweiterung von selbstdefinierten Datentypen (struct) zu Klasse. Eine Klasse besteht dann aus - Attributen (Untertypen wie struct) und zusätzlich - aus Methoden (Funktionen
MehrProgrammierkurs C/C++
Blockkurs: "Einführung in C/C++" Programmierkurs C/C++ Donnerstag Sandro Andreotti andreott@inf.fu-berlin.de WS 2008/09 1 Structs Blockkurs: "Einführung in C/C++" 2 Structs sind Bündel von Variablen (unter
MehrAngewandte Mathematik und Programmierung
Angewandte Mathematik und Programmierung Einführung in das Konzept der objektorientierten Anwendungen zu mathematischen Rechnens WS 2013/14 Operatoren Operatoren führen Aktionen mit Operanden aus. Der
MehrC++ - Objektorientierte Programmierung Konstante und statische Elemente
C++ - Objektorientierte Programmierung Konstante und statische Elemente hat eine Kantenlänge hat eine Füllfarbe Kantenlänge setzen Füllfarbe lesen Volumen berechnen Leibniz Universität IT Services Anja
MehrEinführung Sprachfeatures Hinweise, Tipps und Styleguide Informationen. Einführung in C. Patrick Schulz
Patrick Schulz patrick.schulz@paec-media.de 29.04.2013 1 Einführung Einführung 2 3 4 Quellen 1 Einführung Einführung 2 3 4 Quellen Hello World in Java Einführung 1 public class hello_ world 2 { 3 public
MehrInformatik I (D-ITET)
Informatik I (D-ITET) Übungsstunde 2, 5.10.2009 ETH Zürich? Übungsgruppenwechsel? Abgabe der Übungen... Bis Mo, 24:00 Theorie: Programme: per mail oder auf Papier.cpp Datei per mail Bin euch noch Demos
MehrObjektorientierte Programmierung mite**
mc Jürgen Franz/Christoph Mattheis Objektorientierte Programmierung mite** Systemunabhängig umsteigen auf C ++ Windowsprogrammierung Beispiele für UNIX Mit 66 Abbildungen Franzis 9 Inhalt 1 Überblick C++
MehrDas erste C++ Programm
Das erste C++ Programm // Program: power8.c // Raise a number to the eighth power. #include int main() { // input std::cout > a; // computation int
MehrPolymorphismus 179. Function.h. #include <string>
Polymorphismus 179 #include Function.h class Function { public: virtual ~Function() {}; virtual std::string get_name() const = 0; virtual double execute(double x) const = 0; }; // class Function
MehrProgrammierkurs C++ Variablen und Datentypen
Programmierkurs C++ Variablen und Datentypen Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer #2 Überblick Welche Datentypen gibt es in
MehrMapra: C++ Teil 4. Felix Gruber. 6. Mai IGPM, RWTH Aachen. Felix Gruber (IGPM, RWTH Aachen) Mapra: C++ Teil 4 6.
Mapra: C++ Teil 4 Felix Gruber IGPM, RWTH Aachen 6. Mai 2015 Felix Gruber (IGPM, RWTH Aachen) Mapra: C++ Teil 4 6. Mai 2015 1 / 22 Themen vom letzten Mal Kompilieren mit Makefiles Ein-/Ausgabe über Dateien
MehrPolymorphismus 44. Function.hpp. #include <string>
Polymorphismus 44 #include Function.hpp class Function { public: virtual ~Function() {}; virtual const std::string& get_name() const = 0; virtual double execute(double x) const = 0; }; // class
MehrUnterlagen. CPP-Uebungen-08/
Unterlagen http://projects.eml.org/bcb/people/ralph/ CPP-Uebungen-08/ http://www.katjawegner.de/lectures.html Kommentare in C++ #include /* Dies ist ein langer Kommentar, der über zwei Zeilen
MehrC++ vs. Java. Hello world! Java C++ class HelloWorld { static public void main(string args) { System.out.println("Hello World!
Hello world! Java class HelloWorld { static public void main(string args) { System.out.println("Hello World!"); } } C #include main() { printf("hello World!\n"); } C++ #include using
MehrÜbung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++, 2. Teil
MÜNSTER Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++ 2. Teil 18. April 2012 Organisatorisches MÜNSTER Übung zur Vorlesung Wissenschaftliches
MehrStandardbibliotheken. Datentyp bool. Eingaben 2/2. Eingaben 1/2. In C gibt es keinen logischen Datentyp
Datentyp bool Standardbibliotheken Ein- und Ausgabe Vektoren Container In C gibt es keinen logischen Datentyp Abhilfe schafft Interpretation 0 == false 1 == true Das könnte so aussehen: #define false 0
MehrThema heute: Vererbung und Klassenhierarchien. Abgeleitete Klassen. Vererbung von Daten und Funktionen. Virtuelle Funktionen
1 Thema heute: Vererbung und Klassenhierarchien Abgeleitete Klassen Vererbung von Daten und Funktionen Virtuelle Funktionen 2 Vererbung oft besitzen verschiedene Datentypen einen gemeinsamen Kern Beispiel:
MehrProgrammierung und Angewandte Mathematik
Programmierung und Angewandte Mathematik C++ /Scilab Programmierung und Einführung in das Konzept der objektorientierten Anwendungen zu wissenschaftlichen Rechnens SS 2012 Inhalt Compiler/Editor Klassendeklaration
MehrKurze Einführung in die Programmiersprache C++ und in Root
Kurze Einführung in die Programmiersprache C++ und in Root Statistik, Datenanalyse und Simulation; 31.10.2006 Inhalt 1 Einführung in die Programmiersprache C++ Allgemeines Variablen Funktionen 2 1 Einführung
MehrInformationsverarbeitung im Bauwesen
1/24 Informationsverarbeitung im Bauwesen Einführung in das Programmieren mit C++ Markus Uhlmann Institut für Hydromechanik Karlsruher Institut für Technologie www.ifh.kit.edu WS 2010/2011 Vorlesung 7
MehrVariablen in C++ Einfache Variablen Strukturen Arrays und Zeichenketten Zeiger und Referenzen Parameter Dynamische Speicherverwaltung
Variablen in C++ Einfache Variablen Strukturen Arrays und Zeichenketten Zeiger und Referenzen Parameter Dynamische Speicherverwaltung Einfache Variablen Typen int, long, short, unsigned bool char float,
MehrC++ - Einführung in die Programmiersprache Zeiger, Referenzen und Strukturen. Leibniz Universität IT Services Anja Aue
C++ - Einführung in die Programmiersprache Zeiger, Referenzen und Strukturen Leibniz Universität IT Services Anja Aue Zeiger (Pointer) Verweis auf eine Speicherstelle. Speicherung einer Speicheradresse.
MehrC++ Teil 7. Sven Groß. 3. Juni Sven Groß (IGPM, RWTH Aachen) C++ Teil 7 3. Juni / 16
C++ Teil 7 Sven Groß 3. Juni 2016 Sven Groß (IGPM, RWTH Aachen) C++ Teil 7 3. Juni 2016 1 / 16 Themen der letzten Vorlesung dynamische Speicherverwaltung (Wdh.) Cast bei Zeigern STL-Vektoren + Live Programming
MehrDynamische Datentypen. Destruktor, Copy-Konstruktor, Zuweisungsoperator, Dynamischer Datentyp, Vektoren
Dynamische Datentypen Destruktor, Copy-Konstruktor, Zuweisungsoperator, Dynamischer Datentyp, Vektoren Probleme mit Feldern (variabler Länge) man kann sie nicht direkt kopieren und zuweisen Probleme mit
MehrVariablen, Konstanten und Datentypen
Informatik für Elektrotechnik und Informationstechnik Benedict Reuschling benedict.reuschling@h-da.de Hochschule Darmstadt Fachbereich Informatik WS 2013/14 Variablen, Konstanten und Datentypen Überblick
MehrC++ - Objektorientierte Programmierung Polymorphie
C++ - Objektorientierte Programmierung Polymorphie hat eine Kantenlänge hat eine Füllfarbe Kantenlänge setzen Füllfarbe lesen Volumen berechnen C++ - Objektorientierte Programmierung 21.06.16 Seite 1 Polymorphie
MehrGrundlagen der Informatik 2. Typen
Grundlagen der Informatik 2. Typen Speicher, Speicherbedarf Ein-/Ausgabe Grundlagen der Informatik (Alex Rempel) 1 Wiederholung // root calculation #include #include using namespace
MehrÜberblick. Überblick. Abstrakte Klassen - rein virtuelle Funktionen Beispiele
Überblick 1. Einführung C++ / Entwicklung/ Sprachfamilie 2. Nicht objektorientierte Erweiterungen von C 2.1 Das Ein-/Ausgabekonzept von C++ 2.2 Referenzen in C++ 2.3 Heap-Allokatoren in C++ 3. Grundlagen
MehrGrundlagen von C# - 1
Grundlagen von C# - 1 Marc Satkowski 20. November 2016 C# Kurs Gliederung 1. Über diesen Kurs 2. Benötigte Software 3. Exkurs: Architektur von.net und C# 4. Erstes Programm: Hello World Grundlegende Eigenschaften
MehrÜbung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++, 1. Teil
MÜNSTER Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++ 1. Teil 11. April 2012 Organisatorisches MÜNSTER Übung zur Vorlesung Wissenschaftliches
MehrModul Entscheidungsunterstützung in der Logistik. Einführung in die Programmierung mit C++ Übung 1
Fakultät Verkehrswissenschaften Friedrich List, Professur für Verkehrsbetriebslehre und Logistik Modul Entscheidungsunterstützung in der Logistik Einführung in die Programmierung mit C++ Übung 1 SS 2016
MehrÜbung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++, 1. Teil
MÜNSTER Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++ 1. Teil 11. April 2012 Organisatorisches MÜNSTER Übung zur Vorlesung Wissenschaftliches
MehrC++ - Einführung in die Programmiersprache Header-Dateien und Funktionen. Leibniz Universität IT Services Anja Aue
C++ - Einführung in die Programmiersprache Header-Dateien und Funktionen Leibniz Universität IT Services Anja Aue Modularisierung Logische Gliederung von Programmteilen mit Hilfe von Namensräumen. Aufteilung
MehrC++ Teil 8. Sven Groß. 5. Dez IGPM, RWTH Aachen. Sven Groß (IGPM, RWTH Aachen) C++ Teil 8 5. Dez / 16
C++ Teil 8 Sven Groß IGPM, RWTH Aachen 5. Dez 2014 Sven Groß (IGPM, RWTH Aachen) C++ Teil 8 5. Dez 2014 1 / 16 Themen der letzten Vorlesung Casts bei Zeigern dynamische Speicherverwaltung Vektoren Typedefs
MehrC++ - Objektorientierte Programmierung Konstruktoren und Destruktoren
C++ - Objektorientierte Programmierung Konstruktoren und Destruktoren hat eine Kantenlänge hat eine Füllfarbe Kantenlänge setzen Füllfarbe lesen Volumen berechnen Leibniz Universität IT Services Anja Aue
MehrProgrammieren in C/C++ und MATLAB
Programmieren in C/C++ und MATLAB Sven Willert Sabine Schmidt Christian-Albrechts-Universität zu Kiel CAU 5-1 Übung Schreiben Sie ein Programm, das die Zahl π durch π = 4 4 4 4 4 4 + + +... 3 5 7 9 11
MehrDAP2-Programmierpraktikum Einführung in C++ (Teil 2)
DAP2-Programmierpraktikum Einführung in C++ (Teil 2) Carsten Gutwenger 18. April 2008 Lehrstuhl 11 Algorithm Engineering Fakultät für Informatik, TU Dortmund Überblick Dynamischer Speicher Klassen und
MehrOMSI / Teil 1 / C++ Andreas Blunk. 5. April 2006, Berlin
OMSI / Teil 1 / C++ Andreas Blunk 5. April 2006, Berlin Zusammenfassung Dieses Dokument ist eine Ergänzung zu den Folien von C++ aus dem 1. Teil der Vorlesung Objektorientierte Modellierung, Spezifikation
MehrEinführung in C. EDV1-04C-Einführung 1
Einführung in C 1 Helmut Erlenkötter C Programmieren von Anfang an Rowohlt Taschenbuch Verlag ISBN 3-4993 499-60074-9 19,90 DM http://www.erlenkoetter.de Walter Herglotz Das Einsteigerseminar C++ bhv Verlags
MehrNumerische Methoden und Algorithmen in der Physik
Numerische Methoden und Algorithmen in der Physik Hartmut Stadie, Christian Autermann 30.10.2008 Numerische Methoden und Algorithmen in der Physik Hartmut Stadie 1/ 48 Einführung Datentypen Operatoren
MehrPeter Prinz Ulla Kirch-Prinz C+ + Lernen und professionell anwenden. ffl mitp
Peter Prinz Ulla Kirch-Prinz C+ + Lernen und professionell anwenden ffl mitp Inhaltsverzeichnis Einleitung 19 1 Grundlagen 21 Entwicklung und Eigenschaften von C + + 22 Objektorientierte Programmierung
MehrProgrammierung mit C Zeiger
Programmierung mit C Zeiger Zeiger (Pointer)... ist eine Variable, die die Adresse eines Speicherbereichs enthält. Der Speicherbereich kann... kann den Wert einer Variablen enthalten oder... dynamisch
MehrDie Anwesenheitspflicht beim Seminar gilt für diejenigen Teilnehmer, die einen Schein erwerben wollen. Für die Nachmittagsübungen gilt keine
1 2 Die Anwesenheitspflicht beim Seminar gilt für diejenigen Teilnehmer, die einen Schein erwerben wollen. Für die Nachmittagsübungen gilt keine Anwesenheitspflicht; d.h. die Teilnehmer dürfen sie gerne
MehrAngewandte Mathematik und Programmierung
Angewandte Mathematik und Programmierung Einführung in das Konzept der objektorientierten Anwendungen zu wissenschaftlichen Rechnens mit C++ und Matlab SS2013 Inhalt Bis jetzt: Heute: Entwicklungsumgebung
MehrC++ Teil 7. Sven Groß. 26. Nov IGPM, RWTH Aachen. Sven Groß (IGPM, RWTH Aachen) C++ Teil Nov / 18
C++ Teil 7 Sven Groß IGPM, RWTH Aachen 26. Nov 2014 Sven Groß (IGPM, RWTH Aachen) C++ Teil 7 26. Nov 2014 1 / 18 Themen der letzten Vorlesung Referenzen Zeiger Felder dynamische Speicherverwaltung Sven
MehrInhaltsverzeichnis. Vorwort
Inhaltsverzeichnis Vorwort XI 1 C/C++-Grundlagen 1 1.1 Einführung................................ 1 1.1.1 Entwicklungsgeschichte: Von K&R-C nach C++........ 1 1.1.2 Beispielprogramme.......................
MehrProgrammierung in C/C++
Programmierung in C/C++ Mit einer grundlegenden Einführung in die Objektorientierung Univ.-Prof. Hon.-Prof. Dr. Dieter Roller Mit 134 Bildern Kontakt & Studium Band 682 Herausgeber: Prof. Dr. Birgit Baum
MehrGrundlagen der OO- Programmierung in C#
Grundlagen der OO- Programmierung in C# Technische Grundlagen 1 Dr. Beatrice Amrhein Überblick Visual Studio: Editor und Debugging Die Datentypen Methoden in C# Die Speicherverwaltung 2 Visual Studio 3
MehrProgrammierung III. Pointer für Fortgeschrittene Marc Ruberg. Arrays von Pointern ( Zeigervektoren ): Pointer auf Pointer:
Programmierung III Marc Ruberg 1 Pointer für Fortgeschrittene Arrays von Pointern ( Zeigervektoren ): long *zahlenptr[25]; char *strptr[1000]; Pointer auf Pointer: char **sp Zeiger auf Funktionen: Typ
MehrProgrammiertechnik. Teil 4. C++ Funktionen: Prototypen Overloading Parameter. C++ Funktionen: Eigenschaften
Programmiertechnik Teil 4 C++ Funktionen: Prototypen Overloading Parameter C++ Funktionen: Eigenschaften Funktionen (Unterprogramme, Prozeduren) fassen Folgen von Anweisungen zusammen, die immer wieder
Mehr7. Übung Informatik II - Objektorientierte Programmierung
7. Übung Informatik II - Objektorientierte Programmierung 29. Mai 2015 Inhalt 1 2 3 Übersicht 1 2 3 Idee Menschen nehmen die Welt in Form von Objekten wahr manche Objekte haben gleiche Eigenschaften, hierüber
MehrF Zeiger, Felder und Strukturen in C
F Zeiger, Felder und Strukturen in C F Zeiger, Felder und Strukturen in C F.1 Zeiger(-Variablen) 1 Einordnung Konstante: Bezeichnung für einen Wert a 0110 0001 Variable: Bezeichnung eines Datenobjekts
MehrHydroinformatik I: Klassen
Hydroinformatik I: Klassen Prof. Dr.-Ing. habil. Olaf Kolditz 1 Helmholtz Centre for Environmental Research UFZ, Leipzig 2 Technische Universität Dresden TUD, Dresden Dresden, 27. November 2015 1/13 Prof.
MehrObjektorientiert in C++
Dirk Louis Objektorientiert in C++ Einstieg und professioneller Einsatz intwickier.pres: Vorwort 11 1 Schnellkurs C++ 13 1.1 ANSI-C++ und die Compiler 13 Compiler und Programmerstellung 13 ANSI und die
MehrVerwendung von Klassen in C++
Verwendung von Klassen in C++ Heute: Benutzerdefinierte Datentypen (Konkrete Klassen) Vektoren Komplexe Zahlen Adressdatei Morgen: Objektorientierte Programmierung (Abstrakte Klassen) Vererbung Polymorphie
MehrProgrammieren in C+ Einführung in den Sprachstandard C++ Springer-Verlag Berlin Heidelberg New York London Paris Tokyo Hong Kong Barcelona Budapest
Martin Schader Stefan Kuhlins Programmieren in C+ Einführung in den Sprachstandard C++ Zweite, verbesserte und erweiterte Auflage Mit 25 Abbildungen Springer-Verlag Berlin Heidelberg New York London Paris
MehrPraxis der Programmierung
Funktionen, Header-Dateien, Pointer Institut für Informatik und Computational Science Universität Potsdam Henning Bordihn 1 Organisatorische Bemerkungen 2 Modul Programmierung Pflichtmodul für BSc INF
MehrHerzlich willkommen!
Programmiertechnik 1 Herzlich willkommen! Dozent: Dipl.-Ing. Jürgen Wemheuer Teil 6: Zusammenfassung und Beispiele Mail: wemheuer@ewla.de Online: http://cpp.ewla.de/ Zusammenfassung (1) 2 1. Programm in
MehrGrundkurs C++ IDE Klassenhierarchien
Grundkurs C++ IDE Klassenhierarchien Martin Knopp & Johannes Feldmaier 20.04.2016 Folie 1/35 GK C++: IDE, Klassenhierarchien Martin Knopp & Johannes Feldmaier 20.04.2016 IDE Integrated Development Environment
MehrCrashkurs C++ Wiederholung
Crashkurs C++ Wiederholung #include int main(void) { int i, j; bool is_prime; for (j = 1; j < 1000; j += 2) { is_prime = true; for (i = 3; i
MehrGedächtnis. Während der Abarbeitung eines Algorithmus müssen sich Dinge gemerkt werden bzw. auf Dingen wird gerechnet. Zugriff.
Gedächtnis Während der Abarbeitung eines Algorithmus müssen sich Dinge gemerkt werden bzw. auf Dingen wird gerechnet Hauptspeicher 38265 Telefon CPU Gedächtnis Vorlesender Zugriff Verarbeitungseinheit
MehrEinführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung)
Wintersemester 2005/06 Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich Informatik Lehrstuhl
MehrC++ Klassen, Vererbung. Philipp Lucas. Sebastian Hack. Wintersemester 2008/09. saarland.
C++ Klassen, Vererbung Philipp Lucas phlucas@cs.uni-sb.de Sebastian Hack hack@cs.uni-sb.de Wintersemester 2008/09 saarland university computer science 1 Inhalt Klassen in C++ Sichtbarkeit Erzeugen von
MehrArnold Willemer. Einstieg in C++ Galileo Press
Arnold Willemer Einstieg in C++ Galileo Press Vorwort 13 1.1 Programmieren 17 1.1.1 Start eines Programms 17 1.1.2 Eintippen, übersetzen, ausführen 18 1.1.3 Der Algorithmus 20 1.1.4 Die Sprache C++ 21
MehrC++ Teil 5. Sven Groß. 12. Nov IGPM, RWTH Aachen. Sven Groß (IGPM, RWTH Aachen) C++ Teil Nov / 16
C++ Teil 5 Sven Groß IGPM, RWTH Aachen 12. Nov 2014 Sven Groß (IGPM, RWTH Aachen) C++ Teil 5 12. Nov 2014 1 / 16 Themen der letzten Vorlesung Eingabestrom, Verhalten von cin Namensräume Live Programming
MehrC++ Teil 1. Sven Groß. 9. Apr IGPM, RWTH Aachen. Sven Groß (IGPM, RWTH Aachen) C++ Teil 1 9. Apr / 19
C++ Teil 1 Sven Groß IGPM, RWTH Aachen 9. Apr 2015 Sven Groß (IGPM, RWTH Aachen) C++ Teil 1 9. Apr 2015 1 / 19 Organisatorisches Anmeldung zu Vorlesung und Praktikum über CampusOffice heute! Zugang zu
MehrVisuelle Kryptographie. Anwendung von Zufallszahlen
Visuelle Kryptographie Anwendung von Zufallszahlen Verschlüsseln eines Bildes Wir wollen ein Bild an Alice und Bob schicken, so dass Verschlüsseln eines Bildes Wir wollen ein Bild an Alice und Bob schicken,
MehrEinführung in C. Alexander Batoulis. 5. Mai Fakutltät IV Technische Universität Berlin
Fakutltät IV Technische Universität Berlin 5. Mai 2014 Inhaltsverzeichnis 1 2 3 4 5 6 7 Überblick Beispielprogramm in Java Beispielprogramm in C 1 2 3 4 5 6 7 Beispielprogramm in Java Beispielprogramm
MehrGrundelemente objektorientierter Sprachen (1)
Grundelemente objektorientierter Sprachen (1) Objekt Repräsentation eines Objektes der realen Welt in der Terminologie objektorientierter Programmiersprachen besitzen Attribute (Eigenschaften), deren Werte
MehrHydroinformatik I: Klassen
Hydroinformatik I: Klassen Prof. Dr.-Ing. habil. Olaf Kolditz 1 Helmholtz Centre for Environmental Research UFZ, Leipzig 2 Technische Universität Dresden TUD, Dresden Dresden, 11. November 2016 1/20 Prof.
MehrEffektiv Programmieren in С und C++
Dietmar Herrmann Effektiv Programmieren in С und C++ Eine Einführung mit Beispielen aus Mathematik, Naturwissenschaft und Technik 3., vollständig überarbeitete und erweiterte Auflage 3 vieweg flffm \;i
Mehr4.2 Programmiersprache C
4.2.1. Elementare Datentypen (signed) int, unsigned int, (signed) short (int), unsigned short (int), (signed) long (int), unsigned long (int) Elementare Datentypen für ganze Zahlen mit oder ohne Vorzeichen.
Mehr10.4 Konstante Objekte
10.4 Konstante Objekte Genau wie bei einfachen Datentypen (int,double,...) kann man auch Objekte als const deklarieren. Eine solche Deklaration bedeutet, daß alle Attribute so behandelt werden, als wären
MehrEinstieg in die Informatik mit Java
Vorlesung vom 18.4.07, Grundlagen Übersicht 1 Kommentare 2 Bezeichner für Klassen, Methoden, Variablen 3 White Space Zeichen 4 Wortsymbole 5 Interpunktionszeichen 6 Operatoren 7 import Anweisungen 8 Form
MehrGrundkurs C++ IDE Klassenhierarchien
Grundkurs C++ IDE Klassenhierarchien Martin Knopp 03.05.2017 Folie 1/34 GK C++: IDE, Klassenhierarchien Martin Knopp 03.05.2017 IDE Integrated Development Environment Wir empfehlen: Qt Creator (Bestandteil
MehrThemen. Formatierte und unformatierte Eingabe Bedingungsoperator Namespaces Kommandozeilenargumente
Themen Formatierte und unformatierte Eingabe Bedingungsoperator Namespaces Kommandozeilenargumente Formatierte Eingabe mit cin Die Formatierung der Eingabe ist der Ausgabe sehr ähnlich: Die Flags werden
MehrInformationsverarbeitung im Bauwesen
1/21 Informationsverarbeitung im Bauwesen Einführung in das Programmieren mit C++ Markus Uhlmann Institut für Hydromechanik Karlsruher Institut für Technologie www.ifh.kit.edu WS 2010/2011 Vorlesung 8
MehrJava I Vorlesung Imperatives Programmieren
Java I Vorlesung 2 Imperatives Programmieren 3.5.2004 Variablen -- Datentypen -- Werte Operatoren und Ausdrücke Kontrollstrukturen: if Imperatives Programmieren Im Kern ist Java eine imperative Programmiersprache.
MehrAngewandte Mathematik und Programmierung
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),
Mehr... Vorwort Einstieg in die Programmierung Ablaufsteuerung... 71
... Vorwort... 13 1... Einstieg in die Programmierung... 15 1.1... Programmieren... 15 1.1.1... Start eines Programms... 15 1.1.2... Eintippen, übersetzen, ausführen... 16 1.1.3... Der Algorithmus... 18
MehrC++ Teil 9. Sven Groß. 17. Juni Sven Groß (IGPM, RWTH Aachen) C++ Teil Juni / 17
C++ Teil 9 Sven Groß 17. Juni 2016 Sven Groß (IGPM, RWTH Aachen) C++ Teil 9 17. Juni 2016 1 / 17 Themen der letzten Vorlesung Objektorientierung und Klassen Attribute / Datenelemente Methoden / Elementfunktionen
Mehr