Programmieren - C++ Ausnahmebehandlung

Größe: px
Ab Seite anzeigen:

Download "Programmieren - C++ Ausnahmebehandlung"

Transkript

1 Programmieren - C++ Ausnahmebehandlung Reiner Nitsch 8417 r.nitsch@fbi.h-da.de

2 Übliche Fehlersituationen (meist in aufgerufenen Funktionen) Teilen durch 0 (Null) Vorbedingungen nicht erfüllt Indexbereich bei Arrays überschritten Kein Speicher mehr bei new (kommt noch) Formatfehler bei Eingaben Fehler bei Dateioperationen Zugriff auf nicht geöffnete Datei Datei kann nicht geöffnet werden Speichermedium voll Probleme im Fehlerfall: Bibliotheksfunktionen können Laufzeitfehler entdecken. Die angemessene Reaktion darauf kennt aber nur die aufrufende Instanz. Die aufrufende Instanz kennt die angemessene Reaktion auf Fehler. Sie ist jedoch nicht in der Lage, sie zu entdecken C++ Ausnahmebehandlung 2

3 Traditionelle Fehlerbehandlungsstrategien 1. Fehler ignorieren 2. Das Programm terminieren (assert oder exit) 3. Einen Wert zurückliefern, der "Fehler" anzeigt (z.b. eine globale Fehlervariable oder einen Funktionsparameter/Rückgabewert) Der Indikator muss nach jedem Aufruf abgefragt werden, unabhängig davon, ob tatsächlich ein Fehler vorliegt. Fehler können oft nicht dort behandelt werden, wo sie auftreten. 4. Eine Funktion aufrufen, die für die Fehlerbehandlung vorgesehen ist. Diese sollte genügend Informationen übergeben bekommen, um den Fehler beheben und den Programmlauf fortsetzen zu können. Bei nicht behebbarem Fehler das Programm mit einer aussagefähigen Meldung abbrechen. 5. Der Mechanismus der C++ Ausnahmebehandlung ist eine Alternative zu diesen traditionellen Techniken, wenn diese ungenügend, unelegant und fehleranfällig sind. Er trennt Fehlerbehandlungscode von "normalem" Code. Das Programm bleibt lesbarer C++ Ausnahmebehandlung 3

4 Beispielanwendung - Notenspiegel #include "ExamResult.h" #include <iostream> using namespace std; void showmenu(); int main(){ ExamResult mathexam; int item=0; while(true) { do { // Eingabeschleife: fehlertolerant showmenu(); cin.clear(); cin.sync(); cin >> item; if( cin.good() ) break; else { cout << "ERROR: nur ganze Zahl zulaessig!" << endl << " Eingabe geloescht... " << endl << endl; while( true ); switch( item) { case 1: mathexam.recordonemarkfromconsole(); break; case 2: mathexam.show(); break; void showmenu() { cout << "1 Noten erfassen" << endl << "2 Notenspiegel ausgeben" << endl << "3 Durchschnittsnote berechnen und ausgeben" << endl << "9 Programm beenden" << endl << endl << "Bitte waehlen: "; // Fehlererkennung // und Fehlerbehandlungscode // sind hier vermischt am gleichen Ort // -> unübersichlich aber hier angemessen // Fehlererkennung und Fehlerbehandlung // sind hier vermischt am gleichen Ort // -> hier auch angemessen case 3: cout << endl << "Durchschnittsnote: " << mathexam.mean() << endl; break; case 9: return 0; default: cout << "ERROR: nur 1, 2, 3, 9 zulaessig!" << endl << endl; //end switch //end while(true) // Fehlerbehandlung C++ Ausnahmebehandlung 4

5 Beispielklasse ExamResult class ExamResult { enum {MAX_M = 5; int marklist[max_m]; public: ExamResult(); ~ExamResult(); void recordonemarkfromconsole(); void show(); float mean(); void setmarkcount( int mark, int val ); int getmarkcount( int mark ); ; void ExamResult::recordOneMarkFromConsole(){ // abstrakt int mark=0; cout << "Note eingeben:"; cin >> mark; setmarkcount( mark, getmarkcount(mark)+1 ); void ExamResult::setMarkCount(int mark, int val) { // nicht abstrakt assert( mark>0 && mark<6 ); // Vorbedingung; Abbruch nicht angemessen marklist[mark-1] = val; // hier fehlt eigentlich wieder fehlertolerante Eingabeschleife // Aufwand: puuuh!! float ExamResult::mean() { // abstrakt int sum (0), cnt(0); for( int mark = 1; mark <= 5; mark++ ) { sum += getmarkcount(mark)*mark; cnt += getmarkcount(mark); return static_cast <float> (sum)/cnt; // Division durch 0 möglich; Fehlerbahndlung nur an Aufrufstelle möglich // Rückgabewert? Möglicherweise negatives Ergebnis! C++ Ausnahmebehandlung 5

6 Konzept der Ausnahmebehandlung in C++ Unterstützt Fehlerbehandlung in mehreren voneinander unabhängig geschriebenen Programmteilen. Trennt Fehlererkennung von Fehlerbehandlung Unterstützt den Fall, dass ein fehlererkennender Programmteil einen anderen Programmteil über einen Fehler informieren muss, weil nur dort der Fehler angemessen behandelt werden kann. Ablauf: 1. Ein Programmteil (try-block) versucht die Erledigung einer Aufgabe erzeugt im Fehlerfall ein Ausnahme-Objekt (exception), das im Fehlerbehandlungsblock ausgewertet werden kann und das eine Fehlermeldung und/oder Daten zum Wiederaufsetzen enthält. Diesen Vorgang bezeichnet man auch als "Auswerfen" einer Ausnahme: if(fehlerfall) throw AusnahmeObjekt; Danach wird zum nächsten passenden Fehlerbehandlungsblock (catch-block) gesprungen (quasi ein spezielles "goto" mit Zusatzinformationen) der zum Typ der ausgeworfenen Ausnahme passt. 2. Ein anderer Programmteil (catch-block) hinter einem try-block behandelt den Fehler gesteuert durch das ausgeworfene Ausnahmeobjekt und erledigt alle notwendigen Aufräumarbeiten (stack unwinding), wenn dabei ein Rücksprung zu aufrufenden Funktionen erforderlich ist. Diesen Vorgang bezeichnet man als "Auffangen" der Ausnahme. 3. Im Unterschied zu Strategie 4 wird das Programm nicht hinter der Fehlererkennungsstelle, sondern hinter der Fehlerbehandlungsstelle, dem catch-block fortgesetzt C++ Ausnahmebehandlung 6

7 Entwicklungsumgebung MS Visual C Nur wenn wenn die Compileroption /EHsc gesetzt ist, generiert der Compiler auch Code für die Ausnahmebehandlung! C++ Ausnahmebehandlung 7

8 int Ausnahme auswerfen und auffangen ohne Wertberücksichtigung void ExamResult::setMarkCount( int mark, int val ) { if( mark<0 mark>5 ) throw 1; marklist[mark-1] = val; int main() { ExamResult mathexam; int item=0; while(true) { // hier folgt die Eingabeschleife (unverändert) try { switch( item) { case 1: mathexam.recordonemarkfromconsole(); break; case 2: mathexam.show(); break; // Fehlererkennung case 3: cout << endl << "Durchschnittsnote: " << mathexam.mean() << endl; break; case 9: return 0; default: cout << "ERROR: nur 1, 2, 3, 9 zulaessig!" << endl << endl; // end try catch ( int ) { cout << "ERROR" << endl; // while(true) // Wenn in diesem try-block Ausnahmen ausgeworfen werden // wird das Programm hier fortgesetzt // und die passende Fehlerbehandler ausgewählt // und Fehlerbehandlung sind nun getrennt! // Dieser catch-block wird ausgewählt, // wenn er zum Typ der ausgeworfenen Ausnahme paßt Der Wert des Ausnahmeobjekts wird hier nicht genutzt // setmarkcount wirft int Ausnahme // falls mark ungültig! 1 Noten erfassen 2 Notenspiegel ausgeben 3 Durchschnittsnote berechnen und ausgeben 9 Programm beenden Bitte waehlen: 1 Note eingeben: 6 ERROR 1 Noten erfassen 2 Notenspiegel ausgeben 3 Durchschnittsnote berechnen und ausgeben 9 Programm beenden Bitte waehlen: C++ Ausnahmebehandlung 8

9 int Ausnahme auswerfen und auffangen mit Wertberücksichtigung void ExamResult::setMarkCount( int mark, int val ) { if( mark<0 mark>5 ) throw 1; // Fehlererkennung marklist[mark-1] = val; int main() { ExamResult mathexam; int item=0; while(true) { // hier folgt die Eingabeschleife (unverändert) try { switch( item) { case 1: mathexam.recordonemarkfromconsole(); break; case 2: mathexam.show(); break; case 3: cout << endl << "Durchschnittsnote: " << mathexam.mean() << endl; break; case 9: return 0; default: cout << "ERROR: nur 1, 2, 3, 9 zulaessig!" << endl << endl; // end try // while(true) catch ( int errno ) { switch(errno) { case 1: cout << "ERROR " << errno // setmarkcount wirft int Ausnahme // falls mark ungültig! Der Wert des Ausnahmeobjekts ist lokale Variable errno in diesem catch-block << ": Falsche Note in ExamResult::setMarkCount!" Der Wert des Ausnahmeobjekts wird hier genutzt 1 Noten erfassen 2 Notenspiegel ausgeben 3 Durchschnittsnote berechnen und ausgeben 9 Programm beenden Bitte waehlen: 1 Note eingeben: 6 ERROR 1: Falsche Note in ExamResult:setMarkCount! C++ Ausnahmebehandlung 9

10 string Ausnahme auswerfen und auffangen void ExamResult::setMarkCount( int mark, int val ) { if(mark<0 mark>5) throw string("error: Falsche Note in ExamResult::setMarkCount!"); marklist[mark-1] = val; int main() { ExamResult mathexam; int item=0; while(true) { // hier folgt die Eingabeschleife (unverändert) try { // wie gehabt... // setmarkcount wirft string Ausnahme // falls mark ungültig! // end try catch ( string str ) { cout << str << endl; // while(true) Der Wert des Ausnahmeobjekts wird hier genutzt 1 Noten erfassen 2 Notenspiegel ausgeben 3 Durchschnittsnote berechnen und ausgeben 9 Programm beenden Bitte waehlen: 1 Note eingeben: 6 ERROR: Falsche Note in ExamResult:setMarkCount! C++ Ausnahmebehandlung 10

11 Userdefiniertes Fehlerobjekt ohne Zusatzinformation Spezielle Fehlerklasse class ExamResultError{ ; // Standard-Konstruktor, Copy-Konstruktor und Destruktor werden automatisch bereitgestellt! // Das Fehlerobjekt hat keine Attribute. Es transportiert daher auch keine Informationen über den Fehler void ExamResult::setMarkCount( int mark, int val ) { if( mark<0 mark>5 ) throw MarkError(); marklist[mark-1] = val; int main() { ExamResult mathexam; int item=0; while(true) { // hier folgt die Eingabeschleife (unverändert) try { // wie gehabt... // end try catch ( ExamResultError ) { cout << "ERROR: Falsche Note in class ExamResult!" // while(true) Nur der Typ der Ausnahme wird hier genutzt zur Auswahl des catch-blocks Der Wert des Ausnahmeobjekts wird hier nicht genutzt Mehr Information gibt das Ausnahmeobjekt hier nicht her C++ Ausnahmebehandlung 11

12 Userdefiniertes Fehlerobjekt mit Zusatzinformation void ExamResult::setMarkCount( int mark, int val ) { if( mark<0 mark>5 ) throw ExamResult( "setmarkcount: Note = ", mark ); marklist[mark-1] = val; class ExamResultError { int value; string message; // Attribute des Fehlerobjekts transportieren Infos zum Fehler zur Fehlerbehandlungsroutine public: ExamResultError( const string& msg, int val=0 ) : message(msg) { value = val; ostream& show( ostream& os ) { os << "ERROR in ExamResult::" << message << value; return os; ; int main() { ExamResult mathexam; int item=0; while(true) { // hier folgt die Eingabeschleife (unverändert) try { // wie gehabt... // end try catch ( ExamResultError exre ) { exre.show(cout); // while(true) 1 Noten erfassen 2 Notenspiegel ausgeben 3 Durchschnittsnote berechnen und ausgeben 9 Programm beenden Bitte waehlen: 1 Note eingeben: 6 ERROR in ExamResult::setMarkCount: Note = C++ Ausnahmebehandlung 12

13 Userdefiniertes Fehlerobjekt mit Zusatzinformation Jetzt kann auch "Division durch Null"-Fehler in mean erkannt und an Aufrufstelle behandelt werden float ExamResult::mean() { int sum (0), cnt(0); for( int mark = 1; mark <= 5; mark++ ) { sum += getmarkcount(mark)*mark; cnt += getmarkcount(mark); if( cnt==0 ) throw ExamResultError( "mean: cnt = ", 0 ); return static_cast <float> (sum)/cnt; //Falls cnt=0 wird diese Anweisung nicht ausgeführt! 1 Noten erfassen 2 Notenspiegel ausgeben 3 Durchschnittsnote berechnen und ausgeben 9 Programm beenden Bitte waehlen: 3 Note eingeben: 6 ERROR in ExamResult::mean: cnt = C++ Ausnahmebehandlung 13

14 C++ Exceptions - Regeln Regeln zum Auswerfen von Ausnahmen Code in try-block oder catch-block kann einen throw-ausdruck enthalten. Der throw-ausdruck hat die Syntax: throw [Ausdruck] (Bei Ausführung wird eine Ausnahme "ausgeworfen". Der Ausdruck ist optional) Nach dem Auswerfen einer Ausnahme wird das Programm hinter dem try-block fortgesetzt und der zum Typ des Ausnahmeobjekts passende Ausnahme-Handler (catch-block) gesucht. Regeln zum Behandeln der Ausnahme Nach dem Auswurf einer Ausnahme wird der "nächste" Handler gesucht, der zum Typ des Ausnahmeobjekts passt. Am "nahsten" sind die catch-blöcke, die dem auswerfenden try-block folgen. Mit dem (temporären) Ausnahmeobjekt wird der Parameter des passenden catch- Blocks initialisiert. Wenn unter den Handlern, die einem try-block folgen, kein passender Handler gefunden wird, wird die Suche im nächsten umschließenden try-block fortgesetzt. Wenn überhaupt kein passender Handler gefunden wurde, wird die Funktion unexpected() aufgerufen. Die Standardversion von unexpected() ruft terminate() auf, sie kann aber durch eine eigene Funktion ersetzt werden C++ Ausnahmebehandlung 14

15 Exception-Spezifikationen in Deklarationen Zweck Ausnahmen, die eine Funktion auswerfen kann, für den Schnittstellen-Anwender bereits in der Schnittstellen-Deklaration bekannt machen. Anwendung void function(); // bel. Funktion kann beliebige Ausnahmen auswerfen. void function() throw(); verspricht, keine Ausnahmen auszuwerfen. void function() throw( RangeError, string ); verspricht, nur die deklarierten Ausnahmen auszuwerfen. Wenn eine Funktion eine Exception wirft, die in der Exception-Spezifikation nicht vorgesehen ist, wird die Funktion void unexpected() aufgerufen, die das Programm beendet. Beispiel class ExamResult { public: float mean() throw(examresulterror); void setmarkcount( int mark, int val ) throw(examresulterror); int getmarkcount( int mark ) throw(examresulterror); ; Hinweis Microsoft C unterstützt die Exception-Spezifikation in Deklarationen nicht C++ Ausnahmebehandlung 15

16 Anwendung der Exception-Hierarchie Viele Klassen und Funktionen der C++ Systembibliothek werfen im Fehlerfall Ausnahmeobjekte vom Typ exception aus. // out_of_range Exception // compile with: /EHsc #include <vector> #include <iostream> using namespace std; void main() { vector<int> v(10,0); try { cout << v.at(11) << endl; Caught: invalid vector<t> subscript string str( "Micro" ); Caught: invalid string position string rstr( "soft" ); str.append( rstr, 5); cout << str << endl; Index des 1. anzuhängenden Zeichens catch ( const exception &e ) { cerr << "Caught: " << e.what( ) << endl; catch(...) { cerr << "Unbehandelter Fehler!" << endl; C++ Ausnahmebehandlung 16

17 Exception-Hierarchie in C++ C++ stellt eine Reihe vordefinierter Exception-Klassen zur Verfügung, die alle von der Oberklasse exception (definiert in <stdexcept>) abgeleitet sind. Alle abgeleiteten Klassen erben von exception der Oberklasse exception namspace std { class exception { public: wirft selbst keine Ausnahmen exception() throw(); Standard-Konstruktor exception( const char* msg) throw(); Copy-Konstruktor exception( const exception& ) throw(); exception& operator=(const exception& rhs) throw(); virtual ~exception() throw(); virtual const char* what() const throw(); private: const char* str; // ; Returns the message msg with which the exception was created. Hier nochmal reinschauen nachdem Sie "geerbt" haben! runtime_error range_error overflow_error underflow_error bad_alloc bad_typeid bad_cast bad_exception C++-Vererbungshierarchie zur Verwendung durch STL logic_error invalid_argument length_error out_of_range domain_error C++ Ausnahmebehandlung 17

std::cerr << "unerwartete sonstige Exception" << std::endl; return EXIT_FAILURE; // main() mit Fehlerstatus beenden

std::cerr << unerwartete sonstige Exception << std::endl; return EXIT_FAILURE; // main() mit Fehlerstatus beenden Dozent: G.Döben-Henisch PPmP VL7 VL7: Ausnahmebehandlung in C++ Inhalt 1. Einleitung 2. Schlüsselworte 'try', 'catch', 'throw' 3. Standardfehlerklassen 4. Stapel Rückabwicklung ('stack unwinding') 5. Eigene

Mehr

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 14/15. Kapitel 11. Fehler und Ausnahmen 1

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 14/15. Kapitel 11. Fehler und Ausnahmen 1 Kapitel 11 Fehler und Ausnahmen Fehler und Ausnahmen 1 Ziele Fehlerquellen in Programmen und bei der Programmausführung verstehen Das Java-Konzept der Ausnahmen als Objekte kennenlernen Ausnahmen auslösen

Mehr

Praxisorientierte Einführung in C++ Lektion: "Exceptions"

Praxisorientierte Einführung in C++ Lektion: Exceptions Praxisorientierte Einführung in C++ Lektion: "Exceptions" Christof Elbrechter Neuroinformatics Group, CITEC June 18, 2014 Christof Elbrechter Praxisorientierte Einführung in C++ June 18, 2014 1 / 41 Table

Mehr

Einführung in den Einsatz von Objekt-Orientierung mit C++ I

Einführung in den Einsatz von Objekt-Orientierung mit C++ I Einführung in den Einsatz von Objekt-Orientierung mit C++ I ADV-Seminar Leiter: Mag. Michael Hahsler Syntax von C++ Grundlagen Übersetzung Formale Syntaxüberprüfung Ausgabe/Eingabe Funktion main() Variablen

Mehr

Steueranweisungen. Eike Schallehn Grundlagen der Informatik für Ingenieure Wintersemester 08/09 2 32

Steueranweisungen. Eike Schallehn Grundlagen der Informatik für Ingenieure Wintersemester 08/09 2 32 Steueranweisungen Bisher Programme mit Funktionen als einfache Folge von Befehlen Ablauf von Programmen darüber hinaus steuerbar über Bedingte Ausführung: Ausführung von Programmteilen (Befehlen oder Programmblöcken)

Mehr

Java Fehlerbehandlung

Java Fehlerbehandlung Java Fehlerbehandlung 1 Fehlerbehandlung In jedem nicht-trivialen Programm kann es während der Laufzeit zu Fehlersituationen kommen. Dabei handelt es sich nicht unbedingt um Programmierfehler: z. B.: Programm

Mehr

5. Elementare Befehle und Struktogramme

5. Elementare Befehle und Struktogramme 5. Elementare Befehle und Struktogramme Programmablauf Beschreibung des Programmablaufs mittel grafischer Symbole Beispiel : Flussdiagramme ja nein Besser : Struktogramme Dr. Norbert Spangler / Grundlagen

Mehr

Beispiel: Methode mit einem Fehler. Diese Methode wird problematisch, wenn von außen eine Dauer von 0 Sekunden angegeben wird, etwa im Aufruf

Beispiel: Methode mit einem Fehler. Diese Methode wird problematisch, wenn von außen eine Dauer von 0 Sekunden angegeben wird, etwa im Aufruf 16 Exceptions Zur Behandlung unerwarteter Situationen bietet Java Unterstützung in Form von Exceptions oder Ausnahmen. Den Sinn von Exceptions können wir Ihnen an einem kleinen Beispiel klarmachen. Nehmen

Mehr

Angewandte Mathematik und Programmierung

Angewandte Mathematik und Programmierung Angewandte Mathematik und Programmierung Einführung in das Konzept der objektorientierten Anwendungen zu mathematischen Rechnens SS2013 Inhalt Projekt Vorlesung: praktische Implementierung üben Ein und

Mehr

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

JavaScript. Dies ist normales HTML. Hallo Welt! Dies ist JavaScript. Wieder normales HTML. JavaScript JavaScript wird direkt in HTML-Dokumente eingebunden. Gib folgende Zeilen mit einem Texteditor (Notepad) ein: (Falls der Editor nicht gefunden wird, öffne im Browser eine Datei mit der Endung

Mehr

Teil II. Objektorientierte Programmierung und objektorientierter Entwurf

Teil II. Objektorientierte Programmierung und objektorientierter Entwurf Teil II Objektorientierte Programmierung und objektorientierter Entwurf 39 Kapitel 8 Robuste Programme durch Ausnahmebehandlung Ziele: Lernen, robuste Programme zu schreiben Ausnahmen als Objekte verstehen

Mehr

Exceptions. Prof. Dr. Margarita Esponda SS 2012. M. Esponda-Argüero

Exceptions. Prof. Dr. Margarita Esponda SS 2012. M. Esponda-Argüero Exceptions Prof. Dr. Margarita Esponda SS 2012 1 Ausnahmen Eine Ausnahme (Exception) ist ein Fehler oder ein nicht geplantes Ereignis, das während der Ausführung eines Programms vorkommt und dessen normalen

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

Es ist für die Lösung der Programmieraufgabe nicht nötig, den mathematischen Hintergrund zu verstehen, es kann aber beim Verständnis helfen.

Es ist für die Lösung der Programmieraufgabe nicht nötig, den mathematischen Hintergrund zu verstehen, es kann aber beim Verständnis helfen. Ziele sind das Arbeiten mit Funktionen und dem Aufzählungstyp (enum), sowie - einfache Verzweigung (if else) - Alternativen switch case - einfache Schleifen (while oder do while) Aufgabe 3: Diese Aufgabe

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

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java Vorlesung vom 18.4.07, Grundlagen Übersicht 1 Kommentare 2 Bezeichner für Klassen, Methoden, Variablen 3 White Space Zeichen 4 Wortsymbole 5 Interpunktionszeichen 6 Operatoren 7 import Anweisungen 8 Form

Mehr

Überladen von Operatoren

Überladen von Operatoren - Überladen des Indexoperators [] - Überladen des Ausgabeoperators > Programmieren in C++ Informatik FH Trier C++12-1 ähnlich dem Überladen von Funktionen Überladen

Mehr

Welche Informatik-Kenntnisse bringen Sie mit?

Welche Informatik-Kenntnisse bringen Sie mit? Welche Informatik-Kenntnisse bringen Sie mit? So gehen Sie vor! Lösen Sie die Aufgaben der Reihe nach von 1 bis 20, ohne das Lösungsblatt zur Hilfe zu nehmen. Der Schwierigkeitsgrad der Aufgaben nimmt

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

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

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

S. d. I.: Programieren in C Folie 4-1. im Gegensatz zu Pascal gibt es in C kein Schlüsselwort "then"

S. d. I.: Programieren in C Folie 4-1. im Gegensatz zu Pascal gibt es in C kein Schlüsselwort then S. d. I.: Programieren in C Folie 4-1 4 Anweisungen 4.1 if-anweisung 1) if (Ausdruck) 2) if (Ausdruck) } else im Gegensatz zu Pascal gibt es in C kein Schlüsselwort "then" es wird nur der numerische Wert

Mehr

Annehmende Schleife do while

Annehmende Schleife do while Annehmende Schleife do while Schleife mit nachfolgender Bedingungsprüfung: annehmende Schleife B S Mit B wird eine Bedingung (logischer Ausdruck) bezeichnet, S ist ein Strukturblock. Zuerst wird S ausgeführt,

Mehr

Java-Schulung Grundlagen

Java-Schulung Grundlagen Java-Schulung Grundlagen Java 2 Standard Edition JDK 5 / 6 31.05.2008 Marcel Wieczorek 1 Themenübersicht Basiswissen Objektorientierung Datentypen Fehlerbehandlung Sonstiges Einführung Klassen, Strings

Mehr

Klausurvorbereitung Lösung

Klausurvorbereitung Lösung Ausgabe 1 a) unsigned char erzeuge_bitmuster() static int z=0; int rest; unsigned char bm; rest = z % 4; z=z+1; switch (rest) case 0: bm = 0x00; break; case 1: bm = 0x11; break; case 2: bm = 0x33; break;

Mehr

Themen. Statische Methoden inline Methoden const Methoden this Zeiger Destruktor Kopierkonstruktor Überladen von Operatoren

Themen. Statische Methoden inline Methoden const Methoden this Zeiger Destruktor Kopierkonstruktor Überladen von Operatoren Themen Statische Methoden inline Methoden const Methoden this Zeiger Destruktor Kopierkonstruktor Überladen von Operatoren Statische Methoden Klassenmethoden Merkmal der Klasse nicht eines einzelnen Objekts

Mehr

5.13 Umgang mit Fehlern

5.13 Umgang mit Fehlern 5.13 Umgang mit Fehlern Klassifikation von Fehlern: Syntaxfehler: Lexikalische Fehler: Falsche oder unbekannte Worte String s neu String("Max"); Falsche Anordnung von Anweisungen: Falscher Typ: import

Mehr

4 Schleifen und Dateien

4 Schleifen und Dateien 4 Schleifen und Dateien 4.1 Übungsaufgabe 4.1.1 Aufgabe 1 Schreiben Sie drei C++ Programme: pword_for.cxx, pword_while.cxx, pword_do.cxx. Die Programme sollen den Benutzer höchstens 5 Mal nach einem Passwort

Mehr

Angewandte Mathematik und Programmierung

Angewandte Mathematik und Programmierung Angewandte Mathematik und Programmierung Einführung in das Konzept der objektorientierten Anwendungen zu mathematischen Rechnens WS 2012/13 Inhalt Rekursive Programmierung Beispiel _ Determinanten von

Mehr

Gliederung Grundlagen Schlüsselworte try-catch Fehlerobjekte Fehlerklassen Schlüsselwort finally Schlüsselwort throws selbst erstellte Exceptions

Gliederung Grundlagen Schlüsselworte try-catch Fehlerobjekte Fehlerklassen Schlüsselwort finally Schlüsselwort throws selbst erstellte Exceptions try-catch Schlüsselworte try-catch e Schlüsselwort Schlüsselwort selbst erstellte ermöglichen die Behandlung von Fehlern, die zur Laufzeit entstehen. try-catch in C: Fehler führt immer zum Abbruch des

Mehr

Exception. 6. Exceptions. Die Klasse java.lang.exception. Fehlermeldung. Klassenname. Ort des Auftretens

Exception. 6. Exceptions. Die Klasse java.lang.exception. Fehlermeldung. Klassenname. Ort des Auftretens 6. Exceptions Exception Hintergrund: Programmieren auf der Basis von Verträgen Kundenklasse Lieferantenklasse Eine Exception ist ein Objekt, das Informationen über einen Programmfehler enthält. Eine Exception

Mehr

Elementare Datentypen in C++

Elementare Datentypen in C++ Elementare Datentypen in C++ bool signed/unsigned char signed/unsigned short int signed/unsigned int signed/unsigned long int (signed/unsigned long long int) float double long double void enum char Der

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

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

Java 8. Elmar Fuchs Grundlagen Programmierung. 1. Ausgabe, Oktober 2014 JAV8

Java 8. Elmar Fuchs Grundlagen Programmierung. 1. Ausgabe, Oktober 2014 JAV8 Java 8 Elmar Fuchs Grundlagen Programmierung 1. Ausgabe, Oktober 2014 JAV8 5 Java 8 - Grundlagen Programmierung 5 Kontrollstrukturen In diesem Kapitel erfahren Sie wie Sie die Ausführung von von Bedingungen

Mehr

Übungen zur Vorlesung EidP (WS 2015/16) Blatt 6

Übungen zur Vorlesung EidP (WS 2015/16) Blatt 6 Andre Droschinsky Ingo Schulz Dortmund, den 0. Dezember 2015 Übungen zur Vorlesung EidP (WS 2015/16) Blatt 6 Block rot Es können 4 + 1 Punkte erreicht werden. Abgabedatum: 10. Dezember 2015 2:59 Uhr Hinweise

Mehr

Einführung in die Programmierung

Einführung in die Programmierung : Inhalt Einführung in die Programmierung Wintersemester 2010/11 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund Wiederholungen - while - do-while - for

Mehr

Programmieren I + II Regeln der Code-Formatierung

Programmieren I + II Regeln der Code-Formatierung Technische Universität Braunschweig Dr. Werner Struckmann Institut für Programmierung und Reaktive Systeme WS 2016/2017, SS 2017 Programmieren I + II Regeln der Code-Formatierung In diesem Dokument finden

Mehr

Programmierung in C. Grundlagen. Stefan Kallerhoff

Programmierung in C. Grundlagen. Stefan Kallerhoff Programmierung in C Grundlagen Stefan Kallerhoff Vorstellungsrunde Name Hobby/Beruf Schon mal was programmiert? Erwartungen an den Kurs Lieblingstier Für zu Hause C-Buch online: http://openbook.rheinwerk-verlag.de/c_von_a_bis_z/

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

Objektorientierte Programmierung mit C++ SS 2007

Objektorientierte Programmierung mit C++ SS 2007 Objektorientierte Programmierung mit C++ SS 2007 Andreas F. Borchert Universität Ulm 3. Juli 2007 Ausnahmenbehandlungen #include #include OutOfMemory.C using namespace std; int main()

Mehr

RO-Tutorien 3 / 6 / 12

RO-Tutorien 3 / 6 / 12 RO-Tutorien 3 / 6 / 12 Tutorien zur Vorlesung Rechnerorganisation Christian A. Mandery WOCHE 2 AM 06./07.05.2013 KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft

Mehr

C# 2000 Expression Beispielcodes für Konsolen- und Formularanwendung

C# 2000 Expression Beispielcodes für Konsolen- und Formularanwendung C# 2000 Expression Beispielcodes für Konsolen- und Formularanwendung 1. "Hai!" [Konsolenanwendung] Console.WriteLine("Hai, wie geht's?"); 2. Muktiplikation mit sich selbst [Konsolenanwendung] // Ausgabe

Mehr

Praxisorientierte Einführung in C++ Lektion: "Kontrollstrukturen"

Praxisorientierte Einführung in C++ Lektion: Kontrollstrukturen Praxisorientierte Einführung in C++ Lektion: "Kontrollstrukturen" Christof Elbrechter Neuroinformatics Group, CITEC April 24, 2014 Christof Elbrechter Praxisorientierte Einführung in C++ April 24, 2014

Mehr

magnum C++ WALTER SAUMWEBER kompakt komplett kompetent

magnum C++ WALTER SAUMWEBER kompakt komplett kompetent magnum C++ WALTER SAUMWEBER kompakt komplett kompetent Quickview... 5 Liebe Leserin, lieber Leser... 13 Teil 1 Grundlagen... 15 1 Was ist Programmieren?... 17 1.1 Was ist eigentlich ein Computerprogramm?...

Mehr

Objektorientiertes Programmieren mit C++ für Fortgeschrittene

Objektorientiertes Programmieren mit C++ für Fortgeschrittene BEREICH DATENTECHNIK I CQ 600 00 TH 01 Objektorientiertes Programmieren mit C++ für Fortgeschrittene Kapitel 6 6. Ausnahmebehandlung (Exception Handling) 6.1. Allgemeines 6.2. Werfen und Fangen von Exceptions

Mehr

5 Grundlagen der Java-Syntax

5 Grundlagen der Java-Syntax 5 Grundlagen der Java-Syntax Es sollen nun einige Grundregeln besprechen, die in jeder Java-Programmdatei berücksichtigt werden müssen. 5.1 Grundsätzliches zur Syntax von Java Programmen Zunächst sollten

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

Praktikum Informatik II Prof. Dr. Martin Trauth, Dr. Michael Männel

Praktikum Informatik II Prof. Dr. Martin Trauth, Dr. Michael Männel Praktikum Informatik II Prof. Dr. Martin Trauth, Dr. Michael Männel FB Physikalische Technik Musterlösungen Teil 4 Aufgabe 1 package teil4; import javax.swing.*; public class Ei { int haltung, ident; String

Mehr

Theorie zu Übung 8 Implementierung in Java

Theorie zu Übung 8 Implementierung in Java Universität Stuttgart Institut für Automatisierungstechnik und Softwaresysteme Prof. Dr.-Ing. M. Weyrich Theorie zu Übung 8 Implementierung in Java Klasse in Java Die Klasse wird durch das class-konzept

Mehr

Übersicht. Informatik 2 Teil 3 Anwendungsbeispiel für objektorientierte Programmierung

Übersicht. Informatik 2 Teil 3 Anwendungsbeispiel für objektorientierte Programmierung Übersicht 3.1 Modell Konto 3.2 Modell Konto - Erläuterungen 3.3 Benutzer Ein- und Ausgabe mit Dialogfenster I 3.4 Benutzer Ein- und Ausgabe mit Dialogfenster II 3.5 Klassen- und Objekteigenschaften des

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

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

BKTM - Programmieren leicht gemacht.

BKTM - Programmieren leicht gemacht. BKTM Programmieren leicht gemacht. + Struktogramm Das Struktogramme ist eine Entwurfsmethode für die strukturierte Programmierung. Es ist nach der DIN 66261 genormt. Es ist 1972/73 von Dr. Isaac Nassi

Mehr

Grundlagen der Programmierung Prof. H. Mössenböck. 6. Methoden

Grundlagen der Programmierung Prof. H. Mössenböck. 6. Methoden Grundlagen der Programmierung Prof. H. Mössenböck 6. Methoden Parameterlose Methoden Beispiel: Ausgabe einer Überschrift class Sample { static void printheader() { // Methodenkopf Out.println("Artikelliste");

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

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

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

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

9. Fehlerbehandlung Advanced Programming Techniques. Wintersemester 2009 / 2010 Prof. Dr. Bernhard Humm Hochschule Darmstadt, FB Informatik

9. Fehlerbehandlung Advanced Programming Techniques. Wintersemester 2009 / 2010 Prof. Dr. Bernhard Humm Hochschule Darmstadt, FB Informatik 9. Fehlerbehandlung Advanced Programming Techniques Wintersemester 2009 / 2010 Prof. Dr. Bernhard Humm Hochschule Darmstadt, FB Informatik 1 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik:

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 5. Kontrollstrukturen Allgemein Kontrollstrukturen dienen zur Steuerung des Programmablaufs. (Bemerkung: C und C++ besitzen die selben Kontrollstrukturen.)

Mehr

Schleifen in C/C++/Java

Schleifen in C/C++/Java Schleifen in C/C++/Java Alle 3 Sprachen stellen mindestens die folgenden 3 Schleifenkonstruktionen zur Verfügung. In C gibt es auch keine weiteren, C++, Java und C# haben noch weitere nützliche Varianten.

Mehr

Informatik für Elektrotechnik und Informationstechnik

Informatik für Elektrotechnik und Informationstechnik Informatik für Elektrotechnik und Informationstechnik Praktikum 1 Wintersemester 2013/14 1 Kennenlernen der Entwicklungsumgebung Netbeans Netbeans ist eine moderne Entwicklungsumgebung für mehrere Programmiersprachen,

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

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

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

3. Anweisungen und Kontrollstrukturen

3. Anweisungen und Kontrollstrukturen 3. Kontrollstrukturen Anweisungen und Blöcke 3. Anweisungen und Kontrollstrukturen Mit Kontrollstrukturen können wir den Ablauf eines Programmes beeinflussen, z.b. ob oder in welcher Reihenfolge Anweisungen

Mehr

Abend 7 Vererbung und Polymorphie, Abstrakte Klassen

Abend 7 Vererbung und Polymorphie, Abstrakte Klassen Abend 7 Vererbung und Polymorphie, Abstrakte Klassen Ziel, Inhalt Wir sehen heute weitere Beispiele für Polymorphie und virtuelle Methoden. Wir lernen auch Klassen kennen, von denen man keine Objekte erzeugen

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

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

THE GO PROGRAMMING LANGUAGE. Michael Karnutsch & Marko Sulejic

THE GO PROGRAMMING LANGUAGE. Michael Karnutsch & Marko Sulejic THE GO PROGRAMMING LANGUAGE Part 1: Michael Karnutsch & Marko Sulejic Gliederung Geschichte / Motivation Compiler Formatierung, Semikolons Variablen, eigene Typen Kontrollstrukturen Funktionen, Methoden

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

Einführung in die Programmierung 1

Einführung in die Programmierung 1 Einführung in die Programmierung 1 Einführung (S.2) Einrichten von Eclipse (S.4) Mein Erstes Programm (S.5) Hallo Welt!? Programm Der Mensch (S.11) Klassen (S.12) Einführung Wie Funktioniert Code? Geschriebener

Mehr

AuD-Tafelübung T-B5b

AuD-Tafelübung T-B5b 6. Übung Sichtbarkeiten, Rekursion, Javadoc Di, 29.11.2011 1 Blatt 5 2 OOP Klassen Static vs. Instanzen Sichtbarkeit 3 Stack und Heap Stack Heap 4 Blatt 6 1 Blatt 5 2 OOP Klassen Static vs. Instanzen Sichtbarkeit

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

HS Ravensburg-Weingarten Schriftlich Prüfung Programmieren

HS Ravensburg-Weingarten Schriftlich Prüfung Programmieren HS Ravensburg-Weingarten Schriftlich Prüfung Programmieren Prof. Dr. M. Zeller Datum, Zeit, 08:00 10:00 Uhr (120 min) Aufgabenblätter 16 Seiten (einschl. Deckblatt) erreichbare Punktzahl 58 zugelassene

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

Grundlagen. Die Komponenten eines C Programms. Das erste Programm

Grundlagen. Die Komponenten eines C Programms. Das erste Programm Grundlagen 1. Die Komponenten eines C Programms 2. Ein Programm erzeugen und übersetzen 3. Variablen Deklarieren und Werte zuweisen 4. Zahlen eingeben mit der Tastatur 5. Arithmetische Ausdrücke und Berechnungen

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

7 Vererbung. Modul Programmieren mit C++ Kapitel Vererbung

7 Vererbung. Modul Programmieren mit C++ Kapitel Vererbung 7.1 7 Vererbung Eine von der Basisklasse B abgeleitete Klasse A erbt alle Attribute und Methoden von B. Ein Objekt der Klasse A besitzt ein Slice der Klasse B und ein Slice der Klasse A. Jeder Konstruktor

Mehr

Informatik I. Übung 2 : Programmieren in Eclipse. 5. März Daniel Hentzen

Informatik I. Übung 2 : Programmieren in Eclipse. 5. März Daniel Hentzen Informatik I Übung 2 : Programmieren in Eclipse 5. März 2014 Daniel Hentzen dhentzen@student.ethz.ch Downloads : http://n.ethz.ch/~dhentzen/download/ Heute 1. Nachbesprechung Übung 1 2. Theorie 3. Vorbesprechung

Mehr

UNIVERSITÄT ULM Fakultät für Ingenieurswissenschaften und Informatik Institut für Datenbanken und Informationssysteme

UNIVERSITÄT ULM Fakultät für Ingenieurswissenschaften und Informatik Institut für Datenbanken und Informationssysteme UNIVERSITÄT ULM Fakultät für Ingenieurswissenschaften und Informatik Institut für Datenbanken und Informationssysteme 8. Übung zur Vorlesung Datenbanksysteme WS 08/09 Musterlösung Aufgabe 8-1: SQLJ //

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

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

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

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

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

Einführung in die STL

Einführung in die STL 1/29 in die STL Florian Adamsky, B. Sc. (PhD cand.) florian.adamsky@iem.thm.de http://florian.adamsky.it/ cbd Softwareentwicklung im WS 2014/15 2/29 Outline 1 3/29 Inhaltsverzeichnis 1 4/29 Typisierung

Mehr

Probeklausur: Programmierung WS04/05

Probeklausur: Programmierung WS04/05 Probeklausur: Programmierung WS04/05 Name: Hinweise zur Bearbeitung Nimm Dir für diese Klausur ausreichend Zeit, und sorge dafür, dass Du nicht gestört wirst. Die Klausur ist für 90 Minuten angesetzt,

Mehr

Java Einführung ABLAUFSTEUERUNG Kapitel 3 und 4

Java Einführung ABLAUFSTEUERUNG Kapitel 3 und 4 Java Einführung ABLAUFSTEUERUNG Kapitel 3 und 4 Inhalt dieser Einheit Merkmale und Syntax der verschiedenen Kontrollstrukturen: if else switch while do while for break, continue EXKURS: Rekursion 2 Kontrollstrukturen

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 WS 2013/14 Die Vererbung ermöglicht es, neue Klassen auf der Basis von schon

Mehr

Programmieren in C/C++ und MATLAB

Programmieren in C/C++ und MATLAB Programmieren in C/C++ und MATLAB Sven Willert Sabine Schmidt Christian-Albrechts-Universität zu Kiel CAU 4-1 Übung 1) Schreiben Sie ein Programm, das die Fläche unter einer Parabel, also das Integral

Mehr

Java Vererbung. Inhalt

Java Vererbung. Inhalt Java Vererbung Inhalt 1 Zielsetzung... 2 1.1 Bewertung... 2 2 Grundlagen der Vererbung... 2 2.1 Super und Subklassen... 2 3 Überladen von Methoden... 4 3.1 Unterschiedliche Parameter... 4 3.2 Gleiche Parameter

Mehr

Programmieren von Webinformationssystemen

Programmieren von Webinformationssystemen Programmieren von Webinformationssystemen Wolfgang Gassler Databases and Information Systems (DBIS) Institute of Computer Science University of Innsbruck dbis-informatik.uibk.ac.at 1 HTML Hypertext Markup

Mehr

C- Kurs 04 Anweisungen

C- Kurs 04 Anweisungen C- Kurs 04 Anweisungen Dipl.- Inf. Jörn Hoffmann jhoffmann@informa@k.uni- leipzig.de Universität Leipzig Ins@tut für Informa@k Technische Informa@k Ausdrücke Institut für Informatik Anweisungen C-Programm

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++ Überladen von Methoden und Operatoren

Programmieren in C++ Überladen von Methoden und Operatoren Programmieren in C++ Überladen von Methoden und Operatoren Inhalt Überladen von Methoden Überladen von Operatoren Implizite und explizite Konvertierungsoperatoren 7-2 Überladen von Methoden Signatur einer

Mehr

10. Namespaces, Templates und Exceptions

10. Namespaces, Templates und Exceptions C und C++ (CPP) 10. Namespaces, Templates und Exceptions Prof. Dr. Marc Rennhard Institut für angewandte Informationstechnologie InIT ZHAW Zürcher Hochschule für angewandte Wissenschaften marc.rennhard@zhaw.ch

Mehr