14. Tutorium zu Programmieren



Ähnliche Dokumente
5. Tutorium zu Programmieren

13. Tutorium zu Programmieren

Programmierkurs Java

Objektorientierte Programmierung für Anfänger am Beispiel PHP

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

Tutorium 5 - Programmieren

Anleitung über den Umgang mit Schildern

40-Tage-Wunder- Kurs. Umarme, was Du nicht ändern kannst.

Second Steps in eport 2.0 So ordern Sie Credits und Berichte

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Java: Vererbung. Teil 3: super()

Javakurs zu Informatik I. Henning Heitkötter

tipps für schülerinnen und schüler Fragen und Antworten Interview mit Unternehmen Fragebogen Interview mit Unternehmen Antwortbogen

Professionelle Seminare im Bereich MS-Office

Programmieren Tutorium

Programmieren in Java

Software Engineering Klassendiagramme Assoziationen

Das Persönliche Budget in verständlicher Sprache

Übungen Programmieren 1 Felix Rohrer. Übungen

Bauteilattribute als Sachdaten anzeigen

Netzwerk einrichten unter Windows

Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster

Zahlenwinkel: Forscherkarte 1. alleine. Zahlenwinkel: Forschertipp 1

Leichte-Sprache-Bilder

Einführung in die Java- Programmierung

Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung: Lösungsvorschlag

Große Übung Praktische Informatik 1

Um sich zu registrieren, öffnen Sie die Internetseite und wählen Sie dort rechts oben

Was meinen die Leute eigentlich mit: Grexit?

Erstellen einer digitalen Signatur für Adobe-Formulare

Klausur WS 2006/07 Programmiersprache Java Objektorientierte Programmierung II 15. März 2007

Partnerportal Installateure Registrierung

Advoware mit VPN Zugriff lokaler Server / PC auf externe Datenbank

Ordner Berechtigung vergeben Zugriffsrechte unter Windows einrichten

SEP 114. Design by Contract

Mit der Maus im Menü links auf den Menüpunkt 'Seiten' gehen und auf 'Erstellen klicken.

Einführung in die objektorientierte Programmierung mit Java. Klausur am 19. Oktober 2005

Virtueller Seminarordner Anleitung für die Dozentinnen und Dozenten

1 Vom Problem zum Programm

Erstellen von x-y-diagrammen in OpenOffice.calc

Handbuch Fischertechnik-Einzelteiltabelle V3.7.3

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

Regeln für das Qualitäts-Siegel

Einrichtung des WS_FTP95 LE

Adminer: Installationsanleitung

Was ich als Bürgermeister für Lübbecke tun möchte

Nutzerhandbuch Zentrale Klassenverwaltung

Anwendungsbeispiele Buchhaltung

So erstellen Sie nützliche Beschreibungen zu Ihren Tradingdaten

Werkschau Web-Präsentationen

Anleitung Postfachsystem Inhalt

Das Leitbild vom Verein WIR

SEMINAR Modifikation für die Nutzung des Community Builders

Der große VideoClip- Wettbewerb von Media Markt.

Statuten in leichter Sprache

Novell Client. Anleitung. zur Verfügung gestellt durch: ZID Dezentrale Systeme. Februar ZID Dezentrale Systeme

Quartalsabrechnung! " " " " " " " Stufe 1! Beheben von Abrechnungsfehlern" Stufe 2! Neue Abrechnung erstellen"

5.2 Neue Projekte erstellen

M. Graefenhan Übungen zu C. Blatt 3. Musterlösung

Informationen zum Ambulant Betreuten Wohnen in leichter Sprache

Informatik 2 Labor 2 Programmieren in MATLAB Georg Richter

! " # $ " % & Nicki Wruck worldwidewruck

Objektorientierte Programmierung

Fachgebiet Informationssysteme Prof. Dr.-Ing. N. Fuhr. Programmierung Prof. Dr.-Ing. Nobert Fuhr. Übungsblatt Nr. 6

Titel der Stunde: TELEFONIEREN, HÖFLICHKEIT

Berechnungen in Access Teil I

Einrichten eines Postfachs mit Outlook Express / Outlook bis Version 2000

Flyer, Sharepics usw. mit LibreOffice oder OpenOffice erstellen

Lineare Gleichungssysteme

Grundlagen von Python

OECD Programme for International Student Assessment PISA Lösungen der Beispielaufgaben aus dem Mathematiktest. Deutschland

Das große ElterngeldPlus 1x1. Alles über das ElterngeldPlus. Wer kann ElterngeldPlus beantragen? ElterngeldPlus verstehen ein paar einleitende Fakten

Rechnung wählen Lernstandserfassung

Stand: Adressnummern ändern Modulbeschreibung

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen

Hilfedatei der Oden$-Börse Stand Juni 2014

FORUM HANDREICHUNG (STAND: AUGUST 2013)

Fotografin für alles, was bleiben soll.

Übungsblatt 3: Algorithmen in Java & Grammatiken

Der Kalender im ipad

Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung: Lösungsvorschlag

Eine Einführung in die Installation und Nutzung von cygwin

Anleitung OpenCms 8 Webformular Auswertung

Übersicht... 2 Dateiupload... 3 Administratorfunktionen... 4

Anleitung zur Prüfungsmeldung im SB-Portal

Zeichen bei Zahlen entschlüsseln

Kurzleitfaden für Schüler

Einführung in die Programmierung

Festplatte defragmentieren Internetspuren und temporäre Dateien löschen

Kleines Handbuch zur Fotogalerie der Pixel AG

INNER WHEEL DEUTSCHLAND

Zahlen und das Hüten von Geheimnissen (G. Wiese, 23. April 2009)

Drägerware.ZMS/FLORIX Hessen

In diesem Tutorial lernen Sie, wie Sie einen Termin erfassen und verschiedene Einstellungen zu einem Termin vornehmen können.

AutoTexte und AutoKorrektur unter Outlook verwenden

Benutzung der Avid Liquid Edition Schnittplätze an der Universität Innsbruck

Fotostammtisch-Schaumburg

Informationsblatt Induktionsbeweis

AZK 1- Freistil. Der Dialog "Arbeitszeitkonten" Grundsätzliches zum Dialog "Arbeitszeitkonten"

Transkript:

14. Tutorium zu Programmieren Dennis Ewert Gruppe 6 Universität Karlsruhe Institut für Programmstrukturen und Datenorganisation (IPD) Lehrstuhl Programmierparadigmen WS 2008/2009 c 2009 by IPD Snelting / Universität Karlsruhe (TH)

Was machen wir heute? 1 Rückblick 2 Allgemeines 3 Exceptions 4 Wiederholung Programmierstil Interfaces 5 Lösung Aufgabenblatt 6 6 Abschluss Dennis Ewert (Gruppe 6) Programmieren 14. Tutorium WS 2008/2009 2 / 28

Übersicht Rückblick 1 Rückblick 2 Allgemeines 3 Exceptions 4 Wiederholung 5 Lösung Aufgabenblatt 6 6 Abschluss Dennis Ewert (Gruppe 6) Programmieren 14. Tutorium WS 2008/2009 3 / 28

Rückblick Was haben wir letzte Woche gemacht? Vererbung Fragen dazu? Dennis Ewert (Gruppe 6) Programmieren 14. Tutorium WS 2008/2009 4 / 28

Übersicht Allgemeines 1 Rückblick 2 Allgemeines 3 Exceptions 4 Wiederholung 5 Lösung Aufgabenblatt 6 6 Abschluss Dennis Ewert (Gruppe 6) Programmieren 14. Tutorium WS 2008/2009 5 / 28

Allgemeines Anmeldung Übungsschein Meldet euch für den Übungsschein an! Anmeldung bis 13.02. über das KIT Studierendenportal (ehem. Selbstbedienungsfunktion) Wer sich nicht rechtzeitig anmeldet, dessen Punkte verfallen!! Dennis Ewert (Gruppe 6) Programmieren 14. Tutorium WS 2008/2009 6 / 28

Allgemeines Abschlussaufgaben Gibt es konkrete Fragen zu den beiden Aufgaben? Wer hilft mir weiter? Lest auf jeden Fall in der Newsgroup mit und stellt dort Fragen! Anleitung: Auf der Tutoriums-Website unter Zusatzmaterial - Einführung in Praktomat. Derzeit 126 Beiträge zu Aufgabe 1 und 13 Beiträge zu Aufgabe 2! Nutzt die Betreuungsstunden! Dennis Ewert (Gruppe 6) Programmieren 14. Tutorium WS 2008/2009 7 / 28

Allgemeines Betreuungsstunden Betreuungsstunden Nutzt die Betreuungsstunden! Di + Do 14:00-15:30 Uhr in R -143 (vor der ATIS auf der rechten Seite) Ihr könnt dort an den Rechnern programmieren und bekommt Unterstützung, wenn ihr mal nicht so recht weiterkommt. Die Beratung findet bis Ende März statt (also auch in den Ferien)! Dennis Ewert (Gruppe 6) Programmieren 14. Tutorium WS 2008/2009 8 / 28

Übersicht Exceptions 1 Rückblick 2 Allgemeines 3 Exceptions 4 Wiederholung 5 Lösung Aufgabenblatt 6 6 Abschluss Dennis Ewert (Gruppe 6) Programmieren 14. Tutorium WS 2008/2009 9 / 28

Exceptions Einführung Eine Exception bezeichnet eine Ausnahme bzw. Ausnahmesituation in einem Java-Programm. In der Regel ist dies ein Fehler, der nicht hätte eintreten oder abgefragt werden sollen. Beispiele Exception in thread main java.lang.arrayindexoutofboundsexception: 12 at ProgTest.main(ProgTest.java:13) Exception in thread main java.lang.arithmeticexception: / by zero at ProgTest.main(ProgTest.java:11) Dennis Ewert (Gruppe 6) Programmieren 14. Tutorium WS 2008/2009 10 / 28

Einführung Exceptions Oft handelt es sich um einen einfachen Programmierfehler, wenn eine Exception auftritt (falsche Index-Berechnung etc.). Dieser sollte dann natürlich direkt behoben werden. Eine zweite Möglichkeit ist, dass Eingaben vom Benutzer zu einer Exception führen, wie beispielsweise ein Taschenrechner, dessen Benutzerschnittstelle das Teilen durch 0 erlaubt. Solche Fälle müssen mit Kontrollstrukturen im Programm abgefangen werden. Dennis Ewert (Gruppe 6) Programmieren 14. Tutorium WS 2008/2009 11 / 28

Exceptions Einführung Manchmal können jedoch auch Fehler auftreten, die im Programmfluss nicht absehbar sind oder deren Möglichkeiten zu vielfältig sind, als das man sie alle mit Kontrollstrukturen abfragen kann. Zugriff auf Dateien (Datei gelöscht, keine Rechte, Festplatte defekt...) Umwandeln von Benutzereingaben in eine Zahl (viele mögliche Eingaben)... Dennis Ewert (Gruppe 6) Programmieren 14. Tutorium WS 2008/2009 12 / 28

Übersicht Exceptions Dennis Ewert (Gruppe 6) Programmieren 14. Tutorium WS 2008/2009 13 / 28

Code Exceptions try {...Programmcode, bei dem eine Exception auftreten könnte } catch (SomeException e) {...was geschehen soll, falls die Exception auftritt } finally {...Code, der auf jeden Fall noch ausgeführt werden soll, egal ob Exception eintritt oder nicht (wird selten verwendet) } Dennis Ewert (Gruppe 6) Programmieren 14. Tutorium WS 2008/2009 14 / 28

Exceptions Aufgabe Aufgabe Sucht euch einen Partner und schreibt ein Code-Fragment, das einen Integer-Wert von der Kommandozeile einliest. Eine nicht korrekte Eingabe (NumberFormatException) soll eine Fehlermeldung ausgeben. Dennis Ewert (Gruppe 6) Programmieren 14. Tutorium WS 2008/2009 15 / 28

Exceptions Verwendung Exceptions sind nicht dazu gedacht, den Kontrollfluss zu ersetzen! NIEMALS den allgemeinen Typ Exception bzw. RuntimeException fangen (Warum?) try-block so kurz wie möglich, niemals um den gesamten Code! Der catch-block muss immer Code enthalten! Dennis Ewert (Gruppe 6) Programmieren 14. Tutorium WS 2008/2009 16 / 28

Weiteres Exceptions Man kann auch selbst eine Exception werfen, um diese dann in einem anderen Programmteil wieder zu fangen (beispielsweise in einer Klasse). public class Frac { private int numerator; private int denominator; / Konstruktor, der eine neue rationale Zahl aus den uebergebenen Parametern erzeugt. @param numerator Zaehler @param denominator Nenner @throws ArithmeticException Exception, die ausgeloest wird, wenn versucht wird, den Nenner auf 0 zu setzten. / public Frac(int numerator, int denominator) throws ArithmeticException { this.numerator = numerator; if(denominator == 0) { // Werfen einer Exception, wenn der Nenner 0 i s t. throw new ArithmeticException("Denominator must not get assigned to zero."); } // Wird nur ausgefuehrt, wenn keine Exception geworfen wurde. this.denominator = denominator; } } Dennis Ewert (Gruppe 6) Programmieren 14. Tutorium WS 2008/2009 17 / 28

Übersicht Wiederholung 1 Rückblick 2 Allgemeines 3 Exceptions 4 Wiederholung Programmierstil Interfaces 5 Lösung Aufgabenblatt 6 6 Abschluss Dennis Ewert (Gruppe 6) Programmieren 14. Tutorium WS 2008/2009 18 / 28

Programmierstil Wiederholung Programmierstil Siehe Folien zum Programmierstil! Dennis Ewert (Gruppe 6) Programmieren 14. Tutorium WS 2008/2009 19 / 28

Einführung Wiederholung Interfaces Interfaces (zu deutsch Schnittstellen) definieren alle nötigen public-methoden einer Klasse, ohne dabei eine konkrete Implementierung vorzuschreiben. Sie enthält also nur die Methodendefinition (die Zeile vor Beginn der geschweiften Klammer). Sie liefern so also eine bestimmte Vorgabe zur Implementierung einer Klasse. Beispiel interface Schnittstelle { public void methode1(); public void methode2(string text); public String methode3(); } Dennis Ewert (Gruppe 6) Programmieren 14. Tutorium WS 2008/2009 20 / 28

Wiederholung Interfaces Aufgabe Schreibe ein Interface für geometrische Formen mit folgender Funktionalität: Eine Methode zum Verschieben um übergebene Entfernung in x- und y-richtung. Eine Methode zum Rotieren der Form um den Ursprung mit übergebenem Winkel. Eine Methode zum Rotieren um einen übergebenen Punkt um einen übergebenen Winkel. Eine Methode zur Berechnung des Umfangs Eine Methode zur Berechnung des Flächeninhalts Eine Methode zur Berechnung des Schwerpunkts Eine Methode zur Überprüfung, ob ein übergebener Punkt innerhalb bzw. auf dem Rand der Form liegt oder nicht. Dennis Ewert (Gruppe 6) Programmieren 14. Tutorium WS 2008/2009 21 / 28

Wiederholung Interfaces Sinn und Zweck Auf Basis dieser Schnittstelle lassen sich nun verschiedene geometrische Formen implementieren, z. B. Kreise, Dreiecke, Ellipsen, Parallelogramme, Polygone... Alle Klassen haben auf jeden Fall die Methoden aus dem Interface mit derselben Signatur, sodass man diese allgemein verwenden kann. Aufgabe Schreibt eine Klasse Figure, die eine LinkedList als Attribut hat, die beliebige geometrische Formen enthält. Der Konstruktor soll dabei eine initiale Form übergeben bekommen. Eine Methode zum Hinzufügen weiterer Formen ist erstmal nicht notwendig. Schreibe zusätzlich eine Methode area(), die die Summe der Flächeninhalte aller Formen der Liste berechnet und zurückgibt. Dennis Ewert (Gruppe 6) Programmieren 14. Tutorium WS 2008/2009 22 / 28

Übersicht Lösung Aufgabenblatt 6 1 Rückblick 2 Allgemeines 3 Exceptions 4 Wiederholung 5 Lösung Aufgabenblatt 6 6 Abschluss Dennis Ewert (Gruppe 6) Programmieren 14. Tutorium WS 2008/2009 23 / 28

Lösung Aufgabe 11 Lösung Aufgabenblatt 6 Siehe Musterlösung. Hinweise JavaDoc-Kommentare aus Interfaces müssen mit /** {@inheritdoc} */ übernommen werden! Dennis Ewert (Gruppe 6) Programmieren 14. Tutorium WS 2008/2009 24 / 28

Übersicht Abschluss 1 Rückblick 2 Allgemeines 3 Exceptions 4 Wiederholung 5 Lösung Aufgabenblatt 6 6 Abschluss Dennis Ewert (Gruppe 6) Programmieren 14. Tutorium WS 2008/2009 25 / 28

Abschluss Feedback-Survey Zur Evaluierung des Tutoriums habe ich einen Online-Fragebogen vorbereitet. Eine persönliche Einladung mit Link bekommt ihr in den nächsten Tagen per Mail. Bitte nehmt euch die Zeit (kostet keine 5min) und füllt den Fragebogen aus. Ihr helft damit auch zukünftigen Generationen! Eure Angaben sind nur für mich bestimmt und werden nicht veröffentlicht oder weitergegeben! Dennis Ewert (Gruppe 6) Programmieren 14. Tutorium WS 2008/2009 26 / 28

Ende Abschluss Vielen Dank für eure Aufmerksamkeit und Mitarbeit im Laufe des Semesters! Ich wünsche euch ganz viel Erfolg bei den Abschlußaufgaben und im weiteren Studium! Dennis Ewert (Gruppe 6) Programmieren 14. Tutorium WS 2008/2009 27 / 28

Abschluss Dennis Ewert (Gruppe 6) Programmieren 14. Tutorium WS 2008/2009 28 / 28