C++ - Funktionen und mehr. Kerstin Gößner und Ralf Wondratschek

Größe: px
Ab Seite anzeigen:

Download "C++ - Funktionen und mehr. Kerstin Gößner und Ralf Wondratschek"

Transkript

1 C++ - Funktionen und mehr Kerstin Gößner und Ralf Wondratschek

2 Übersicht Deklaration, Definition und Initialisierung Variablen- und Konstantendeklaration Funktionsaufrufe und rückgabewerte Technische Grundlage eines Funktionsaufrufs Headerdateien Gültigkeitsbereiche (Scopes) Namensbereiche Using-Deklaration Main-Funktion C++ - Funktionen und mehr 2

3 Deklaration, Definition und Initialisierung C++ - Funktionen und mehr 3

4 Funktion Unter einer Funktion versteht man ein Unterprogramm, das eine bestimmte Aufgabe erfüllt. Eine Funktion ist eine Ansammlung von Anweisungen, der ein Name gegeben wird und die jederzeit im Programm über diesen Namen aufgerufen und ausgeführt werden kann. Eine Funktion ist praktisch ein Unterprogramm, das Daten verarbeitet und einen Wert zurückgibt. C++ - Funktionen und mehr 4

5 Prozedur Was ist mit Prozeduren? Sind vorhanden, jedoch keine strenge Unterscheidung zu einer Funktion. Es gibt keine explizite Trennung. C++ - Funktionen und mehr 5

6 Problem?! void a() { //... b(); //... void b() { //... c(); //... void c() { //... a(); //... void b() { //... c(); //... void c() { //... a(); //... void a() { //... b(); //... void c() { //... a(); //... void a() { //... b(); //... void b() { //... c(); //... C++ - Funktionen und mehr 6

7 Deklaration Eine Deklaration ist eine Anweisung, die einem Namen einen Gültigkeitsbereich einführt und einen Typ für das benannte Element und optional einen Initialisierer angibt. Variablen: <extern> [Typ][Name]<Initialisierer> ; Funktionen: [Rückgabetyp][Name] ( <Liste formaler Argumente>); C++ - Funktionen und mehr 7

8 Deklaration - Beispiele Variablen: int i; static int j = 0; extern double k; Funktionen: double foo(); double foo(double a, double b); double foo(const int& a); C++ - Funktionen und mehr 8

9 Deklaration - Fortsetzung Leicht erklärt: Eine Deklaration gibt dem Compiler an, dass es etwas gibt! In Headerdateien zu finden Schnittstellen, die an anderer Stelle definiert sind Fehlerhaftes Beispiel: int main() { cout << fib(number) << endl; C++ - Funktionen und mehr 9

10 Definition Eine Definition ist eine Deklaration, die das Element vollständig spezifiziert. Sie gibt an, worauf sich ein Name konkret bezieht. Für Definitionen wird Speicher reserviert. Keine doppelten Definitionen, mehrfache konsistente Deklarationen sind dagegen möglich. Variablen: [Typ][Name]<Initialisierer> ; Funktionen: [Rückgabetyp][Name] ( <Liste formaler Argumente>) { <Anweisungen> C++ - Funktionen und mehr 10

11 Initialisierung Eine Initialisierung ist implizit eine Definition. Durch eine Initialisierung wird eine Variable mit einem bestimmten Wert vorbelegt. Beispiel: int i = 5; Vorsicht: extern int i = 5; Dabei handelt es sich um eine Initialisierung, dennoch muss i an anderer Stelle definiert werden, da hier i keinen Speicher zugewiesen bekommt. C++ - Funktionen und mehr 11

12 Gegenüberstellung - Beispiele Deklaration: Definition: Initialisierung: extern int i; int i; int i = 5; void foo(); void foo(){ C++ - Funktionen und mehr 12

13 Variablen- und Konstantendeklaration C++ - Funktionen und mehr 13

14 Konstantendeklaration Erweitert normale Variablendeklaration mit dem Schlüsselwort const. const [Typ][Name]<Initialisierer> ; Beispiel: const int i = 5; C++ - Funktionen und mehr 14

15 Spätes Initialisieren Möglichst vermeiden, doch manchmal unumgänglich. Warnung vor Spaghetti-Code! bool isrunning = true; //... int value; if (isrunning) { value = 9; else { value = 7; C++ - Funktionen und mehr 15

16 Standardinitialisierung Standardkonstruktor bei String, Vector Beispiel: == string s = ""; string s; Vorsicht bei eingebauten Typen, z.b. int und double: Global automatisch mit 0 initialisiert Lokal und als Klassenmember jedoch nicht C++ - Funktionen und mehr 16

17 Funktionsaufrufe und -rückgabewerte C++ - Funktionen und mehr 17

18 Funktionsaufrufe und -rückgabewerte Deklaration: [Rückgabetyp][Name] ( <Liste formaler Argumente> ); Definition: [Rückgabetyp][Name] ( <Liste formaler Argumente> ) { <Anweisungen> C++ - Funktionen und mehr 18

19 Rückgabewerte Wenn eine Funktion mit einem Rückgabewert deklariert wurde, braucht der Funktionrumpf stets eine return Anweisung. Die Rückgabe muss dem Rückgabetyp entsprechen. Vorsicht bei Verschachtelungen, Rückgabe nicht vergessen! Kein Rückgabetyp mit Schlüsselwort void. C++ - Funktionen und mehr 19

20 Rückgabewerte - Beispiele void checkrunning(bool isrunning){ if (isrunning) { return; else { std::cout << "is not running" << std::endl; int getrandomnumber() { return 4; C++ - Funktionen und mehr 20

21 Ausdrucksstarke Namen selbstkommentierend Konventionen einhalten A foo(double a) { //... return k; Circle getcircle (double radius) { //... return circle; C++ - Funktionen und mehr 21

22 C++ - Funktionen und mehr 22

23 Liste formaler Argumente auch als Parameter bezeichnet Unterschiede bei Deklaration möglich: int fibonacci(int number); int fibonacci(int); Für Compiler kein Unterschied C++ - Funktionen und mehr 23

24 Parameter weglassen? int find1 (string text, int value, int hint) { int position = 0; //... return position; int find2 (string text, int value, int) { int position = 0; //... return position; find1(" ", 9, 5); // Aufruf korrekt find2(" ", 9, 5); // Aufruf nicht korrekt C++ - Funktionen und mehr 24

25 Überladen von Funktionen int find (string text, int value) { int position = 0; //... return position; int find (string text, int value, int hint) { int position = 0; //... return position; find(" ", 9); // Aufruf obere Funktion find(" ", 9, 5); // Aufruf untere Funktion Zuordnung der Funktion anhand deren Signatur. Signatur besteht aus dem Namen und den Parametern, jedoch nicht dem Rückgabetyp! C++ - Funktionen und mehr 25

26 C++ - Funktionen und mehr 26

27 C++ - Funktionen und mehr 27

28 Pass-by-value Kopie der Variable wird übergeben Parameter entsprechen lokalen Variablen Einfach und effizient für kleine Werte int fib(int value) { if (value == 0) { return 0; else if (value == 1) { return 1; else { return fib(value - 1) + fib(value - 2); C++ - Funktionen und mehr 28

29 Pass-by-reference Übergibt Referenz statt Kopie des Objekts Wird signalisiert durch kaufmännisches Und (&) Ändern von Objekten erlaubt Sinnvoll zum Beispiel bei Initialisierungsmethoden, zum Sortieren etc. Aliase möglich int i = 5; int& k = i; i++; k++; std::cout << i << " == " << k << std::endl; //7 == 7 C++ - Funktionen und mehr 29

30 Pass-by-const-reference Übergibt Referenz des Objektes, jedoch wird das Objekt nie verändert Sinnvoll zum Beispiel zum Ausgeben eines Vektors void makebinary(const int value, string& result) { if (value == 1) { result.insert(0, "1"); else { if (value % 2 == 1) { result.insert(0, "1"); else { result.insert(0, "0"); makebinary(value / 2, result); C++ - Funktionen und mehr 30

31 Was verwenden? 1.) Pass-by-value bei nur sehr kleinen Objekten verwenden. 2.) Stets pass-by-const-reference für große Objekte, die nicht verändert werden müssen, verwenden 3.) Lieber Ergebnisse zurückgeben statt Referenzobjekte zu verändern. 4.) Pass-by-reference nur im Notfall verwenden. C++ - Funktionen und mehr 31

32 Argumentüberprüfung und -umwandlung Übergeben eines Arguments bedeutet implizit Initialisieren der Parameter mit den übergebenen Argumenten. Typumwandlungen sind möglich, aber mit Vorsicht zu genießen! bool ispositive (const int value) { return value >= 0; int main() { cout << ispositive(-0.9) << endl; //1 C++ - Funktionen und mehr 32

33 Technische Grundlage eines Funktionsaufrufs C++ - Funktionen und mehr 33

34 Implementierung von Funktionsaufrufen Bei einem Funktionsaufruf wird eine Datenstruktur eingerichtet. Function activation record beinhaltet: Parameter / lokale Variablen Implementierungsdetails - Kosten für Aktivierung nicht von Größe abhängig. - Datensätze voneinander unabhängig (sonst Probleme bei Rekursion) - Stack wächst und schrumpft nach dem LIFO Prinzip Beispiel Auruf von: fib(3); C++ - Funktionen und mehr 34

35 Implementierung von Funktionsaufrufen value := 3 Implementierungsdetails int fib(int value) { if (value == 0) { return 0; else if (value == 1) { return 1; else { return fib(value - 1) + fib(value - 2); C++ - Funktionen und mehr 35

36 Implementierung von Funktionsaufrufen value := 3 Implementierungsdetails value := 2 Implementierungsdetails int fib(int value) { if (value == 0) { return 0; else if (value == 1) { return 1; else { return fib(value - 1) + fib(value - 2); C++ - Funktionen und mehr 36

37 Implementierung von Funktionsaufrufen value := 3 Implementierungsdetails value := 2 Implementierungsdetails value := 1 int fib(int value) { if (value == 0) { return 0; else if (value == 1) { return 1; else { return fib(value - 1) + fib(value - 2); Implementierungsdetails C++ - Funktionen und mehr 37

38 Implementierung von Funktionsaufrufen value := 3 Implementierungsdetails value := 2 Implementierungsdetails int fib(int value) { if (value == 0) { return 0; else if (value == 1) { return 1; else { return fib(value - 1) + fib(value - 2); C++ - Funktionen und mehr 38

39 Implementierung von Funktionsaufrufen value := 3 Implementierungsdetails value := 2 Implementierungsdetails value := 0 int fib(int value) { if (value == 0) { return 0; else if (value == 1) { return 1; else { return fib(value - 1) + fib(value - 2); Implementierungsdetails C++ - Funktionen und mehr 39

40 Implementierung von Funktionsaufrufen value := 3 Implementierungsdetails value := 2 Implementierungsdetails int fib(int value) { if (value == 0) { return 0; else if (value == 1) { return 1; else { return fib(value - 1) + fib(value - 2); C++ - Funktionen und mehr 40

41 Implementierung von Funktionsaufrufen value := 3 Implementierungsdetails int fib(int value) { if (value == 0) { return 0; else if (value == 1) { return 1; else { return fib(value - 1) + fib(value - 2); C++ - Funktionen und mehr 41

42 Implementierung von Funktionsaufrufen value := 3 Implementierungsdetails value := 1 Implementierungsdetails int fib(int value) { if (value == 0) { return 0; else if (value == 1) { return 1; else { return fib(value - 1) + fib(value - 2); C++ - Funktionen und mehr 42

43 Implementierung von Funktionsaufrufen value := 3 Implementierungsdetails int fib(int value) { if (value == 0) { return 0; else if (value == 1) { return 1; else { return fib(value - 1) + fib(value - 2); C++ - Funktionen und mehr 43

44 Headerdateien C++ - Funktionen und mehr 44

45 Headerdateien Wichtiges Mittel zur Verwaltung von Deklarationen und Definitionen Benutzung von fremden Implementierungen wie sqrt() oder cout möglich Arbeitsersparnis Übernehmen von bereits implementierten Elementen C++ - Funktionen und mehr 45

46 Was genau ist ein Header? Ein Header ist eine Datei mit einer Zusammenfassung vieler Deklarationen. Endung: [filename].h Zugehörige Definitionen befinden sich in anderen Dateien mit.cpp Endung. Einfügen von Headerdateien in den Quelltext mit Hilfe von #include Beispiel: #include <stdlib.h> C++ - Funktionen und mehr 46

47 #include Eine #include [filename.h] Anweisung entspricht dem Kopieren von Textzeilen aus der Datei filename.h. Bearbeitung von #include Zeilen vor allen anderen Schritten ist Zwang sog. Präprozessor-Direktive Einfügen von #include in Dateien mit Definitionen und Dateien mit Verwendung der Deklarationen. C++ - Funktionen und mehr 47

48 #include - Beispiel std_lib_facilities.h enthält Deklarationen von Elementen der Standardbibliothek (cout, vector, sqrt(), ) #include "std_lib_facilities.h"; using namespace std; int main() { double a = sqrt(4); cout << a; //Ausabe: 2 using namespace std; int main() { double a = sqrt(4); cout << a; //error C3861: "sqrt": Bezeichner wurde nicht gefunden //error C2065: 'cout': nichtdeklarierter Bezeichner C++ - Funktionen und mehr 48

49 Gültigkeitsbereiche (Scopes) C++ - Funktionen und mehr 49

50 Gültigkeitsbereiche (scopes) Scope = bestimmter Abschnitt in Programmcode Wurden Namen im Scope deklariert, sind diese bis Ende des Scopes gültig ( in scope ). Namen aus einem Gültigkeitsbereich sind auch in seinen eingeschlossenen Scopes sichtbar. Globaler Gültigkeitsbereich steht über allen anderen C++ - Funktionen und mehr 50

51 Gültigkeitsbereiche - Beispiel #include <iostream> using namespace std; void g() { int x = 4; int y = x * x; cout << y << " "; void h() { int y = 0; cout << y << " "; //g(): y ist nur in g() gültig (genauso für h()) int main() { g(); h(); //Ausgabe: 16 0 C++ - Funktionen und mehr 51

52 Arten von Scopes 1. Globaler Gültigkeitsbereich liegt außerhalb jedes anderen Scopes 2. Namensbereich 3. Klassenbereich 4. Lokaler Gültigkeitsbereich 5. Anweisungsbereich C++ - Funktionen und mehr 52

53 Namensbereich explizit benannter Scope liegt innerhalb des globalen Scopes oder anderem Namensbereich namespace Namespace1 { namespace Namespace2 { void f() { cout << "Hallo!"; void main() { f(); // error C3861: "f": Bezeichner wurde nicht gefunden. C++ - Funktionen und mehr 53

54 Namensbereich Richtiger Aufruf eines im Namensbereich definierten Elementes namespace Namespace1 { namespace Namespace2 { void f() { cout << "Hallo!"; void main() { Namespace1::Namespace2::f(); //Ausgabe: Hallo! C++ - Funktionen und mehr 54

55 Klassenbereich Gültigkeit nur innerhalb einer Klasse class MyClass1 { public: void f() { cout << "Hallo!"; ; class MyClass2 { public: void f() { cout << "Hallo!"; ; //beide Methosen können den gleichen Namen haben, da //sie in unterschiedlichen Klassen definiert sind C++ - Funktionen und mehr 55

56 Lokaler Gültigkeitsbereich Gültig in Bereich zwischen {-Klammern eines Blocks oder einer Funktion void main() { bool a = true; if (a) { int x = 4; cout << x; else { int x = 5; cout << x; x = x + 1; cout << x; // error C2065: 'x': nichtdeklarierter Bezeichner C++ - Funktionen und mehr 56

57 Lokaler Gültigkeitsbereich Beheben des Problems void main() { int x; bool a = true; if (a) { x = 4; cout << x << '\t ; else { x = 5; cout << x << '\t ; x = x+1; cout << x << '\t ; //Ausgabe: 4 5 C++ - Funktionen und mehr 57

58 Anweisungsbereich Deklaration im Kopf der for-schleife Gültig nur innerhalb der for-schleife for (int i = 1; i < 10; i++) { cout << "i: " << i << " \t"; i = 4; // error C2065: 'i': nichtdeklarierter Bezeichner C++ - Funktionen und mehr 58

59 Aufgabe von Scopes Namen lokal halten, damit Kollisionen vermieden werden. void f() { int x = 4; cout << x << "\t"; void g() { int x = 4; ++x; cout << x << "\t"; f(); //lokale Deklaration //Ausgabe: int x = 4; void f() { cout << x << "\t"; void g() { ++x; cout << x << "\t"; f(); //globale Deklaration //Ausgabe: Problem bei globaler Deklaration: x wird verändert schwierig zu warten schnell unvorhergesehene Ergebnisse C++ - Funktionen und mehr 59

60 Regeln Namen so lokal wie möglich halten! Keine Kollision mit gleichnamigen Elementen anderer Programmierer Je länger der Gültigkeitsbereich, desto aussagekräftiger der Name! Beispiel: i nicht als globalen Namen verwenden (Bedeutung unklar), allerdings als Zählvariable für Schleifen ist i sinnvoll. So wenig globale Variablen wie möglich benutzen Programme werden deutlich übersichtlicher Achtung! Namen von Blöcken / Anweisungen können Gültigkeit verlieren ( go out of scope ) C++ - Funktionen und mehr 60

61 Verschachtelung C++ -Konstrukte, die Scopes definieren, sind selbst in Scopes eingeschlossen 1. Funktionen innerhalb von Klassen (Memberfunktionen) 2. Klassen in Klassen (Memberklassen, eingebettete Klassen ) 3. Klassen innerhalb von Funktionen (lokale Klasse) 4. Funktionen innerhalb von Funktionen (lokale Funktionen, eingebettete Funktionen ) 5. Blöcke innerhalb von Funktionen oder anderen Blöcken (verschachtelte Blöcke) nicht zu vermeiden C++ - Funktionen und mehr 61

62 Memberfunktionen häufigster Fall class myclass{ public: void f() { //do something void g() { //do something else ; //beide Funktionen in Klasse //definiert class myclass{ public: void f(); void g() { //do something else ; void myclass::f() { //do something //eine Funktion in Klasse //definiert, eine in Klasse //deklariert und außerhalb //definiert C++ - Funktionen und mehr 62

63 Memberklassen nur für Implementierung komplizierter Klassen hilfreich class MyClass { class MyMemberClass { class AnotherMemberClass { //... //... //... C++ - Funktionen und mehr 63

64 Lokale Klasse Vermeiden! Unübersichtlich, Funktionen werden zu lang void f() { //... class MyClass { //... ; //... class MyClass2 { //... ; //... C++ - Funktionen und mehr 64

65 Eingebettete Funktionen nicht erlaubt in C++, Zurückweisung durch Compiler void f() { //... void g() { //... //... // error C2601: 'g': Lokale Funktionsdefinitionen sind // unzulässig C++ - Funktionen und mehr 65

66 Namensbereiche C++ - Funktionen und mehr 66

67 Namensbereiche C++ bietet ein Sprachelement zur Definition von Scopes an: namespace Eine namespace ist eine Gruppierung von Deklarationen. Zusammenfassen von Klassen, Funktionen, Daten und Typen zu einem benannten Teil eines Programms C++ - Funktionen und mehr 67

68 Namensbereiche - Beispiel namespace Grapics { struct Color {/*...*/; struct Shape {/*..*/; struct Line:Shape {/*...*/; struct Funtion:Shape {/*...*/; struct Text:Shape {/*...*/; //... int gui_mai() {/*...*/; //die Elemente sind alle im Namensbereich Graphics definiert C++ - Funktionen und mehr 68

69 Namensbereiche Problem: Verwendung von globalen Namensbereich Kollision bei Gleichbenennung zweier Klassen Verwendung von namespace (Bibliothek) keine Kollision bei gleichen Namen in unterschiedlichen Bibliotheken Vollqualifizierter Name: [name_of_namespace]::[name_of_member] C++ - Funktionen und mehr 69

70 Beispiel von Seite 54//55 namespace Namespace1 { namespace Namespace2 { void f() { cout << "Hallo!"; void main() { f(); // error C3861: "f": // Bezeichner wurde nicht // gefunden. namespace Namespace1 { namespace Namespace2 { void f() { cout << "Hallo!"; void main() { Namespace1::Namespace2::f(); //Ausgabe: Hallo! C++ - Funktionen und mehr 70

71 Using-Deklaration C++ - Funktionen und mehr 71

72 Using-Deklaration Schreiben von vollqualifizierten Namen dauert bei häufiger Verwendung lange. Festlegung: using [name_of_namespace]::[name_of_member] bedeutet immer name_of_member Beispiel: std::string name; using std::string; //string bedeutet nun immer std::string string name2; C++ - Funktionen und mehr 72

73 Using-Direktive using-deklaration nicht ausreichend bei vielen Elementen im namespace Verwendung von using-direktive Deklaration aus namespace wird immer benutzt, wenn keine Deklaration im aktuellen Scope existiert Befehl: using namespace [name_of_namespace]; Beispiel: using namespace std; C++ - Funktionen und mehr 73

74 Using-Direktive Verwendung möglichst nur bei Namensbereichen wie std (weitverbreitet) sonst Gefahr von Unübersichtlichkeit Using-Deklaration übersichtlicher, da expliziter Schlechte Angewohnheit: using-direktive in Headerdatei (kein Umgehen möglich) Empfehlung: using namespace std; in std_lib_facilities platzieren (Schreibarbeit) C++ - Funktionen und mehr 74

75 Main-Funktion C++ - Funktionen und mehr 75

76 Main-Funktion Main = normale Funktion mit dem Privileg, dass sie als Erstes ausgeführt wird Parameterüber- und Rückgabe möglich Aufruf von main ist gleichzusetzen mit Start von Programm Funktionsparameter müssen von außen übergeben werden Programmstart in Shell: hinter dem Programmnamen angegebene Parameter werden als Funktionsparameter übernommen Programmstart von grafischer Oberfläche: mit der Wahl von verschiedenen Einstellungen können Funktionsparameter erzeugt werden C++ - Funktionen und mehr 76

77 Parameter der Main-Funktion Unterschiedliche Anzahl von zu übergebenden Parametern an die Main-Funktion ist möglich Funktionskopf: void main(int argc, char **argv) argc Integer, Anzahl der übergebenen Parameter 1. Parameter ist Programmname selbst, auch wenn sonst keine weiteren Parameter existieren argc >= 1 argv Zeiger auf einen char-zeiger char **argv gleichbedeutend mit char *argv[] (Zeiger auf ein Feld von char- Zeigern ist gleichbedeutend einem Zeiger auf ein Element) C++ - Funktionen und mehr 77

78 Rückgabewerte der Main-Funktion Main ist auch in der Lage, Parameter zurück zu geben int main(int argc, char **argv) Normalerweise ist Rückgabewert unwichtig, Ausnahme: Benutzen einer Batch-Datei Batch-Datei = Textdatei, in der hintereinander alle Befehle stehen, die abgearbeitet werden sollen In Batch-Datei kann auf Rückgabe des Programms reagiert werden Rückgabe von 0: erfolgreiches Beenden Rückgabe von Wert!= 0: Fehler, Abbruch der Batch-Datei in den meisten Fällen Mit return muss der Wert zurückgegeben werden C++ - Funktionen und mehr 78

79 Quellen Einführung in die Programmierung mit C++ - Bjarne Stroustrup C++ Programmierung André Willms Internetquellen (Zuletzt geprüft am Uhr): Programmierung/_Weitere_Grundelemente/_Prozeduren_und_Funktionen C++ - Funktionen und mehr 79

Unterprogramme. Funktionen. Bedeutung von Funktionen in C++ Definition einer Funktion. Definition einer Prozedur

Unterprogramme. Funktionen. Bedeutung von Funktionen in C++ Definition einer Funktion. Definition einer Prozedur Unterprogramme Unterprogramme sind abgekapselte Programmfragmente, welche es erlauben, bestimmte Aufgaben in wiederverwendbarer Art umzusetzen. Man unterscheidet zwischen Unterprogrammen mit Rückgabewert

Mehr

Funktionen Häufig müssen bestimmte Operationen in einem Programm mehrmals ausgeführt werden. Schlechte Lösung: Gute Lösung:

Funktionen Häufig müssen bestimmte Operationen in einem Programm mehrmals ausgeführt werden. Schlechte Lösung: Gute Lösung: Funktionen Häufig müssen bestimmte Operationen in einem Programm mehrmals ausgeführt werden. Schlechte Lösung: Der Sourcecode wird an den entsprechenden Stellen im Programm wiederholt Programm wird lang

Mehr

Programmiersprache 1 (C++) Prof. Dr. Stefan Enderle NTA Isny

Programmiersprache 1 (C++) Prof. Dr. Stefan Enderle NTA Isny Programmiersprache 1 (C++) Prof. Dr. Stefan Enderle NTA Isny 7. Funktionen Einleitung Nach dem Prinzip Divide and Conquer bietet es sich an, größere Aufgaben in kleinere Teile zu unterteilen. Anweisungsblöcke,

Mehr

DAP2-Programmierpraktikum Einführung in C++ (Teil 1)

DAP2-Programmierpraktikum Einführung in C++ (Teil 1) DAP2-Programmierpraktikum Einführung in C++ (Teil 1) Carsten Gutwenger 11. April 2008 Lehrstuhl 11 Algorithm Engineering Fakultät für Informatik, TU Dortmund Überblick Mein erstes C++-Programm Namensräume

Mehr

Methoden. von Objekten definiert werden, Methoden,, Zugriffsmethoden und Read-Only

Methoden. von Objekten definiert werden, Methoden,, Zugriffsmethoden und Read-Only Methoden Wie Konstruktoren und Destruktoren zum Auf- und Abbau von Objekten definiert werden, Wie inline-methoden Methoden,, Zugriffsmethoden und Read-Only Only- Methoden einzusetzen sind, Der this-pointer

Mehr

Eine Einführung in C-Funktionen

Eine Einführung in C-Funktionen Eine Einführung in C-Funktionen CGK-Proseminar 2014 Philip Gawehn 04.07.2014, Hamburg Inhaltsverzeichnis 1 Einleitung 2 2 Grundlagen 2 2.1 Der Aufbau einer Funktion....................... 2 2.2 Schlüsselwörter.............................

Mehr

Objektorientiertes Programmieren für Ingenieure

Objektorientiertes Programmieren für Ingenieure Uwe Probst Objektorientiertes Programmieren für Ingenieure Anwendungen und Beispiele in C++ 18 2 Von C zu C++ 2.2.2 Referenzen und Funktionen Referenzen als Funktionsparameter Liefert eine Funktion einen

Mehr

Pass by Value Pass by Reference Defaults, Overloading, variable Parameteranzahl

Pass by Value Pass by Reference Defaults, Overloading, variable Parameteranzahl Funktionen Zusammenfassung von Befehlssequenzen als aufrufbare/wiederverwendbare Funktionen in einem Programmblock mit festgelegter Schnittstelle (Signatur) Derartige prozedurale Programmierung erlaubt

Mehr

Grundlagen. Kapitel 1

Grundlagen. Kapitel 1 Grundlagen Dieses Kapitel umfasst grundlegende Fragen und Aufgaben zur Erstellung von C++-Programmen. Hierzu zählen auch das Inkludieren von Header-Dateien Eine Header-Datei beinhaltet Informationen, die

Mehr

Es gibt zwei verschiedene Arten, wie Programme auf dem Rechner ausgeführt werden:

Es gibt zwei verschiedene Arten, wie Programme auf dem Rechner ausgeführt werden: 3 Grundlagen 3.1 Starten eines C++ Programms Es gibt zwei verschiedene Arten, wie Programme auf dem Rechner ausgeführt werden: 1. Programme, die vom Interpreter der Programmiersprache Zeile für Zeile interpretiert

Mehr

Einführung in die Programmierung

Einführung in die Programmierung : Inhalt 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 - mit / ohne Parameter - mit / ohne Rückgabewerte

Mehr

Funktionen und Parameter

Funktionen und Parameter Funktionen in C++ Funktionen und Parameter Wie in Java: Parameter sind lokale Variablen Argumente werden bei Aufruf zugewiesen Extras: Zeiger-Parameter für alle Typen: als Rückgabewerte um große Kopien

Mehr

Programmieren in C/C++ und MATLAB

Programmieren in C/C++ und MATLAB Programmieren in C/C++ und MATLAB Sven Willert Christian-Albrechts-Universität zu Kiel CAU 2-1 Datentypen und Formate Mit der Festlegung des Datentyps wird die Art bestimmt, mit der der Computer die Informationen

Mehr

Vorkurs C++ Programmierung

Vorkurs C++ Programmierung Vorkurs C++ Programmierung Klassen Letzte Stunde Speicherverwaltung automatische Speicherverwaltung auf dem Stack dynamische Speicherverwaltung auf dem Heap new/new[] und delete/delete[] Speicherklassen:

Mehr

Deklarationen in C. Prof. Dr. Margarita Esponda

Deklarationen in C. Prof. Dr. Margarita Esponda Deklarationen in C 1 Deklarationen Deklarationen spielen eine zentrale Rolle in der C-Programmiersprache. Deklarationen Variablen Funktionen Die Deklarationen von Variablen und Funktionen haben viele Gemeinsamkeiten.

Mehr

C++ Kurs Teil 1. Architektur, Anwendungsspektrum, primitive Datentypen, Funktionsaufrufe, Referenzen, Klassen

C++ Kurs Teil 1. Architektur, Anwendungsspektrum, primitive Datentypen, Funktionsaufrufe, Referenzen, Klassen C++ Kurs Teil 1 "hello world" Vergleich von C++ und Java Architektur, Anwendungsspektrum, primitive Datentypen, Funktionsaufrufe, Referenzen, Klassen C++ Spezialitäten Schlüsselwort 'const', Copy Constructor,

Mehr

Hochschule Darmstadt Informatik-Praktikum (INF 1) WS 2014/2015 Wirtschaftsingenieur Bachelor 4. Aufgabe Datenstruktur, Dateieingabe und -ausgabe

Hochschule Darmstadt Informatik-Praktikum (INF 1) WS 2014/2015 Wirtschaftsingenieur Bachelor 4. Aufgabe Datenstruktur, Dateieingabe und -ausgabe Aufgabenstellung Für ein Baumkataster sollen für maximal 500 Bäume Informationen gespeichert werden, die alle nach der gleichen Weise wie folgt strukturiert sind: Nummer Bauminfo Baumart Hoehe Baum Umfang

Mehr

Einführung in die C-Programmierung

Einführung in die C-Programmierung Einführung in die C-Programmierung Warum C? Sehr stark verbreitet (Praxisnähe) Höhere Programmiersprache Objektorientierte Erweiterung: C++ Aber auch hardwarenahe Programmierung möglich (z.b. Mikrokontroller).

Mehr

Modul Entscheidungsunterstützung in der Logistik. Einführung in die Programmierung mit C++ Übung 4

Modul Entscheidungsunterstützung in der Logistik. Einführung in die Programmierung mit C++ Übung 4 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 4 SS 2016

Mehr

Grundlagen C und C++ Einheit 03: Grundlagen in C++ Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme

Grundlagen C und C++ Einheit 03: Grundlagen in C++ Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Grundlagen C und C++ Einheit 03: Grundlagen in C++ Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Teil 1: Wiederholung C Heutige Agenda Nutzereingaben verarbeiten Teil 2: Grundlagen in C++ Erstes

Mehr

2. Semester, 2. Prüfung, Lösung

2. Semester, 2. Prüfung, Lösung 2. Semester, 2. Prüfung, Lösung Name Die gesamte Prüfung bezieht sich auf die Programmierung in C++! Prüfungsdauer: 90 Minuten Mit Kugelschreiber oder Tinte schreiben Lösungen können direkt auf die Aufgabenblätter

Mehr

Repetitorium Informatik (Java)

Repetitorium Informatik (Java) Repetitorium Informatik (Java) Tag 6 Lehrstuhl für Informatik 2 (Programmiersysteme) Übersicht 1 Klassen und Objekte Objektorientierung Begrifflichkeiten Deklaration von Klassen Instanzmethoden/-variablen

Mehr

Die Programmiersprache C99: Zusammenfassung

Die Programmiersprache C99: Zusammenfassung Die Programmiersprache C99: Zusammenfassung Jörn Loviscach Versionsstand: 7. Dezember 2010, 19:30 Die nummerierten Felder sind absichtlich leer, zum Ausfüllen in der Vorlesung. Videos dazu: http://www.youtube.com/joernloviscach

Mehr

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf http://informatik.swoke.de. Seite 1 von 18

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf http://informatik.swoke.de. Seite 1 von 18 Kapitel 3 Datentypen und Variablen Seite 1 von 18 Datentypen - Einführung - Für jede Variable muss ein Datentyp festgelegt werden. - Hierdurch werden die Wertemenge und die verwendbaren Operatoren festgelegt.

Mehr

Übung 9. Quellcode Strukturieren Rekursive Datenstrukturen Uebung 9

Übung 9. Quellcode Strukturieren Rekursive Datenstrukturen Uebung 9 Informatik I 2 Übung 9 Quellcode Strukturieren Rekursive Datenstrukturen Uebung 9 Quellcode Strukturieren Wenn alle Funktionen in einer Datei zusammengefasst sind wird es schnell unübersichtlich Mehrere

Mehr

PROGRAMMIEREN MIT C. }, wird kompiliert mit dem Befehl. (-o steht für output) und ausgeführt mit dem Befehl

PROGRAMMIEREN MIT C. }, wird kompiliert mit dem Befehl. (-o steht für output) und ausgeführt mit dem Befehl PROGRAMMIEREN MIT C Allgemeine hinweise Alles was hier beschrieben wird, soll auch ausprobiert werden. Warum C? Weil die coolen Dinge mit C am einfachsten gehen. Das werden wir in den folgenden Übungen

Mehr

Hochschule Darmstadt Informatik-Praktikum (INF 1) WS 2015/2016 Wirtschaftsingenieur Bachelor 5. Aufgabe Datenstruktur, Dateieingabe und -ausgabe

Hochschule Darmstadt Informatik-Praktikum (INF 1) WS 2015/2016 Wirtschaftsingenieur Bachelor 5. Aufgabe Datenstruktur, Dateieingabe und -ausgabe Aufgabenstellung Für eine Hausverwaltung sollen für maximal 500 Wohnungen Informationen gespeichert werden, die alle nach der gleichen Weise wie folgt strukturiert sind: Art Baujahr Wohnung Whnginfo Nebenkosten

Mehr

Kurze Einführung in die Programmiersprache C++ und in Root

Kurze 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

Mehr

Java Einführung Methoden. Kapitel 6

Java Einführung Methoden. Kapitel 6 Java Einführung Methoden Kapitel 6 Inhalt Deklaration und Aufruf von Methoden Lokale und globale Namen (Bezeichner) Sichtbarkeit und Lebensdauer von Variablen in Methoden Überladen von Methoden 2 Methoden

Mehr

Informatik I (D-MAVT)

Informatik I (D-MAVT) Informatik I (D-MAVT) Übungsstunde 1 simon.mayer@inf.ethz.ch Distributed Systems Group, ETH Zürich kurze Stunden mit Stoffueberblick -> mehr Zeit fuer Fragen This semester s menu... Imperative Programmierung

Mehr

II. Grundlagen der Programmierung. 9. Datenstrukturen. Daten zusammenfassen. In Java (Forts.): In Java:

II. Grundlagen der Programmierung. 9. Datenstrukturen. Daten zusammenfassen. In Java (Forts.): In Java: Technische Informatik für Ingenieure (TIfI) WS 2005/2006, Vorlesung 9 II. Grundlagen der Programmierung Ekkart Kindler Funktionen und Prozeduren Datenstrukturen 9. Datenstrukturen Daten zusammenfassen

Mehr

Einfache Rechenstrukturen und Kontrollfluss II

Einfache Rechenstrukturen und Kontrollfluss II Einfache Rechenstrukturen und Kontrollfluss II Martin Wirsing in Zusammenarbeit mit Moritz Hammer und Axel Rauschmayer http://www.pst.informatik.uni-muenchen.de/lehre/ss06/infoii/ SS 06 Ziele Lernen imperative

Mehr

Übersicht. Einführung in die Programmierung. main. main. main. main. Speicherverwaltung. Definition nach ANSI C:

Übersicht. Einführung in die Programmierung. main. main. main. main. Speicherverwaltung. Definition nach ANSI C: Übersicht Einführung in die Programmierung Bachelor of Science die -Funktion Prof. Dr. Rethmann Fachbereich Elektrotechnik und Informatik Hochschule Niederrhein WS 009/0 Einführung in die Programmierung

Mehr

Einführung in die C++ Programmierung für Ingenieure

Einführung in die C++ Programmierung für Ingenieure Einführung in die C++ Programmierung für Ingenieure MATTHIAS WALTER / JENS KLUNKER Universität Rostock, Lehrstuhl für Modellierung und Simulation 14. November 2012 c 2012 UNIVERSITÄT ROSTOCK FACULTY OF

Mehr

Praktikum Betriebssysteme 1. Aufgabe (1)

Praktikum Betriebssysteme 1. Aufgabe (1) FG TECHNISCHE INFORMATIK U BS 041 01 TH 09 Praktikum Betriebssysteme 1. Aufgabe (1) Es wird ein unter LINUX lauffähiges C++-Programm ptab, mit dem Informationen über die Partitionierung von Festplatten

Mehr

Informatik. Studiengang Chemische Technologie. Michael Roth WS 2012/2013. michael.roth@h-da.de. Hochschule Darmstadt -Fachbereich Informatik-

Informatik. Studiengang Chemische Technologie. Michael Roth WS 2012/2013. michael.roth@h-da.de. Hochschule Darmstadt -Fachbereich Informatik- Informatik Studiengang Chemische Technologie Michael Roth michael.roth@h-da.de Hochschule Darmstadt -Fachbereich Informatik- WS 2012/2013 Inhalt Teil VII Einstieg in Java I Michael Roth (h_da) Informatik

Mehr

Objektorientierte Programmierung mit C++ Vector und List

Objektorientierte Programmierung mit C++ Vector und List Vector und List Ziel, Inhalt Wir lernen die Klassen vector und list aus der Standard-C++ Library kennen und anwenden. In einer Übung wenden wir diese Klassen an um einen Medienshop (CD s und Bücher) zu

Mehr

Java Einführung Methoden in Klassen

Java Einführung Methoden in Klassen Java Einführung Methoden in Klassen Lehrziel der Einheit Methoden Signatur (=Deklaration) einer Methode Zugriff/Sichtbarkeit Rückgabewerte Parameter Aufruf von Methoden (Nachrichten) Information Hiding

Mehr

Übungspaket 19 Programmieren eigener Funktionen

Übungspaket 19 Programmieren eigener Funktionen Übungspaket 19 Programmieren eigener Funktionen Übungsziele: Skript: 1. Implementierung und Kodierung eigener Funktionen 2. Rekapitulation des Stack-Frames 3. Parameterübergabe mittels Stack und Stack-Frame

Mehr

Programmieren in C. Macros, Funktionen und modulare Programmstruktur. Prof. Dr. Nikolaus Wulff

Programmieren in C. Macros, Funktionen und modulare Programmstruktur. Prof. Dr. Nikolaus Wulff Programmieren in C Macros, Funktionen und modulare Programmstruktur Prof. Dr. Nikolaus Wulff Der C Präprozessor Vor einem Compile Lauf werden alle Präprozessor Kommandos/Makros ausgewertet. Diese sind

Mehr

Objektorientierung: Klassen und Objekte

Objektorientierung: Klassen und Objekte Objektorientierung: Klassen und Objekte Klasse: Beschreibung für eine Menge von Objekten Schablone, Bauplan abstrakte Form Objekt: Instanz einer Klasse konkreter Inhalt (Werte) Klassen bestehen aus Attributen

Mehr

Praktikum im Bereich Praktische Informatik Echtzeitgraphik in C++ und DirectX10. computer graphics & visualization

Praktikum im Bereich Praktische Informatik Echtzeitgraphik in C++ und DirectX10. computer graphics & visualization Praktikum im Bereich Praktische Informatik Echtzeitgraphik in C++ und DirectX10 Übersicht In den ersten Wochen: Einführung in objektorientierte Programmierung mit C++ Anschließend: Einführung in die programmierbare

Mehr

Einführung in die Programmiersprache C

Einführung in die Programmiersprache C Einführung in die Programmiersprache C Marcel Arndt arndt@ins.uni-bonn.de Institut für Numerische Simulation Universität Bonn Der Anfang Ein einfaches Programm, das Hello World! ausgibt: #include

Mehr

Codingstandard. Softwareentwicklung Praktikum Stand: 27.02.2008

Codingstandard. Softwareentwicklung Praktikum Stand: 27.02.2008 I. Einleitung II. Codingstandard Softwareentwicklung Praktikum Stand: 27.02.2008 Wie in der Vorlesung schon ausgeführt wurde, ist die Lesbarkeit und Wartbarkeit des Sourcecodes ein sehr wichtiges Kriterium

Mehr

Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung)

Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) Wintersemester 2007/08 Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fakultät für Informatik Lehrstuhl

Mehr

C vs. C++ Sebastian Meyer. Proseminar C - Grundlagen und Konzepte. Universität Hamburg

C vs. C++ Sebastian Meyer. Proseminar C - Grundlagen und Konzepte. Universität Hamburg C vs. C++ Sebastian Meyer Universität Hamburg Proseminar C - Grundlagen und Konzepte 2013 1 / 31 Gliederung 1 Einführung 2 Vergleich der Spracheigenschaften 3 Neue Sprachelemente in C++ 4 Fazit 5 Zusammenfassung

Mehr

C++ - Operatoren. Eigene Klassen mit neuen Funktionen

C++ - Operatoren. Eigene Klassen mit neuen Funktionen C++ - Operatoren Eigene Klassen mit neuen Funktionen Übersicht Klassen bisher Eigene Operatoren definieren 2 Bisher Durch Kapselung, Vererbung und Polymorphy können nun eigene Klassen definiert werden,

Mehr

Einführung in C++ mit Microsoft VS

Einführung in C++ mit Microsoft VS Einführung in C++ mit Microsoft VS Gliederung Allgemeines zu C++ und Unterschiede zu Java Header-Files Zeiger/Strukturen Namespaces Programmierstil Einführung in Microsoft VS Projekte und Solutions Debugger

Mehr

Grundlagen der Informatik - 6. Praktikum

Grundlagen der Informatik - 6. Praktikum Grundlagen der Informatik - 6. Praktikum In diesem Praktikum soll es neben der Anwendung von Funktionsdefinitionen auch um einfache Prinzipien der verteilten Quelltext-Strukturierung gehen. Diese spielt

Mehr

Javakurs 2013 Objektorientierung

Javakurs 2013 Objektorientierung Javakurs 2013 Objektorientierung Objektorientierte Programmierung I Armelle Vérité 7 März 2013 Technische Universität Berlin This work is licensed under the Creative Commons Attribution-ShareAlike 3.0

Mehr

Propädeutikum. Dipl.-Inf. Frank Güttler

Propädeutikum. Dipl.-Inf. Frank Güttler Propädeutikum 2015 Vorbereitungskurs Informatikstudium Erfolgreich Studieren Programmieren (C-Kurs) guettler@informatik.uni-leipzig.de Universität Leipzig Institut für Informatik Technische Informatik

Mehr

Programmieren in C. Operatoren, Variablen und deren Sichtbarkeit. Prof. Dr. Nikolaus Wulff

Programmieren in C. Operatoren, Variablen und deren Sichtbarkeit. Prof. Dr. Nikolaus Wulff Programmieren in C Operatoren, Variablen und deren Sichtbarkeit Prof. Dr. Nikolaus Wulff Auswertung von Ausdrücken Was passiert wenn ein Ausdruck wie z. B. int y,x=2; y = ++x * x++; im Computer abgearbeitet

Mehr

5.4 Klassen und Objekte

5.4 Klassen und Objekte 5.4 Klassen und Objekte Zusammenfassung: Projekt Figuren und Zeichner Figuren stellt Basisklassen für geometrische Figuren zur Verfügung Zeichner bietet eine übergeordnete Klasse Zeichner, welche die Dienstleistungen

Mehr

Objektbasierte Entwicklung

Objektbasierte Entwicklung Embedded Software Objektbasierte Entwicklung Objektorientierung in C? Prof. Dr. Nikolaus Wulff Objektbasiert entwickeln Ohne C++ wird meist C im alten Stil programmiert. => Ein endlose while-schleife mit

Mehr

Programmierkurs Java

Programmierkurs Java Programmierkurs Java Konstruktor, Statische Methoden Packages Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer Initialisierung von Datenstrukturen

Mehr

C++ - Einführung in die Programmiersprache Polymorphismus und Vererbung. Eltern

C++ - Einführung in die Programmiersprache Polymorphismus und Vererbung. Eltern C++ - Einführung in die Programmiersprache Polymorphismus und Vererbung Eltern Kind Kind Vererbung Definition von Klassen auf Basis von bestehenden Klassen. Implementierung von ist ein. bildet ein hierarchisches

Mehr

C++-Zusammenfassung. H. Schaudt. August 18, 2005

C++-Zusammenfassung. H. Schaudt. August 18, 2005 C++-Zusammenfassung H. Schaudt August 18, 2005 1 Datentypen 1.1 Grunddatentypen int (-32xxx bis +32xxx, implementerungs-abhängig) char -128 bis +128 float double bool (C++) int und char sind austauschbar:

Mehr

Vererbung & Schnittstellen in C#

Vererbung & Schnittstellen in C# Vererbung & Schnittstellen in C# Inhaltsübersicht - Vorüberlegung - Vererbung - Schnittstellenklassen - Zusammenfassung 1 Vorüberlegung Wozu benötigt man Vererbung überhaubt? 1.Um Zeit zu sparen! Verwendung

Mehr

Programmiersprachen Einführung in C. Unser erstes C-Programm. Unser erstes C-Programm. Unser erstes C-Programm. Unser erstes C-Programm

Programmiersprachen Einführung in C. Unser erstes C-Programm. Unser erstes C-Programm. Unser erstes C-Programm. Unser erstes C-Programm Programmiersprachen Einführung in C Teil 2: Prof. Dr. int main (int argc, char *argv[]) int sum = 0; for (i = 0; i

Mehr

C++ - Eine Ubersicht fur Java-Programmierer

C++ - Eine Ubersicht fur Java-Programmierer C++ - Eine Ubersicht fur Java-Programmierer Daniel Wasserrab Lehrstuhl fur Programmierparadigmen Universitat Karlsruhe 23. April 2008 C++ I Entwickelt Anfang der 80er von Bjarne Stroustrup I Beeinut von

Mehr

Programmentwicklung mit C++ (unter Unix/Linux)

Programmentwicklung mit C++ (unter Unix/Linux) Programmentwicklung mit C++ (unter Unix/Linux) Erste Schritte Der gcc - Compiler & Linker Organisation des Source-Codes & Libraries Automatische Programmgenerierung: Make Birgit Möller & Denis Williams

Mehr

Informationsverarbeitung im Bauwesen

Informationsverarbeitung im Bauwesen 4 Informationsverarbeitung im Bauwesen Markus Uhlmann basierend auf Folien von A. Brugger 1 Zusammenfassung der 3. Vorlesung Einführung in Excel/VBA Einführung in die Tabellenkalkulation Erste Schritte

Mehr

Meeting C++ C++11 R-Value Referenzen

Meeting C++ C++11 R-Value Referenzen Meeting C++ Detlef Wilkening http://www.wilkening-online.de 09.11.2012 Inhalt Motivation L-Values und R-Values R-Value Referenzen Move Semantik std::move Funktionen mit R-Value-Referenz Parametern Fazit

Mehr

Grundlagen von Python

Grundlagen von Python Einführung in Python Grundlagen von Python Felix Döring, Felix Wittwer November 17, 2015 Scriptcharakter Programmierparadigmen Imperatives Programmieren Das Scoping Problem Objektorientiertes Programmieren

Mehr

Interaktive Simulationen Lektion 1/3: Event-Driven Design und Signals

Interaktive Simulationen Lektion 1/3: Event-Driven Design und Signals MÜNSTER Interaktive Simulationen Lektion 1/3: Event-Driven Design und Signals Prof. Dr. Christian Engwer & Andreas Buhr 16. April 2014 MÜNSTER Interaktive Simulationen 2 /22 Normales C++ Programm Programmstruktur

Mehr

Einführung in VisualBasic for Applications. Stefan Mahlitz

Einführung in VisualBasic for Applications. Stefan Mahlitz Einführung in VisualBasic for Applications Stefan Mahlitz Stefan Mahlitz Einführung in VBA 27.08.00 Inhaltsverzeichnis 1. Grundlagen der VisualBasic for Applications (VBA) Programmierung...2 1.1 Variablen,

Mehr

Prof. W. Henrich Seite 1

Prof. W. Henrich Seite 1 Klasse - ist ein benutzerdefinierter Datentyp (Referenztyp) - hat Datenelemente - hat Methoden - Konstruktor ist spezielle Methode zum Erstellen eines Objektes vom Typ der Klasse (Instanz) - jede Klasse

Mehr

Objektorientierte Programmierung. Objektorientierte Programmierung. Klasse. Objekt. Beispiel: Sportfest1. Methode. Eine Einführung mit BlueJ

Objektorientierte Programmierung. Objektorientierte Programmierung. Klasse. Objekt. Beispiel: Sportfest1. Methode. Eine Einführung mit BlueJ Objektorientierte Programmierung Objektorientierte Programmierung Eine Einführung mit BlueJ stellt die Daten, ihre Struktur und ihre Beziehungen zueinander in den Vordergrund. Weniger im Blickpunkt: die

Mehr

Klausur C-Programmierung / 15.02.2014 / Klingebiel / 60 Minuten / 60 Punkte

Klausur C-Programmierung / 15.02.2014 / Klingebiel / 60 Minuten / 60 Punkte Klausur C-Programmierung / 15.02.2014 / Klingebiel / 60 Minuten / 60 Punkte Musterlösung 1. Aufgabe (5 Punkte) Im folgenden Programmcode sind einige Fehler enthalten. Finden und markieren Sie mindestens

Mehr

FB Informatik. Fehler. Testplan

FB Informatik. Fehler. Testplan Fehler #include int i,n,summe; int summe (int); cout 0) cin>n; i=summme(n); cout

Mehr

3 Objektorientierte Konzepte in Java

3 Objektorientierte Konzepte in Java 3 Objektorientierte Konzepte in Java 3.1 Klassendeklarationen Fragen an die Klassendeklaration: Wie heißt die Klasse? Wer darf auf die Klasse und ihre Attribute/Methoden zugreifen? Ist die Klasse eine

Mehr

Zusammengesetzte Datentypen -- Arrays und Strukturen

Zusammengesetzte Datentypen -- Arrays und Strukturen Zusammengesetzte Datentypen -- und Strukturen Informatik für Elektrotechnik und Informationstechnik Benedict Reuschling benedict.reuschling@h-da.de Hochschule Darmstadt Fachbereich Informatik WS 2013/14

Mehr

Java Kurs für Anfänger Einheit 5 Methoden

Java Kurs für Anfänger Einheit 5 Methoden Java Kurs für Anfänger Einheit 5 Methoden Ludwig-Maximilians-Universität München (Institut für Informatik: Programmierung und Softwaretechnik von Prof.Wirsing) 22. Juni 2009 Inhaltsverzeichnis Methoden

Mehr

Ziel, Inhalt. Programmieren in C++ Wir lernen wie man Funktionen oder Klassen einmal schreibt, so dass sie für verschiedene Datentypen verwendbar sind

Ziel, Inhalt. Programmieren in C++ Wir lernen wie man Funktionen oder Klassen einmal schreibt, so dass sie für verschiedene Datentypen verwendbar sind Templates und Containerklassen Ziel, Inhalt Wir lernen wie man Funktionen oder Klassen einmal schreibt, so dass sie für verschiedene Datentypen verwendbar sind Templates und Containerklassen 1 Ziel, Inhalt

Mehr

Programmieren - Vererbung & Polymorphie

Programmieren - Vererbung & Polymorphie Programmieren - Vererbung & Polymorphie Reiner Nitsch r.nitsch@fbi.h-da.de Vererbung - Was ist das? Vererbung ist ein wichtiges Konzept zur Unterstützung der Wiederverwendbarkeit, wenn auch nicht das Wichtigste.

Mehr

Eine Klasse beschreibt Objekte mit gleichen Attributen und Methoden.

Eine Klasse beschreibt Objekte mit gleichen Attributen und Methoden. Grundwissen Informatik Objekt Attribut Methoden Als Objekte bezeichnet man alle Gegenstände, Dinge, Lebewesen, Begriffe oder Strukturen unserer Welt ( Autos, Räume, Bakterien, Lehrer, Schüler, Kunden,

Mehr

PIWIN I. Praktische Informatik für Wirtschaftsmathematiker, Ingenieure und Naturwissenschaftler I. Vorlesung 3 SWS WS 2007/2008

PIWIN I. Praktische Informatik für Wirtschaftsmathematiker, Ingenieure und Naturwissenschaftler I. Vorlesung 3 SWS WS 2007/2008 PIWIN I Kap. 7 Objektorientierte Programmierung - Einführung 1 PIWIN I Praktische Informatik für Wirtschaftsmathematiker, Ingenieure und Naturwissenschaftler I Vorlesung 3 SWS WS 2007/2008 FB Informatik

Mehr

Projektverwaltung Problem Lösung: Modulare Programmierung

Projektverwaltung Problem Lösung: Modulare Programmierung Projektverwaltung Problem Der Sourcecode ür ein Programm wird immer länger und unübersichtlicher Eine Funktion, die in einem alten Projekt verwendet wurde, soll auch in einem neuen Projekt verwendet werden

Mehr

Angewandte Mathematik und Programmierung

Angewandte Mathematik und Programmierung Angewandte Mathematik und Programmierung Einführung in das Konzept der objektorientierten Anwendungen zu mathematischen Rechnens WS2013/14 Inhalt Übung(Aufklärung) Vererbung(wdh.) Initilisierung bei Vererbung

Mehr

Algorithmen zur Datenanalyse in C++

Algorithmen zur Datenanalyse in C++ Algorithmen zur Datenanalyse in C++ Hartmut Stadie 23.04.2012 Algorithmen zur Datenanalyse in C++ Hartmut Stadie 1/ 16 Einführung Algorithmen zur Datenanalyse in C++ Hartmut Stadie 2/ 16 Übersicht Einführung

Mehr

Erwin Grüner 15.12.2005

Erwin Grüner 15.12.2005 FB Psychologie Uni Marburg 15.12.2005 Themenübersicht Mit Hilfe der Funktionen runif(), rnorm() usw. kann man (Pseudo-) erzeugen. Darüber hinaus gibt es in R noch zwei weitere interessante Zufallsfunktionen:

Mehr

http://mindview.net/books/ticpp/thinkingincpp2e.html

http://mindview.net/books/ticpp/thinkingincpp2e.html Einführung in C++ Java Client Server Meilenstein 5 Meilenstein 5, Ort Biozentrum BZ 103 Mittwoch 08.06: Gruppe 1-4 Donnerstag 09.06 Gruppe 5-8 Jeweils 20 Minuten pro Gruppe (15 min Präsentation / 5 min

Mehr

Fortgeschrittene C++-Programmierung

Fortgeschrittene C++-Programmierung Vorlesung: "Fortgeschrittene C++-Programmierung" 16.04.2009 Fortgeschrittene C++-Programmierung SS 2009 Teil 1 Sandro Andreotti - andreott@inf.fu-berlin.de 1 Vorlesung: "Fortgeschrittene C++-Programmierung"

Mehr

Grundlagen der Programmiersprache C++

Grundlagen der Programmiersprache C++ / TU Braunschweig Grundlagen der Programmiersprache C++ Um den Studierenden den Einstieg in die FE-Programmierung zu erleichtern werden die wesentlichen Elemente eines C-Programmes beschrieben, soweit

Mehr

C++ Grundlagen. ++ bedeutet Erweiterung zum Ansi C Standard. Hier wird eine Funktion eingeleitet

C++ Grundlagen. ++ bedeutet Erweiterung zum Ansi C Standard. Hier wird eine Funktion eingeleitet C++ Grundlagen ++ bedeutet Erweiterung zum Ansi C Standard Hier wird eine Funktion eingeleitet Aufbau: In dieser Datei stehen die Befehle, die gestartet werden, wenn das Programm gestartet wird Int main()

Mehr

Delegatesund Ereignisse

Delegatesund Ereignisse Delegatesund Ereignisse «Delegierter» Methoden Schablone Funktionszeiger Dr. Beatrice Amrhein Überblick Definition eines Delegat Einfache Delegate Beispiele von Delegat-Anwendungen Definition eines Ereignisses

Mehr

Objektorientierte Programmierung

Objektorientierte Programmierung Objektorientierte Programmierung 1 Geschichte Dahl, Nygaard: Simula 67 (Algol 60 + Objektorientierung) Kay et al.: Smalltalk (erste rein-objektorientierte Sprache) Object Pascal, Objective C, C++ (wiederum

Mehr

3. Auflage. O Reillys Taschenbibliothek. C# 5.0 kurz & gut. Joseph Albahari & Ben Albahari O REILLY. Aktualisierung von Lars Schulten

3. Auflage. O Reillys Taschenbibliothek. C# 5.0 kurz & gut. Joseph Albahari & Ben Albahari O REILLY. Aktualisierung von Lars Schulten O Reillys Taschenbibliothek 3. Auflage C# 5.0 kurz & gut O REILLY Joseph Albahari & Ben Albahari Aktualisierung von Lars Schulten Inhalt C# 5.0 kurz & gut... 1 Ein erstes C#-Programm... 2 Syntax... 5 Typgrundlagen...

Mehr

Inhaltsverzeichnis. Grundbegriffe der C-Programmierung Für den HI-TECH C-Compiler

Inhaltsverzeichnis. Grundbegriffe der C-Programmierung Für den HI-TECH C-Compiler Inhaltsverzeichnis Grundbegriffe der C-Programmierung 1. Grundsätzliches... 2 1.1 Darstellung von Werten... 2 1.1.1 Dezimale Zahlendarstellung... 2 1.1.2 Binäre Zahlendarstellung... 3 1.1.3 Hexadezimale

Mehr

Grundlagen der Programmierung in C Funktionen

Grundlagen der Programmierung in C Funktionen Der erste Mechanismus für Code-Reuse! Grundlagen der Programmierung in C Funktionen Wintersemester 2005/2006 G. Zachmann Clausthal University, Germany zach@in.tu-clausthal.de Ältester Mechanismus für Code-Reuse:

Mehr

Einheit Variablen in der Programmiersprache C Variablen-Modell, Variablen-Vereinbarungen

Einheit Variablen in der Programmiersprache C Variablen-Modell, Variablen-Vereinbarungen Einheit Variablen in der Programmiersprache C Variablen-Modell, Variablen-Vereinbarungen Kurs C/C++ Programmierung, WS 2008/2009 Dipl.Inform. R. Spurk Arbeitsgruppe Programmierung FR 6.2 Informatik R.

Mehr

Kapitel 1: Einführung

Kapitel 1: Einführung 10 Kapitel 1: Einführung 1.1 Was ist eine Programmiersprache? 1.2 Details zu C++ 1.3 Phasen der Programmierung 1.4 Ein erstes Programm: Hello World! 1.5 Addition zweier Zahlen 1.6 Entscheidungen 1.1 Was

Mehr

Java Einführung VARIABLEN und DATENTYPEN Kapitel 2

Java Einführung VARIABLEN und DATENTYPEN Kapitel 2 Java Einführung VARIABLEN und DATENTYPEN Kapitel 2 Inhalt dieser Einheit Variablen (Sinn und Aufgabe) Bezeichner Datentypen, Deklaration und Operationen Typenumwandlung (implizit/explizit) 2 Variablen

Mehr

Wiederholung Wozu Methoden? Methoden Schreiben Methoden Benutzen Rekursion?! Methoden. Javakurs 2012, 3. Vorlesung

Wiederholung Wozu Methoden? Methoden Schreiben Methoden Benutzen Rekursion?! Methoden. Javakurs 2012, 3. Vorlesung Wiederholung Wozu? Schreiben Benutzen Rekursion?! Javakurs 2012, 3. Vorlesung maggyrz@freitagsrunde.org 5. März 2013 Wiederholung Wozu? Schreiben Benutzen Rekursion?! 1 Wiederholung 2 Wozu? 3 Schreiben

Mehr

1. Übung zu "Numerik partieller Differentialgleichungen"

1. Übung zu Numerik partieller Differentialgleichungen 1. Übung zu "Numerik partieller Differentialgleichungen" Simon Gawlok, Eva Treiber Engineering Mathematics and Computing Lab 22. Oktober 2014 1 / 15 1 Organisatorisches 2 3 4 2 / 15 Organisatorisches Ort:

Mehr

Alltagsnotizen eines Softwareentwicklers

Alltagsnotizen eines Softwareentwicklers Alltagsnotizen eines Softwareentwicklers Entkoppeln von Objekten durch Callbacks mit c++-interfaces oder boost.function und boost.bind Tags: c++, entkoppeln, objekt, oop, callback, boost.bind, boost.function,

Mehr

Objektorientierte Programmierung mit C++ Zusammenfassung der wichtigsten Topics rund um die objektorientierte Programmierung mit C++11

Objektorientierte Programmierung mit C++ Zusammenfassung der wichtigsten Topics rund um die objektorientierte Programmierung mit C++11 Objektorientierte Programmierung mit C++ Zusammenfassung der wichtigsten Topics rund um die objektorientierte Programmierung mit C++11 Wozu objektorientiertes Programmieren? Die Welt besteht für den Menschen

Mehr

IT- Handbuch für Fachinformatiker, 7. Auflage: Text- Lösungen Sascha Kersken

IT- Handbuch für Fachinformatiker, 7. Auflage: Text- Lösungen Sascha Kersken IT- Handbuch für Fachinformatiker, 7. Auflage: Text- Lösungen Sascha Kersken Im Folgenden finden Sie jeweils die korrekte Antwort zu den im Buch abgedruckten Prüfungsfragen, soweit die Antworten in Textform

Mehr

VBA-Programmierung: Zusammenfassung

VBA-Programmierung: Zusammenfassung VBA-Programmierung: Zusammenfassung Programmiersprachen (Definition, Einordnung VBA) Softwareentwicklung-Phasen: 1. Spezifikation 2. Entwurf 3. Implementierung Datentypen (einfach, zusammengesetzt) Programmablaufsteuerung

Mehr

Programmieren I. Strategie zum Entwurf von Klassen. Beispiele. Design von Klassen. Dr. Klaus Höppner. Beispiel: Bibliothek

Programmieren I. Strategie zum Entwurf von Klassen. Beispiele. Design von Klassen. Dr. Klaus Höppner. Beispiel: Bibliothek Programmieren I Dr. Klaus Höppner Hochschule Darmstadt Wintersemester 2008/2009 1 / 22 2 / 22 Strategie zum Entwurf von Klassen Beispiele Objektorientierte Sichtweise: Mit welchen Objekten habe ich es

Mehr