Von Java nach C++ Frank Weichert, Heinrich Müller Informatik VII Universität Dortmund

Größe: px
Ab Seite anzeigen:

Download "Von Java nach C++ Frank Weichert, Heinrich Müller Informatik VII Universität Dortmund http://ls7-www.cs.uni-dortmund.de"

Transkript

1 Von Java nach C++ Frank Weichert, Heinrich Müller Informatik VII Universität Dortmund Von Java nach C++, LS VII, Universität Dortmund, SS

2 Übersicht Einleitung Literatur Vergleich zwischen C++ und Java Klassen in C++ Übersetzungsprozess von C++-Programmen Programmieren in Visual Studio Ausgewählte C++-Konzepte Von Java nach C++, LS VII, Universität Dortmund, SS

3 Einleitung C makes it easy to shoot yourself in the foot, C++ makes it harder, but when you do, it blows away your whole leg. (Bjarne Stroustrup) Von Java nach C++, LS VII, Universität Dortmund, SS

4 Literatur Die C++-Programmiersprache, Bjarne Stroustrup, Addison-Wesley Visual C++, Frank Budszuhn, Addison-Wesley Von Java nach C++, LS VII, Universität Dortmund, SS

5 C++ vs. Java Von Java nach C++, LS VII, Universität Dortmund, SS

6 C++ vs. Java typisches Programm #include <iostreams.h> int main() { return 0; } import java.awt.*; class Test{ public static void main(string[] argv){ } } Dateinamen beliebig, Konvention *.cpp, *.h <Klassenname>.java generierter Code - Maschinencode - plattformabhängig -*.exe - Java-Byte-Code - plattformunabhängig -*.class Von Java nach C++, LS VII, Universität Dortmund, SS

7 C++ vs. Java bedingte Anweisungen, Schleifen, Verbundanweisungen, identisch Funktionen globale Funktionen möglich Felder int a[4]; int a[] = {1,2,3}; keine Überprüfung auf Array-Grenzen identisch Methoden müssen in einer Klasse stehen int a[] = new int[4]; int a[] = {1,2,3}; Felder sind Objekte, Überprüfung auf Array-Grenzen Konstanten const double pi=3.14; final double pi=3.14; Von Java nach C++, LS VII, Universität Dortmund, SS

8 C++ vs. Java (Variablen-) Deklaration keine Default-Werte int a[4]; Default-Werte int a[] = new a[4]; Speicherverwaltung durch den Programmierenden automatisch durch den Garbage Collector Eingabe- und Ausgabeanweisungen cin >> x; cout << x; x=iohelp.read(); System.out.println(x); Boolescher Datentyp bool boolean Von Java nach C++, LS VII, Universität Dortmund, SS

9 C++ vs. Java Type-Casting (explizite Konvertierung) a) (Typ) Ausdruck in C++ und Java erlaubt Beispiel: int a=3; double b=(double) a / 2; // b = 1.5 b) Typ (Ausdruck) nur in C++ erlaubt Beispiel: int a=3; double b= double(a) / 2; // b = 1.5 Von Java nach C++, LS VII, Universität Dortmund, SS

10 C++ vs. Java Zusätzliche Java-Funktionalität Automatische Speicherverwaltung Code ist (direkt) systemportabel Strings und Felder Applets Multitasking durch Thread-Modell Von Java nach C++, LS VII, Universität Dortmund, SS

11 C++ vs. Java Zusätzliche C++-Funktionalität (1) Zeiger (Pointer) Kontrolle des Memory Management Templates Operator-Overloading Mehrfachvererbung Präprozessor Von Java nach C++, LS VII, Universität Dortmund, SS

12 C++ vs. Java Zusätzliche C++-Funktionalität (2) Einschränkung des Wertebereichs in C++ per unsigned möglich z.b. int: bis unsigned int: 0 bis Symbolische Konstanten Präprozessorbefehl, erkennbar am # -Zeichen #define PI=3.14 (kein ; am Zeilenende) Typdeklaration Definiert neuen Namen für einen Datentyp typedef int Index; Index a=3; Von Java nach C++, LS VII, Universität Dortmund, SS

13 Ein einfaches Programm - Quellcodes Java: class BV{ } public static void main(string[] argv){ System.out.println "C++ in der Bildverarbeitung!"; } C++: #include <iostream> using namespace std; int main(int argc){ cout << "C++ in der Bildverarbeitung!"; return 0; } Von Java nach C++, LS VII, Universität Dortmund, SS

14 Ein einfaches Programm - Übersetzen Java: Dateiname: BV.java Übersetzen: javac BV.java Ausführen: java BV (Java Byte-Code) (Java Virtual Machine) C++: Dateiname: BV.cpp Übersetzen: cl /c BV.cpp Linken: link BV.obj cl BV.cpp Ausführen: BV Von Java nach C++, LS VII, Universität Dortmund, SS

15 Klassen in C++ Von Java nach C++, LS VII, Universität Dortmund, SS

16 Klassen in C++ Klassen in C++ = Deklaration + Implementierung Headerdatei (.h) Implementationsdatei (.cpp) Studierende.h: class Studierende{ }; Studierende.cpp: #include "Studierende.h" Von Java nach C++, LS VII, Universität Dortmund, SS

17 Klassen in C++: Aufbau der Headerdatei Studierende.h: class Studierende{ Konstruktor Destruktor Methoden Attribute public: Studierende(); ~Studierende(); void setzematrikelnummer(int nummer); int gibmatrikelnummer(); private: int matrikelnummer; }; Von Java nach C++, LS VII, Universität Dortmund, SS

18 Klassen in C++: Aufbau der Headerdatei Spezifizierung einer Klasse mit class Klassen sind immer public Konstruktoren und Destruktoren Konstruktoren: Instanziierung von Objekten Destruktoren: Löschen von instanziierten Objekten (~ vorangestellt) Deklaration von Methoden und Variablen (Instanz-) Variablen dürfen bei der Deklaration nicht initialisiert werden Modifier werden nicht separat spezifiziert Klassendefinition wird mit Semikolon beendet Von Java nach C++, LS VII, Universität Dortmund, SS

19 Klassen in C++: Aufbau der Implementationsdatei Einbinden der Headerdatei mit include Durch den Klassennamen und dem Bereichsoperator :: wird die Zugehörigkeit zur Klasse gekennzeichnet Studierende.cpp: #include "Studierende.h" Studierende::Studierende(){} Studierende::~Studierende(){} void Studierende::setzeMatrikelnummer(int nummer){ matrikelnummer = nummer; } int Studierende::gibMatrikelnummer(){ return matrikelnummer; } Von Java nach C++, LS VII, Universität Dortmund, SS

20 Klassen in C++: Aufbau der Implementationsdatei Präprozessoranweisung #include "Studierende.h bindet Headerdatei ein. Nennung von Fully Qualified Names z.b.: Studierende::Studierende() :: wird als Bereichsoperator (Scope Operator) bezeichnet inline-spezifikation möglich z.b.: inline int Studierende::gibMatrikelnummer(){ return matrikelnummer; } Von Java nach C++, LS VII, Universität Dortmund, SS

21 Übersetzungsprozess von C++-Programmen Von Java nach C++, LS VII, Universität Dortmund, SS

22 Übersetzen von C++-Programmen Übersetzungsprozess besteht aus drei Komponenten 1. Präprozessor: Vorverarbeitung des Quellcodes 2. Compiler: Überführt Quellcode in Objektcode 3. Linker: Fasst alle Objektdateien zu einem ausführbaren Programm zusammen Von Java nach C++, LS VII, Universität Dortmund, SS

23 Übersetzen von C++-Programmen Von Java nach C++, LS VII, Universität Dortmund, SS

24 Übersetzen von C++-Programmen Präprozessor Präprozessorbefehle beginnen mit dem #-Zeichen Sucht im Quellcode nach speziellen Befehlen, z.b. - #include einbinden von Headerdateien a) <name> Standard Libraries aus Systemverzeichnis z.b.: #include <iostream> b) name eigene Dateien aus Projektverzeichnis z.b.: #include "Studierende.h" -> Problem: mehrfache Deklarationen - #define führt textuelle Ersetzungen (Konstanten) aus. z.b.: #define pi #ifdef, #ifndef, Konditionales Kompilieren z.b.: #ifdef DEBUG #endif Von Java nach C++, LS VII, Universität Dortmund, SS

25 Übersetzen von C++-Programmen Präprozessor -> Problem: mehrfache Deklarationen Lösung: Headerdatei um konditionalen Kopf erweitern z.b.: Studierende.h: #ifndef STUDIERENDE_H #define STUDIERENDE_H class Studierende{ }; #endif Von Java nach C++, LS VII, Universität Dortmund, SS

26 Übersetzen von C++-Programmen Compiler Generiert aus dem vom Präprozessor vorverarbeiteten Quellcode den Objektcode. Maschinennahe Objektcodedatei kann noch offene Aufrufe enthalten und nicht ausgeführt werden. Überprüfung auf syntaktische Korrektheit - Fehlermeldungen z.b.: error C2065: 'h': nichtdeklarierter Bezeichner - Warnungen z.b.: warning C4244: 'Initialisierung': Konvertierung von 'double' in 'int', möglicher Datenverlust Objektcode wird nur erzeugt, sofern keine Fehler aufgetreten sind. Von Java nach C++, LS VII, Universität Dortmund, SS

27 Übersetzen von C++-Programmen Linker Generiert (vollständig) ausführbares Programm Fasst die - Objektdateien des Projektes, - Code aus Standard Libraries und - zusätzliche Libraries zusammen Zwei mögliche Link-Modi -statisch - dynamisch Von Java nach C++, LS VII, Universität Dortmund, SS

28 Programmieren in Visual Studio Von Java nach C++, LS VII, Universität Dortmund, SS

29 C++-Programm mit Visual Studio Neues Projekt anlegen: Datei -> Neu -> Projekt Projekttyp festlegen Projektnamen und Verzeichnis auswählen Von Java nach C++, LS VII, Universität Dortmund, SS

30 C++-Programm mit Visual Studio Initiales Arbeitsfenster der Entwicklungsumgebung Von Java nach C++, LS VII, Universität Dortmund, SS

31 C++-Programm mit Visual Studio Klasse hinzufügen (Header- und Implementationsdatei) Von Java nach C++, LS VII, Universität Dortmund, SS

32 C++-Programm mit Visual Studio Typ der Klasse auswählen, die hinzugefügt werden soll Von Java nach C++, LS VII, Universität Dortmund, SS

33 C++-Programm mit Visual Studio Klassennamen festlegen Modifikator und Basisklasse (optional) bestimmen Von Java nach C++, LS VII, Universität Dortmund, SS

34 C++-Programm mit Visual Studio Von Java nach C++, LS VII, Universität Dortmund, SS

35 C++-Programm mit Visual Studio Ausführbares Programm erstellen - Kompilieren (Strg+F7) - Programm ausführen (Strg+F5) - Programm unter Debugger ausführen (F5) Von Java nach C++, LS VII, Universität Dortmund, SS

36 C++-Programm mit Visual Studio Dateitypen von Visual-Studio Extension *.cpp *.h *.exe *.dsp *.dsw *.obj *.rc *.res C++-Quelldatei C++-Headerdatei Ausführbares Programm Informationen zum Projekt. Projekt kann über dsp- Datei geöffnet werden Informationen zum Arbeitsbereich. Dieser sollte auch über diese Datei geöffnet werden. Nicht eingebundene Kompilate (Objekt-Dateien) Ressourcen-Skriptdatei Bedeutung Binäre Ressourcendatei des Linkers Von Java nach C++, LS VII, Universität Dortmund, SS

37 Ausgewählte C++-Konzepte Komplexe Datentypen Zeiger und Referenzen Vererbung STL Von Java nach C++, LS VII, Universität Dortmund, SS

38 Komplexe Datentypen Benutzerdefinierter Datentyp mit eindeutigem Namen typedef struct{ double x, y, z; } vector3d; int main() { vector3d veca = {0.4, 4, 6.2}; vector3d vecb; vecb = veca; // vecb = {0.4, 4, 6.2} double a = veca.z; // a = 6.2 Zugriff auf Elemente mit. -Operator Bei Zuweisungen werden komplette Strukturen kopiert Von Java nach C++, LS VII, Universität Dortmund, SS

39 Ausgewählte C++-Konzepte Komplexe Datentypen Zeiger und Referenzen Vererbung STL Von Java nach C++, LS VII, Universität Dortmund, SS

40 Objekte instanziieren und löschen ProgrammStudierende.cpp: #include "Studierende.h" int main(int argc, char* argv[]){ Studierende* einstudent = new Studierende(); delete einstudent; } return 0; Instanziierung eines Objektes vom Typ Studierende Studierende*: Variablendeklaration einstudent: Zeiger auf Studierende new: Ruft Konstruktor auf und legt Objekt vom angegebenen Typ im Speicher an delete ruft Destruktor der Klasse auf und gibt den zuvor belegten Speicher wieder frei (kein Garbage Collector wie in Java) Von Java nach C++, LS VII, Universität Dortmund, SS

41 Zeiger und Referenzen Anweisung: Studierende* einstudent = new Studierende(); Repräsentierung: 0x0000 0x1200 Studierende int matrikelnummer Speicher Studierende* einstudent = 0x1200 0xffff Klasseninstanz Zeiger Von Java nach C++, LS VII, Universität Dortmund, SS

42 Zeiger und Referenzen Zeiger (Pointer): Variable, dessen Wert auf die Position (Speicheradresse) eines anderen Objektes zeigt. eigener Datentyp typisiert durch Zeichen * gekennzeichnet Beispiel: a) kein Zeiger: int a; b) mit Zeiger: int* a; Von Java nach C++, LS VII, Universität Dortmund, SS

43 Zeiger und Referenzen Adresse Speicherstelle, die für ein Objekt zur Verfügung gestellt wird. Die Adresse wird bei der Objekt- Instanziierung und der damit verbundenen Bereitstellung des benötigten Speichers vergeben. Inhalt Wert (Daten), der für ein Objekt unter einer Adresse gespeichert wird. Initiale Belegung erfolgt durch den Konstruktor. Von Java nach C++, LS VII, Universität Dortmund, SS

44 Zeiger und Referenzen Pointer: Pointer (Pointervariable) ist eine Variable in der eine Adresse gespeichert wird. Die Variable hat den identischen Typ wie die Variable, deren Adresse gespeichert wird. Dereferenzierungsoperator * : Zugriff auf den Wert, der in der Pointervariablen gespeicherten Adresse steht ( Wert, auf den der Pointer verweist ) Referenzoperator & : Liefert für eine Variable die zugehörige Speicheradresse Von Java nach C++, LS VII, Universität Dortmund, SS

45 Zeiger und Referenzen Pointer-Deklaration Adresse Name int *iptr;??? iptr Pointer-Deklaration und Initialisierung Adresse Name int *iptr=0; NULL iptr Von Java nach C++, LS VII, Universität Dortmund, SS

46 Zeiger und Referenzen Deklaration eines primitiven Datentyps Adresse Name int i=423; i Pointer-Initialisierung und Adressoperator Adresse Name int *iptr=0; iptr = &i; NULL iptr Von Java nach C++, LS VII, Universität Dortmund, SS

47 Zeiger und Referenzen Vereinfachte grafische Repräsentierung Adresse Name i i 423 Adresse Name iptr iptr Von Java nach C++, LS VII, Universität Dortmund, SS

48 Zeiger und Referenzen Initialisierung von Pointern int a = 423; a 423 int b = 78; b 78 int *ptr_1 = &b; ptr_1 int *ptr_2 = ptr_1; ptr_2 int *ptr_3 = &a; ptr_3 Von Java nach C++, LS VII, Universität Dortmund, SS

49 Zeiger und Referenzen Pointer Aliasing: Zwei Pointer enthalten dieselbe Adresse a 423 *ptr_1 = *ptr_3; ptr_2 = ptr_3; b ptr_1 ptr_ ptr_3 Von Java nach C++, LS VII, Universität Dortmund, SS

50 Zeiger und Referenzen Zeigervariablen können auch auf einen weiteren Zeiger verweisen Auch iteriete Pointer-Anwendungen sind möglich Jeder * -Operator im Ausdruck entspricht einer Dereferenzierung int a = 423; a 423 int *ptr = &a; ptr int **ptrptr = 0; ptrptr = &ptr; ptrptr NULL Von Java nach C++, LS VII, Universität Dortmund, SS

51 Zeiger und Referenzen Anwendungsbeispiel #include <iostream> #include "Studierende.h" using namespace std; int main(int argc, char* argv[]){ Studierende* einstudent = new Studierende(); einstudent->setzematrikelnummer(88456); Studierende zweiterstudent; zweiterstudent.setzematrikelnummer(87393); Studierende* ptr_zweiterstudent = &zweiterstudent; cout << ptr_zweiterstudent << endl; Studierende* dritterstudent = NULL; dritterstudent->setzematrikelnummer(89263); delete einstudent; delete dritterstudent; return 0; } Von Java nach C++, LS VII, Universität Dortmund, SS

52 Zeiger und Referenzen Zeiger einstudent, der auf Objekt vom Typ Studierende zeigt Über Operator -> (Dereferenzieren) Methode aufrufen ( es wird einem Zeiger gefolgt ) Studierende* einstudent = new Studierende(); einstudent->setzematrikelnummer(88456); zweiterstudent als (statische) Instanz Methodenaufruf für statische Instanzen über Punktoperator Studierende zweiterstudent; zweiterstudent.setzematrikelnummer(87393); Von Java nach C++, LS VII, Universität Dortmund, SS

53 Zeiger und Referenzen Pointer auf statische Instanz über Referenzoperator & Studierende* ptr_zweiterstudent = &zweiterstudent; cout << ptr_zweiterstudent << endl; Zeiger für ein Objekt, der mit NULL initialisiert wird Methodenaufruf führt zu einem Laufzeitfehler (Exception) Studierende* dritterstudent = NULL; dritterstudent->setzematrikelnummer(89263); Von Java nach C++, LS VII, Universität Dortmund, SS

54 Ausgewählte C++-Konzepte Komplexe Datentypen Zeiger und Referenzen Vererbung STL Von Java nach C++, LS VII, Universität Dortmund, SS

55 Vererbung einfache Vererbung: Klasse Bachelor erbt von Klasse Studierende Vererbungsoperator : (entspricht extends in Java) Studierende Bachelor Studierende.h: class Studierende{ }; Bachelor.h: #include "studierende.h" class Bachelor : public Studierende{ public: Bachelor(); ~Bachelor(); }; Von Java nach C++, LS VII, Universität Dortmund, SS

56 Vererbung Mehrfachvererbung: Klasse Bachelor erbt von Klassen Studierende und HiWi Studierende HiWi Bachelor Bachelor.h: #include "studierende.h" #include "HiWi.h" class Bachelor : public Studierende, public HiWi{ public: Bachelor(); ~Bachelor(); }; Von Java nach C++, LS VII, Universität Dortmund, SS

57 Ausgewählte C++-Konzepte Komplexe Datentypen Zeiger und Referenzen Vererbung STL Von Java nach C++, LS VII, Universität Dortmund, SS

58 STL Standard-Template-Library (kurz STL) Vordefinierte Templates für viele Anwendungsbereiche STL gliedert sich in drei Teilbereiche auf: 1.) Container: Speicherstrukturen, z.b. Bäume, Listen, 2.) Algorithmen: Operatoren für Container-Klassen, z.b. Sortieren einer Liste 3.) Iteratoren: Traversierungsoperatoren für Container-Klassen Einbinden der Headerdateien per include ohne Endung.h Beispiel: #include<list> Notwendigkeit des korrekten Namespace, geschieht durch die Anweisung using namespace std; Infos zur STL: Silicon Graphics Inc., Von Java nach C++, LS VII, Universität Dortmund, SS

59 STL Anwendungsbeispiel: #include <list> #include "Studierende.h" using namespace std; int main(int argc, char* argv[]){ Studierende* student1 = new Studierende(); Studierende* student2 = new Studierende(); } list<studierende*> listestudierende; listestudierende.push_back(student1); listestudierende.push_back(student1); Einbinden der Headerdatei für die Container-Klasse list. Instanziierung einer Liste listestudierende, die Zeiger auf Objekte vom Typ Studierende speichern kann. Methode push_back fügt Zeiger auf Typ Studierende der Liste an. Von Java nach C++, LS VII, Universität Dortmund, SS

Von Java nach C++ Dr. Frank Weichert Lehrstuhl Informatik VII Technische Universität Dortmund http://ls7-www.cs.uni-dortmund.de

Von Java nach C++ Dr. Frank Weichert Lehrstuhl Informatik VII Technische Universität Dortmund http://ls7-www.cs.uni-dortmund.de Von Java nach C++ Dr. Frank Weichert Lehrstuhl Informatik VII Technische Universität Dortmund http://ls7-www.cs.uni-.de Von Java nach C++, Lehrstuhl Informatik VII, TU Dortmund 1 Übersicht Einleitung Literatur

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

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

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

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

4. Objektorientierte Programmierung mit C++

4. Objektorientierte Programmierung mit C++ 4. Objektorientierte Programmierung mit C++ Einführung C++ / Entwicklung/ Sprachfamilie Nicht objektorientierte Erweiterungen von C Grundlagen des Typkonzepts von C++ Ziele der Objektorientierung Objekt

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

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

(allgemeine) OOP in C++ Klassen und header-files Konstruktorn / Destruktoren Speicherverwaltung C++ Standard Library / SLT

(allgemeine) OOP in C++ Klassen und header-files Konstruktorn / Destruktoren Speicherverwaltung C++ Standard Library / SLT Architektur Übersicht (allgemeine) OOP in C++ Polymorphie Virtuelle Funktionen Kompilieren Linken dynamische/statische Bibliotheken Tutorial: vs2008+ogre+(campus modell) Architektur (allgemeine) OOP in

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

II.1.1. Erste Schritte - 1 -

II.1.1. Erste Schritte - 1 - ! 1. Grundelemente der Programmierung! 2. Objekte, Klassen und Methoden! 3. Rekursion und dynamische Datenstrukturen! 4. Erweiterung von Klassen und fortgeschrittene Konzepte II.1.1. Erste Schritte - 1

Mehr

C++ Programmierung. Uwe Naumann. LuFG Informatik 12, RWTH Aachen University, Germany

C++ Programmierung. Uwe Naumann. LuFG Informatik 12, RWTH Aachen University, Germany C++ Programmierung Uwe Naumann LuFG Informatik 12, RWTH Aachen University, Germany Leave me alone world... Hauptprogramm int main(); return 0; Ausgabe auf Bildschrim #include std :: cout

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

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

Programmieren II Klassen. Programmieren II Klassen. Programmieren II Klassen. Programmieren II Klassen. Zur Erinnerung.

Programmieren II Klassen. Programmieren II Klassen. Programmieren II Klassen. Programmieren II Klassen. Zur Erinnerung. Vorbemerkungen Zur Erinnerung aktueller Standpunkt: Entwickler von (bibliotheken) jetzt sind wichtig interne Repräsentation der Daten Realisierung der gewünschten Funktionalität Bereitstellung geeigneter

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

Programmieren in C++ Einführung

Programmieren in C++ Einführung Programmieren in C++ Einführung Inhalt Übersicht über das Modul Einführung in C++ Struktur eines C++-Programms Präprozessor Globale und Modulvariablen Einfache Datentypen Automatische Typinferenz Konstanten

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

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

Javakurs für Anfänger

Javakurs für Anfänger Javakurs für Anfänger Einheit 02: Klassen & Objekte Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda 1. Teil: Klassen Grundstruktur einer Java-Klasse Eigenschaften (Attribute) Variablen

Mehr

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

Ulla Kirch Peter Prinz C+ + Lernen und professionell anwenden. mitp Ulla Kirch Peter Prinz C+ + Lernen und professionell anwenden mitp Inhaltsverzeichnis Einleitung 19 Grundlagen 21 Entwicklung und Eigenschaften von C++ 22 Objektorientierte Programmierung 24 Erstellen

Mehr

Datenbankanwendungsprogrammierung Crashkurs Java

Datenbankanwendungsprogrammierung Crashkurs Java Datenbankanwendungsprogrammierung Crashkurs Java Denny Priebe Datenbankanwendungsprogrammierung p. Unterschiede zu C, C++ typedefs, Präprozessor Strukturen, Unions globale Funktionen Mehrfachvererbung

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

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

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

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

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

Ü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

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

Zum Abschluss wird gezeigt, wie aus einem C++ Quell-Programm ein ausführbares Programm erzeugt wird. 1. Installation von NetBeans...

Zum Abschluss wird gezeigt, wie aus einem C++ Quell-Programm ein ausführbares Programm erzeugt wird. 1. Installation von NetBeans... Erste Schritte Dieser Teil der Veranstaltung gibt einen ersten Eindruck der Programmierung mit C++. Es wird ein erstes Gefühl von Programmiersprachen vermittelt, ohne auf die gezeigten Bestandteile genau

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

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

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

C++-Entwicklung mit Linux

C++-Entwicklung mit Linux C++-Entwicklung mit Linux Eine Einführung in die Sprache und die wichtigsten Werkzeuge von GCC und XEmacs bis Eclipse Thomas Wieland [Druckvorlage vom 10. August 2004] xiii Inhaltsverzeichnis 1 Programmieren

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

Objekt-Orientierte Programmierung

Objekt-Orientierte Programmierung Objekt-Orientierte Programmierung Ein OO-Programm modelliert eine Anwendung als eine Welt von Objekten, die miteinander in Beziehung stehen ( später). Ein Objekt kann andere Objekte erzeugen. Ein Objekt

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

Programmierung mit C Zeiger

Programmierung 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

Mehr

Einführung in C++ Martin Holzer. April/Mai 2005. Lehrstuhl für Algorithmik I. Universität Karlsruhe (TH) Institut für Theoretische Informatik

Einführung in C++ Martin Holzer. April/Mai 2005. Lehrstuhl für Algorithmik I. Universität Karlsruhe (TH) Institut für Theoretische Informatik Einführung in C++ Martin Holzer April/Mai 2005 Einleitung Überblick Zielstellung Vermittlung grundlegender Kenntnisse in C++ Gegenüberstellung von Java und C++ Voraussetzung: Kenntnis allgemeiner Programmierkonzepte:

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

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

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

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

12. Vererbung. Prof. Dr. Markus Gross Informatik I für D-ITET (WS 03/04)

12. Vererbung. Prof. Dr. Markus Gross Informatik I für D-ITET (WS 03/04) 12. Vererbung Prof. Dr. Markus Gross Informatik I für D-ITET (WS 03/04)!Vererbung Konzept!Protected Section!Virtuelle Mitgliedsfunktionen!Verwendung von Vererbung Copyright: M. Gross, ETHZ, 2003 2 Vererbung!

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

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

C++ - Funktionen und mehr. Kerstin Gößner und Ralf Wondratschek C++ - Funktionen und mehr Kerstin Gößner und Ralf Wondratschek Übersicht Deklaration, Definition und Initialisierung Variablen- und Konstantendeklaration Funktionsaufrufe und rückgabewerte Technische Grundlage

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

13. Vererbung. Prof. Dr. François E. Cellier Informatik I für D-ITET (HS 2012)

13. Vererbung. Prof. Dr. François E. Cellier Informatik I für D-ITET (HS 2012) 13. Vererbung Prof. Dr. François E. Cellier Informatik I für D-ITET (HS 2012) Vererbung Konzept Protected Section Virtuelle Mitgliedsfunktionen Verwendung von Vererbung Vererbung Vererbung ist ein Mechanismus,

Mehr

Programmieren 3 C++ Prof. Peter Sommerlad Fredy Ulmer

Programmieren 3 C++ Prof. Peter Sommerlad Fredy Ulmer Programmieren 3 C++ Prof. Peter Sommerlad Fredy Ulmer Was Sie erwartet: Modernes C++ anwenden o ISO 14882 ist Norm für C++! o kein schlechteres Java, sondern mächtiger Moderne Standardbibliotheken anwenden

Mehr

Praxisorientierte Einführung in C++ Lektion: "Die Compiler-Chain (Vom Quellcode zum ausführbaren Programm)"

Praxisorientierte Einführung in C++ Lektion: Die Compiler-Chain (Vom Quellcode zum ausführbaren Programm) Praxisorientierte Einführung in C++ Lektion: "Die Compiler-Chain (Vom Quellcode zum ausführbaren Programm)" Christof Elbrechter Neuroinformatics Group, CITEC April 24, 2014 Christof Elbrechter Praxisorientierte

Mehr

Berner Fachhochschule Hochschule für Technik und Informatik HTI. Kapitel 1. Einstieg in Java. Dr. Elham Firouzi 06.09.10 1

Berner Fachhochschule Hochschule für Technik und Informatik HTI. Kapitel 1. Einstieg in Java. Dr. Elham Firouzi 06.09.10 1 Kapitel 1 Einstieg in Java Dr. Elham Firouzi 06.09.10 1 1 : Einstieg in Java Einleitung Ein erstes Beispiel Berner Fachhochschule Entwicklung von Java-Programmen Applikationen Applets Vor und Nachteile

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

Primitive Datentypen

Primitive Datentypen Primitive Datentypen 2 Arten von Datentypen: primitive Datentypen (heute) Objekte (später) Java ist streng typisiert, d.h. für jede Variable muß angegeben werden was für eine Art von Wert sie aufnimmt.

Mehr

Java: Vererbung. Teil 3: super() www.informatikzentrale.de

Java: Vererbung. Teil 3: super() www.informatikzentrale.de Java: Vererbung Teil 3: super() Konstruktor und Vererbung Kindklasse ruft SELBSTSTÄNDIG und IMMER zuerst den Konstruktor der Elternklasse auf! Konstruktor und Vererbung Kindklasse ruft SELBSTSTÄNDIG und

Mehr

Java Kurs für Anfänger Einheit 4 Klassen und Objekte

Java Kurs für Anfänger Einheit 4 Klassen und Objekte Java Kurs für Anfänger Einheit 4 Klassen und Ludwig-Maximilians-Universität München (Institut für Informatik: Programmierung und Softwaretechnik von Prof.Wirsing) 13. Juni 2009 Inhaltsverzeichnis klasse

Mehr

Java Einführung Klassendefinitionen

Java Einführung Klassendefinitionen Java Einführung Klassendefinitionen Inhalt dieser Einheit Java-Syntax Klassen definieren Objekte instanziieren Instanzvariable deklarieren Klassenvariable deklarieren 2 Klassen definieren In der Problemanalyse

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

Der C++ Crashkurs v1.0

Der C++ Crashkurs v1.0 Der C++ Crashkurs v1.0 Daniel Stöckel, M. Sc. October 14, 2013 1 Grundlegendes 1.1 Das erste Programm Wir beginnen mit einem einfachen Hello world Programm. Listing 1: hello world.cpp // Einbinden der

Mehr

Vorkurs Informatik WiSe 15/16

Vorkurs Informatik WiSe 15/16 Java 1 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe, 12.10.2015 Technische Universität Braunschweig, IPS Überblick Organisatorisches Arbeitsablauf Hello! 12.10.2015 Dr. Werner Struckmann / Stephan

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

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

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

3 Objektorientierte Konzepte in Java

3 Objektorientierte Konzepte in Java 3 Objektorientierte Konzepte in Java Bisherige Beobachtungen zu Objekten: werden in Klassen zusammengefasst besitzen Eigenschaften und Verhalten verbergen private Informationen werden geboren, leben und

Mehr

EINI WiMa/LW. Einführung in die Informatik für Naturwissenschaftler und Ingenieure. Vorlesung 2 SWS WS 11/12

EINI WiMa/LW. Einführung in die Informatik für Naturwissenschaftler und Ingenieure. Vorlesung 2 SWS WS 11/12 EINI WiMa/LW Einführung in die Informatik für Naturwissenschaftler und Ingenieure Vorlesung 2 SWS WS 11/12 Fakultät für Informatik Technische Universität Dortmund lars.hildebrand@udo.edu http://ls1-www.cs.uni-dortmund.de

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

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 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

10. Klassen. Prof. Dr. Markus Gross Informatik I für D-ITET (WS 03/04)

10. Klassen. Prof. Dr. Markus Gross Informatik I für D-ITET (WS 03/04) 10. Klassen Prof. Dr. Markus Gross Informatik I für D-ITET (WS 03/04)!Objektorientierte Programmierung!Das Konzept der Klassen!Members!Objekte!Konstruktoren und Destruktoren!this-Pointer!Public und Private

Mehr

1. Der Einstieg in Java

1. Der Einstieg in Java 1. Der Einstieg in Java Was heißt Programmieren? 1. Der Einstieg in Java Lernziele: Am Ende dieses Kapitels sollen Sie wissen, aus welchen Bestandteilen ein Java-Programm besteht, Java-Programme übersetzen

Mehr

Ein erstes Java-Programm

Ein erstes Java-Programm Ein erstes Java-Programm public class Rechnung { public static void main (String [] arguments) { int x, y; x = 10; y = -1 + 23 * 33 + 3 * 7 * (5 + 6); System.out.print ("Das Resultat ist "); System.out.println

Mehr

Java Schulung (Java 2 Java Development Kit 5 / 6)

Java Schulung (Java 2 Java Development Kit 5 / 6) 2. Grundlagen der Objektorientierung 2.1 Klassen, Attribute, Methoden Klassen Eine Klasse beschreibt als Bauplan Gemeinsamkeiten einer Menge von Objekten ist also ein Modell, auf dessen Basis Objekte erstellt

Mehr

C++ - Lernen und professionell anwenden

C++ - Lernen und professionell anwenden mitp Professional C++ - Lernen und professionell anwenden von Prof. Dr. Ulla Kirch, Dr. Peter Prinz 6., überarbeitete Auflage 2012 C++ - Lernen und professionell anwenden Kirch / Prinz schnell und portofrei

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

1. Der Einstieg in Java. Was heißt Programmieren?

1. Der Einstieg in Java. Was heißt Programmieren? 1. Der Einstieg in Java Lernziele: Am Ende dieses Kapitels sollen Sie wissen, aus welchen Bestandteilen ein Java-Programm besteht, Java-Programme übersetzen und ausführen können, Möglichkeiten der Kommentierung

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

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

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

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

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

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

Klausur in Programmieren

Klausur in Programmieren Studiengang Sensorik/Sensorsystemtechnik Note / normierte Punkte Klausur in Programmieren Wintersemester 2010/11, 17. Februar 2011 Dauer: 1,5h Hilfsmittel: Keine (Wörterbücher sind auf Nachfrage erlaubt)

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

Von Java/C nach C++ Fokus. Fabian Scheler, Peter Ulbrich, Niko Böhm. 21. Oktober 2008

Von Java/C nach C++ Fokus. Fabian Scheler, Peter Ulbrich, Niko Böhm. 21. Oktober 2008 Überblick 1 Primitive Datentypen Von Java/C nach Fabian Scheler, Peter Ulbrich, Niko Böhm Friedrich-Alexander-Universität Erlangen-Nürnberg Lehrstuhl Informatik 4 (Verteilte Systeme und Betriebssysteme)

Mehr

Zählen von Objekten einer bestimmten Klasse

Zählen von Objekten einer bestimmten Klasse Zählen von Objekten einer bestimmten Klasse Ziel, Inhalt Zur Übung versuchen wir eine Klasse zu schreiben, mit der es möglich ist Objekte einer bestimmten Klasse zu zählen. Wir werden den ++ und den --

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

einkonto.zahle(+100); //Transaktion Einzahlung einkonto.zahle(-20); //Transaktion Auszahlung einkonto.zahle(+30); //Transaktion Einzahlung

einkonto.zahle(+100); //Transaktion Einzahlung einkonto.zahle(-20); //Transaktion Auszahlung einkonto.zahle(+30); //Transaktion Einzahlung PIWIN I Kap. 7 Objektorientierte Programmierung - Einführung 28 Testklasse public class TestGirokonto { public static void main(string[] args) { // erzeuge neues Konto Girokonto einkonto = new Girokonto();

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

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

Java: Eine Übersicht. Dennis Giffhorn. Lehrstuhl für Programmierparadigmen Universität Karlsruhe

Java: Eine Übersicht. Dennis Giffhorn. Lehrstuhl für Programmierparadigmen Universität Karlsruhe Java: Eine Übersicht Dennis Giffhorn Lehrstuhl für Programmierparadigmen Universität Karlsruhe Allgemeines Objektorientiert Syntaxfamilie von C/C++ Statisch getypt Entwickelt von Sun Microsystems class

Mehr

Beispiel 2a Die eigenen ersten Schritte mit dem Gnu-Debugger GDB für Remote-Debugging

Beispiel 2a Die eigenen ersten Schritte mit dem Gnu-Debugger GDB für Remote-Debugging Beispiel 2a Die eigenen ersten Schritte mit dem Gnu-Debugger GDB für Remote-Debugging Das Beispiel orientiert sich am selben Code, der im Teil 1 der Serie verwendet wurde. Text Styles: Shell Prompt mit

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

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

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

CORBA Implementierung von Client und Server

CORBA Implementierung von Client und Server CORBA Implementierung von Client und Server J. Heinzelreiter WS 2003/04 Implementierung des Clients Initialisierung und Freigabe des ORBs. Mapping von Interfaces. Behandlung von Objektreferenzen. Verwaltung

Mehr

Vergleich verschiedener OO-Programmiersprachen

Vergleich verschiedener OO-Programmiersprachen Vergleich verschiedener OO-Programmiersprachen - Schnellumstieg in 15 Minuten - C++ Java Visual C++ C# Programmbeispiel in Visual C++, C#, Java und C++ Dr. Ehlert, Juni 2012 1 Inhaltsverzeichnis 1. Problemstellung

Mehr

Fakultät Angewandte Informatik Lehrprofessur für Informatik 23.01.2012

Fakultät Angewandte Informatik Lehrprofessur für Informatik 23.01.2012 WS 2011/2012 Fakultät Angewandte Informatik Lehrprofessur für Informatik 23.01.2012 Prof. Dr. Robert Lorenz Musterlösung zur Vorlesung Informatik I, Extrablatt zu komplexen Datenstrukturen Aufgabe 45 **

Mehr

Die Programmiersprache C

Die Programmiersprache C Die Programmiersprache C höhere Programmiersprache (mit einigen Assembler-ähnlichen Konstrukten) gut verständliche Kommandos muss von Compiler in maschinenlesbaren Code (Binärdatei) übersetzt werden universell,

Mehr

Willkommen zur Vorlesung. Objektorientierte Programmierung Vertiefung - Java

Willkommen zur Vorlesung. Objektorientierte Programmierung Vertiefung - Java Willkommen zur Vorlesung Objektorientierte Programmierung Vertiefung - Java Zum Dozenten Mein Name: Andreas Berndt Diplom-Informatiker (TU Darmstadt) Derzeit Software-Entwickler für Web- Applikationen

Mehr

Tutorium Rechnerorganisation

Tutorium Rechnerorganisation Woche 2 Tutorien 3 und 4 zur Vorlesung Rechnerorganisation 1 Christian A. Mandery: KIT Universität des Landes Baden-Württemberg und nationales Grossforschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu

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