Vorkurs Informatik SoSe18

Größe: px
Ab Seite anzeigen:

Download "Vorkurs Informatik SoSe18"

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

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

Mehr

Konzepte der Informatik

Konzepte 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

Mehr

Konzepte der Informatik

Konzepte 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

Mehr

Vorkurs Informatik SoSe 15

Vorkurs 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

Mehr

Konzepte der Informatik

Konzepte 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

Mehr

Vorkurs Informatik SoSe 14 Algorithmen 2

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

Mehr

Konzepte der Informatik

Konzepte 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

Mehr

GPS und Routenplaner

GPS 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

Mehr

Abschnitt 7: Weitere Konzepte der oo Programmierung in Java

Abschnitt 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

Mehr

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

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

Mehr

Zuverlässigkeit von Programmen: Behandlung von Ausnahmesituationen

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

Mehr

9. Ausnahmebehandlung

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

Mehr

Kapitel 10. Programmierkurs. Grundlagen von Exceptions Behandlung von Exceptions

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

Mehr

Kapitel 9. Ausnahmebehandlung in Java. Skript zur Vorlesung Einführung in die Programmierung

Kapitel 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

Mehr

Institut für Programmierung und Reaktive Systeme 25. Januar Programmieren I. Übungsklausur

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

Mehr

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

Mehr

Einführung in die Programmierung mit Java

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

Mehr

9. Ausnahmebehandlung

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

Mehr

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

Mehr

Einstieg in die Informatik mit Java

Einstieg 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

Mehr

Institut für Programmierung und Reaktive Systeme 2. Februar Programmieren I. Übungsklausur

Institut 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

Mehr

Einführung in die Programmierung für NF. Fehler und Ausnahmen

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

Ü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

Mehr

Ausnahmen (Exceptions)

Ausnahmen (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)

Mehr

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

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

Mehr

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

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

Mehr

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

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

Mehr

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

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

Mehr

Technische Universität Braunschweig Institut für Programmierung und Reaktive Systeme

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

Mehr

Exceptions. CoMa-Übung VI TU Berlin. CoMa-Übung VI (TU Berlin) Exceptions / 19

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

Mehr

Kapitel 11: Ausnahmebehandlung

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

Mehr

Vorlesung 10. Sitzung Grundlegende Programmiertechniken

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

Mehr

1.7 Fehler- und Ausnahmebehandlung

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

Mehr

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

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

Mehr

Softwareentwicklung II (IB) Exceptions. Prof. Dr. Oliver Braun. Fakultät für Informatik und Mathematik Hochschule München

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

Mehr

Vorkurs Informatik WiSe 17/18

Vorkurs 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

Mehr

Technische Universität Braunschweig Institut für Programmierung und Reaktive Systeme

Technische 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

Mehr

1 Fehler-Objekte: Werfen, Fangen, Behandeln

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

Mehr

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

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

Mehr

Exceptions. Softwareentwicklung II (IB) Prof. Dr. Oliver Braun Letzte Änderung: :23. Exceptions 1/37

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

Mehr

Technische Universität Braunschweig Institut für Programmierung und Reaktive Systeme

Technische 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

Mehr

Kapitel 10. Programmierkurs. Grundlagen von Exceptions Behandlung von Exceptions

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

Mehr

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

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

Mehr

Einführung in die Programmierung

Einfü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)

Mehr

Technische Universität Braunschweig Institut für Programmierung und Reaktive Systeme

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

Mehr

Einführung in die Programmierung WS 2009/10. Übungsblatt 7: Imperative Programmierung, Parameterübergabe

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

Mehr

Geoinformatik und Vermessung Prüfung 502 : Informatik (JAVA)

Geoinformatik 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

Mehr

Technische Universität Braunschweig Institut für Programmierung und Reaktive Systeme

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

Mehr

CoMa 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. 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)

Mehr

Selectionsort Beispiel

Selectionsort 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

Mehr

Prof. Dr. Oliver Haase Karl Martin Kern Achim Bitzer. Programmiertechnik Ausnahmen

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

Mehr

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

Mehr

System.out.println("TEXT");

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

Mehr

15 Fehlerobjekte: Werfen, Fangen, Behandeln

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

Mehr

Sortieralgorithmen. Nachfolgend wird die Menge der ganzen Zahlen und die darauf definierte Relation betrachtet.

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

Mehr

Kapitel 12: Ausnahmen und Ausnahmebehandlung

Kapitel 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

Mehr

Programmierung für Mathematik HS11

Programmierung 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

Mehr

Handbuch konsultieren!

Handbuch 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

Mehr

Liste Programmieren Java Überblick

Liste 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

Mehr

Robuste Programme durch Ausnahmebehandlung

Robuste 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

Mehr

Geoinformatik und Vermessung Prüfung 502 : Informatik (JAVA)

Geoinformatik 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

Mehr

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

Einfü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. ! 1. Unterklassen und Vererbung! 2. Abstrakte Klassen und Interfaces! 3. Modularität und Pakete! 4. Ausnahmen (Exceptions) II.4.4 Exceptions - 1 - Ausnahmen (Exceptions( Exceptions) Treten auf, wenn zur

Mehr

15 Fehlerobjekte: Werfen, Fangen, Behandeln

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

Mehr

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

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

Mehr

Vorkurs Informatik WiSe 17/18

Vorkurs 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

Mehr

Vorlesung Informatik II

Vorlesung 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

Mehr

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

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

Mehr

Einfache Arrays. Dr. Philipp Wendler. Zentralübung zur Vorlesung Einführung in die Informatik: Programmierung und Softwareentwicklung

Einfache 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

Mehr

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

Mehr

Probeklausur zur Vorlesung

Probeklausur 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

Mehr

Vorkurs Informatik WiSe 16/17

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

Mehr

Vorkurs Informatik WiSe 16/17

Vorkurs 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

Mehr

Basispruefung Herbst 2016/ Einführung in die Programmierung

Basispruefung 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

Mehr

Programmiervorkurs WS 2013/2014. Schleifen. Termin 3

Programmiervorkurs 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

Mehr

Vorkurs Informatik WiSe 15/16

Vorkurs 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

Mehr

Programmiertechnik Ausnahmen

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

Mehr

Teil 5 - Java. Programmstruktur Operatoren Schlüsselwörter Datentypen

Teil 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

Mehr

Grundlagen der Programmierung Teil1 Einheit III Okt. 2010

Grundlagen 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

Mehr

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

C# - Einführung in die Programmiersprache Fehler abfangen. Leibniz Universität IT Services Anja Aue C# - Einführung in die Programmiersprache Fehler abfangen Leibniz Universität IT Services Anja Aue Fehler in einem Programm Warnungen sind Hinweise auf eventuelle Fehler während der Laufzeit des Programms.

Mehr

II.4.4 Exceptions - 1 -

II.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)

Mehr

15 Fehlerobjekte: Werfen, Fangen, Behandeln

15 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

Mehr

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

15 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

Mehr

15 Fehlerobjekte: Werfen, Fangen, Behandeln

15 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

Mehr

Arbeitsblätter für die Lehrveranstaltung OOP JAVA 1

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

Mehr

5. Java Arrays und Strings

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

Mehr

Klausur zur Lehrveranstaltung. Technische Informatik für Ingenieure WS 2009/10

Klausur 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

Mehr

Tag 4 Repetitorium Informatik (Java)

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

Mehr

II.4.4 Exceptions - 1 -

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

Mehr

Technische Universität Braunschweig Institut für Programmierung und Reaktive Systeme

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

Mehr

Institut für Programmierung und Reaktive Systeme 6. Juli Programmieren II. Übungsklausur

Institut 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

Mehr

Technische Universität Braunschweig Institut für Programmierung und Reaktive Systeme

Technische 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

Mehr

Technische Universität Braunschweig Institut für Programmierung und Reaktive Systeme

Technische 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

Mehr

Javakurs für Anfänger

Javakurs 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

Mehr

Objektorientierte Programmierung. Kapitel 9: Exceptions I

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

Mehr

Exceptions und Vererbung

Exceptions 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