Vorkurs Informatik SoSe18
|
|
- Marcus Schumacher
- vor 5 Jahren
- Abrufe
Transkript
1 Konzepte der Informatik Dr. Werner Struckmann / Maximilian von Unwerth, Technische Universität Braunschweig, IPS
2 Inhaltsverzeichnis Vorüberlegungen Ameisen-Prinzip Dijkstra-Algorithmus Dr. Werner Struckmann / Maximilian von Unwerth Seite 2
3 Einführung Routenplaner Wie finde ich den günstigsten Weg? Dr. Werner Struckmann / Maximilian von Unwerth Seite 3
4 Einführung Routenplaner Wie finde ich den günstigsten Weg? Eine Möglichkeit: Alle Weg durchprobieren Kürzesten Weg wählen Dr. Werner Struckmann / Maximilian von Unwerth Seite 3
5 Einführung Routenplaner Wie finde ich den günstigsten Weg? Eine Möglichkeit: Alle Weg durchprobieren Kürzesten Weg wählen Bei Computern heißt dieser Ansatz Brute-Force : Rechner haben keine Intelligenz Müssen alle Möglichkeiten durchprobieren Menschen können absurde und unwahrscheinliche Möglichkeiten verwerfen Hier schon viele Möglichkeiten, man denke an Karten mit 1000 Städten Dr. Werner Struckmann / Maximilian von Unwerth Seite 3
6 Überblick Vorüberlegungen Ameisen-Prinzip Dijkstra-Algorithmus Dr. Werner Struckmann / Maximilian von Unwerth Seite 4
7 Vorüberlegungen Methode der Abstraktion Wie kommt man in der Informatik zu einer besseren Lösung? Dr. Werner Struckmann / Maximilian von Unwerth Seite 5
8 Vorüberlegungen Methode der Abstraktion Wie kommt man in der Informatik zu einer besseren Lösung? In zur Verfügung stehender Informationen stecken sowohl relevante als auch unwesentliche Anteile. Durch Abstraktion reduzieren Sie die Informationen auf das für die aktuelle Problemlösung Wesentliche: Dadurch können Sie sich besser auf die Aufgabe konzentrieren Dr. Werner Struckmann / Maximilian von Unwerth Seite 5
9 Vorüberlegungen Informationen der Karte Dr. Werner Struckmann / Maximilian von Unwerth Seite 6
10 Vorüberlegungen Informationen der Karte Namen der Städte Position der Städte Größe der Städte Verlauf der Straßen Länge der Straßen Namen und Nummern der Straßen Straßentyp Straße führt von... nach Dr. Werner Struckmann / Maximilian von Unwerth Seite 6
11 Vorüberlegungen Informationen der Karte Name der Städte Position der Städte Größe der Städte Verlauf der Straßen Länge der Straßen Namen und Nummern der Straßen Straßentyp Straße führt von... nach... Wenn man nicht weiß, welche Stadt wie heißt, kann auch nicht der kürzeste Weg zwischen Imstadt und Oppenheim bestimmt werden. Es ist uns egal, wo sich die Städte genau befinden. Relevant sind nur die Straßen zwischen den Städten. Kommt in unserer Aufgabenstellung nirgendwo vor. Es kommt nur auf die Länge der Strecke an, nicht auf den Verlauf. Um die Reisestrecke zu bestimmen, brauchen wir die einzelnen Strecken zwischen den Orten. Zumindest zur Bestimmung der kürzesten Strecke irrelevant. Da es nur auf die Entfernungen, nicht auf die Zeit ankommt, ist es egal, ob Autobahn oder Feldweg gefahren wird. Wir benötigen die Informationen, von welcher Stadt zu welcher anderen eine Straße führt.
12 Vorüberlegungen Informationen der Karte Name der Städte Position der Städte Größe der Städte Verlauf der Straßen Länge der Straßen Namen und Nummern der Straßen Straßentyp Straße führt von... nach... Wenn man nicht weiß, welche Stadt wie heißt, kann auch nicht der kürzeste Weg zwischen Imstadt und Oppenheim bestimmt werden. Es ist uns egal, wo sich die Städte genau befinden. Relevant sind nur die Straßen zwischen den Städten. Kommt in unserer Aufgabenstellung nirgendwo vor. Es kommt nur auf die Länge der Strecke an, nicht auf den Verlauf. Um die Reisestrecke zu bestimmen, brauchen wir die einzelnen Strecken zwischen den Orten. Zumindest zur Bestimmung der kürzesten Strecke irrelevant. Da es nur auf die Entfernungen, nicht auf die Zeit ankommt, ist es egal, ob Autobahn oder Feldweg gefahren wird. Wir benötigen die Informationen, von welcher Stadt zu welcher anderen eine Straße führt.
13 Vorüberlegungen Abstrakte Form der Landkarte Karte wurde anhand der relevanten Daten neu gezeichnet. Die Städte wurden der Übersicht wegen durch deren Anfangsbuchstaben ersetzt. Jedoch noch Spezialitäten vorhanden: An vier Stellen kreuzen sich die Straßen, ohne Auf- und Abfahrten (Bogen) An drei Stellen schneiden sich die Straßen mit Auf- und Abfahrten (Punkt) Ein Problem sollte möglichst gleichförmig sein, um das Denken zu erleichtern Dr. Werner Struckmann / Maximilian von Unwerth Seite 8
14 Vorüberlegungen Methode der Gleichformung Versuchen Sie, die verschiedenen Facetten eines Problems auf die gleichen Grundelemente zurückzuführen. Dadurch wird einerseits das Problem übersichtlicher und andererseits benötigt man weniger Lösungsansätze: Für gleichförmige Teilprobleme kann der gleiche Lösungsansatz verwendet werden Dr. Werner Struckmann / Maximilian von Unwerth Seite 9
15 Vorüberlegungen Gleichformung Dr. Werner Struckmann / Maximilian von Unwerth Seite 10
16 Vorüberlegungen Gleichformung Auf der Karte sind Städte als Kreise eingezeichnet. Hier kann man offenbar problemlos von einer Straße auf eine angrenzende Straße wechseln. Genau das soll auch an den mit einem Punkt gekennzeichneten Stellen möglich sein. Also tun wir einfach so, als wenn sich dort auch Städte befinden. Um eine Verwechselung mit den anderen Städten zu vermeiden, kennzeichnen wir sie mit X, Y und Z. An allen anderen Stellen ist ein Wechsel nicht möglich, daher kann auch die Kennzeichnung durch einen Bogen entfallen Dr. Werner Struckmann / Maximilian von Unwerth Seite 10
17 Vorüberlegungen Gleichformung Sehen wir uns noch einmal die Tabelle mit den ursprünglich vorhandenen Informationen an Dr. Werner Struckmann / Maximilian von Unwerth Seite 10
18 Vorüberlegungen Informationen der Karte Name der Städte Position der Städte Größe der Städte Verlauf der Straßen Länge der Straßen Namen und Nummern der Straßen Straßentyp Straße führt von... nach... Wenn man nicht weiß, welche Stadt wie heißt, kann auch nicht der kürzeste Weg zwischen Imstadt und Oppenheim bestimmt werden. Es ist uns egal, wo sich die Städte genau befinden. Relevant sind nur die Straßen zwischen den Städten. Kommt in unserer Aufgabenstellung nirgendwo vor. Es kommt nur auf die Länge der Strecke an, nicht auf den Verlauf. Um die Reisestrecke zu bestimmen, brauchen wir die einzelnen Strecken zwischen den Orten. Zumindest zur Bestimmung der kürzesten Strecke irrelevant. Da es nur auf die Entfernungen, nicht auf die Zeit ankommt, ist es egal, ob Autobahn oder Feldweg gefahren wird. Wir benötigen die Informationen, von welcher Stadt zu welcher anderen eine Straße führt.
19 Vorüberlegungen Gleichformung Die Städte sind immer noch an ihrer geographischen Position eingezeichnet: Ballungszentren vorhanden Straßenführung wird unübersichtlich Wir haben die Position der Städte jedoch als irrelevant eingestuft: Karte kann daher entzerrt werden Dr. Werner Struckmann / Maximilian von Unwerth Seite 12
20 Vorüberlegungen Entzerrte Landkarte Es wurde lediglich die Darstellung geändert. Die Verbindungen zwischen den Städten und deren Längenangaben bleiben unverändert Dr. Werner Struckmann / Maximilian von Unwerth Seite 13
21 Überblick Vorüberlegungen Ameisen-Prinzip Dijkstra-Algorithmus Dr. Werner Struckmann / Maximilian von Unwerth Seite 14
22 Ameisen-Prinzip Lernen von der Natur Wie kommen wir denn nun zum kürzesten Weg von Imstadt nach Oppenheim? Der direkte Ansatz, alle vollständigen Wege zu betrachten, ist ja bereits gescheitert. Vielleicht können wir von der Natur lernen: Ein Stamm Ameisen hat auf der Suche nach Futter ein ähnliches Problem: Eine Kundschafterin findet ein großes Stück Fleisch. Welchen Weg sollen die Arbeiterinnen nehmen, um die Beute am schnellsten zu sichern? Setzen wir also den Stamm Ameisen auf unseren Ausgangspunkt Imstadt (I): Fünf Wege führen von dort weg, also teilen sich unzählige Ameisen auf, um diese zu erkunden Wir nehmen an, dass alle Ameisen gleich schnell sind: Gedopt schaffen sie einen km pro Minute Dr. Werner Struckmann / Maximilian von Unwerth Seite 15
23 Ameisen-Prinzip Der Aufbruch Auf der Landkarte verfolgen wir den Weg der Ameisen: Nach 34 Minuten haben sie B erreicht. Was haben wir dadurch gelernt? Um von I nach B zu kommen, gibt es garantiert keinen günstigeren Weg als den mit 34 km. Denn die Ameisen haben ja sämtliche bisher für sie möglichen Wege ausprobiert und sind nach 34 km zuerst bei B angekommen Dr. Werner Struckmann / Maximilian von Unwerth Seite 16
24 Ameisen-Prinzip Die Erkundung geht weiter Wie geht es jetzt weiter? Die Ameisen, die bisher nirgendwo angekommen sind, setzen ihren Weg fort. Die Ameisen bei B teilen sich erneut auf: wieder sind fünf Wege möglich. Den Erfolg dokumentieren sie, indem sie den bisherigen Weg markieren und die Entfernung notieren Dr. Werner Struckmann / Maximilian von Unwerth Seite 17
25 Ameisen-Prinzip Ameisen auf Kollisionskurs Nach 40 Minuten kommt ein Trupp bei C an: Sie sind die Ersten. Daher: Strecke markieren, Entfernung notieren und auf die weiteren Wege aufteilen. In der 43. Minute kommt der Trupp auch als Erster bei M an: Somit stehen die kürzesten Strecken zu B, C und M fest. Die Ameisen sind sowohl von M als auch von C unterwegs und somit auf Kollisionskurs. Bringt ihnen das etwas für ihr Ziel, das Gelände zu erkunden? Dr. Werner Struckmann / Maximilian von Unwerth Seite 18
26 Ameisen-Prinzip Erste Trupps kehren zurück Der Trupp von C weiß, dass dieses Ziel bereits erreicht ist, die kürzeste Strecke also schon feststeht. Der Trupp von M weiß das Gleiche von seinem Ausgangspunkt zu berichten: Also wird die Strecke als unbrauchbar markiert. Die Ameisen können zurück zu ihrem Stamm, da es sinnlos wäre noch weiter zu marschieren Dr. Werner Struckmann / Maximilian von Unwerth Seite 19
27 Ameisen-Prinzip Und es geht weiter Als nächstes kommen zwei Trupps gleichzeitig an: In der 55. Minute erreichen sie P und X: Wieder teilen sie sich auf. Von X gibt es nur einen Erfolg versprechenden Weg. Bei den anderen Treffen sie recht schnell auf Kameraden. Die von P ausgehenden Strecken sind alle noch nicht als unbrauchbar markiert Dr. Werner Struckmann / Maximilian von Unwerth Seite 20
28 Ameisen-Prinzip Idee Statt immer nur einen Weg auszuprobieren und wieder zu verwerfen, wenn sich ein besserer gefunden hat, erkunden die Ameisen gleichzeitig alle sich bietenden Möglichkeiten. Kommen sie bei einer Stadt als Erste an, wissen sie, dass der genommene Weg der kürzeste ist, denn sonst wäre ja schon ein anderer Trupp da. Treffen die Ameisen irgendwo auf Artgenossen, wissen sie, dass ihre Reise zu Ende ist. Andere haben also das Ziel früher erreicht. Am Ende des Verfahrens erhalten wir die folgende Karte Dr. Werner Struckmann / Maximilian von Unwerth Seite 21
29 Ameisen-Prinzip Vollständig erschlossene Karte Was für Informationen haben wir dadurch eigentlich gewonnen? Um von Imstadt zu einem beliebigen anderen Ort zu kommen, folgen sie dem Pfad der Ameisen. Von Imstadt nach Oppenheim kommt man so am günstigsten über Pappstadt, Krupsing und Flughafen (123km). Es wurde nicht nur die ursprüngliche Aufgabe gelöst, sondern auch die kürzesten Wege von Imstadt zu allen anderen Städten ermittelt Dr. Werner Struckmann / Maximilian von Unwerth Seite 22
30 Ameisen-Prinzip Zusammenfassung Warum ist das Ameisen-Prinzip für einen Informatiker interessant? Es führt in absehbarer Zeit zum Ziel. Da die Ameisen ständig in Bewegung sind und keine Wege doppelt gehen, müssen sie recht bald alle Wege erkundet haben (maximal nach der Zeit, die dem kürzesten Weg zur am weitesten entfernten Stadt entspricht) Es werden immer wieder die gleichen, sehr einfachen Anweisungen benutzt, um die Ameisen zu steuern: 1. Teile den Trupp auf und folge allen Routen 2. Wenn ein Ort erreicht wird: günstigste Strecke dorthin gefunden, weiter bei Wenn man einem anderen Trupp begegnet: Strecke verwerfen. Ende Dr. Werner Struckmann / Maximilian von Unwerth Seite 23
31 Ameisen-Prinzip Übertragung auf den Computer Wie könnten also unsere Routenplaner im Auto das Problem des kürzesten Weges lösen? Ein Simulieren der vorgestellten Vorgehensweise wäre gegenüber der Brute-Force-Methode von Vorteil. Trotzdem ist der Informatiker hier gefragt, das gefundene Verfahren für den Computer zu optimieren. Überlegen Sie, welche Teile des Ameisenprinzips für die Problemlösung relevant sind Dr. Werner Struckmann / Maximilian von Unwerth Seite 24
32 Überblick Vorüberlegungen Ameisen-Prinzip Dijkstra-Algorithmus Dr. Werner Struckmann / Maximilian von Unwerth Seite 25
33 Dijkstra-Algorithmus Erste Schritt Die Ameisen liefen in alle direkt erreichbaren Städte, um zu ermitteln, wie lange sie unterwegs sind: Ein Computer muss diese Zeiten nicht ermitteln. Er kennt sie bereits, da die Längen zwischen den Strecken an den Pfaden verzeichnet sind. Um die Entfernung zuordnen zu können, wird die dazugehörige Strecke markiert. Die Ameisen, die zuerst bei einer Stadt ankamen, markierten die Strecke als günstig und teilten sich auf: Der Computer muss nur die Stadt mit der kleinsten Zahl bestimmen Dr. Werner Struckmann / Maximilian von Unwerth Seite 26
34 Dijkstra-Algorithmus Fortsetzung (1) In diesem Beispiel also B: Von B aus werden alle Entfernungen zu allen Nachbarn bestimmt. Über B wurden schon 34 km zurückgelegt, daher müssen diese dazu addiert werden. Bei H steht schon ein Wert. Von I direkt sind es 65, über B jedoch nur 64 km. Der Ameisen Trupp über B würde also zuerst ankommen. Daher gilt für das Dijkstra-Verfahren: Wenn die neue Zahl kleiner ist, wird die alte durch diese ersetzt und der Weg entsprechend markiert. Wenn die neue Zahl größer ist, passiert Dr. Werner Struckmann / Maximilian nichts. von Unwerth Seite 27
35 Dijkstra-Algorithmus Fortsetzung (2) Wie geht es nun weiter? Prinzipiell wie am Anfang: Aus allen mit Zahlen markierten Städten, die noch nicht von Ameisen besucht wurden, wird die mit der kleinsten Zahl herausgesucht. Dort kommen die Ameisen als Nächstes an. In diesem Fall ist das C Dr. Werner Struckmann / Maximilian von Unwerth Seite 28
36 Dijkstra-Algorithmus Fortsetzung (3) Von C werden wieder alle benachbarten Städte betrachtet: Nach M käme man in 71 km, nach X in 63 km. Beides wird jedoch von der bereits vorhandenen Zahl unterboten, also passiert nichts Die nächste nicht markierte Stadt mit der kleinsten Zahl wird gesucht Dr. Werner Struckmann / Maximilian von Unwerth Seite 29
37 Dijkstra-Algorithmus Fortsetzung (4) Jetzt also M: Es werden wieder alle benachbarten Städte betrachtet. Hier zeigt sich, dass sowohl die Strecke zu A als auch zu X kürzer ist. Die alten Markierungen und Entfernungen werden gestrichen. Die neuen Wege und Entfernungen markiert bzw. notiert Dr. Werner Struckmann / Maximilian von Unwerth Seite 30
38 Dijkstra-Algorithmus Fortsetzung (5) Die Stadt mit der kleinsten Zahl ist jetzt P: Es gibt Verbindungen zu H, K, F und O. Bei K, F und O wird jeweils wieder die Summe der Entfernungen notiert und die Strecke markiert. Bei H steht schon eine Entfernung kleiner der Summe von I zu P zu H. Daher passiert hier nichts Dr. Werner Struckmann / Maximilian von Unwerth Seite 31
39 Dijkstra-Algorithmus Fortsetzung (6) Nun ist X die Stadt mit der kleinsten Zahl: Wieder werden die Entfernungen zu den Nachbarstädten ermittelt. C und B sind bereits markiert, die kürzesten Wege dorthin sind also bereits gefunden. Strecke zu N wird markiert und die Entfernung notiert Dr. Werner Struckmann / Maximilian von Unwerth Seite 32
40 Dijkstra-Algorithmus Fortsetzung (7) Die noch nicht markierte Stadt mit der kleinsten Zahl ist jetzt H: Nachbarstädte I und P sind bereits markiert. Die Zahl an K ist kleiner als die Summe der Entfernungen von B aus. Die Strecken L und Z werden markiert und die Entfernung notiert Dr. Werner Struckmann / Maximilian von Unwerth Seite 33
41 Dijkstra-Algorithmus Fortsetzung (8) Jetzt folgt Y: Die Summe der Entfernungen zu L und Z sind kleiner als die bisherigen. Daher Streichung der bisherigen Markierungen und Zahlen. Neue Strecken werden markiert bzw. deren Entfernungen notiert. Da die bisherige Summe bei N kleiner ist, passiert hier nichts Dr. Werner Struckmann / Maximilian von Unwerth Seite 34
42 Dijkstra-Algorithmus Fortsetzung (9) Die nächste nicht markierte Stadt mit der kleinsten Zahl ist A: Die Nachbarstadt B ist schon markiert. Stadt D und N haben kleinere Zahlen, hier passiert nichts Dr. Werner Struckmann / Maximilian von Unwerth Seite 35
43 Dijkstra-Algorithmus Fortsetzung (10) Nun wird K markiert: Summe der Entfernungen über K zu F ist kleiner als die bisherige. Strecke zu F wird markiert und die neue Zahl notiert. Strecken zu den Nachbarstädten G und E werden markiert und deren Zahlen zugewiesen. Nachbarstadt Z hat schon eine Zahl kleiner der Summe der Entfernungen über K, daher passiert hier nichts Dr. Werner Struckmann / Maximilian von Unwerth Seite 36
44 Dijkstra-Algorithmus Fortsetzung (11) Jetzt ist N die Stadt mit der kleinsten Zahl: Nachbarstädte A und Y sind bereits markiert. Zahl von D ist kleiner als die Summe der Entfernungen über N Dr. Werner Struckmann / Maximilian von Unwerth Seite 37
45 Dijkstra-Algorithmus Fortsetzung (12) Als nächstes folgt Z: H und K sind schon markiert. Summe der Entfernungen über Z zu G ist jedoch kleiner als die bisherige. Strecke wird markiert und die neue Zahl notiert Dr. Werner Struckmann / Maximilian von Unwerth Seite 38
46 Dijkstra-Algorithmus Fortsetzung (13) Nun wird die Stadt D markiert: Nachbarstädte A und N sind bereits markiert. L hat eine kleinere Zahl als die von D aus berechnete Entfernung Dr. Werner Struckmann / Maximilian von Unwerth Seite 39
47 Dijkstra-Algorithmus Fortsetzung (14) Die nächste noch unmarkierte Stadt mit der kleinsten Zahl ist L: Nachbarstädte D, H und Y sind bereits markiert. Summe der Entfernungen zu G ist jedoch größer als die bisher notierte Summe Dr. Werner Struckmann / Maximilian von Unwerth Seite 40
48 Dijkstra-Algorithmus Fortsetzung (15) Nun kommt F an die Reihe: Nachbarstadt P ist schon markiert. bei E ist die bisherige Summe kleiner. bei O ist die Summe der Entfernungen kleiner als die bisherige und wird daher ersetzt und die Strecke zu O markiert Dr. Werner Struckmann / Maximilian von Unwerth Seite 41
49 Dijkstra-Algorithmus Fortsetzung (16) Jetzt ist E die noch nicht markierte Stadt mit der kleinsten Summe: In diesem Schritt ändert sich nichts. F ist schon markiert. Summe der Entfernungen von G und O ist kleiner Dr. Werner Struckmann / Maximilian von Unwerth Seite 42
50 Dijkstra-Algorithmus Fortsetzung (17) Die noch nicht markierte Stadt mit der kleinsten Summe ist G: Alle Nachbarstädte sind schon markiert. Hier passiert nichts weiter Dr. Werner Struckmann / Maximilian von Unwerth Seite 43
51 Dijkstra-Algorithmus Ende Die letzte unmarkierte Stadt ist O: Alle Nachbarstädte sind schon markiert Hier passiert also nichts mehr Und da es keine verbliebenen Städte mehr gibt, ist hier der Algorithmus zu Ende. Der kürzeste Weg von Imstadt nach Oppenheim führt also über Pappheim, Krupsing und Flughafen und ist 123 km lang Dr. Werner Struckmann / Maximilian von Unwerth Seite 44
52 Dijkstra-Algorithmus Edsger Wybe Dijkstra Geboren 1930 in Rotterdam Professor an der Universität in Eindhoven Vorstellung des Algorithmus zur Berechnung des kürzesten Weges in einem Graphen im Jahr 1959 Wechsel an die Universität von Texas im Jahr 1984 Beitrag zur Einführung der strukturierten Programmierung Erhielt den Turing-Preis 1972 Verstarb 2002 in seiner Heimat Nuenen Dr. Werner Struckmann / Maximilian von Unwerth Seite 45
53 Dijkstra-Algorithmus Algorithmus Markiere die Startstadt rot, weise ihr die Kennzahl 0 zu. Bezeichne diese als aktuelle Stadt. Gehe von der aktuellen Stadt zu allen direkt erreichbaren Nachbarstädten... führe das Folgende für jede Nachbarstadt durch: Errechne die Summe aus der Kennzahl an der aktuellen Stadt und der Länge der Strecke dorthin - ist die Nachbarstadt bereits rot markiert, mache nichts. - hat die Nachbarstadt keine Kennzahl, weise ihr die Summe als Kennzahl zu. Markiere die Strecke zur aktuellen Stadt. - hat die Nachbarstadt eine Kennzahl kleiner der Summe, mache nichts. - hat die Nachbarstadt eine Kennzahl größer der Summe, streiche die dortige Kennzahl sowie die Markierung. Weise ihr danach die Summe als neue Kennzahl zu. Markiere die Strecke zur aktuellen Stadt Betrachte alle Städte, die zwar eine Kennzahl haben, aber noch nicht rot markiert sind. Suche die Stadt mit der kleinsten Kennzahl. Bezeichne diese als aktuelle Stadt. Weisen mehrere Städte die kleinste Kennzahl auf, wähle eine beliebige davon als aktuelle Stadt. Markiere die aktuelle Stadt rot, zeichne die dort markierte Strecke in rot ein. Falls es noch Städte gibt, die nicht rot markiert sind weiter bei (1.) Dr. Werner Struckmann / Maximilian von Unwerth Seite 46
54 Zusammenfassung Finden bester Wege Einführung in Graphenalgorithmen Dijkstra-Algorithmus Morgen: Graphenalgorithmen (Weiterführung) Dr. Werner Struckmann / Maximilian von Unwerth Seite 47
55 Danke Vielen Dank für Ihre Aufmerksamkeit! Dr. Werner Struckmann / Maximilian von Unwerth Seite 48
56 Konzepte der Informatik Dr. Werner Struckmann / Maximilian von Unwerth, Technische Universität Braunschweig, IPS
57 Exceptions Programme und Methoden Exceptions Programme und Methoden Herangehensweise Weitere Beispiele Nicole Naczk, Maximilian von Unwerth Exceptions und kleine Programme Seite 2
58 Exceptions Programme und Methoden Exceptions auslösen Beim Exception-Handling von Java wird in Ausnahmesituationen eine Exception ausgelöst. Werfen einer Exception, die an anderer Stelle aufgefangen wird: throw new Exception(); throw-anweisung unterbricht den laufenden Code sofort, d. h. nachfolgende Anweisungen werden nicht mehr ausgeführt. Konstruktor der Exception-Klasse akzeptiert einen String-Parameter: Die Fehlerursache Nicole Naczk, Maximilian von Unwerth Exceptions und kleine Programme Seite 3
59 Ausnahmesituationen Exceptions Programme und Methoden In einer Ausnahmesituation kann ein Programm nicht wie geplant fortfahren. Beispiel: Wenn man noch Fragen zur Klausur hat... 1 import java.util.scanner; 2 3 public class Throw { 4 public static void main(string[] args) { 5 String eingabe = ""; 6 Scanner scanner = new Scanner(System.in); 7 eingabe = scanner.nextline(); 8 for (int i = 0; i < eingabe.length(); i++) { 9 if (eingabe. tolowercase().charat(i) ==? ) { 10 throw new IllegalArgumentException("Frage"); 11 } 12 } 13 } 14 } Throw.java Nicole Naczk, Maximilian von Unwerth Exceptions und kleine Programme Seite 4
60 Exceptions Programme und Methoden Die try-catch-anweisung try-block enthält Anweisungen Es wird versucht diese auszuführen Wird eine Exception geworfen, wird der try-block verlassen und es wird eine passende catch-kausel gesucht sonst wird die Exception zum Aufrufer weiter geleitet 1 try { 2 Anweisung; } catch (Ausnahmetyp x) { 5 Anweisung; } Nicole Naczk, Maximilian von Unwerth Exceptions und kleine Programme Seite 5
61 Exceptions Programme und Methoden Anwendungsbeispiel In folgendem Beispiel wird die Möglichkeit, dass clip(...) scheitern könnte, ignoriert. 1 public class TryCatch { 2 public static void main(string[] args) { 3 try { 4 //Code, der an irgendeiner Stelle eine IllegalArgumentException ausloesen kann 5 } catch ( IllegalArgumentException ex) { 6 // Einfach durchgehen lassen 7 } 8 } 9 } TryCatch.java Nicole Naczk, Maximilian von Unwerth Exceptions und kleine Programme Seite 6
62 Exceptions Programme und Methoden Ablauf Zwei mögliche Abläufe: 1. Das Programm arbeitet regulär: Der gesamte Inhalt des try-blocks wird vollständig ausgeführt. Dabei trifft das Programm nie auf eine throw-anweisung(keine Ausnahmesituation). Ende des try-blocks wird erreicht. catch-block wird übergangen. 2. Das Programm gerät in eine Ausnahmesituation: Das Programm trifft bei Abarbeitung des try-blocks auf eine throw-anweisung(ausnahmesituation). Normaler Programmablauf wird sofort abgebrochen und try-block beendet. Programm springt in den catch-block und arbeitet diesen vollständig ab. Danach ist die Fehlerbehandlung erledigt Nicole Naczk, Maximilian von Unwerth Exceptions und kleine Programme Seite 7
63 Exceptions Programme und Methoden Mehrere catch-klauseln Auffangen unterschiedlicher Exception-Typen: 1 try { } catch (Ausnahmetyp1 ex) { } catch (Ausnahmetyp2 ex) { } Reihenfolge entscheidet! Nicole Naczk, Maximilian von Unwerth Exceptions und kleine Programme Seite 8
64 Exceptions Programme und Methoden Exception-Signatur Problem: Anwender liegt i. d. R. nur der Methodenkopf vor, dem mögliche Exceptions nicht zu entnehmen sind. Daher werden mögliche Exceptions im Methodenkopf aufgezählt. Der Zusatz zum Methodenkopf heißt Exception-Signatur: returntype name(parameterlist) throws Exception Beispiel: String clip(string s) throws Exception Exception-Signatur als Warnung für den Aufrufer: Diese Methode könnte u. U. scheitern. Dabei wird eine bestimmte Exception geworfen. Der Anwender sollte dies berücksichtigen! Nicole Naczk, Maximilian von Unwerth Exceptions und kleine Programme Seite 9
65 Exceptions Programme und Methoden Weitergabe einer Ausnahme Wird eine Ausnahme ausgelöst, wird nach einer unmittelbar umgebenden try-catch-anweisung, die diesen Fehler behandelt, gesucht. Gibt es eine solche nicht, wird die Suche im umgebenden Block fortgesetzt, usw. Enthält auch die Hauptmethode keinen Code, um die Ausnahme zu behandeln, bricht das Programm mit einer Fehlermeldung ab Nicole Naczk, Maximilian von Unwerth Exceptions und kleine Programme Seite 10
66 Exceptions Programme und Methoden Die catch-or-throw-regel Die Grundregel zur Behandlung von Ausnahmen lautet catch-or-throw: Ausnahmen müssen behandelt oder weitergeleitet werden. Ausnahmen werden durch die try-catch-anweisung behandelt. Durch eine fehlende try-catch-anweisung wird eine Ausnahme weitergeleitet. In diesem Fall muss die Ausnahme mithilfe der throws-klausel im Methodenkopf deklariert und weiter oben in der Aufrufkette behandelt werden. Die Ausnahmen der Klasse RuntimeException weichen von der catch-or-throw-regel ab. Die Fehler dieser und der aus ihr abgeleiteten Klassen können vom Programmierer behandelt werden, müssen es aber nicht Nicole Naczk, Maximilian von Unwerth Exceptions und kleine Programme Seite 11
67 Exceptions Programme und Methoden finally Der finally-block wird in jedem Fall durchlaufen, bevor das Programm fortfährt. Dabei spielt es keine Rolle, auf welchem Weg das Programm den finally-block passiert. 1 try... 2 catch finally { 5... //Anweisungen 6 } Nicole Naczk, Maximilian von Unwerth Exceptions und kleine Programme Seite 12
68 Exceptions Programme und Methoden Grundbegriffe Ausnahmebehandlung Unter Ausnahmebehandlung versteht man einen Mechanismus zur strukturierten Bearbeitung von Fehlern oder außergewöhnlichen Situationen, die zur Laufzeit eines Programms auftreten. Eine Ausnahme(Exception) wird durch das Programm während der Laufzeit verursacht. Das Verursachen einer Ausnahme wird als Auslösen(throwing) bezeichnet. Die explizite Reaktion auf das Eintreten einer Ausnahme heißt Behandeln der Ausnahme(catching) Nicole Naczk, Maximilian von Unwerth Exceptions und kleine Programme Seite 13
69 Exceptions Programme und Methoden Grundbegriffe Ausnahmebehandlung Ein Laufzeitfehler oder das Eintreten einer vom Programmierer gewollten Bedingung löst eine Ausnahme aus. Diese kann vom auslösenden Programmteil behandelt oder weitergegeben werden. Wird die Ausnahme weitergereicht, so hat der Empfänger ebenfalls die Wahl zwischen Behandeln und Weitergeben. Wird die Ausnahme von keinem Programmteil behandelt, so führt sie zum Abbruch des Programms und zur Ausgabe einer Fehlermeldung Nicole Naczk, Maximilian von Unwerth Exceptions und kleine Programme Seite 14
70 Programm und Methode Exceptions Programme und Methoden Herangehensweise Weitere Beispiele Programm bedeutet: Java-Programm mit Klasse, sowie main-methode und gegebenenfalls weiteren Methoden Methode bedeutet: Methode mit Signatur übernehmen. Auf Rückgabetyp und Parameter achten Nicole Naczk, Maximilian von Unwerth Exceptions und kleine Programme Seite 15
71 Beispiel: Quadratpalindrome Exceptions Programme und Methoden Herangehensweise Weitere Beispiele Schreiben Sie ein Programm, das alle Quadratpalindrome zwischen 2 und findet und ausgibt. Ein Palindrom ist eine Zahl, die rückwärts gelesen genau dieselbe ist, wie die ursprüngliche Zahl. Des Weiteren soll für unsere Zahlen gelten, dass auch das Quadrat der Zahl ein Palindrom ist. Letztlich sollen die Zahlen außerdem noch Primzahlen sein. Haben Sie alle Quadratpalindrome gefunden, sollen sie wie folgend ausgegeben werden: 1.Quadratpalindrom:2 xhoch2=4 2.Quadratpalindrom:3 xhoch2=9 3.Quadratpalindrom:11 xhoch2= Nicole Naczk, Maximilian von Unwerth Exceptions und kleine Programme Seite 16
72 WiegehtmananProblemran? Exceptions Programme und Methoden Herangehensweise Weitere Beispiele Probleme in Teilprobleme zerlegen: Divide and conquer: 1. Klasse und Methoden erstellen 2. Schleife, um alle Zahlen zu testen 3. Primzahltest 4. Palindromtest 5. Alles schön zusammenbauen 6. Counter für die Ausgabe 7. Formatierte Ausgabe 8. Syntaxcheck 9. Beschreibung Nicole Naczk, Maximilian von Unwerth Exceptions und kleine Programme Seite 17
73 1. Klassen und Methoden Exceptions Programme und Methoden Herangehensweise Weitere Beispiele 1. Programm: Also eine Klasse erstellen. Wir brauchen außerdem Methoden für Prim- und Palindromigkeit Wichtig: Auf Klammern achten und Platz lassen! static nicht vergessen 1 public class KlasseUndMethoden { 2 public static void main(string[] args) { 3 //Teste fuer Zahlen Prim- und Palindromigkeit 4 } 5 6 public static boolean primcheck(int zahl) { 7 //Ist die Zahl eine Primzahl 8 } 9 10 public static boolean palindromcheck(int zahl) { 11 // Ist die Zahl ein Palindrom 12 } 13 } KlasseUndMethoden.java Nicole Naczk, Maximilian von Unwerth Exceptions und kleine Programme Seite 18
74 2. Schleife Exceptions Programme und Methoden Herangehensweise Weitere Beispiele 2. Schleife: For-Schleife erstellen, um durch alle Zahlen zu iterieren. Zähler an richtiger Stelle starten und enden lassen 1 public class KlasseUndMethoden { 2 public static void main(string[] args) { 3 for (int i = 2; i <= 1000; i++) { 4 // Hier soll nun gecheckt werden! 5 } 6 } 7 8 public static boolean primcheck(int zahl) { 9 //Ist die Zahl eine Primzahl 10 } public static boolean palindromcheck(int zahl) { 13 // Ist die Zahl ein Palindrom 14 } 15 } KlasseUndMethoden2.java Nicole Naczk, Maximilian von Unwerth Exceptions und kleine Programme Seite 19
75 3. Primzahltest Exceptions Programme und Methoden Herangehensweise Weitere Beispiele 3. Primzahltest 1 public static boolean primtest(int zahl) { 2 int teiler = 2; 3 while (teiler < zahl) { 4 if (zahl % teiler == 0) { 5 return false; 6 } 7 teiler++; 8 } 9 return true; 10 } ProgrammPrimTestGross.java Nicole Naczk, Maximilian von Unwerth Exceptions und kleine Programme Seite 20
76 3. Primzahltest 1 public class KlasseUndMethoden { 2 public static void main(string[] args) { 3 for (int i = 2; i <= 1000; i++) { 4 // Hier soll nun gecheckt werden! 5 } 6 } 7 8 public static boolean primcheck(int zahl) { 9 int teiler = 2; 10 while (teiler < zahl) { 11 if (zahl % teiler == 0) { 12 return false; 13 } 14 teiler++; 15 } 16 return true; 17 } public static boolean palindromcheck(int zahl) { 20 // Ist die Zahl ein Palindrom 21 } 22 } KlasseUndMethoden3.java
77 4. Palindromtest Exceptions Programme und Methoden Herangehensweise Weitere Beispiele 4. Primzahltest 1 private static boolean palindromtest(int zahl) { 2 String zahlstring = String.valueOf(zahl); 3 for (int i = 0; i < zahlstring.length() / 2; i++) { 4 if ( zahlstring.charat(i)!= zahlstring.charat( zahlstring.length() i)) return false; 5 } 6 return true; 7 } 8 } ProgrammPalindrom.java Nicole Naczk, Maximilian von Unwerth Exceptions und kleine Programme Seite 22
78 4. Palindromtest 1 public class KlasseUndMethoden { 2 public static void main(string[] args) { 3 for (int i = 2; i <= 1000; i++) { 4 // Hier soll nun gecheckt werden! 5 } 6 } 7 8 public static boolean primcheck(int zahl) { 9 int teiler = 2; 10 while (teiler < zahl) { 11 if (zahl % teiler == 0) return false; 12 teiler++; 13 } 14 return true; 15 } public static boolean palindromcheck(int zahl) { 18 String zahlstring = String.valueOf(zahl); 19 for (int i = 0; i < zahlstring.length() / 2; i++) { 20 if ( zahlstring.charat(i)!= zahlstring.charat( zahlstring.length() i)) return false; 21 } 22 return true; 23 } 24 }
79 5. Alles schön zusammenbauen 1 public class KlasseUndMethoden { 2 public static void main(string[] args) { 3 for (int i = 2; i <= 1000; i++) { 4 if ( primcheck(i) && palindromcheck(i) 5 && palindromcheck(i*i)) { 6 // Ausgabe des Quadratpalindroms 7 } 8 } 9 } KlasseUndMethoden5.java
80 6. Counter für die Ausgabe Exceptions Programme und Methoden Herangehensweise Weitere Beispiele 1 public class KlasseUndMethoden { 2 public static void main(string[] args) { 3 int counter = 0; 4 for (int i = 2; i <= 1000; i++) { 5 if ( primcheck(i) && palindromcheck(i) 6 && palindromcheck(i*i)) { 7 counter++; 8 System.out.println("") 9 } 10 } 11 } AusgabeCounter.java Nicole Naczk, Maximilian von Unwerth Exceptions und kleine Programme Seite 25
81 7. Formatierte Ausgabe Exceptions Programme und Methoden Herangehensweise Weitere Beispiele 1 public class KlasseUndMethoden { 2 public static void main(string[] args) { 3 int counter = 0; 4 for (int i = 2; i <= 1000; i++) { 5 if ( primcheck(i) && palindromcheck(i) 6 && palindromcheck(i*i)) { 7 counter++; 8 System.out.println(counter + ". Quadratpalindrom: " 9 + i + " x hoch 2 = " + i * i); 10 } 11 } 12 } Ausgabe.java Nicole Naczk, Maximilian von Unwerth Exceptions und kleine Programme Seite 26
82 8. Syntaxcheck Exceptions Programme und Methoden Herangehensweise Weitere Beispiele Klammerung Variablenname Semikolons Gaensefuesschen bei der Ausgabe Kann man i und j unterscheiden? Nicole Naczk, Maximilian von Unwerth Exceptions und kleine Programme Seite 27
83 8. Syntaxcheck 1 public class QP2 { 2 public static void main(string[] args) 3 int counter; 4 for (i = 2; i <= 1000; i++) { 5 if ( primcheck(i) && palindromcheck(i) 6 && palindromcheck(i*i) { 7 counter++; 8 System.out.println(counter + ". Quadratpalindrom:" 9 + i + " x hoch 2 = " + i * i); } } 10 } 11 public static boolean primcheck(int zahl) { 12 int teiler = 2; 13 while (teiler < zahl) { 14 if (zahl % teiler = 0) return true; 15 teiler++; 16 } 17 return false; } 18 public boolean palindromcheck(int zahl) { 19 String zs = String.valueof(zahl); 20 for (int i = 0; i < zs.length / 2, i++) { 21 if (zs.charat(i)!= zs.charat(zs.length() i)) return false } 22 return true; } Fehler.java
84 9. Beschreibung Schreibt eine Beschreibung! Entweder ausführliche Kommentare oder einen Fließtext!
85 Danke Exceptions Programme und Methoden Herangehensweise Weitere Beispiele Vielen Dank für die Aufmerksamkeit und das Interesse! Nicole Naczk, Maximilian von Unwerth Exceptions und kleine Programme Seite 30
86 Beispiel: makeset Exceptions Programme und Methoden Herangehensweise Weitere Beispiele Schreiben sie eine Methode public static int[] makeset(int[] a), welche ein Integer-Array a übergeben bekommt und ein neues Array zurück gibt,welchesjedenwertausagenaueinmalenthält.das zurückgegebene Array darf keine zusätzlichen Elemente enthalten. Für{3, 4, 5, 6, 1, 2, 3, 4, 5, 6, 5, 4, 3, 2, 1}wirdz.B. {3, 4, 5, 6, 1, 2}zurückgegeben.DieReihenfolgeistdabeiegal.Falls null übergeben wird, dann soll die Methode eine IllegalArgumentException auslösen Nicole Naczk, Maximilian von Unwerth Exceptions und kleine Programme Seite 31
87 Beispiel: sortbycount Exceptions Programme und Methoden Herangehensweise Weitere Beispiele Schreiben sie eine Methode public static void sortbycount(int[] a), welche die Elemente des Integer-Arrays a nach ihrer Anzahl aufsteigend sortiert. Kommen zwei Elemente gleich häufig vor, so steht das größere vorne. ZumBeispielwird{1, 1, 1, 1, 4, 3, 3, 3, 2, 2, -1, -1, 0}dadurchzu {4, 0, 2, 2, -1, -1, 3, 3, 3, 1, 1, 1, 1}.Fallsnullübergebenwird,dann soll die Methode eine IllegalArgumentException auslösen Nicole Naczk, Maximilian von Unwerth Exceptions und kleine Programme Seite 32
88 Beispiel: Teilbarkeit Exceptions Programme und Methoden Herangehensweise Weitere Beispiele Die Mathematiker haben bewiesen, dass jede 8-stellige Zahl der Form abcdabcd durch 73 und durch 137 teilbar ist. Beispiel: = = SchreibenSieein Programm, dass diese Behauptung vollständig überprüft und eventuelle Fehlerfälle ausgibt Nicole Naczk, Maximilian von Unwerth Exceptions und kleine Programme Seite 33
89 Lösung-makeSetI 1 public class MakeSet { 2 3 public static int[] makeset(int[] a) { 4 if (a == null) { 5 throw new IllegalArgumentException(); 6 } 7 int[] temp = new int[a.length]; 8 int count = 0; 9 for (int t : a) { 10 if (!isin(temp, t, count)) { 11 temp[count] = t; 12 count++; 13 } 14 } 15 return copy(temp, count); 16 }
90 Lösung- makeset II 21 public static int[] copy(int[] a, int length) { 22 int[] copy = new int[length]; 23 for (int i = 0; i < length; ++i) { 24 copy[i] = a[i]; 25 } 26 return copy; 27 } public static boolean isin(int[] a, int elem, int index) { 30 for (int i = 0; i < Math.min(index, a.length); i++) { 31 if (a[i] == elem) { 32 return true; 33 } 34 } 35 return false; 36 }
91 Lösung- makeset III 41 public static void print(int[] a) { 42 for (int x : a) { 43 System.out.printf("%d, ", x); 44 } 45 System.out.println(); 46 } public static void main(string[] args) { 49 int[] x = {3,4,5,6,1,2,3,4,5,6,5,4,3,2,1}; 50 print(makeset(x)); 51 try { 52 makeset(null); 53 } catch ( IllegalArgumentException e) { 54 System.out.println(" Exception erfolgreich ausgeloest"); 55 } 56 } 57 } MakeSet.java
92 Lösung- sortbycount I 1 public class SortCount { 2 public static void sortbycount(int[] a) { 3 if (a == null) { 4 throw new IllegalArgumentException(); 5 } 6 for (int i = 0; i < a.length - 1; ++i) { 7 for (int j = 0; j < a.length - 1; ++j) { 8 if (vor(a, a[j+1], a[j])) { 9 int temp = a[j]; 10 a[j] = a[j+1]; 11 a[j+1] = temp; 12 } 13 } 14 } 15 } 16 public static boolean vor(int[] c, int a, int b) { 17 int counta = count(c, a); 18 int countb = count(c, b); 19 return counta < countb (counta == countb && a > b); 20 }
93 Lösung- sortbycount II 21 public static int count(int[] a, int x) { 22 int count = 0; 23 for (int i : a) { 24 if (i == x) { 25 count += 1; 26 } 27 } 28 return count; 29 } public static void print(int[] a) { 35 for (int x : a) { 36 System.out.printf("%d, ", x); 37 } 38 System.out.println(); 39 } 40
94 Lösung- sortbycount III 41 public static void main(string[] args) { 42 int[] x = {1,1,1,1,4,3,3,3,2,2,-1,-1,0}; 43 sortbycount(x); 44 print(x); 45 try { 46 sortbycount(null); 47 } catch ( IllegalArgumentException e) { 48 System.out.println(" Exception erfolgreich ausgeloest"); 49 } 50 } 51 } SortCount.java
95 Lösung- Teilbarkeit 1 public class Teilbarkeit { 2 public static void main(string[] args) { 3 for (int t = 1000; t <= 9999; t++) { 4 int number = t * 10_000 + t; 5 if (number % 73!= 0 number % 137!= 0) 6 System.out.printf("Fuer %d stimmt die Behauptung nicht %n", number); 7 } 8 } 9 } Teilbarkeit.java
96 Danke Viel Erfolg im Studium! Ihr schafft das schon Dr. Werner Struckmann / Maximilian von Unwerth Seite 1
Vorkurs Informatik WiSe 16/17
Konzepte der Informatik Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe, 11.10.2016 Technische Universität Braunschweig, IPS Inhaltsverzeichnis Vorüberlegungen Ameisen-Prinzip Dijkstra-Algorithmus
MehrKonzepte der Informatik
Konzepte der Informatik Vorkurs Informatik zum WS 2011/2012 26.09. - 30.09.2011 17.10. - 21.10.2011 Dr. Werner Struckmann / Christoph Peltz Stark angelehnt an Kapitel1 aus "Abenteuer Informatik" von Jens
MehrKonzepte der Informatik
Platzhalter für Bild, Bild auf Titelfolie hinter das Logo einsetzen Konzepte der Informatik Vorkurs Informatik zum WS 2012/2013 01.10. - 12.10.2012 Dr. Werner Struckmann / Tim Winkelmann Stark angelehnt
MehrVorkurs Informatik SoSe 15
Algorithmen 2 Dr. Werner Struckmann / Stephan Mielke, Marvin Priedigkeit, 9.04.2015 Technische Universität Braunschweig, IPS Inhaltsverzeichnis Vorüberlegungen Ameisen-Prinzip Dijkstra-Algorithmus Schilda-Rallye
MehrKonzepte der Informatik
Konzepte der Informatik Vorkurs Informatik zum WS 2011/2012 26.09. - 30.09.2011 17.10. - 21.10.2011 Dr. Werner Struckmann / Christoph Peltz Stark angelehnt an Kapitel 1 aus "Abenteuer Informatik" von Jens
MehrVorkurs Informatik SoSe 14 Algorithmen 2
Platzhalter für Bild, Bild auf Titelfolie hinter das Logo einsetzen Vorkurs Informatik SoSe 14 Algorithmen 2 2.4. - 1.4.214 Dr. Werner Struckmann / Markus Reschke Stark angelehnt an "Abenteuer Informatik"
MehrKonzepte der Informatik
Platzhalter für Bild, Bild auf Titelfolie hinter das Logo einsetzen Konzepte der Informatik Vorkurs Informatik zum WS 2012/2013 01.10. - 12.10.2012 Dr. Werner Struckmann / Tim Winkelmann Stark angelehnt
MehrGPS und Routenplaner
GPS und Routenplaner Sag' mir wohin... Einführung Routenplaner gehören heute schon fast zum Alltag: Viele Autos haben sie bereits eingebaut, wer keinen im Fahrzeug hat, lässt sich den günstigsten Weg zu
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
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
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
Mehr9. Ausnahmebehandlung
Schwerpunkte Ausnahmen und Laufzeitfehler 9. Ausnahmebehandlung Java-Beispiele: Ausnahme.java TryCatch.java TryCatchAll.java Finally.java TryInTry.java KeyboardTry.java Oeffnungszeit.java Stack-Trace Java-Ausnahmeklassen-Hierarchie
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
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
MehrInstitut für Programmierung und Reaktive Systeme 25. Januar Programmieren I. Übungsklausur
Technische Universität Braunschweig Dr. Werner Struckmann Institut für Programmierung und Reaktive Systeme 25. Januar 2018 Hinweise: Klausurtermine: Programmieren I Übungsklausur Programmieren I: 17. Februar
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
MehrAusnahmen. Gerd Bohlender. Institut für Angewandte und Numerische Mathematik. Vorlesung: Einstieg in die Informatik mit Java 27.6.
Ausnahmen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Vorlesung: Einstieg in die Informatik mit Java 27.6.07 G. Bohlender (IANM UNI Karlsruhe) Ausnahmen 27.6.07 1 / 8 Übersicht 1 Einführung
MehrEinführung in die Programmierung mit Java
Einführung in die Programmierung mit Java Teil 9: Ausnahmebehandlung Martin Hofmann Steffen Jost LFE Theoretische Informatik, Institut für Informatik, Ludwig-Maximilians Universität, München 8. Dezember
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
MehrUmgang mit Fehlern. Sinn von Ausnahme-/Fehlerobjekten Dokumentation Umgang mit Fehlern Eigene Fehlerklassen
Umgang mit Fehlern Sinn von Ausnahme-/Fehlerobjekten Dokumentation Umgang mit Fehlern Eigene Fehlerklassen Die Java-Fehlerbehandlung stellt gegenüber älteren Verfahren einen großen Fortschritt dar. Prof.
MehrEinstieg in die Informatik mit Java
1 / 16 Einstieg in die Informatik mit Java Ausnahmen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 16 1 Übersicht Ausnahmen 2 Klassenhierarchie 3 Try-Catch-Blöcke 4 Definition
MehrInstitut für Programmierung und Reaktive Systeme 2. Februar Programmieren I. Übungsklausur
Technische Universität Braunschweig Dr. Werner Struckmann Institut für Programmierung und Reaktive Systeme 2. Februar 2017 Hinweise: Klausurtermine: Programmieren I Übungsklausur Programmieren I: 13. März
MehrEinführung in die Programmierung für NF. Fehler und Ausnahmen
Einführung in die Programmierung für NF Fehler und Ausnahmen Ziele Fehlerquellen in Programmen und bei der Programmausführung verstehen Das Java- Konzept der Ausnahmen als Objekte kennenlernen Ausnahmen
MehrÜbungen zu Middleware Universität Erlangen-Nürnberg Informatik 4, 2007 Z-Java-Exceptions.fm
Z.11Fehlerbehandlung Programm beenden (System.exit()) meist eine schlechte Idee Ausgabe einer Fehlermeldung hilft nicht den Fehler zu überwinden spezieller Rückgabewert kennzeichnet Fehler Konstruktoren
MehrAusnahmen (Exceptions)
Ausnahmen (Exceptions) Herkömmliche Fehlerbehandlung Jede Methode liefert einen Fehlercode int result; result = p(); if (result == ok) { result = q(); if (result == ok) { result = r(); if (result == ok)
MehrAusnahmen. 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
MehrAusnahmebehandlung. 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,
Mehr1 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)
MehrExceptions. 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)
MehrTechnische Universität Braunschweig Institut für Programmierung und Reaktive Systeme
Technische Universität Braunschweig Institut für Programmierung und Reaktive Systeme Programmieren I Dr. Werner Struckmann 14. März 2016 Name: Vorname: Matrikelnummer: Kennnummer: Anrede: Frau Herr Studiengang:
MehrExceptions. CoMa-Übung VI TU Berlin. CoMa-Übung VI (TU Berlin) Exceptions / 19
Exceptions CoMa-Übung VI TU Berlin 8.11.01 CoMa-Übung VI (TU Berlin) Exceptions 8.11.01 1 / 19 Themen der Übung 1 Organisatorisches Compilezeit- und Laufzeitfehler 3 Exceptions 4 Try-Catch-Finally Bewertung
MehrKapitel 11: Ausnahmebehandlung
Universität München, Hans-Peter Kriegel und Thomas Seidl Informatik II -242 Kapitel 11: Ausnahmebehandlung Ausnahmen (Exceptions) Signalisierung von Fehlern und unerwünschten Situationen zur Laufzeit.
MehrVorlesung 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
Mehr1.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
MehrGliederung 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
MehrSoftwareentwicklung II (IB) Exceptions. Prof. Dr. Oliver Braun. Fakultät für Informatik und Mathematik Hochschule München
Softwareentwicklung II (IB) Exceptions Fakultät für Informatik und Mathematik Hochschule München Letzte Änderung: 25.06.2018 07:23 Inhaltsverzeichnis Exceptions 1 Idee.........................................
MehrVorkurs Informatik WiSe 17/18
Java Einführung Dr. Werner Struckmann / Stephan Mielke, Nicole Naczk, 04.10.2017 Technische Universität Braunschweig, IPS Überblick Organisatorisches Arbeitsablauf Hello World 04.10.2017 Dr. Werner Struckmann
MehrTechnische Universität Braunschweig Institut für Programmierung und Reaktive Systeme
Technische Universität Braunschweig Institut für Programmierung und Reaktive Systeme Programmieren I Dr. Werner Struckmann 7. September 2015 Name: Vorname: Matrikelnummer: Kennnummer: Anrede: Frau Herr
Mehr1 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
MehrGrundlagen 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();
MehrExceptions. Softwareentwicklung II (IB) Prof. Dr. Oliver Braun Letzte Änderung: :23. Exceptions 1/37
Exceptions Softwareentwicklung II (IB) Prof. Dr. Oliver Braun Letzte Änderung: 25.06.2018 07:23 Exceptions 1/37 Exceptions Exceptions 2/37 Idee (1/3) Laufzeitfehler = Probleme im ablaufenden Programm (im
MehrTechnische Universität Braunschweig Institut für Programmierung und Reaktive Systeme
Technische Universität Braunschweig Institut für Programmierung und Reaktive Systeme Programmieren I Dr. Werner Struckmann 8. September 2014 Name: Vorname: Matrikelnummer: Kennnummer: Anrede: Frau Herr
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 Der finally-block catch or throw WS 07/08 1/ 23 2/ 23 Grundlagen von Exceptions
MehrProgrammieren 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
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)
MehrTechnische Universität Braunschweig Institut für Programmierung und Reaktive Systeme
Technische Universität Braunschweig Institut für Programmierung und Reaktive Systeme Programmieren I Dr. Werner Struckmann 13. März 2017 Name: Vorname: Matrikelnummer: Kennnummer: Anrede: Frau Herr Studiengang:
MehrEinführung in die Programmierung WS 2009/10. Übungsblatt 7: Imperative Programmierung, Parameterübergabe
Ludwig-Maximilians-Universität München München, 04.12.2009 Institut für Informatik Prof. Dr. Christian Böhm Annahita Oswald, Bianca Wackersreuther Einführung in die Programmierung WS 2009/10 Übungsblatt
MehrGeoinformatik und Vermessung Prüfung 502 : Informatik (JAVA)
Geoinformatik und Vermessung Prüfung 502 : Informatik (JAVA) Ergebnisse teilgenommen: 73 nicht bestanden: 22 bestanden: 51 davon 4er: 12 davon 3er: 18 davon 2er: 15 davon 1er: 6 Aufgabe 1: Tracing 4 Punkte
MehrTechnische Universität Braunschweig Institut für Programmierung und Reaktive Systeme
Technische Universität Braunschweig Institut für Programmierung und Reaktive Systeme Programmieren I Dr. Werner Struckmann 12. März 2014 Name: Vorname: Matrikelnummer: Kennnummer: Anrede: Frau Herr Studiengang:
MehrCoMa 04. Java II. Paul Boeck. 7. Mai Humboldt Universität zu Berlin Institut für Mathematik. Paul Boeck CoMa 04 7.
CoMa 04 Java II Paul Boeck Humboldt Universität zu Berlin Institut für Mathematik 7. Mai 2013 Paul Boeck CoMa 04 7. Mai 2013 1 / 13 Verzweigungen Wenn-Dann Beziehungen if (BEDINGUNG) { else if (BEDINGUNG2)
MehrSelectionsort Beispiel
Selectionsort Arbeitsweise Durchsuche das Array ab Pos. 1 nach dem kleinsten Element Vertausche das gefundene Element mit dem ersten Durchsuche das Array ab Pos. 2 nach dem kleinsten Element Vertausche
MehrProf. Dr. Oliver Haase Karl Martin Kern Achim Bitzer. Programmiertechnik Ausnahmen
Prof. Dr. Oliver Haase Karl Martin Kern Achim Bitzer Programmiertechnik Ausnahmen Motivation Anwendungsbeispiel 1: java Excep1 a: 15 b: 3 a / b = 5 Job done. Konsole Anwendungsbeispiel 2: Konsole java
MehrProgrammierstarthilfe SS 2008 Fakultät für Ingenieurwissenschaften und Informatik 10. Blatt Für den und
Programmierstarthilfe SS 2008 Fakultät für Ingenieurwissenschaften und Informatik 10. Blatt Für den 30.6. und 1.7.2008 Organisatorisches Um auf die Mailingliste aufgenommen zu werden schicke einfach eine
MehrSystem.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
Mehr15 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.
MehrSortieralgorithmen. Nachfolgend wird die Menge der ganzen Zahlen und die darauf definierte Relation betrachtet.
Sortieralgorithmen [http://de.wikipedia.org/wiki/topologische_sortierung] Die zu sortierenden Objekte müssen bezüglich einer Vergleichsbeziehung teilweise angeordnet werden können, damit sie sortierbar
MehrKapitel 12: Ausnahmen und Ausnahmebehandlung
Einführung in die Informatik: Programmierung und Softwareentwicklung Wintersemester 2018/19 Kapitel 12: Ausnahmen und Ausnahmebehandlung Prof. Dr. David Sabel Lehr- und Forschungseinheit für Theoretische
MehrProgrammierung für Mathematik HS11
software evolution & architecture lab Programmierung für Mathematik HS11 Übung 8 1 Aufgabe: Codeverständnis (Repetition) 1.1 Lernziele 1. Code verstehen können. 2. Fehler im Code finden und korrigieren
MehrHandbuch konsultieren!
Zeichenketten Klasse String Enthält zahlreiche Methoden z.b.: int length(): Anzahl der Zeichen in Zeichenkette String substring(int start): Unterzeichenkette ab Position start boolean equalsignorecase(string
MehrListe Programmieren Java Überblick
Liste Programmieren Java Überblick 1 Was ist Java? 2 Klassen und Objekte 3 Vererbung 4 Schnittstellen 5 Innere Klassen 7 Funktionsbibliothek 8 Datenstrukturen und Algorithmen 9 Ein-/Ausgabe 10 Threads
MehrRobuste Programme durch Ausnahmebehandlung
2 Robuste Programme durch Ausnahmebehandlung Martin Wirsing Ziele Lernen robuste Programme zu schreiben Ausnahmen als Objekte verstehen lernen Bedeutung von Ausnahmen erkennen in der Signatur und im Rumpf
MehrGeoinformatik und Vermessung Prüfung 502 : Informatik (JAVA)
Geoinformatik und Vermessung Prüfung 502 : Informatik (JAVA) Ihr Name: Matrikelnummer: Allgemeine Hinweise: Erlaubtes Hilfsmittel: Ein beidseitig handbeschriebenes Din-A4-Blatt Tragen Sie Ihren Namen und
MehrEinführung in die Informatik: Programmierung und Software-Entwicklung, WS 12/13. Kapitel 11. Fehler und Ausnahmen
1 Kapitel 11 Ziele 2 Fehlerquellen in Programmen und bei der Programmausführung verstehen Das Java-Konzept der Ausnahmen als Objekte kennenlernen Ausnahmen auslösen können Ausnahmen behandeln können Fehlerhafte
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.4 Exceptions - 1 - Ausnahmen (Exceptions( Exceptions) Treten auf, wenn zur
Mehr15 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.
Mehr15 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.
MehrVorkurs Informatik WiSe 17/18
Java Ausdrücke und Variablen Dr. Werner Struckmann / Stephan Mielke, Nicole Naczk, 05.10.2017 Technische Universität Braunschweig, IPS Überblick Ausdrücke, Datentypen und Variablen Kontrollstrukturen 05.10.2017
MehrVorlesung Informatik II
Vorlesung Informatik II Universität Augsburg Wintersemester 2011/2012 Prof. Dr. Bernhard Bauer Folien von: Prof. Dr. Robert Lorenz Lehrprofessur für Informatik 13. Java Ausnahmebehandlung 1 Motivation
MehrEinführung in die Informatik: Programmierung und Software-Entwicklung, WS 13/14. Kapitel 11. Fehler und Ausnahmen
1 Kapitel 11 Ziele 2 Fehlerquellen in Programmen und bei der Programmausführung verstehen Das Java-Konzept der Ausnahmen als Objekte kennenlernen Ausnahmen auslösen können Ausnahmen behandeln können Fehlerhafte
MehrEinfache Arrays. Dr. Philipp Wendler. Zentralübung zur Vorlesung Einführung in die Informatik: Programmierung und Softwareentwicklung
Dr. Philipp Wendler Zentralübung zur Vorlesung Einführung in die Informatik: Programmierung und Softwareentwicklung WS18/19 https://www.sosy-lab.org/teaching/2018-ws-infoeinf/ Arrays: Wiederholung Ein
MehrProgrammierstarthilfe SS 2010 Fakultät für Ingenieurwissenschaften und Informatik 6. Blatt Für die Woche vom bis zum 4.6.
Programmierstarthilfe SS 2010 Fakultät für Ingenieurwissenschaften und Informatik 6. Blatt Für die Woche vom 31.5. bis zum 4.6.2010 (KW 22) Organisatorisches Diese Woche führen wir Methoden ein und behandeln
MehrProbeklausur zur Vorlesung
Dr. Jochen Hoenicke Alexander Nutz Probeklausur zur Vorlesung Einführung in die Informatik Sommersemester 2014 Die Klausur besteht aus diesem Deckblatt und elf Blättern mit den Aufgaben, sowie einem Blatt
MehrVorkurs Informatik WiSe 16/17
Java Einführung Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe, 04.10.2016 Technische Universität Braunschweig, IPS Überblick Organisatorisches Hello! 04.10.2016 Dr. Werner Struckmann / Stephan Mielke,
MehrVorkurs Informatik WiSe 16/17
Institut für Programmierung Konzepte der Informatik Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe, 12.10.2016 Technische Universität Braunschweig, IPS Inhaltsverzeichnis Schilda-Rallye Was steckt
MehrBasispruefung Herbst 2016/ Einführung in die Programmierung
Basispruefung Herbst 2016/17 0027 Einführung in die Programmierung Departement Informatik ETH Zürich Nachname: Vorname: Stud.number: Mit Ihrer Unterschrift bestätigen Sie, dass Sie folgenden Hinweise zur
MehrProgrammiervorkurs WS 2013/2014. Schleifen. Termin 3
Programmiervorkurs WS 2013/2014 Schleifen Termin 3 Ein Befehl soll mehrfach ausgeführt werden, z.b.: public class MyCounter { System.out.println(1); Ein Befehl soll mehrfach ausgeführt werden, z.b.: public
MehrVorkurs Informatik WiSe 15/16
Konzepte der Informatik Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe, 20.10.2015 Technische Universität Braunschweig, IPS Inhaltsverzeichnis Schilda-Rallye Was steckt dahinter? Darstellung von Graphen
MehrProgrammiertechnik Ausnahmen
Programmiertechnik Ausnahmen Prof. Dr. Oliver Haase Oliver Haase Hochschule Konstanz 1 Motivation public class Excep1 { public void doyourjob() { Scanner scanner = new Scanner(System.in); System.out.print("a:
MehrTeil 5 - Java. Programmstruktur Operatoren Schlüsselwörter Datentypen
Teil 5 - Java Programmstruktur Operatoren Schlüsselwörter Datentypen 1 Kommentare in Java In Java gibt es drei Möglichkeiten zur Kommentierung: // Kommentar Alle Zeichen nach dem // werden ignoriert. für
MehrGrundlagen der Programmierung Teil1 Einheit III Okt. 2010
Grundlagen der Programmierung Teil1 Einheit III - 22. Okt. 2010 GDP DDr. Karl D. Fritscher basierend auf der Vorlesung Grundlagen der Programmierung von DI Dr. Bernhard Pfeifer Einschub Bevor wir mit den
MehrC# - 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 Fehler in einem Programm Warnungen sind Hinweise auf eventuelle Fehler während der Laufzeit des Programms.
MehrII.4.4 Exceptions - 1 -
1. Unterklassen und Vererbung 2. Abstrakte Klassen und Interfaces 3. Modularität und Pakete 4. Ausnahmen (Exceptions) 5. Generische Datentypen 6. Collections II.4.4 Exceptions - 1 - Ausnahmen (Exceptions)
Mehr15 Fehlerobjekte: Werfen, Fangen, Behandeln
15 Fehlerobjekte: Werfen, Fangen, Behandeln Tritt während der Programmausführung ein Fehler auf, wird die normale Programmausführung abgebrochen und ein Fehlerobjekt erzeugt (geworfen). Die Klasse Throwable
Mehr15 Fehlerobjekte: Werfen, Fangen, Behandeln. Idee. Fehlerklassen. Fehlerklassen
15 Fehlerobjekte: Werfen, Fangen, Behandeln Idee Tritt während der Programmausführung ein Fehler auf, wird die normale Programmausführung abgebrochen und ein Fehlerobjekt erzeugt (geworfen). Die Klasse
Mehr15 Fehlerobjekte: Werfen, Fangen, Behandeln
15 Fehlerobjekte: Werfen, Fangen, Behandeln Tritt während der Programmausführung ein Fehler auf, wird die normale Programmausführung abgebrochen und ein Fehlerobjekt erzeugt (geworfen). Die Klasse Throwable
MehrArbeitsblätter für die Lehrveranstaltung OOP JAVA 1
Fachhochschule Stralsund Fachbereich Maschinenbau Lehrgebiet Informatik Prof. Dr.-Ing. Ch.Wahmkow Arbeitsblätter für die Lehrveranstaltung OOP I. Aufbau eines Java-Programmes JAVA 1 Escape-Sequenzen zur
Mehr5. Java Arrays und Strings
Arrays Arrayvariable deklarieren: int[] z; z 5. Java Arrays und Strings Array erzeugen: z = new int[5]; Allokation, Referenzen, Elementzugriff, Mehrdimensionale Arrays, Strings, Stringvergleiche z ist
MehrKlausur zur Lehrveranstaltung. Technische Informatik für Ingenieure WS 2009/10
Klausur zur Lehrveranstaltung Technische Informatik für Ingenieure WS 2009/10 22. Februar 2010 Aufgabe 1 2 3 4 5 6 7 Summe mögliche Punkte 15 15 20 15 20 20 15 120 erreichte Punkte Note: Hinweise: Diese
MehrTag 4 Repetitorium Informatik (Java)
Tag 4 Repetitorium Informatik (Java) Dozent: Michael Baer Lehrstuhl für Informatik 2 (Programmiersysteme) Friedrich-Alexander-Universität Erlangen-Nürnberg Wintersemester 2017/2018 Übersicht Arrays (Reihungen)
MehrII.4.4 Exceptions - 1 -
n 1. Unterklassen und Vererbung n 2. Abstrakte Klassen und Interfaces n 3. Modularität und Pakete n 4. Ausnahmen (Exceptions) n 5. Generische Datentypen n 6. Collections II.4.4 Exceptions - 1 - Ausnahmen
MehrTechnische Universität Braunschweig Institut für Programmierung und Reaktive Systeme
Technische Universität Braunschweig Institut für Programmierung und Reaktive Systeme Programmieren I Dr. Werner Struckmann 6. März 2013 Name: Vorname: Matrikelnummer: Kennnummer: Anrede: Frau Herr Studiengang:
MehrInstitut für Programmierung und Reaktive Systeme 6. Juli Programmieren II. Übungsklausur
Technische Universität Braunschweig Dr. Werner Struckmann Institut für Programmierung und Reaktive Systeme 6. Juli 2018 Hinweise: Klausurtermine: Programmieren II Übungsklausur Programmieren I: 27. August
MehrTechnische Universität Braunschweig Institut für Programmierung und Reaktive Systeme
Technische Universität Braunschweig Institut für Programmierung und Reaktive Systeme Programmieren II Dr. Werner Struckmann 29. August 2014 Name: Vorname: Matrikelnummer: Kennnummer: Anrede: Frau Herr
MehrTechnische Universität Braunschweig Institut für Programmierung und Reaktive Systeme
Technische Universität Braunschweig Institut für Programmierung und Reaktive Systeme Programmieren II Dr. Werner Struckmann 16. August 2013 Name: Vorname: Matrikelnummer: Kennnummer: Anrede: Frau Herr
MehrJavakurs für Anfänger
Javakurs für Anfänger Einheit 06: Einführung in Kontrollstrukturen Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda 1. Teil: Einführung in Kontrollstrukturen 3 Grundstrukturen von
MehrObjektorientierte Programmierung. Kapitel 9: Exceptions I
9. Exceptions I 1/37 Objektorientierte Programmierung Kapitel 9: Exceptions I Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester 2014/15 http://www.informatik.uni-halle.de/ brass/oop14/
MehrExceptions und Vererbung
Exceptions und Vererbung Marc Satkowski 20. November 2016 C# Kurs Gliederung 1. Vererbung Polymorphie Methoden- & Eigenschaftsüberschreibung Weitere Schlüsselwörter 2. Exceptions Eigene Exceptions Handling
Mehr