Fehler die bei der Programmerstellung passieren können teilweise vom Compiler erkannt werden
|
|
- Greta Michel
- vor 8 Jahren
- Abrufe
Transkript
1 Exceptions Fehler die bei der Programmerstellung passieren können teilweise vom Compiler erkannt werden int a; double b=10; a = 10 * b; System.out.println(a); Fehler die während der Programmausführung auftreten können in Java mit Hilfe von Ausnahmen (Exceptions) systematisch behandelt werden Bezeichnungen Exception Ausnahme, die durch das Programm zur Laufzeit verursacht wird Throwing Das Auslösen einer Ausnahme Catching Das Behandeln einer Ausnahme Error: possible loss of precision found : double required: int a = 10*b; ^ Eine Exception ist ein Ereignis, dass während der Programmausführung auftritt und den normalen Programmfluss stört Mit Hilfe von Exceptions kann Programmcode zur Fehlerbehandlung von normalem Programmcode getrennt werden 1 Grundprinzip des Exception-Mechanismus 1. Ein Laufzeitfehler oder eine vom Entwickler gewollte Bedingung löst eine Ausnahme aus 2. Diese kann von dem Programmteil, in dem sie ausgelöst wurde, bearbeitet werden, oder weiter gegeben werden 3. Wird die Ausnahme weiter gegeben, hat der Empfänger der Ausnahme erneut die Möglichkeit, sie entweder zu behandeln oder aber weiter zu geben 4. Wird die Ausnahme von keinem Programmteil behandelt, führt sie zum Abbruch des Programms & zur Ausgabe einer Fehlermeldung main(...) method1(...) Fehler weitergeben method2(...) method3(...) Fehler weitergeben Fehler weitergeben Fehler weitergeben (Programmabbruch) Weitergabe von Ausnahmen in Programmieren 2 2 Exception in Java Die Behandlung von Exceptions erfolgt in Java mit Hilfe der try-catch Anweisung Schematisch: public class baseconvert public static void main(string[] args) int i, base=0; try{ Anweisung;... catch (Ausnahmetyp x) { Anweisung;... Anweisungen, bei deren Ausführung ein Fehler des Typs Ausnahmetyp auftreten kann Bei Fehler wird die normale Programmausführung unterbrochen und erste Anweisung nach catch-klausel mit passendem Ausnahmetyp ausgeführt for (base=10; base>=2; --base) { i = Integer.parseInt( 40,base); System.out.println( 40 base +base+ = +i); Ausgabe: 40 base 10 = base 9 = base 8 = base 7 = base 6 = base 5 = 20 Exception in thread main java.lang.numberformatexception: 40 at java.lang.integer.parseint(compiled Code) at baseconvert.main(compiled Code) 3 4
2 (korrigierte Version) public class BaseConvertExcept public static void main(string[] args) int i, base=0; try { for (base=10; base>=2; --base) { i = Integer.parseInt( 40,base); System.out.println( 40 base +base+ = +i); catch (NumberFormatException e) { System.out.println( 40 ist keine Zahl zur Basis +base); Programmsequenz, die Fehler verursacht wird in try-catch Anweisung eingeschlossen Ausgabe: 40 base 10 = base 9 = base 8 = base 7 = base 6 = base 5 = ist keine Zahl zur Basis 4 5 Das Fehlerobjekt In der catch-klausel wird Die Art des abzufangenden Fehlers definiert Ein Parameter übergeben, der beim Auftreten der Ausnahme ein Fehlerobjekt übernimmt Der Parameter ist ein Fehlerobjekt, dass beim Auftreten der Ausnahme vom Aufrufer der Ausnahme erzeugt wird an die catch-klausel übergeben wird Der Parameter hat die folgenden Methoden String getmessage()» Gibt den ausführlichen Fehlertext zurück void printstacktrace()» Druckt einen Auszug aus dem Laufzeit-Stack String tostring()» Gibt den Fehlertext zurück try {... catch (Exception e) {... String s = Fehler aufgetreten ; System.out.println(s); System.out.println( Ursache: ); System.out.println( Lang: ); System.out.println(e.getMessage()); System.out.println( Kurz: ); System.out.println(e.toString()); System.out.println( Laufzeit-Stack: ); System.out.println(e.printStackTrace()) ;... Fehlerobjekt 6 public class BaseConvertExcept2 public static void main(string[] args) { int i, base=0; try { for (base=10; base>=2; --base) { i = Integer.parseInt( 40,base); System.out.println( 40 base +base+ = +i); catch (NumberFormatException e) { System.out.println( Fehler aufgetreten ); System.out.println( Ursache: +e.getmessage()); e.printstacktrace(); Ausgabe: 40 base 10 = base 9 = base 8 = base 7 = base 6 = base 5 = 20 Fehler aufgetreten Ursache: For input string: 40 java.lang.numberformatexception: For input string: 40 at.java.lang.numberformatexception.forinputstring(numberformatexception.java:48) at java.lang.integer.parseint(integer.java:447) at baseconvertexcept2.main(baseconvertexcept2.java:8) 7 Fortfahren nach Fehlern Die Reaktion auf eine Ausnahme muss nicht zwangsweise im Beenden des Programms bestehen: public class BaseConvertExcept3 public static void main(string[] args) int i, base=0; for (base=10; base>=2; --base) { try { i = Integer.parseInt( 40,base); System.out.println( 40 base +base+ = +i); catch (NumberFormatException e) { System.out.println( 40 ist keine Zahl zur Basis +base); Ausgabe:40 base 10 = base 9 = base 8 = base 7 = base 6 = base 5 = ist keine Zahl zur Basis 4 40 ist keine Zahl zur Basis 3 40 ist keine Zahl zur Basis 2 8
3 Mehr als eine catch-klausel Innerhalb eines try-blocks können mehrere unterschiedliche Ausnahmen auftreten Ein Programm kann auf verschiedene Fehler reagieren, indem es mehr als eine catch-klausel verwendet Jede catch-klausel fängt die Fehler ab, die zum Typ des angegebenen Fehlerobjekts zuweisungskompatibel sind Die einzelnen catch-klauseln werden in der Reihenfolge ihres Auftretens abgearbeitet public class BaseConvertExcept4 public static void main(string[] args) { int i, j, base=0; String[] numbers = new String[3]; numbers[0]= 10 ; numbers[1]= 20 ; numbers[2]= 30 ; try { for (base=10; base>=2; --base) { for (j=0; j<=3; ++j) { i = Integer.parseInt(numbers[j],base); System.out.println(numbers[j]+ base + = +i); catch (IndexOutOfBoundsException e1) { System.out.println( ->IndexOutOfBoundsException: +e1.tostring()); catch (NumberFormatException e2) { System.out.println( ->NumberFormatException: +e2.tostring()); Ausgabe: 10 base 10 = base 10 = base 10 = 30 ->IndexOutOfBoundsException: java.lang.arrayindexoutofboundsexception: Die finally-klausel Als letzter Bestandteil einer try-catch Anweisung kann der Befehl finally stehen finally markiert einen Bereich, der nach Betreten einer try- Anweisung immer ausgeführt wird, insbesondere Wenn das normale Ende des try-blocks erreicht wurde Wenn eine Ausnahme aufgetreten ist, die durch eine catch-klausel behandelt wurde Wenn eine Ausnahmen aufgetreten ist, die nicht durch eine catch-klausel behandelt wurde Wenn der try-block durch eine Sprunganweisung break, continue, return verlassen werden soll Die finally-klausel ist der ideale Ort für Aufräumarbeiten Dateien schließen Ressourcen (Speicher) freigeben public class BaseConvertExcept5 public static void main(string[] args) int i, base=0; try { for (base=10; base>=2; --base) { i = Integer.parseInt( 40,base); System.out.println( 40 base + = + i); catch (NumberFormatException e) { System.out.println( 40 ist keine Zahl zur Basis +base); finally { System.out.println( Jetzt ist der Versuch vorbei ); Ausgabe: 40 base 10 = base 9 = base 8 = base 7 = base 6 = base 5 = ist keine Zahl zur Basis 4 Jetzt ist der Versuch vorbei 12
4 Assertion (Zusicherung) Eine Assertion (Zusicherung) ist eine Aussage über den Zustand eines Algorithmus oder eines Programms an einer bestimmten Stelle Assertions dienen dazu, bestimmte Annahmen über den Zustand eines Algorithmus (Programms) zu verifizieren (und sicherzustellen, daß diese eingehalten werden) ja min<-x x<y? nein min<-y x"y min=minimum von x und y if(x<y) { // x<y min = x; else { // (x<y) d.h. x>=y min = y; 13 Assertions in Java Seit JDK 1.4 gibt es in Java die assert-anweisung Mit assert kann an bestimmten Stellen im Programm ein logischer Ausdruck plaziert werden, von dem man annimmt, dass er immer wahr ist Ist der logische Ausdruck (wie angenommen) wahr, läuft das Programm weiter falsch, wird ein Ausnahme vom Typ AssertionError ausgelöst Syntax: assert ausdruck1 [: ausdruck2]; ausdruck1 muß vom Typ boolean sein (sonst Compilerfehler) ausdruck2 darf von beliebigem Typ sein Fehlt ausdruck2 wird bei Nichterfülltsein von ausdruck1 ein AssertionError mit leerer Fehlermeldung erzeugt Existiert ausdruck2 dient er als Meldungstext für das Fehlerobjekt 14 Assertion in Java Da der logische Ausdruck einer Assertion immer wahr ist, solange das Programm korrekt läuft, wird er auch Invariante genannt Eine assert-anweisung dient dazu, bestimmte Annahmen über den Programmzustand zu verifizieren und sicherzustellen, dass diese eingehalten werden : Überprüfen, ob eine Variable nicht-negativ ist assert x>=0; Programm überprüft die Bedingung x>=0 und fährt fort, wenn sie erfüllt ist Ist die Bedingung nicht erfüllt, d.h. gilt x<0, wird eine Ausnahme ausgelöst Vorteile von assert-anweisungen assert-anweisungen haben gegenüber if-anweisungen die folgenden Vorteile Der Programmcode ist kürzer Man erkennt sofort, dass es sich um einen Korrektheits-Check handelt und nicht um eine Verzweigung zur Steuerung des Programmablaufs Assertions lassen sich zur Laufzeit wahlweise an- oder ausschalten Im Gegensatz zu einfachen if-anweisungen verursachen Assertions damit praktisch keine Verschlechterung des Laufzeitverhaltens wenn sie abgeschaltet sind 15 16
5 An- und Abschalten von Assertion Aus Kompatibilitätsgründen (ältere JDKs) sind Assertions sowohl im Compiler als auch im Interpreter standarmäßig deaktiviert Assertions mit Eclipse Setzen der Compiler Optionen in Eclipse Um Assertions mit Eclipse zu nutzen muss mindestens JDK 1.4 eingestellt sein Um Quellcode zu übersetzen, der assert-anweisugen enthält, muß dem Compiler (ab V. 1.4) die Option -source 1.4 (oder höher) übergeben werden Ohne Option -source 1.4 gibt es eine Fehlermeldung: Bis 1.4: Syntaxfehler Ab 1.4: assert ist Schlüsselwort und darf nicht als Bezeichner verwendet werden mindestens JDK 1.4 ausgewählt Standard Compiler-Einstellungen Um ein Programm laufen zu lassen, kennt der Java-Interpreter ab Version 1.4 die Kommandozeilenoptionen -enableassertions (-ea) -disableassertions (-da) Assertion in Eclipse Setzen der Interpreter Optionen in Eclipse Die Interpreter-Options werden im Run-Menü eingetragen Zwei Assertions um sicherzustellen, dass mindestens zwei Kommandozeilenargumente übergeben wurden das zweite von ihnen nicht Null ist Enable Assertions public class AssertionExample public static void main(string[] args) assert args.length >=2; int i1 = Integer.parseInt(args[0]); int i2 = Integer.parseInt(args[1]); assert i2 = 0 : Division by O not allowed ; System.out.println(i1 + / + i2 + = + (i1/i2)); 19 Mit einem Java-Compiler der Version >=1.4 kann obiges übersetzt werden mit javac -source 1.4 AssertionExample.java Mit aktivierten Assertions ausgeführt werden mit java -ea AssertionExample 20
6 Aufruf des s Aufruf von java -ea AssertionExample liefert Exception in thread "main" java.lang.assertionerror at AssertionExample.main(AssertionExample.java:6) Aufruf von java -ea AssertionExample 17 0 liefert Exception in thread "main" java.lang.assertionerror: Division by O not allowed at AssertionExample.main(AssertionExample.java:9) Aufruf von java -ea AssertionExample 12 6 liefert Anwendung von Assertions Es ist nicht sinnvoll die Überprüfung der Anzahl der Kommandozeilenparameter zur Laufzeit abzuschalten Ein Programm kann keinerlei (sinnvolle) Annahmen darüber machen, ob die Anzahl korrekt ist Die Überprüfung der Anzahl der übergebenen Kommandozeilenparameter sollte daher nicht mittels Assertions geschehen 12/6=2 Aufruf von java -da AssertionExample 17 0 liefert Exception in thread "main" java.lang.arithmeticexception: / by zero at AssertionExample.main(AssertionExample.java:10) Der Einsatz von Assertions ist immer dann sinnvoll, wenn das Nichterfülltsein einer Assertion einen Programmierfehler aufzeigt und nicht etwa fehlerhafte Eingabe(-Daten) Anwendungsbeispiele Verwendung von Pre- und Post-Conditions Preconditions Z.B. Bedingungen an die Parameter einer Methode, die vor dem Methodenaufruf erfüllt sein müssen Postconditions Bedingungen, die am Ende einer Methode erfüllt sein müssen Mit Hilfe von Pre- und Post-Conditions kann man sicherstellen, dass eine Methode bei korrekten Eingabewerten (durch Preconditions abgesichert) auch korrekte Ergebnisse (durch Postconditions abgesichert) liefert können Schleifeninvarianten (Bedingungen, die am Anfang oder Ende bei jedem Schleifendurchlauf erfüllt sein müssen) überprüft werden Markierung der toten Zweige in if- oder case-anweisungen, die normalerweise niemals erreicht werden sollten Anstatt eines Kommentars der Art // Kann niemals erreicht werden kann eine Assertion mit dem Argument false gesetzt werden Wird der Programmzweig später doch einmal aufgrund eines Programmfehlers durchlaufen, geschieht dies nicht unerkannt, sondern das Programm liefert eine Fehlermeldung und zeigt den Ort des Problems an 23 (I) public class BubbleAssert { static int[] data = new int [100]; static int len=0; static void add(int value) { // Precondition assert full(); // Implementation data[len++]=value; //Postcondition assert empty(); static boolean empty() { return len<=0; static boolean full() { return len>=data.length; 24
7 (II) static boolean sorttwoelements(int pos1, int pos2) //Preconditions assert (pos1 >= 0 && pos1 < len); assert (pos2 >= 0 && pos2 < len); // Implementation boolean ret = false; if(data[pos1]>data[pos2]) { int tmp = data[pos1]; data[pos1] = data[pos2]; data[pos2] = tmp; ret = true; // Postcondition assert data[pos1] <= data[pos2] : "Sorting error"; return ret; (III) static void bubblesort() { if(empty()) { int cnt = 0; while (true) { cnt++; // loop invariant assert cnt <len: "To many iterations"; // Implementation boolean sorted = true; for(int i=1; i<len; ++i) if(sorttwoelements(i-1,i)) sorted = false; if(sorted) break; public static void main(string[] args) { for (int i=9; i>=0; i--) add(i); bubblesort(); for(int i=0; i<10; i++) Out.print(data[i]+" "); Nebeneffekte und Kompatibilität Ausdrücke in Assertions sollten keinen Code enthalten, der Variablen verändert (um Nebeneffekte zu vermeiden) Werden die Variablen nur innerhalb einer Assertion verwendet, kann es sinnvoll sein, dass Assertions Variablen auch verändern : Schleifeninvarianten Assertions funktionieren nur auf Systemen die mindestens JDK 1.4 unterstützen 27
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
MehrAbschnitt 7: Weitere Konzepte der oo Programmierung in Java
Abschnitt 7: Weitere Konzepte der oo Programmierung in Java 7. Weitere Konzepte der oo Programmierung in Java 7.1 Peer Kröger (LMU München) Einführung in die Programmierung WS 14/15 596 / 627 Überblick
MehrSEP 114. Design by Contract
Design by Contract SEP 114 Design by Contract Teile das zu entwickelnde Programm in kleine Einheiten (Klassen, Methoden), die unabhängig voneinander entwickelt und überprüft werden können. Einheiten mit
MehrProgrammierkurs Java
Programmierkurs Java Dr. Dietrich Boles Aufgaben zu UE16-Rekursion (Stand 09.12.2011) Aufgabe 1: Implementieren Sie in Java ein Programm, das solange einzelne Zeichen vom Terminal einliest, bis ein #-Zeichen
MehrEinfü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
MehrKapitel 9. Ausnahmebehandlung in Java. Skript zur Vorlesung Einführung in die Programmierung
LUDWIG- MAXIMILIANS- UNIVERSITY MUNICH DEPARTMENT INSTITUTE FOR INFORMATICS DATABASE Kapitel 9 Ausnahmebehandlung in Java Skript zur Vorlesung Einführung in die Programmierung im Wintersemester 2012/13
MehrJava 7. Elmar Fuchs Grundlagen Programmierung. 1. Ausgabe, Dezember 2011 JAV7
Java 7 Elmar Fuchs Grundlagen Programmierung 1. Ausgabe, Dezember 2011 JAV7 5 Java 7 - Grundlagen Programmierung 5 Kontrollstrukturen In diesem Kapitel erfahren Sie wie Sie die Ausführung von von Bedingungen
MehrBeispiel: 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
MehrDistributed Computing Group
JAVA TUTORIAL Distributed Computing Group Vernetzte Systeme - SS 06 Übersicht Warum Java? Interoperabilität grosse und gut dokumentierte Library weit verbreitet Syntax sehr nahe an C Erfahrung: Java wird
MehrÜbungsblatt 3: Algorithmen in Java & Grammatiken
Humboldt-Universität zu Berlin Grundlagen der Programmierung (Vorlesung von Prof. Bothe) Institut für Informatik WS 15/16 Übungsblatt 3: Algorithmen in Java & Grammatiken Abgabe: bis 9:00 Uhr am 30.11.2015
MehrEinführung in die Programmierung Blockkurs Java
Michael Bader 8. 12. April 2002 Freitag Inhaltsübersicht Exceptions und Errors Ausnahmebehandlung: try/catch/finally Threads Zugriffskontrolle bei gemeinsamen Variablen: synchronized, wait(), notify()
MehrGrundlagen 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Überblick. Peer Kröger (LMU München) Einführung in die Programmierung WS 16/ / 854
Überblick 9. Weitere Konzepte der oo Programmierung in Java 9.1 Vererbung, abstrakte Klassen, Polymorphismus 9.2 Interfaces 9.3 9.4 Polymorphie versus Typsicherheit Peer Kröger (LMU München) Einführung
MehrEinfache Arrays. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung
Annabelle Klarl Zentralübung zur Vorlesung Einführung in die Informatik: http://www.pst.ifi.lmu.de/lehre/wise-13-14/infoeinf WS13/14 Action required now 1. Smartphone: installiere die App "socrative student"
MehrEs sollte die MS-DOS Eingabeaufforderung starten. Geben Sie nun den Befehl javac ein.
Schritt 1: Installation des Javacompilers JDK. Der erste Start mit Eclipse Bevor Sie den Java-Compiler installieren sollten Sie sich vergewissern, ob er eventuell schon installiert ist. Gehen sie wie folgt
MehrJava: 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
MehrErwin Grüner 09.02.2006
FB Psychologie Uni Marburg 09.02.2006 Themenübersicht Folgende Befehle stehen in R zur Verfügung: {}: Anweisungsblock if: Bedingte Anweisung switch: Fallunterscheidung repeat-schleife while-schleife for-schleife
MehrZuverlässigkeit von Programmen: Behandlung von Ausnahmesituationen
Zuverlässigkeit von Programmen: Behandlung von Ausnahmesituationen 6.1 Behandlung von Ausnahmesituationen 6.3 Die Zusicherungsanweisung 6.1 Behandlung von Ausnahmesituationen 6-1 ArithmeticException import
MehrJava Kurs für Anfänger Einheit 5 Methoden
Java Kurs für Anfänger Einheit 5 Methoden Ludwig-Maximilians-Universität München (Institut für Informatik: Programmierung und Softwaretechnik von Prof.Wirsing) 22. Juni 2009 Inhaltsverzeichnis Methoden
MehrPakete dienen dazu, die Software eines Projektes in größere inhaltlich zusammengehörige Bereiche mit eigenem Namen einzuteilen (siehe Java API).
Paketdeklaration Paketdeklaration package Bezeichner ; Pakete dienen dazu, die Software eines Projektes in größere inhaltlich zusammengehörige Bereiche mit eigenem Namen einzuteilen (siehe Java API). Ein
MehrJava-Programmierung mit NetBeans
Java-Programmierung mit NetBeans Steuerstrukturen Dr. Henry Herper Otto-von-Guericke-Universität Magdeburg - WS 2012/13 Steuerstrukturen Steuerstrukturen Verzweigungen Alternativen abweisende nichtabweisende
MehrClient-Server-Beziehungen
Client-Server-Beziehungen Server bietet Dienste an, Client nutzt Dienste Objekt ist gleichzeitig Client und Server Vertrag zwischen Client und Server: Client erfüllt Vorbedingungen eines Dienstes Server
MehrII. 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
MehrErster Bug: eine Motte
SOFTWAREFEHLER Der erste Bug Erster Bug: eine Motte Der Begriff Bug (deutsch: Motte) stammt aus dem Jahre 1945, als Ingenieure in einem Schaltrelais eines Computers (Harvard Mark II-System) eine Motte
MehrÜbungen 19.01.2012 Programmieren 1 Felix Rohrer. Übungen
Übungen if / else / else if... 2... 2 Aufgabe 2:... 2 Aufgabe 3:... 2 Aufgabe 4:... 2 Aufgabe 5:... 2 Aufgabe 6:... 2 Aufgabe 7:... 3 Aufgabe 8:... 3 Aufgabe 9:... 3 Aufgabe 10:... 3 switch... 4... 4 Aufgabe
MehrDer Aufruf von DM_in_Euro 1.40 sollte die Ausgabe 1.40 DM = 0.51129 Euro ergeben.
Aufgabe 1.30 : Schreibe ein Programm DM_in_Euro.java zur Umrechnung eines DM-Betrags in Euro unter Verwendung einer Konstanten für den Umrechnungsfaktor. Das Programm soll den DM-Betrag als Parameter verarbeiten.
MehrJavakurs zu Informatik I. Henning Heitkötter
Javakurs zu Informatik I Arrays vergleichen Implementieren Sie folgende Methode, die prüft, ob die Elemente der beiden Arrays an jeder Position übereinstimmen: public static boolean identisch(int[] a,
MehrBinäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen
Binäre Bäume 1. Allgemeines Binäre Bäume werden grundsätzlich verwendet, um Zahlen der Größe nach, oder Wörter dem Alphabet nach zu sortieren. Dem einfacheren Verständnis zu Liebe werde ich mich hier besonders
Mehr188.154 Einführung in die Programmierung für Wirtschaftsinformatik
Beispiel 1 Vererbung (Liste) Gegeben sind die beiden Klassen ListNode und PersonNode. 188.154 Einführung in die Programmierung für Wirtschaftsinformatik Wiederholung, Prüfungsvorbereitung Monika Lanzenberger
MehrVersion 0.3. Installation von MinGW und Eclipse CDT
Version 0.3 Installation von MinGW und Eclipse CDT 1. Stellen Sie fest, ob Sie Windows in der 32 Bit Version oder in der 64 Bit Version installiert haben. 2. Prüfen Sie, welche Java Runtime vorhanden ist.
MehrDas erste Programm soll einen Text zum Bildschirm schicken. Es kann mit jedem beliebigen Texteditor erstellt werden.
Einfache Ein- und Ausgabe mit Java 1. Hallo-Welt! Das erste Programm soll einen Text zum Bildschirm schicken. Es kann mit jedem beliebigen Texteditor erstellt werden. /** Die Klasse hello sendet einen
MehrEinführung in Java. PING e.v. Weiterbildung Andreas Rossbacher 24. März 2005
Einführung in Java PING e.v. Weiterbildung Andreas Rossbacher 24. März 2005 Gliederung 1. Was ist Java / Geschichte von Java 2. Prinzip der Plattformunabhängigkeit 3. Wie kommt man vom Quellcode zum Programm
MehrEinführung in die Programmierung
Technische Universität München WS 2003/2004 Institut für Informatik Prof. Dr. Christoph Zenger Testklausur Einführung in die Programmierung Probeklausur Java (Lösungsvorschlag) 1 Die Klasse ArrayList In
MehrErweiterung der Aufgabe. Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen:
VBA Programmierung mit Excel Schleifen 1/6 Erweiterung der Aufgabe Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen: Es müssen also 11 (B L) x 35 = 385 Zellen berücksichtigt
Mehr2015-06-11 Tagesprogramm
1 2015-06-11 Tagesprogramm Design-by-Contract 2 Vertragspartner Anbieter (Server) bietet Leistungen (Services) an Kunde (Client) nimmt von Anbietern angebotene Leistungen in Anspruch Details der Inanspruchnahme
MehrProgrammieren I. Kontrollstrukturen. Heusch 8 Ratz 4.5. www.kit.edu. Institut für Angewandte Informatik
Programmieren I Kontrollstrukturen Heusch 8 Ratz 4.5 KIT Universität des Landes Baden-Württemberg und nationales Großforschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu Arten von Kontrollstrukturen
MehrVerhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {...
PIWIN I Kap. 8 Objektorientierte Programmierung - Vererbung 31 Schlüsselwort: final Verhindert, dass eine Methode überschrieben wird public final int holekontostand() {... Erben von einer Klasse verbieten:
MehrEinführung in die Java- Programmierung
Einführung in die Java- Programmierung Dr. Volker Riediger Tassilo Horn riediger horn@uni-koblenz.de WiSe 2012/13 1 Wichtig... Mittags keine Pommes... Praktikum A 230 C 207 (Madeleine + Esma) F 112 F 113
MehrGroße Übung Praktische Informatik 1
Große Übung Praktische Informatik 1 2005-12-08 fuessler@informatik.uni-mannheim.de http://www.informatik.uni-mannheim.de/pi4/people/fuessler 1: Announcements / Orga Weihnachtsklausur zählt als Übungsblatt,
MehrSysteme 1. Kapitel 6. Nebenläufigkeit und wechselseitiger Ausschluss
Systeme 1 Kapitel 6 Nebenläufigkeit und wechselseitiger Ausschluss Threads Die Adressräume verschiedener Prozesse sind getrennt und geschützt gegen den Zugriff anderer Prozesse. Threads sind leichtgewichtige
MehrObjektorientierte Programmierung
Objektorientierte Programmierung 1 Geschichte Dahl, Nygaard: Simula 67 (Algol 60 + Objektorientierung) Kay et al.: Smalltalk (erste rein-objektorientierte Sprache) Object Pascal, Objective C, C++ (wiederum
MehrÜbung Grundlagen der Programmierung. Übung 03: Schleifen. Testplan Testergebnisse
Übung 03: Schleifen Abgabetermin: xx.xx.xxxx Name: Matrikelnummer: Gruppe: G1 (Prähofer) G2 (Prähofer) G3 (Wolfinger) Aufgabe Punkte gelöst abzugeben schriftlich abzugeben elektronisch Aufgabe 03.1 12
MehrÜbungen zu C++ Kapitel 1
Übungen zu C++ Kapitel 1 Aufgabe 1 Ergänze den Text. a) Die sechs logischen Einheiten eines Computers sind Eingabe-Einheit, Ausgabe-Einheit, RAM, ALU, CPU, Plattenspeicher. b) Die Programme, welche Hochsprachenprogramme
MehrÜberblick. Lineares Suchen
Komplexität Was ist das? Die Komplexität eines Algorithmus sei hierbei die Abschätzung des Aufwandes seiner Realisierung bzw. Berechnung auf einem Computer. Sie wird daher auch rechnerische Komplexität
MehrProf. Dr. Uwe Schmidt. 21. August 2007. Aufgaben zur Klausur Objektorientierte Programmierung im SS 2007 (IA 252)
Prof. Dr. Uwe Schmidt 21. August 2007 Aufgaben zur Klausur Objektorientierte Programmierung im SS 2007 (IA 252) Zeit: 75 Minuten erlaubte Hilfsmittel: keine Bitte tragen Sie Ihre Antworten und fertigen
MehrEinführung in die Programmierung
Einführung in die Programmierung Teil 9: Ausnahmebehandlung Prof. Dr. Peer Kröger, Florian Richter, Michael Fromm Wintersemester 2018/2019 Robuste Programme durch Ausnahmebehandlung Eine Ausnahme (Exception)
MehrDatenbank-Verschlüsselung mit DbDefence und Webanwendungen.
Datenbank-Verschlüsselung mit DbDefence und Webanwendungen. In diesem Artikel werden wir Ihnen zeigen, wie Sie eine Datenbank verschlüsseln können, um den Zugriff einzuschränken, aber trotzdem noch eine
Mehr5. Tutorium zu Programmieren
5. Tutorium zu Programmieren Dennis Ewert Gruppe 6 Universität Karlsruhe Institut für Programmstrukturen und Datenorganisation (IPD) Lehrstuhl Programmierparadigmen WS 2008/2009 c 2008 by IPD Snelting
MehrWhitebox-Tests: Allgemeines
-Tests: Allgemeines Andere Bezeichnungen Logic driven, Strukturelles Der Tester entwickelt Testfälle aus einer Betrachtung der Ablauflogik des Programms unter Berücksichtigung der Spezifikation Intuitiv
Mehr14.4.2016. Technische Hochschule Georg Agricola WORKSHOP TEIL 3. IKT (Informations- und Kommunikationstechnik) an einer MorseApp erklärt
14.4.2016 Technische Hochschule Georg Agricola WORKSHOP TEIL 3 IKT (Informations- und Kommunikationstechnik) an einer MorseApp erklärt Inhaltsverzeichnis 1. Kurzfassung zur Projekterstellung... 2 2. Morse-Tabelle...
MehrÜbersicht Programmablaufsteuerung
Übersicht Programmablaufsteuerung Konditionale Verzweigung: if - else switch-anweisung Schleifenkonstrukte: while, do - while for Schleife Sprung-Anweisungen: break, continue, goto, return Anweisungen
MehrAGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom 21.10.2013b
AGROPLUS Buchhaltung Daten-Server und Sicherheitskopie Version vom 21.10.2013b 3a) Der Daten-Server Modus und der Tresor Der Daten-Server ist eine Betriebsart welche dem Nutzer eine grosse Flexibilität
MehrC++ Grundlagen. ++ bedeutet Erweiterung zum Ansi C Standard. Hier wird eine Funktion eingeleitet
C++ Grundlagen ++ bedeutet Erweiterung zum Ansi C Standard Hier wird eine Funktion eingeleitet Aufbau: In dieser Datei stehen die Befehle, die gestartet werden, wenn das Programm gestartet wird Int main()
Mehr5.2 Neue Projekte erstellen
5.2 Neue Projekte erstellen Das Bearbeiten von bestehenden Projekten und Objekten ist ja nicht schlecht wie aber können Sie neue Objekte hinzufügen oder gar völlig neue Projekte erstellen? Die Antwort
MehrKlausur zur Einführung in die objektorientierte Programmierung mit Java
Klausur zur Einführung in die objektorientierte Programmierung mit Java im Studiengang Informationswissenschaft Prof. Dr. Christian Wolff Professur für Medieninformatik Institut für Medien-, Informations-
MehrFachgebiet Informationssysteme Prof. Dr.-Ing. N. Fuhr. Programmierung Prof. Dr.-Ing. Nobert Fuhr. Übungsblatt Nr. 6
Gudrun Fischer Sascha Kriewel programmierung@is.informatik.uni-duisburg.de Anmeldung zur Klausur! Übungsblatt Nr. 6 Um an der Klausur teilzunehmen, müssen sich Studierende der angewandten Informatik in
Mehr2A Basistechniken: Weitere Aufgaben
2A Basistechniken: Weitere Aufgaben 2A.3 Programmierung unter UNIX/Linux 1. Gegeben sind einige Ausschnitte von C-Programmen, die unter UNIX/Linux ausgeführt werden sollen. Beantworten Sie die zugehörigen
MehrLineargleichungssysteme: Additions-/ Subtraktionsverfahren
Lineargleichungssysteme: Additions-/ Subtraktionsverfahren W. Kippels 22. Februar 2014 Inhaltsverzeichnis 1 Einleitung 2 2 Lineargleichungssysteme zweiten Grades 2 3 Lineargleichungssysteme höheren als
MehrSynchronisation in Java. Invisible Web
Synchronisation in Java Studienprojekt Invisible Web Tang Zhihong Synchronisation in Java Synchronisationsproblem Monitore Wait und notify PipedInputStream und PipedOutputStream Synchronisation von Collections
MehrKurzanleitung MAN E-Learning (WBT)
Kurzanleitung MAN E-Learning (WBT) Um Ihr gebuchtes E-Learning zu bearbeiten, starten Sie bitte das MAN Online- Buchungssystem (ICPM / Seminaris) unter dem Link www.man-academy.eu Klicken Sie dann auf
MehrEinführung in die objektorientierte Programmierung mit Java. Klausur am 19. Oktober 2005
Einführung in die objektorientierte Programmierung mit Java Klausur am 19. Oktober 2005 Matrikelnummer: Nachname: Vorname: Semesteranzahl: Die Klausur besteht aus drei Frageblöcken zu den Inhalten der
Mehr25 kann ohne Rest durch 5 geteilt werden! ist wahr
Lehrbrief 2: Lektion 8 - C -Praxis 4-1 - 5.2 Einfache Entscheidungen mit if und die Vergleichsoperatoren Nun tauchen wir immer tiefer in die Geheimnisse von C ein und beschäftigen uns mit einem sehr wichtigen
MehrKapitel 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
MehrLEHRSTUHL FÜR DATENBANKEN
LEHRSTUHL FÜR DATENBANKEN Informatik II für Verkehrsingenieure Java & Eclipse Installationsguide Prof. Dr.-Ing. Wolfgang Lehner > Was ist Eclipse? Eine sogenannte Integrierte Entwicklungsumgebung (engl.
MehrMusterlösungen zur Klausur Informatik 3
Musterlösungen zur Klausur Informatik 3 Justus-Liebig-Universität Gießen Wintersemester 2003/2004 Aufgabe 1 (6 Punkte) Man kreuze bei den folgenden Deklarationen und Definitionen jeweils an, ob sie aus
MehrStarten Sie Eclipse: Hier tragen sie Ihr Arbeitsverzeichnis ein. Zu Hause z.b. c:\workspace.
Starten Sie Eclipse: Abgesehen vom Kommandozeilenfenster, auf welches wir später eingehen, öffnet sich ein Dialog (in der FH vermutlich nicht, überspringen Sie in diesem Fall): Hier tragen sie Ihr Arbeitsverzeichnis
MehrLeichte-Sprache-Bilder
Leichte-Sprache-Bilder Reinhild Kassing Information - So geht es 1. Bilder gucken 2. anmelden für Probe-Bilder 3. Bilder bestellen 4. Rechnung bezahlen 5. Bilder runterladen 6. neue Bilder vorschlagen
MehrZählen von Objekten einer bestimmten Klasse
Zählen von Objekten einer bestimmten Klasse Ziel, Inhalt Zur Übung versuchen wir eine Klasse zu schreiben, mit der es möglich ist Objekte einer bestimmten Klasse zu zählen. Wir werden den ++ und den --
MehrGrundlagen. Kapitel 1
Grundlagen Dieses Kapitel umfasst grundlegende Fragen und Aufgaben zur Erstellung von C++-Programmen. Hierzu zählen auch das Inkludieren von Header-Dateien Eine Header-Datei beinhaltet Informationen, die
MehrJava-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
MehrPHP 5.4 ISBN 978-3-86249-327-2. Stephan Heller, Andreas Dittfurth 1. Ausgabe, September 2012. Grundlagen zur Erstellung dynamischer Webseiten GPHP54
PHP 5.4 Stephan Heller, Andreas Dittfurth 1. Ausgabe, September 2012 Grundlagen zur Erstellung dynamischer Webseiten ISBN 978-3-86249-327-2 GPHP54 5 PHP 5.4 - Grundlagen zur Erstellung dynamischer Webseiten
MehrDelegatesund Ereignisse
Delegatesund Ereignisse «Delegierter» Methoden Schablone Funktionszeiger Dr. Beatrice Amrhein Überblick Definition eines Delegat Einfache Delegate Beispiele von Delegat-Anwendungen Definition eines Ereignisses
Mehr1. Formulieren Sie den Algorithmus <Bedienung eines Getränkeautomaten> nach den oben genannten Kriterien.
Java 1 Einführung Grundlegende Übungsaufgaben Arbeitsauftrag 1.1 1. Formulieren Sie den Algorithmus nach den oben genannten Kriterien. Beispiel: Bedienung eines Getränkeautomaten
MehrSoftware Engineering Interaktionsdiagramme
Software Engineering Interaktionsdiagramme Prof. Adrian A. Müller, PMP, PSM 1, CSM Fachbereich Informatik und Mikrosystemtechnik 1 Nachrichtenaustausch Welche Nachrichten werden ausgetauscht? (Methodenaufrufe)
MehrProgrammiervorkurs SS 2011 Technische Universität Darmstadt Jan Hendrik Burdinski, Felix Kerger http://www.d120.de/vorkurs.
Programmiervorkurs SS 2011 Technische Universität Darmstadt Jan Hendrik Burdinski, Felix Kerger http:www.d120.de/vorkurs Aufgabenblatt 3 Du findest zur Bearbeitung dieses Aufgabenblatts zu einigen Aufgaben
MehrGrundlagen der Programmierung Prof. H. Mössenböck. 3. Verzweigungen
Grundlagen der Programmierung Prof. H. Mössenböck 3. Verzweigungen If-Anweisung n > 0? j n if (n > 0) x = x / n; ohne else-zweig x x / n j max x x > y? n max y if (x > y) max = x; else max = y; mit else-zweig
Mehr.NET Code schützen. Projekt.NET. Version 1.0
.NET Code schützen Projekt.NET Informationsmaterial zum Schützen des.net Codes Version 1.0 Autor: Status: Ablage: Empfänger: Seiten: D. Hoyer 1 / 6 Verteiler : Dokument1 Seite 1 von 1 Änderungsprotokoll
MehrExceptions. 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
MehrJava Einführung Operatoren Kapitel 2 und 3
Java Einführung Operatoren Kapitel 2 und 3 Inhalt dieser Einheit Operatoren (unär, binär, ternär) Rangfolge der Operatoren Zuweisungsoperatoren Vergleichsoperatoren Logische Operatoren 2 Operatoren Abhängig
MehrNathan Burgener. Design by Contract. Modul SWE
NathanBurgener DesignbyContract ModulSWE NathanBurgener Inhaltsverzeichnis 1 WasistDesignbyContract...3 1.1 Überblick...3 1.2 DesignbyContractmitMethoden...4 1.3 DesignbyContractmitKlassen...5 1.4 Vererbung...6
MehrDownloadfehler in DEHSt-VPSMail. Workaround zum Umgang mit einem Downloadfehler
Downloadfehler in DEHSt-VPSMail Workaround zum Umgang mit einem Downloadfehler Downloadfehler bremen online services GmbH & Co. KG Seite 2 Inhaltsverzeichnis Vorwort...3 1 Fehlermeldung...4 2 Fehlerbeseitigung...5
MehrOutlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang
sysplus.ch outlook - mail-grundlagen Seite 1/8 Outlook Mail-Grundlagen Posteingang Es gibt verschiedene Möglichkeiten, um zum Posteingang zu gelangen. Man kann links im Outlook-Fenster auf die Schaltfläche
MehrInternet Explorer Version 6
Internet Explorer Version 6 Java Runtime Ist Java Runtime nicht installiert, öffnet sich ein PopUp-Fenster, welches auf das benötigte Plugin aufmerksam macht. Nach Klicken auf die OK-Taste im PopUp-Fenster
MehrTesten mit JUnit. Motivation
Test First Design for Test in Eclipse (eigentlich: ) zu einer Klasse Beispiel zur Demonstration Ergänzungen Test First "Immer dann, wenn Du in Versuchung kommst, etwas wie eine print- Anweisung oder einen
MehrZwischenablage (Bilder, Texte,...)
Zwischenablage was ist das? Informationen über. die Bedeutung der Windows-Zwischenablage Kopieren und Einfügen mit der Zwischenablage Vermeiden von Fehlern beim Arbeiten mit der Zwischenablage Bei diesen
MehrGeoPilot (Android) die App
GeoPilot (Android) die App Mit der neuen Rademacher GeoPilot App machen Sie Ihr Android Smartphone zum Sensor und steuern beliebige Szenen über den HomePilot. Die App beinhaltet zwei Funktionen, zum einen
MehrTutorium 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
Mehr4D Server v12 64-bit Version BETA VERSION
4D Server v12 64-bit Version BETA VERSION 4D Server v12 unterstützt jetzt das Windows 64-bit Betriebssystem. Hauptvorteil der 64-bit Technologie ist die rundum verbesserte Performance der Anwendungen und
MehrRemote Method Invocation
Remote Method Invocation Aufruf von Methoden über die Grenzen der VM hinweg. Javaprozesse der rufenden und gerufenen Methode können auf verschiedenen Hosts laufen. Eine RMI-Applikation besteht aus dem
MehrAnleitung: Einrichtung der Fritz!Box 7272 mit VoIP Telefonanschluss
Schließen Sie die AVM Fritz!Box, wie auf dem der Fritz!Box beiliegenden Schaubild beschrieben, an. Starten Sie den Internet Explorer oder einen beliebigen Browser (Mozilla Firefox, Google Chrome, Safari)
MehrRekursion. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung
Rekursion Annabelle Klarl Zentralübung zur Vorlesung Einführung in die Informatik: http://www.pst.ifi.lmu.de/lehre/wise-12-13/infoeinf WS12/13 Aufgabe 1: Potenzfunktion Schreiben Sie eine Methode, die
MehrDieser Ablauf soll eine Hilfe für die tägliche Arbeit mit der SMS Bestätigung im Millennium darstellen.
Millennium SMS Service Schnellübersicht Seite 1 von 6 1. Tägliche Arbeiten mit der SMS Bestätigung Dieser Ablauf soll eine Hilfe für die tägliche Arbeit mit der SMS Bestätigung im Millennium darstellen.
Mehr9. Ausnahmebehandlung
9. Ausnahmebehandlung Java-Beispiele: Ausnahme.java TryCatch.java TryCatchAll.java Finally.java TryInTry.java KeyboardTry.java Oeffnungszeit.java Version: 11. Jan. 2016 Schwerpunkte Ausnahmen und Laufzeitfehler
MehrU08 Entwurfsmuster (II)
U08 Entwurfsmuster (II) Inhalt der Übung Diskussion und Implementierung von Entwurfsmustern Übungsaufgaben Aufgabe 1 (Queue) Gegeben ist das folgende Analysemodell einer Warteschlange (Queue): Eine Warteschlange
MehrJava Kurs für Anfänger LMU SS09 Einheit 1 Javaumgebung
Java Kurs für Anfänger LMU SS09 Einheit 1 Javaumgebung Ludwig-Maximilians-Universität München Institut für Informatik Programmierung und Softwaretechnik (PST) Prof. Wirsing 6. Mai 2009 1 Der Name Java
Mehrteamsync Kurzanleitung
1 teamsync Kurzanleitung Version 4.0-19. November 2012 2 1 Einleitung Mit teamsync können Sie die Produkte teamspace und projectfacts mit Microsoft Outlook synchronisieren.laden Sie sich teamsync hier
MehrAnlegen eines DLRG Accounts
Anlegen eines DLRG Accounts Seite 1 von 6 Auf der Startseite des Internet Service Centers (https:\\dlrg.de) führt der Link DLRG-Account anlegen zu einer Eingabemaske, mit der sich jedes DLRG-Mitglied genau
MehrVirtueller Seminarordner Anleitung für die Dozentinnen und Dozenten
Virtueller Seminarordner Anleitung für die Dozentinnen und Dozenten In dem Virtuellen Seminarordner werden für die Teilnehmerinnen und Teilnehmer des Seminars alle für das Seminar wichtigen Informationen,
MehrJavadoc. Programmiermethodik. Eva Zangerle Universität Innsbruck
Javadoc Programmiermethodik Eva Zangerle Universität Innsbruck Überblick Einführung Java Ein erster Überblick Objektorientierung Vererbung und Polymorphismus Ausnahmebehandlung Pakete und Javadoc Spezielle
MehrDie Programmiersprache C99: Zusammenfassung
Die Programmiersprache C99: Zusammenfassung Jörn Loviscach Versionsstand: 7. Dezember 2010, 19:30 Die nummerierten Felder sind absichtlich leer, zum Ausfüllen in der Vorlesung. Videos dazu: http://www.youtube.com/joernloviscach
Mehr