8. Fehler und Ausnahmen

Größe: px
Ab Seite anzeigen:

Download "8. Fehler und Ausnahmen"

Transkript

1 8. Fehler und Ausnahmen Vorfälle während des Programmlaufs: Fehler (Error) Die Wahrscheinlichkeit des Auftretens ist hoch. z.b. Benutzereingaben Sonderfall/Ausnahme(Exception) Die Wahrscheinlichkeit des Auftretens ist eher gering. z.b. Umgang mit Dateien Für derartige Fälle sind möglichst Vorkehrungen zu treffen. Weitere Fehler sind beispielsweise: Planungsfehler, Syntaxfehler, Semantikfehler (logische Fehler)

2 Fehler(Problem) 8.1 Motivation: Beispiele für Fehler und Ausnahmen Ausnahmen Rechenoperationen Division durch 0 Addition zu großer Zahlen(int/double) Ein-/Ausgabe Unzulässige Eingabe z.b. Zeichen statt Zahl Daten/Dateien Datei nicht vorhanden/defekt Adressierung Adressierungsfehler Zeiger Unzulässiger Index (Array/String/vector) Speicher Speicher reicht nicht bei new Diskriminante negativ Determinante ist 0 Unzulässige Eingabe z.b. negative Anzahl unzulässiger Menuepunkt Datei/Liste leer bzw. Ende erreicht String/Container ohne Elemente Objekt existiert nicht Unzulässiger Index (Array/String/vector) Array zu klein für Einfügen Dr. Norbert Spangler / Grundlagen der Informatik

3 Strategien Ausgangssituation Während des Programmablaufs ist ein Fehler/Sonderfall etwa in einer Funktion aufgetreten. 1) Der Fall wird nicht bemerkt: 1.1) Mit falschen Werten weiterrechnen 1.2) Programmabsturz ohne Kommentar -> Katastrophe -> schlecht 2) Der Fall wird bemerkt sofortige Reaktion an der betroffenen Stelle (lokal) 2.1) Man löst das Problem nicht und beendet das Programm mit einer Meldung -> nicht ganz so schlecht 2.2) Man sucht eine Lösung an Ort und Stelle, wo der Fehler aufgetreten ist Dies ist die klassische Vorgehensweise -> meist unübersichtlich durch das Nebeneinander von Programmablauf und Fehlerbehandlung. Reaktion an anderer Stelle 2.3) Man beendet die Funktion und sucht eine Lösung in der aufrufenden Funktion -> Returncode erforderlich/vertagt : besser 2.4) Man sucht eine Lösung an anderer Stelle (Trennung von Ablauf und Fehlerbehandlung) -> besser Dr. Norbert Spangler / Grundlagen der Informatik

4 Ein einfaches Beispiel Es sollen 2 ganze Zahlen eingelesen und das Ergebnis der ganzzahligen Division am Bildschirm angezeigt werden. Ist der Nenner 0 liegt eine Fehlersituation vor. Ist der Zähler auch 0 soll eine besondere Warnung ausgegeben werden. Weitere Fehler wie die Eingabe unzulässiger Zeichen werden der Einfachheit halber zunächst nicht betrachtet. Dr. Norbert Spangler / Grundlagen der Informatik

5 8.2 Strategie 1: Abbruch Der gezielte Abbruch eines Programms kann über den Aufrufvon Funktionen erreicht werden void exit(int) und assert(bool) exit beendet das Programm sofort (ohne eine Meldung). Der Parameter gibt den Returncode an, welcher an das Betriebssystem weitergegeben wird. Beispiel exit(2); //Der Returncode des Programms ist 2. Beim Aufruf der Funktion assert wird eine Bedingung (Parameter) überprüft. Sofern diese nicht erfüllt ist wird das Programm mit einer Systemmeldung beendet. #include <assert.h> ist erforderlich. Beispiel: assert ( j!= 0 ); Falls der Ausdruck false ist (also im Beispiel j = 0), wirdeine Systemfehlermeldung erzeugt und das Programm beendet. Dr. Norbert Spangler / Grundlagen der Informatik

6 void main() //Berechne a/b fuer 2 Ziffern int zaehler,nenner; cout<<" 2 Zahlen eingeben "; cin>>zaehler>>nenner; if ( nenner==0 ) if ( zaehler==0 ) cout<<"0/0 nicht definiert "<<endl; exit(1); else cout<<" Division durch 0 "<<endl; exit(2); else cout<<"ergebnis "<<zaehler/nenner<<endl; Beispiel exit Das Programm wird jeweils beendet Dr. Norbert Spangler / Grundlagen der Informatik

7 Beispiel assert notwendig #include <iostream> #include <assert.h> using namespace std; void main() //Berechne a/b fuer 2 Zahlen int zaehler,nenner; cout<<" 2 Zahlen eingeben "; cin>>zaehler>>nenner; assert ( nenner!= 0 ); cout<<"ergebnis "<<zaehler/nenner<<endl; Dr. Norbert Spangler / Grundlagen der Informatik

8 void test() char antwort='n'; bool error; int zaehler,nenner; cout<<" 2 Zahlen eingeben "; cin>>zaehler>>nenner; do if ( nenner==0 ) //Fehler error=true; if ( zaehler==0 )//Sonderfall cout<<" Zaehler und Nenner 0 "<<endl; cout<<" 2 neue Zahlen eingeben (J)"; cout<<" oder Abbruch ((N)"; cin>>antwort; if ( antwort=='j') cout<<" neue Zahlen "; cin>>zaehler>>nenner; 8.3 Strategie 2: Lokale Lösung else cout<<" Nenner 0 "<<endl; cout<<" neuen Nenner eingeben (J)"; cout<<" oder Abbruch ((N)"; cin>>antwort; if ( antwort=='j') cout<<" neuer Nenner "; cin>>nenner; else error=false; while ( antwort=='j' && error); if (!error) cout<<"ergebnis "<<zaehler/nenner<<endl; else cout<<" Abbruch nach Fehleingabe"<<endl; return; Unübersichtlich wg. vieler Abfragen/Entscheidungen. Dr. Norbert Spangler / Grundlagen der Informatik

9 80 % Programmcode Für Fehler undausnahmen Nicht berücksichtigt ist dabei etwa die Eingabe von Zeichen statt Zahlen!!!. Dr. Norbert Spangler / Grundlagen der Informatik

10 8.4 Strategie 3: Verwendung von Returncodes Die Aufgabe wird in einer Funktion bearbeitet. Wird ein Fehler/Sonderfall entdeckt, dann erfolgt die Bearbeitung/Entscheidung nicht in der Funktion sondern in dem aufrufenden Programmteil. Damit gibt es kein Nebeneinander von eigentlicher Aufgabe und eventuell aufwendigen Abfragen im Fehlerfall. Notwendig ist dabei die Übermittlung entsprechender Informationen über die festgestellte Situation an dieses Programmteil, um die korrekte Bearbeitung zu ermöglichen. Üblicherweise geschieht dies über einen Returncode, der als Funktionswert der aufrufenden Funktion übergeben wird (Alternative: Referenzparameter returncode). Returncode = 0 nicht 0 kein Fehler Fehler Gibt es mehrere Fehlermöglichkeiten, so kann dies über unterschiedliche Returncodes realisiert werden. In der Funktion ist damit keine Programmcode (nur return!!!) zur Behebung des Problems erforderlich. Bzgl. der Übersichtlichkeit ist es kürzer als Strategie 1. Dr. Norbert Spangler / Grundlagen der Informatik

11 int action() //Berechne a/b fuer 2 Ziffern int zaehler,nenner; cout<<" 2 Zahlen eingeben "; cin>>zaehler>>nenner; if ( nenner==0 ) if ( zaehler==0 ) return 1; else return 2; else Beispiel cout<<"ergebnis "<<zaehler/nenner<<endl; return 0; void main() int action(); int result= action(); if ( result==0 ) cout<<" action erfolgreich aufgerufen "<<endl; else cout<<" returncode action "<<result<<endl; // Reaktion programmieren Dr. Norbert Spangler / Grundlagen der Informatik

12 Klasse string Weitere Beispiele Die Methoden find/rfind liefern bei der Suche die Position des Suchstrings als Funktionswert. Im "Fehlerfall", d.h. bei nicht erfolgreicher Suche ist der Funktionswert -1. Dies ist der Standard für Suchverfahren int main() liefert wie exit einen Returncode für das Betriebssystem bei Grafische Oberflächen bool draw( ) zeichnet beispielsweise ein Bitmap bool create( ) erzeugt ein Fenster false: hat nicht geklappt true : hat geklappt Dr. Norbert Spangler / Grundlagen der Informatik

13 8.5 Strategie 4: Exception-Handling(Ausnahmebehandlung) bool error=true; while(error) if ( ein>>i ) if ( i<0 ) // Fehler 1 else error=false;//ok-aktion else if ( ein.eof() ) //Fehler 2 else if ( ein.fail() ) // Fehler 3 else //Fehler 4 Gute Programme versuchen möglichst viele Fehler/Ausnahmen abzufangen: Hier sind es z.bsp. 4 Blöcke zu deren Behandlung und nur einer für die gewünschte Aktion. 20% Normalfall <->80% Fehler/Ausnahme -> u n ü b er s i c h t l i c h Lösung: Trennung des normalen Programablaufs, von dem Teil für die Fehler-/Ausnahmebehandlung, d.h. Zusammenfassung aller besonderen Fälle in einem Fehlerbehandlungsteil. Dies ist analog zu Strategie 3. Dr. Norbert Spangler / Grundlagen der Info rmatik

14 Exception-Handling: Idee Es wird versucht, einen Programmteil durchzuführen.dieser Programmteil wird im try Block zusammengefasst -> try In diesem werden Kontrollen eingebaut. Entdeckt man dann eine Ausnahmesituation, wird eine Ausnahme(Exception) " ausgelöst, genauer gesagt ein Objekt eines speziellen Datentyps geworfen : throw objekt; Dieses Objekt wird von einem für die Abarbeitung dieses Objekttyps zuständigen Programmteil( Exception-Handler) aufgefangen und bearbeitet: catch (objekt) Es kann mehrere Exception-Handler für unterschiedliche Objekttypen geben. Danach geht weiter mit dem ersten Befehl nach dem letzten catch Dr. Norbert Spangler / Grundlagen der Informatik

15 Exception-Handling: Ablauf try-block catch-blöcke Überwachter throw Programmabschnitt Exception Handler 1 Exception Handler n Fortsetzung Fehlerobjekt Meldung erfolgt durch die throw- Anweisung, welche die Fehlermeldung in Form eines sogenannten Fehlerobjekts in den Programmteil zur Fehlerbehandlung wirft. Das Fehlerobjekt kann von beliebigem Typ sein also int, string, oder auch ein Objekt einer speziell dafür entwickelten Fehlerklasse und wird von einem Exception- Handler in einem catch-block gefangen. Nach der Bearbeitung durch den zuständigen Teil (Exception-Handler) geht es nach dem letzten catch-block weiter Dr. Norbert Spangler / Grundlagen der Informatik

16 Exception-Handling: Durchführung 1. Kennzeichnung des Blocks, welcher Meldungen auslösen darf : try-block try // hier stehen die Befehle, die Meldungen erzeugen dürfen Eine Meldung wird üblicherweise durch if (. ) throw objekt;//wichtig ist der Typ von objekt ausgelöst. Beispiele für throw Anweisungen: throw Fehler aufgetreten ; // objekt " Fehler " ist vom Typ char* throw i; // objekt i ist vom Typ int throw c;// objekt c ist vom Typ char throw err;// objekt err ist vom Typ Fehlerklasse (z.b. Program_exception) Dr. Norbert Spangler / Grundlagen der Informatik

17 Exception-Handling: Durchführung 2. Auf den try-block folgen direkt ein oder mehrere Exception-Handler in je einem catch-block. Diese entsprechen praktisch einer Funktion mit einem Parameter vom Objekttyp, für den er zuständig ist. catch (objekttyp name) // Reaktion auf Fehlerobjekt name catch (...) reagiert auf alle anderen ausgeworfenen Fehlerobjekt- Typen, z.b. auch auf solche, die von Systemfunktionen kommen. catch ( int i ) cout<<" Fehler in Zeile "<<i<<endl; catch ( Program_error err1 )//eigene Fehlerklasse cout<<err1.what();//liefert einen Fehlertext catch ( char *text ) cout<<text<endl; catch ( ) cout<<" unbekannter Fehler"<endl; Dr. Norbert Spangler / Grundlagen der Informatik

18 Exception-Handling: einfaches Beispiel void action() Typ char* //Berechne a/b fuer 2 Ziffern try int zaehler,nenner; cout<<" 2 Zahlen eingeben "; cin>>zaehler>>nenner; if ( nenner==0 ) if ( zaehler==0 ) Typ int throw "0/0"; else throw zaehler; else cout<<"ergebnis "<<zaehler/nenner<<endl; Wesentlich übersichtlicher als Strategie 2 catch (char* t) cout<<t<<endl; catch ( int i) cout<<i<<"/0"<<endl; catch(...) cout<<"unbekannter Fehler"; cout<<" action aufgerufen "; //hier geht es weiter Für nichtvorhergesehene Fehler, beispielsweise durch Systemfunktionen Dr. Norbert Spangler / Grundlagen der Informatik

19 Exception-Handling/Beispiel void main() void action() throw(int,char*); //void action() throw(); Anmerkung: die Exception-Handler könnten auch im main stehen und die Objekte, die in action geworfen werden, fangen. Damit wäre action wesentlich verkürzt. In diesem Fall sollten im Prototyp die zu erwartenden Wurf -Objekte aufgeführt werden: z.b. void action() throw (int,char*); Damit können beispielsweise Fehler in Konstruktoren abgefangen werden. Dr. Norbert Spangler / Grundlagen der Informatik

20 8.6 Fehlerklassen Die Standarddatentypen sind selten ausreichend, um als Basis für differenzierte Exception-Handler zu dienen. Manchmal genügt char* oder string als einziger Typ, um unterschiedliche Texte mittels eines Exception-Handlers auszugeben wie: Datei existiert nicht Datei ist leer Dateiende erreicht Fehlerhafte Zeile in name.txt Fehlerhafte Daten Bei den beiden letzten Meldungungen wäre es jedoch wünschenswert, wenn elegant Zeilennummer und Zeileninhalt bzw. die Daten zusätzlich mit angezeigt würden. In so einem Fall ist es besser, Fehlerklassen zu verwenden, wo diese Daten als Eigenschaften verfügbar sind. C++ hat für Systemmeldungen eine Hierarche von (Standard-)Fehlerklassen. Diese sind abgeleitet von einer Basisklasse exception. Davon lassen sich dann eigene Fehlerklassen ableiten. Dr. Norbert Spangler / Grundlagen der Informatik

21 Standardfehlerklassen In der Bibliothek von C++ ist eine Hierarchie von Standardfehlerklassen definiert. Es gibt eine Basisklasse exception und davon abgeleitet insgesamt 13 weitere Klassen wie z.b. runtime_error, von der wiederum overflow_error abgeleitet wird usw. class exception public: exception(char*);//für Text der Meldung // weitere Konstruktoren virtual const char *what() const; ; Prinzipieller Aufbau: Konstruktor mit einem Parameter vom Typ char* als Fehlertext für Meldungen. Eine Methode what, welche diesen Fehlertext liefert. //Beispiel für Exception-Handler catch(exception e) cout<<e.what();<<endl Da innerhalb der Klasse string auch Fehler auftreten können, verwendet exception char* anstelle von string. Dr. Norbert Spangler / Grundlagen der Informatik

22 Eigene Fehlerklassen Prinzipieller Aufbau Eine eigene Fehlerklasse sollte stets als abgeleitete Klasse von exception programmiert werden, um generell mittels what auch an allen Stellen mit Exception-Handling eine qualifizierte Meldung verfügbar zu haben. Es sollten Eigenschaften für alle Daten, welche im Rahmen von Fehlermeldungen angezeigt werden sollen, vorhanden sein wie z.b. Dateiname, Zeilennummer, falsche Daten, Fallbeschreibung etc. Weiterhin sollte der auszugebende Meldungstext als char* oder string vorhanden sein. Als Methoden sind demzufolge passende Konstruktoren anzulegen, die aus den Daten den Text der Fehlermeldung erzeugen. Weiterhin eine Redefinition der Methode char * what(), gegebenenfalls auch eigene Meldungen oder get- Methoden zur Bereitstellung einzelner Daten. Dr. Norbert Spangler / Grundlagen der Informatik

23 Eigene Fehlerklassen class MeineFehlerklasse:public exception private: string text; //sonstige Daten/Objekte wie z.b. // int Zeilennummer // string dateiname // char* beschreibung public: MeineFehlerklasse( ); string message(); char* what(); // getzeilennummer(); // get Dateiname(); Dr. Norbert Spangler / Grundlagen der Informatik

24 Beispiel Fehlerklasse Data_Error class Data_Error: public exception private: string text; //Fehlertext char typ; //Merkmal in Beispiel 2 unsigned int zeilennummer; public: Data_Error(char,unsigned int); Data_Error(unsigned int); //char* what();//redefinition string message();//neue Meldung ; string Data_Error::message() stringstream s; s<<text<<" in Zeile "<<zeilennummer<<endl; return s.str(); Eine Redefinition von what, welche den Text der neuen Methode message beinhaltet, ist wegen des Typs char* umständlich. Dr. Norbert Spangler / Grundlagen der Informatik

25 Data_Error Konstruktoren Data_Error::Data_Error(char c,unsigned int i):exception("data error") text="unzulaessiger Typ "; text+=c; zeilennummer=i; Data_Error::Data_Error(unsigned int i):exception("data error") text="unzulaessige Daten"; zeilennummer=i; Hat man andere Daten wie etwa double oder ein Objekt einer Klasse XX bzw. auch Kombinationen davon lässt sich dies einfach realisieren, indem man entsprechende Eigenschaften und Konstruktoren vorsieht: Data_Error::Data_Error(double a):exception("data error") Data_Error::Data_Error(XX t):exception("data error") Data_Error::Data_Error(XX t,double a):exception("data error") Dr. Norbert Spangler / Grundlagen der Informatik

26 Fehlerklasse: File_Error File_Error ist damit eine Kopie von exception, aber eine andere Klasse!!!!! class File_Error: public exception public: File_Error(char*); ; File_Error::File_Error(char *c):exception(c) Damit liefert what die Meldung in c Dr. Norbert Spangler / Grundlagen der Informatik

27 Verschachtelung 8.7 Weitere Aspekte Bei der Abarbeitung eines Exception-Handlers im catch-block kann es natürlich wieder zu Fehlern bzw. Ausnahmesituationen kommen, die ihrerseits wieder mittels Exception-Handling abgearbeitet werden können. Es kann verschachtelt werden! Funktionen können ebenfalls Objekte werfen (-> Beispiel action), für die dann Exception- Handler außerhalb der Funktion zuständig sind. Es ist empfehlenswert, die möglichen Exceptions im Prototypen anzugeben a) void action(); // jede Exception kann ausgelöst werden b) void action throw();// keine Exception wird ausgelöst c) void action throw ( int, char*);// Typ int und char* wird ausgelöst A B E R: wird im Visual C++ Express 2010 nicht unterstützt nur a geht Angaben sinnvoll wg. Lesbarkeit. Dr. Norbert Spangler / Grundlagen der Informatik

28 Zusammenfassung Exception Handling strukturiert ein Programmteil. Der Teil für Fehler/Ausnahmen ist klar erkennbar. Jedes Fehlerobjekt (auch vom System) wird erkannt. Es kann individuell reagiert werden. Exception Handling ist plattformunabhängig (Portabilität). Man sollte Exception Handling nicht zur Steuerung der Programmlogik einsetzen. Dr. Norbert Spangler / Grundlagen der Informatik

29 8.8 Exception-Handling/Beispiel 2 Die Datei eingabe.txt enthält in jeder Zeile den Namen einer Filiale, ein Kennzeichen für den Typ und den getätigten Umsatz Gültige Typen sind die Buchstaben A K Ein Programm soll alle Filialen mit Typ C zusammen mit dem Umsatz in die Datei ausgabe.txt schreiben im csv-format. Dabei können Datei- und Datenfehler anfallen. Dr. Norbert Spangler / Grundlagen der Informatik

30 int main() unsigned int zeile=0,umsatz; string name; char typ; // try-block try fstream out("ausgabe.txt",ios::out); if ( out.fail() ) throw File_Error("ausgabe.txt kann nicht geoeffnet werden"); fstream ein; ein.open("eingabe.txt",ios::in); if ( ein.fail() ) throw File_Error("eingabe.txt kann nicht geoeffnet werden"); ein >>name>>typ>>umsatz;//erste Zeile //Verarbeitungsschleife while (!ein.eof() ) zeile++; if ( ein.fail() ) //Lesefehler throw Data_Error(zeile); if ( typ<'a' 'K'<typ ) //Typ falsch throw Data_Error(typ,zeile); //Verarbeitung if ( typ=='c' ) out<< name<<';'<<umsatz<<endl; ein >>name>>typ>>umsatz;//naechste Zeile ein.close(); out.close(); if ( out.fail() ) throw File_Error("ausgabe.txt kann nicht geschlossen werden"); Exception-Handling/Beispiel 2 // catch-block catch (File_Error d) cout<<d.what()<<endl; return 1; catch (Data_Error d) cout<<d.message()<<endl; return 2; catch (...) cout <<" unbekannter Fehler"<<endl; return 3; // hier gehts weiter cout << " das wars"<<endl; return 0; // zusätzlich möglich catch (exception e) cout<<e.what()<<endl; return 9; Dr. Norbert Spangler / Grundlagen der Informatik

31 eingabe.txt nicht vorhanden Filiale1 A Filiale2 C Filiale3 C Filiale5 X Filiale7 C Exception-Handling/Beispiel 2 Filiale1 A Filiale2 C Filiale3 C d11000 Filiale5 H Filiale7 C ausgabe.txt nach Beseitigung der Fehler Dr. Norbert Spangler / Grundlagen der Informatik

32 8.9 Exception-Handling/Beispiel 3- ohne catch/try Aufgabe: Es soll ein Text von Tastatur eingelesen werden, wobei das 2. Zeichen ein Kleinbuchstabe sein muss. Ist dies nicht der Fall soll eine Meldung ausgegeben werden. Lösung ohne catch/try -> Programmabsturz void main() string s; cin>>s; char c=s.at(1); if ( c<'a' 'z'<c ) cout<<"die Eingabe ist nicht korrekt "<<s<<endl; Dr. Norbert Spangler / Grundlagen der Informatik

33 Exception-Handling/Beispiel 3- mit catch/try void main() try string s; cin>>s; char c=s.at(1); if ( c<'a' 'z'<c ) throw c; cout<<"die Eingabe ist korrekt "<<s<<endl; catch (char cc) cout <<" Fehler "<<cc<<endl; catch(...) cout<<"sonstiger Fehler"<<endl; //Hier geht es weiter Falls das 2. Zeichen kein Kleinbuchstabe ist -> Meldung catch-block 1 Falls der String kein 2. Zeichen hat Systemmeldung durch at (!) im catch-block sonstiges abgefangen Jetzt kein Programmabsturz (bei s[1] auch Absturz / keine Exception) Dr. Norbert Spangler / Grundlagen der Informatik

34 Exception-Handling/Beispiel 3- mit exception void main() try string s; cin>>s; Falls der String kein 2. Zeichen hat Systemmeldung durch at im catch-block abgefangen und angezeigt char c=s.at(1); if ( c<'a' 'z'<c ) throw c; cout<<"die Eingabe ist korrekt "<<s<<endl; catch (char cc) cout <<" Fehler "<<cc<<endl; catch(exception e) cout<<"sonstiger Fehler"<<endl; cout<<e.what();<<endl //Hier geht es weiter Dr. Norbert Spangler / Grundlagen der Informatik

Ausnahmen. Exceptions. Definition Ausnahmen erzeugen Ausnahmen abfangen Ausnahmen weiterleiten. Dr. Beatrice Amrhein

Ausnahmen. Exceptions. Definition Ausnahmen erzeugen Ausnahmen abfangen Ausnahmen weiterleiten. Dr. Beatrice Amrhein Ausnahmen Exceptions Definition Ausnahmen erzeugen Ausnahmen abfangen Ausnahmen weiterleiten Dr. Beatrice Amrhein Definition 2 Definition: Ausnahme (Exception) In C# werden Fehler, die zur Laufzeit im

Mehr

Klausur Programmieren 2 SS 2016

Klausur Programmieren 2 SS 2016 Klausur Programmieren 2 SS 2016 Name Gruppe 1 Vorname Dauer 90 min Matrikelnummer Hilfsmittel keine Die Klausur ist mit 50 Punkten sicher bestanden. Hinweise: Formulieren Sie Ihre Lösungen auf dem Aufgabenblatt

Mehr

Grundlagen der Fehlerbehandlung. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 06: Ausnahme- und Fehlerbehandlung in Java.

Grundlagen der Fehlerbehandlung. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 06: Ausnahme- und Fehlerbehandlung in Java. Universität Osnabrück 1 Grundlagen der Fehlerbehandlung 3 - Objektorientierte Programmierung in Java Vorlesung 06: Ausnahme- und Fehlerbehandlung in Java SS 2006 Prof. Dr. F.M. Thiesing, FH Osnabrück Wenn

Mehr

1.) Behandlung von Laufzeitfehlern in Visual Basic

1.) Behandlung von Laufzeitfehlern in Visual Basic 1.) Behandlung von Laufzeitfehlern in Visual Basic Laufzeitfehler sind Fehler, die während der Programmausführung (Laufzeit) auftritt. Laufzeitfehler werden in der Regel nicht direkt durch den Programmcode,

Mehr

Klausur Programmieren 2 WS2016/17

Klausur Programmieren 2 WS2016/17 Klausur Programmieren 2 WS2016/17 Name Gruppe 1 Vorname Dauer 90 min Matrikelnummer Hilfsmittel keine Die Klausur ist mit 50 Punkten sicher bestanden. Hinweise: Formulieren Sie Ihre Lösungen auf dem Aufgabenblatt

Mehr

Programmieren II Abstrakte Klassen / Virtuelle Methoden. Programmieren II Abstrakte Klassen / Virtuelle Methoden

Programmieren II Abstrakte Klassen / Virtuelle Methoden. Programmieren II Abstrakte Klassen / Virtuelle Methoden Einleitende Bemerkungen Einleitende Bemerkungen Aspekte Aufbau von sinnvollen Klassenhierarchien Verwaltung von Objekten unterschiedlichen Typs Mitarbeiter Besonderheiten der Anwendung jeder Angehörige

Mehr

Klausur Informatik WS 2012/13

Klausur Informatik WS 2012/13 Klausur Informatik WS 2012/13 Name Gruppe 1 Vorname Dauer 90 min Matrikelnummer Hilfsmittel keine Die Klausur ist mit 50 Punkten sicher bestanden. Hinweies: Voraussetzung für die Teilnahme ist das Bestehen

Mehr

8. Referenzen und Zeiger

8. Referenzen und Zeiger 8. Referenzen und Zeiger Motivation Variable werden in C++ an speziellen Positionen im Speicher abgelegt. An jeder Position befindet sich 1 Byte. Sie sind durchnummeriert beginnend bei 0. Diese Positionen

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

Klausur Programmieren 1 SS 2017

Klausur Programmieren 1 SS 2017 Klausur Programmieren 1 SS 2017 Name Gruppe 1 Vorname Dauer 90 min Matrikelnummer Hilfsmittel keine Die Klausur ist mit 50 Punkten sicher bestanden. Hinweies: Voraussetzung für die Teilnahme ist das Bestehen

Mehr

1.5. Strukturierte Anweisungen

1.5. Strukturierte Anweisungen 1.5. Strukturierte Anweisungen Switch-Anweisung (C++): Initialisierungen dürfen nicht 'übersprungen' werden: switch (i) { int v1 = 2; // ERROR: jump past initialized variable case 1: int v2 = 3; //...

Mehr

1 Fehler-Objekte: Werfen, Fangen, Behandeln

1 Fehler-Objekte: Werfen, Fangen, Behandeln 1 Fehler-Objekte: Werfen, Fangen, Behandeln Tritt während der Programm-Ausführung ein Fehler auf, wird die normale Programm-ausführung abgebrochen und ein Fehler-Objekt erzeugt (geworfen). Die Klasse Throwable

Mehr

Hochschule Darmstadt Informatik-Praktikum SS 2017 EIT Bachelor 5. Aufgabenblatt Datenstruktur, Dateieingabe und -ausgabe

Hochschule Darmstadt Informatik-Praktikum SS 2017 EIT Bachelor 5. Aufgabenblatt Datenstruktur, Dateieingabe und -ausgabe Aufgabe 5: Bücher verwalten Für das Literaturverzeichnis einer Abschlussarbeit soll ein Programm zur Verwaltung von Bücherlisten geschrieben werden. Das Programm soll in der Lage sein, zu einem Buch die

Mehr

Einführung in die Programmierung mit C++

Einführung in die Programmierung mit C++ 1 Seite 1 Einführung in die Programmierung mit C++ Teil IV - Weiterführende Themen 11. Ausnahmebehandlung Vor-Ort Fehlerbehandlung Seite 2 Struktur (benötigt iostream und fstream header) std::ifstream

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

Grundlagen der Programmierung Prof. H. Mössenböck. 16. Ausnahmen (Exception Handling)

Grundlagen der Programmierung Prof. H. Mössenböck. 16. Ausnahmen (Exception Handling) Grundlagen der Programmierung Prof. H. Mössenböck 16. Ausnahmen (Exception Handling) Motivation Fehler können nicht immer dort behandelt werden, wo sie auftreten void p() { q(); Lösung void q() { r();

Mehr

Grundlagen der Informatik 6. Arrays I

Grundlagen der Informatik 6. Arrays I 6. Arrays I Motivation Array (konstante Länge) Speicherbereich Eingabe von Arrays Grundlagen der Informatik (Alex Rempel) 1 Motivation Beispiel: Bildschirmpixel zeichnen Auflösung 800x600, d.h. insgesamt

Mehr

! 1. Unterklassen und Vererbung! 2. Abstrakte Klassen und Interfaces! 3. Modularität und Pakete! 4. Ausnahmen (Exceptions) II.4.

! 1. Unterklassen und Vererbung! 2. Abstrakte Klassen und Interfaces! 3. Modularität und Pakete! 4. Ausnahmen (Exceptions) II.4. ! 1. Unterklassen und Vererbung! 2. Abstrakte Klassen und Interfaces! 3. Modularität und Pakete! 4. Ausnahmen (Exceptions) II.4.4 Exceptions - 1 - Ausnahmen (Exceptions( Exceptions) Treten auf, wenn zur

Mehr

15 Fehlerobjekte: Werfen, Fangen, Behandeln

15 Fehlerobjekte: Werfen, Fangen, Behandeln Tritt während der Programm-Ausführung ein Fehler auf, wird die normale Programm-ausführung abgebrochen und ein Fehlerobjekt erzeugt (geworfen). Die Klasse Throwable fasst alle Arten von Fehlern zusammen.

Mehr

15 Fehlerobjekte: Werfen, Fangen, Behandeln. Idee. Fehlerklassen. Fehlerklassen

15 Fehlerobjekte: Werfen, Fangen, Behandeln. Idee. Fehlerklassen. Fehlerklassen Idee Tritt während der Programm-Ausführung ein Fehler auf, wird die normale Programm-ausführung abgebrochen und ein Fehlerobjekt erzeugt (geworfen). Die Klasse Throwable fasst alle Arten von Fehlern zusammen.

Mehr

Programmieren - C++ Ausnahmebehandlung

Programmieren - C++ Ausnahmebehandlung Programmieren - C++ Ausnahmebehandlung Reiner Nitsch 8417 r.nitsch@fbi.h-da.de Übliche Fehlersituationen (meist in aufgerufenen Funktionen) Teilen durch 0 (Null) Vorbedingungen nicht erfüllt Indexbereich

Mehr

Kapitel 10. Programmierkurs. Grundlagen von Exceptions Behandlung von Exceptions

Kapitel 10. Programmierkurs. Grundlagen von Exceptions Behandlung von Exceptions Kapitel 10 Programmierkurs Birgit Engels Anna Schulze Zentrum für Angewandte Informatik Köln Exceptions Behandlung von Exceptions Verschiedene Exceptions Mehrere catch-anweisungen Der finally-block WS

Mehr

15 Fehlerobjekte: Werfen, Fangen, Behandeln

15 Fehlerobjekte: Werfen, Fangen, Behandeln Tritt während der Programm-Ausführung ein Fehler auf, wird die normale Programm-ausführung abgebrochen und ein Fehlerobjekt erzeugt (geworfen). Die Klasse Throwable fasst alle Arten von Fehlern zusammen.

Mehr

Kapitel 10. Programmierkurs. Grundlagen von Exceptions Behandlung von Exceptions

Kapitel 10. Programmierkurs. Grundlagen von Exceptions Behandlung von Exceptions Kapitel 10 Programmierkurs Birgit Engels Anna Schulze Zentrum für Angewandte Informatik Köln Exceptions Behandlung von Exceptions Der finally-block catch or throw WS 07/08 1/ 23 2/ 23 Grundlagen von Exceptions

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

C++ Notnagel. Ziel, Inhalt. Programmieren in C++

C++ Notnagel. Ziel, Inhalt. Programmieren in C++ C++ Notnagel Ziel, Inhalt Ich versuche in diesem Dokument noch einmal die Dinge zu erwähnen, die mir als absolut notwendig für den C++ Unterricht und die Prüfungen erscheinen. C++ Notnagel 1 Ziel, Inhalt

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

Schachtelung der 2. Variante (Bedingungs-Kaskade): if (B1) A1 else if (B2) A2 else if (B3) A3 else if (B4) A4 else A

Schachtelung der 2. Variante (Bedingungs-Kaskade): if (B1) A1 else if (B2) A2 else if (B3) A3 else if (B4) A4 else A 2.4.6. Kontrollstrukturen if-anweisung: Bedingte Ausführung (Verzweigung) 2 Varianten: if (Bedingung) Anweisung (Anweisung = einzelne Anweisung oder Block) Bedeutung: die Anweisung wird nur ausgeführt,

Mehr

Klausur Informatik I WS 2006/2007

Klausur Informatik I WS 2006/2007 Klausur Informatik I WS 2006/2007 Name Gruppe 1 Vorname Dauer 90 min Matrikelnummer Hilfsmittel keine Hinweis: sofern Sie die Rückseite eines Blattes verwenden vermerken sie dies auf der Vorderseite Nr.

Mehr

Ausnahmebehandlung. Ausnahmen werfen (auslösen) Eigene Ausnahmen definieren. Ausnahmen abfangen. Ausnahmen definieren

Ausnahmebehandlung. Ausnahmen werfen (auslösen) Eigene Ausnahmen definieren. Ausnahmen abfangen. Ausnahmen definieren Ausnahmebehandlung Ausnahmen werfen (auslösen) Eigene Ausnahmen definieren Ausnahmen abfangen Ausnahmen definieren Sinnvolle Verwendung von Ausnahmen Informatik II: Objektorientierte SW-Entwicklung, Algorithmik,

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

System.out.println("TEXT");

System.out.println(TEXT); Inhaltsübersicht - Erstes Beispiel - Datentypen - Ausdrücke und Operatoren - Schleifen / Bedinungen - Struktogramme - Grundgerüst eines Programms in JAVA - Einlesen von Daten Erstes Beispiel public class

Mehr

1.7 Fehler- und Ausnahmebehandlung

1.7 Fehler- und Ausnahmebehandlung 1.7 Fehler- und Ausnahmebehandlung Ein Beispiel: class PhoneBook { int capacity; String names[]; int numbers[]; int count; PhoneBook(int cap) { capacity = cap; names = new String[cap+1]; numbers = new

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

Lehrstuhl für Datenverarbeitung. Technische Universität München. Grundkurs C++ Typumwandlung

Lehrstuhl für Datenverarbeitung. Technische Universität München. Grundkurs C++ Typumwandlung Grundkurs C++ Typumwandlung Schlüsselwort const int a = 5; const int b = 3; a = 2; // in Ordnung b = 4; // Fehler: const Variable kann nicht verändert werden Grundkurs C++ 2 const Zeiger const int* px;

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

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 5-1 Übung Schreiben Sie ein Programm, das die Zahl π durch π = 4 4 4 4 4 4 + + +... 3 5 7 9 11

Mehr

Klassen und Objekte. Klassen sind Vorlagen für Objekte. Objekte haben. Attribute. Konstruktoren. Methoden. Merkblatt

Klassen und Objekte. Klassen sind Vorlagen für Objekte. Objekte haben. Attribute. Konstruktoren. Methoden. Merkblatt Klassen und Objekte Klassen sind Vorlagen für Objekte. Objekte haben Attribute Konstruktoren Methoden Aus einer Klasse kann man beliebig viele Objekte herstellen. Attribute bestimmen die Eigenschaften

Mehr

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

Polymorphismus 179. Function.h. #include <string> Polymorphismus 179 #include Function.h class Function { public: virtual ~Function() {}; virtual std::string get_name() const = 0; virtual double execute(double x) const = 0; }; // class Function

Mehr

Einführung in die Programmierung Wintersemester 2011/12

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

Mehr

Vererbung I. Kfz Eigenschaften und Methoden der Klasse Kfz Lkw. Pkw. Eigenschaften und Methoden der Klasse Kfz

Vererbung I. Kfz Eigenschaften und Methoden der Klasse Kfz Lkw. Pkw. Eigenschaften und Methoden der Klasse Kfz Einführung in C++ Vererbung I Durch Vererbung können aus bereits bestehenden Klassen neue Klassen konstruiert werden. Die neue abgeleitete Klasse erbt dabei die Daten und Methoden der sog. Basisklasse.

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

Objektorientierte Programmierung mit C++ SS 2007

Objektorientierte Programmierung mit C++ SS 2007 Objektorientierte Programmierung mit C++ SS 2007 Andreas F. Borchert Universität Ulm 5. Juni 2007 Polymorphismus #include Function.h class Function { public: virtual ~Function() {}; virtual std::string

Mehr

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

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf  Seite 1 von 23 Kapitel 16 Datei Aus- und Eingabe Seite 1 von 23 Datei Aus- und Eingabe - Für die Ausgabe auf Dateien und die Eingabe von Dateien werden die Streams ofstream und ifstream verwendet. - Sie sind in der Bibliothek

Mehr

8. Funktionen mit Arrays

8. Funktionen mit Arrays 8. Funktionen mit Arrays Motivation Call by Value als Übergabetechnik kommt nur bei einfachen Variablen zum Einsatz. Das Anlegen von "Kopien" ist da akzeptabel. Bei Arrays ist es dagegenweniger sinnvoll,

Mehr

15. Die Klasse string

15. Die Klasse string 15. Die Klasse string Notwendige Funktionen Erzeugen Zuweisen, Anhängen,Einfügen Löschen, Entfernen, Ersetzen Ermitteln der Größe indizierter Zugriff auf Zeichen Vergleich Suchen von Zeichen und Teil-Strings

Mehr

Programmieren in C/C++ und MATLAB

Programmieren in C/C++ und MATLAB Programmieren in C/C++ und MATLAB Christof Beyer Sven Willert Sabine Schmidt Christian-Albrechts-Universität zu Kiel CAU 7-1 Bisher eingeführt war für Namen nur der Datentyp char. Dieser erlaubt das Speichern

Mehr

Hochschule Darmstadt Informatik-Praktikum WS 2017/2018 WIng Bachelor 6. Aufgabenblatt Zeiger, verkettete Liste, Dateieingabe und -ausgabe

Hochschule Darmstadt Informatik-Praktikum WS 2017/2018 WIng Bachelor 6. Aufgabenblatt Zeiger, verkettete Liste, Dateieingabe und -ausgabe Aufgabe 6: Häuser verwalten - dynamisch Für ein Schneeräumungsunternehmen soll ein Programm zur Verwaltung von Häuserlisten geschrieben werden. Das Programm soll in der Lage sein, zu einem Haus die wichtigsten

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

C# - Einführung in die Programmiersprache Methoden. Leibniz Universität IT Services

C# - Einführung in die Programmiersprache Methoden. Leibniz Universität IT Services C# - Einführung in die Programmiersprache Methoden Leibniz Universität IT Services 02.07.12 Methoden... sind Subroutinen in einer Klasse. können einen Wert an den Aufrufer zurückgeben. verändern die Eigenschaften

Mehr

1 Organisatorisches. 2 Compilezeit- und Laufzeitfehler. 3 Exceptions. 4 Try-Catch-Finally

1 Organisatorisches. 2 Compilezeit- und Laufzeitfehler. 3 Exceptions. 4 Try-Catch-Finally Themen der Übung CoMa-Übung VI 1 Organisatorisches Compilezeit- und Laufzeitfehler 3 Try-Catch-Finally TU Berlin 8.11.01 Bewertung der OA 5 fehlerhaft, Madeleine arbeitet dran CoMa-Übung VI (TU Berlin)

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

Java : Fehlerbehandlung.

Java : Fehlerbehandlung. Java : Fehlerbehandlung Prinzip Callerklassen / Workerklassen Arbeitet... Callerklasse Arbeitet... Workerklasse Arbeitet... Arbeitet weiter... Fer7g! Prinzip Callerklassen / Workerklassen Main- Methode

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Dynamische Datenobjekte Pointer/Zeiger, Verkettete Liste Eigene Typdefinitionen 1 Zeigeroperatoren & und * Ein Zeiger ist die Speicheradresse irgendeines Objektes. Eine

Mehr

Unterlagen. CPP-Uebungen-08/

Unterlagen.  CPP-Uebungen-08/ Unterlagen http://projects.eml.org/bcb/people/ralph/ CPP-Uebungen-08/ http://www.katjawegner.de/lectures.html Kommentare in C++ #include /* Dies ist ein langer Kommentar, der über zwei Zeilen

Mehr

Übungen zur Vorlesung EINI (WS 2010) Blatt 11

Übungen zur Vorlesung EINI (WS 2010) Blatt 11 Martin Apel Informatik VI, GB5/R 431; Tel.: 4775 Nicola Beume Informatik XI, OH14/R 233; Tel.: 7704 Jürgen Mäter Informatik IV, GB5/R 402; Tel.: 2411 Dortmund, den 14. Januar 2011 Übungen zur Vorlesung

Mehr

Kap 7. Funktionen und Arrays

Kap 7. Funktionen und Arrays Kap 7. Funktionen und Arrays Elementare Algorithmen Allgemein Mathematik Text Eingabe ٧ Skalarprodukt wie Allgemein Ausgabe ٧ Länge ersetzen Summation Winkel Laenge Maximum ٧ Polynome berechnen ausschneiden

Mehr

Exceptions. CoMa-Übung VII TU Berlin. CoMa-Übung VII (TU Berlin) Exceptions / 1

Exceptions. CoMa-Übung VII TU Berlin. CoMa-Übung VII (TU Berlin) Exceptions / 1 Exceptions CoMa-Übung VII TU Berlin 7.11.013 CoMa-Übung VII (TU Berlin) Exceptions 7.11.013 1 / 1 Themen der Übung 1 Compilezeit- und Laufzeitfehler Exceptions 3 Try-Catch-Finally CoMa-Übung VII (TU Berlin)

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

Grundlagen der Informatik 4. Kontrollstrukturen I

Grundlagen der Informatik 4. Kontrollstrukturen I 4. Kontrollstrukturen I Anweisungen und Blöcke Grundlagen der Informatik (Alex Rempel) 1 Anweisungen und Blöcke Anweisungen ("statements") Immer mit Semikolon abzuschließen "Leere" Anweisung besteht aus

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

C++ - Einführung in die Programmiersprache Fehler abfangen. Leibniz Universität IT Services Anja Aue

C++ - Einführung in die Programmiersprache Fehler abfangen. Leibniz Universität IT Services Anja Aue C++ - Einführung in die Programmiersprache Fehler abfangen Leibniz Universität IT Services Anja Aue Warnungen Hinweise auf riskanten Code. Eine Kompilierung wird nicht verhindert. Um größere Fehler zu

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

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

Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++, 1. Teil MÜNSTER Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++ 1. Teil 11. April 2012 Organisatorisches MÜNSTER Übung zur Vorlesung Wissenschaftliches

Mehr

Kap 9. Bitoperationen und -strukturen

Kap 9. Bitoperationen und -strukturen Kap 9. Bitoperationen und -strukturen 9.1 Anwendung von Bits Im Gegensatz zu den üblicherweise Byte-orientierten Daten gibt es auch Bit-Anwendungsbeispiele Statusanzeigen bei Ein-/Ausgabe (Stream-Klassen)

Mehr

Klausur: Grundlagen der Informatik I, am 05. Februar 2008 Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.: Punkte:

Klausur: Grundlagen der Informatik I, am 05. Februar 2008 Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.: Punkte: Seite 1 von 8 Hiermit bestätige ich, dass ich die Übungsleistungen als Voraussetzung für diese Klausur in folgender Übung erfüllt habe. Jahr: Übungsleiter: Unterschrift: 1. Aufgabe ( / 10 Pkt.) a) Geben

Mehr

Nachname: Vorname: Matr.-Nr.: Punkte: 1. Aufgabe: ( / 25 Pkt.) Gegeben ist das folgende Struktogramm zur Berechnung von sin(x) mit Hilfe einer Reihe.

Nachname: Vorname: Matr.-Nr.: Punkte: 1. Aufgabe: ( / 25 Pkt.) Gegeben ist das folgende Struktogramm zur Berechnung von sin(x) mit Hilfe einer Reihe. Hiermit bestätige ich, dass ich die Übungsleistungen als Voraussetzung für diese Klausur in folgender Übung erfüllt habe. Jahr: Übungsleiter: Unterschrift: 1. Aufgabe: ( / 25 Pkt.) Gegeben ist das folgende

Mehr

4.2 Gleitkommazahlen. Der Speicherbedarf (in Bits) ist üblicherweise. In vielen Anwendungen benötigt man gebrochene Werte. Physikalische Größen

4.2 Gleitkommazahlen. Der Speicherbedarf (in Bits) ist üblicherweise. In vielen Anwendungen benötigt man gebrochene Werte. Physikalische Größen . Gleitkommazahlen In vielen Anwendungen benötigt man gebrochene Werte. Physikalische Größen Umrechnen von Einheiten und Währungen Jede Zahl x Q mit x 0 lässt sich folgendermaßen schreiben: x = s m e mit

Mehr

Themen. Formatierte und unformatierte Eingabe Bedingungsoperator Namespaces Kommandozeilenargumente

Themen. Formatierte und unformatierte Eingabe Bedingungsoperator Namespaces Kommandozeilenargumente Themen Formatierte und unformatierte Eingabe Bedingungsoperator Namespaces Kommandozeilenargumente Formatierte Eingabe mit cin Die Formatierung der Eingabe ist der Ausgabe sehr ähnlich: Die Flags werden

Mehr

7. Übung Informatik II - Objektorientierte Programmierung

7. Übung Informatik II - Objektorientierte Programmierung 7. Übung Informatik II - Objektorientierte Programmierung 29. Mai 2015 Inhalt 1 2 3 Übersicht 1 2 3 Idee Menschen nehmen die Welt in Form von Objekten wahr manche Objekte haben gleiche Eigenschaften, hierüber

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

Programmieren I. Fehlerbehandlung Exceptions. Heusch 2. Bd, 3 Ratz 10. Institut für Angewandte Informatik

Programmieren I. Fehlerbehandlung Exceptions. Heusch 2. Bd, 3 Ratz 10.  Institut für Angewandte Informatik Programmieren I Fehlerbehandlung Exceptions Heusch 2. Bd, 3 Ratz 10 KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft www.kit.edu Exceptions und ihre Behandlung Exception - Ausnahmebedingung

Mehr

7. Grundlagen von Funktionen

7. Grundlagen von Funktionen 7. Grundlagen von Funktionen Funktionen in C++ Bestandteile eines C++ - Programms C++ Kern Standardbibliothek Anwender Sonstiges vordefinierte Datentypen, Operatoren, Befehle vordefinierte Funktionen (und

Mehr

Vorlesung 10. Sitzung Grundlegende Programmiertechniken

Vorlesung 10. Sitzung Grundlegende Programmiertechniken Vorlesung 10. Sitzung Grundlegende Programmiertechniken Wintersemester 2007/2008 Dozent Nino Simunic M.A. Computerlinguistik, Campus DU Grundlegende Programmiertechniken, WS 2007/2008 Objektorientierte

Mehr

Grundlagen der Informatik 2. Typen

Grundlagen der Informatik 2. Typen Grundlagen der Informatik 2. Typen Speicher, Speicherbedarf Ein-/Ausgabe Grundlagen der Informatik (Alex Rempel) 1 Wiederholung // root calculation #include #include using namespace

Mehr

c) Zur Ausgabe der Transaktion soll statt print der Operator << verwendet werden.geben Sie die dazu nötigen Änderungen an.

c) Zur Ausgabe der Transaktion soll statt print der Operator << verwendet werden.geben Sie die dazu nötigen Änderungen an. Klausur OOP SS2001 (Gampp) ufgabe 1 (22 Punkte) a) Während einer bargeldlosen Giro-ank Transaktion können eträge zwischen Währungen konvertiert werden. Eine Klasse Transaktion soll solche uchungen beschreiben

Mehr

LibMacAddressDB. Version 1.0. Marko Schröder

LibMacAddressDB. Version 1.0. Marko Schröder Technische LibMacAddressDB Dokumentation Version 1.0 Marko Schröder 1115063 Inhalt LibMacAddressDB... 3 Einleitung... 3 Bereitgestellte Variablen... 3 Bereitgestellte Methoden... 3 UML... 5 LibMacAddressDB

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

Inhalt Streams Eingabe / Ausgbe in C Dateizugriff in C Eingabe / Ausgabe in C++ Dateizugriff in C++ Error Handling

Inhalt Streams Eingabe / Ausgbe in C Dateizugriff in C Eingabe / Ausgabe in C++ Dateizugriff in C++ Error Handling Input / Output in C, C++ Inhalt Streams Eingabe / Ausgbe in C Dateizugriff in C Eingabe / Ausgabe in C++ Dateizugriff in C++ Error Handling Page 1 Ausgaben in C,C++ - generell Fuer C basierte Ausgaben:

Mehr

Grundlagen der Programmentwicklung

Grundlagen der Programmentwicklung Informatik für Elektrotechnik und Informationstechnik Benedict Reuschling benedict.reuschling@h-da.de Hochschule Darmstadt Fachbereich Informatik WS 2013/14 Über C++ Über C++ C++ ist eine in der Industrie

Mehr

Thema heute: Vererbung und Klassenhierarchien. Abgeleitete Klassen. Vererbung von Daten und Funktionen. Virtuelle Funktionen

Thema heute: Vererbung und Klassenhierarchien. Abgeleitete Klassen. Vererbung von Daten und Funktionen. Virtuelle Funktionen 1 Thema heute: Vererbung und Klassenhierarchien Abgeleitete Klassen Vererbung von Daten und Funktionen Virtuelle Funktionen 2 Vererbung oft besitzen verschiedene Datentypen einen gemeinsamen Kern Beispiel:

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

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

II. Grundlagen der Programmierung. Beispiel: Merge Sort. Beispiel: Merge Sort (Forts. ) Beispiel: Merge Sort (Forts. )

II. Grundlagen der Programmierung. Beispiel: Merge Sort. Beispiel: Merge Sort (Forts. ) Beispiel: Merge Sort (Forts. ) Technische Informatik für Ingenieure (TIfI) WS 2006/2007, Vorlesung 9 II. Grundlagen der Programmierung Ekkart Kindler Funktionen und Prozeduren Rekursion Datenstrukturen Merge S ( split, s, merge ) Beispiel:

Mehr

Hochschule Darmstadt Informatik-Praktikum WS 2016/2017 WIng Bachelor 4. Aufgabenblatt Modularisierung, Funktionen, Unterprogramme

Hochschule Darmstadt Informatik-Praktikum WS 2016/2017 WIng Bachelor 4. Aufgabenblatt Modularisierung, Funktionen, Unterprogramme Ziele sind das Arbeiten mit Funktionen, sowie - einfache Verzweigung (if else) - Alternativen switch case - einfache Schleifen (while oder do while) Aufgabe 4: Diese Aufgabe basiert auf der Aufgabe 3.

Mehr

Lösung der OOP-Prüfung WS12/13

Lösung der OOP-Prüfung WS12/13 2.1.2013 Lösung der OOP-Prüfung WS12/13 1. Aufgabe a) Da der Konstruktor im protected-bereich steht, können keine eigenständigen Objekte der Klasse angelegt werden. Durch den protected-konstruktor wird

Mehr

3 Grundstrukturen eines C++ Programms anhand eines Beispiels

3 Grundstrukturen eines C++ Programms anhand eines Beispiels 3 Grundstrukturen eines C++ Programms anhand eines Beispiels 3.1 Einige Grundbegriffe Mit Hilfe eines Programmes wird dem Computer mitgeteilt, wie er eine bestimmte Aufgabe bearbeiten soll. Es besteht

Mehr

- Was ist eine Ausnahme, und warum kümmere ich mich darum? - Benutzen von Ausnahmen - Vordefinierte Ausnahmeklassen - Eigene Ausnahmeklassen

- Was ist eine Ausnahme, und warum kümmere ich mich darum? - Benutzen von Ausnahmen - Vordefinierte Ausnahmeklassen - Eigene Ausnahmeklassen Ausnahmebehandlung - Was ist eine Ausnahme, und warum kümmere ich mich darum? - Benutzen von Ausnahmen - Vordefinierte Ausnahmeklassen - Eigene Ausnahmeklassen - Besondere Fehlerbehandlungsfunktionen -

Mehr

Grundlagen der Informatik 5. Kontrollstrukturen II

Grundlagen der Informatik 5. Kontrollstrukturen II 5. Kontrollstrukturen II Schleifen Sprünge Grundlagen der Informatik (Alex Rempel) 1 Schleifen Schleifen allgemein und in C++ Schleifen (Loops) ermöglichen die Realisierung sich wiederholender Aufgaben

Mehr

Wo und wie lange leben Objekte? globale Objekte lokale Objekte dynamische Objekte

Wo und wie lange leben Objekte? globale Objekte lokale Objekte dynamische Objekte Wo und wie lange leben Objekte? globale Objekte lokale Objekte dynamische Objekte entstehen durch... globale Objektvereinbarung: T o; blocklokale Objektvereinbarung: {.. T o;.. durch expliziten Aufruf

Mehr

virtual Wertpapier& operator=(const Wertpapier&); // VIRTUELLE ZUWEISUNG protected: static enum {wortfeldlaenge = 20}; char* name_z; double kurs; };

virtual Wertpapier& operator=(const Wertpapier&); // VIRTUELLE ZUWEISUNG protected: static enum {wortfeldlaenge = 20}; char* name_z; double kurs; }; C++ für Anfänger des Programmierens Rieckeheer GSO-Hochschule Nürnberg März 2008 174 a neu Vor Kapitel 24 ist folgender Text einzufügen. Das folgende Programm variiert das Programm VIRTfunktion3.cpp und

Mehr

Computergrundkenntnisse und Programmieren, WS 07/08, Übung 11: Klassen der Standardbibliothek 2

Computergrundkenntnisse und Programmieren, WS 07/08, Übung 11: Klassen der Standardbibliothek 2 Computergrundkenntnisse und Programmieren, WS 07/08, Übung 11: Klassen der Standardbibliothek 2 Neben vector ist list die zweite wichtige Containerklasse. Um unsere Kenntnisse von Containerklassen zu erweitern,

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

Kapitel 6: Dynamische Speicherverwaltung

Kapitel 6: Dynamische Speicherverwaltung Kapitel 6: Dynamische Speicherverwaltung Dieses Kapitel beschreibt die Operatoren new und delete, mit denen dynamisch Speicher reserviert und freigegeben wird. Außerdem wird im Detail eingegangen auf:

Mehr

Kap 09. Funktionen/Ergänzungen

Kap 09. Funktionen/Ergänzungen Kap 09. Funktionen/Ergänzungen 9.1 Inline-Funktionen Der Mechanismus der Parameterübergabe hat einen "hohen" organisatorischen Aufwand z.b. durch kopieren der Parameteretc. Ist die Funktion vergleichsweise

Mehr

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

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf  Seite 1 von 25 Kapitel 9 Schleifen Seite 1 von 25 Schleifen - Schleifen werden zur wiederholten Ausführung von Anweisungen verwendet. - Es werden drei Arten von Schleifen unterschieden: o for -Schleife o while -Schleife

Mehr

1 Aufgaben 1.1 Umgebungsvariable setzen: CLASSPATH

1 Aufgaben 1.1 Umgebungsvariable setzen: CLASSPATH 1 Aufgaben 1.1 Umgebungsvariable setzen: CLASSPATH Die Umgebungsvariable CLASSPATH kann im Hamster-Simulator sowohl für Compiler als auch für die Ausführung des Hamster-Programms gesetzt werden: Hierdurch

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