Große Übung Praktische Informatik 1

Ähnliche Dokumente
Einführung in die Programmierung

Objektorientierte Programmierung

Objektorientierte Programmierung. Kapitel 12: Interfaces

Design by Contract with JML

Objektorientierte Programmierung

Javakurs zu Informatik I. Henning Heitkötter

Softwaretechnologie - Wintersemester 2012/ Dr. Günter Kniesel

Java: Vererbung. Teil 3: super()

Programmieren in Java

Software Engineering Klassendiagramme Assoziationen

Professionelle Seminare im Bereich MS-Office

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

7. Übung zu Algorithmen und Datenstrukturen

SEP 114. Design by Contract

Informatik Grundlagen, WS04, Seminar 13

Studentische Lösung zum Übungsblatt Nr. 7

Zählen von Objekten einer bestimmten Klasse

Programmierkurs Java

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

Typumwandlungen bei Referenztypen

Folge 18 - Vererbung

Folge 19 - Bäume Binärbäume - Allgemeines. Grundlagen: Ulrich Helmich: Informatik 2 mit BlueJ - Ein Kurs für die Stufe 12

Verhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {...

Lösungsvorschläge. zu den Aufgaben im Kapitel 4

Programmieren I. Strategie zum Entwurf von Klassen. Beispiele. Design von Klassen. Dr. Klaus Höppner. Beispiel: Bibliothek

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

Algorithmen und Datenstrukturen

Vorkurs C++ Programmierung

Fachdidaktik der Informatik Jörg Depner, Kathrin Gaißer

Lehrer: Einschreibemethoden

Einführung in die Java- Programmierung

U08 Entwurfsmuster (II)

II. Grundlagen der Programmierung. 9. Datenstrukturen. Daten zusammenfassen. In Java (Forts.): In Java:

Java Kurs für Anfänger Einheit 4 Klassen und Objekte

EJBs und Sicherheit. Vorlesung: Applikationsserver. Prof. Dr. Ch. Reich furtwangen.de furtwangen.

Institut für Programmierung und Reaktive Systeme 25. August Programmier-Labor Übungsblatt. int binarysearch(int[] a, int x),

Einführung in die Programmierung für NF

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

Programmiervorkurs SS 2011 Technische Universität Darmstadt Jan Hendrik Burdinski, Felix Kerger

Anleitung über den Umgang mit Schildern

1 Vom Problem zum Programm

In vergleichsbasierten Suchbäumen wird nicht in Schlüssel hineingeschaut.

4. AuD Tafelübung T-C3

Statuten in leichter Sprache

Daniel Warneke Ein Vortrag im Rahmen des Proseminars Software Pioneers

Praktikum zu Einführung in die Informatik für LogWiIngs und WiMas Wintersemester 2015/16. Vorbereitende Aufgaben

1. Adressen für den Serienversand (Briefe Katalogdruck Werbung/Anfrage ) auswählen. Die Auswahl kann gespeichert werden.

CodeSaver. Vorwort. Seite 1 von 6

Holiday plans: ein Gespräch über Urlaubspläne

Vererbung & Schnittstellen in C#

Arbeiten mit UMLed und Delphi

Remote Method Invocation

Software Engineering. Zur Architektur der Applikation Data Repository. Franz-Josef Elmer, Universität Basel, HS 2015

Java Einführung Umsetzung von Beziehungen zwischen Klassen. Kapitel 7

Universität Augsburg, Institut für Informatik Sommersemester 2005 Prof. Dr. Werner Kießling 16. Juli 2005 Dr. Alfons Huhn, Timotheus Preisinger

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

Musterlösungen zur Klausur Informatik 3

Testklausur 1 zur Vorlesung. Modellierung und Programmierung I. Dr. Monika Meiler Zeit: 60 Minuten

Übung 1 mit C# 6.0 MATTHIAS RONCORONI

5. Abstrakte Klassen. Beispiel (3) Abstrakte Klasse. Beispiel (2) Angenommen, wir wollen die folgende Klassenhierarchie implementieren:

Einfache Arrays. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung

Java Kurs für Anfänger Einheit 5 Methoden

Software Entwicklung II (SS12)

Advoware mit VPN Zugriff lokaler Server / PC auf externe Datenbank

Javadoc. Programmiermethodik. Eva Zangerle Universität Innsbruck

EndTermTest PROGALGO WS1516 A

Einführung in Javadoc

3 Objektorientierte Konzepte in Java

Innere Klassen in Java

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

Matrix42. Use Case - Sicherung und Rücksicherung persönlicher Einstellungen über Personal Backup. Version September

Suchbäume. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung

2. Semester, 2. Prüfung, Lösung

Client-Server-Beziehungen

Einführung in die Programmierung für Wirtschaftsinformatik

Der lokale und verteilte Fall

Programmieren für Ingenieure Sommer Ein Rechner. Rechner sind überall. Gerät, das mittels programmierbarer Rechenvorschriften Daten verarbeitet.

Software Engineering Klassendiagramme Einführung

Klausur zur Einführung in die objektorientierte Programmierung mit Java

Tutorium 5 - Programmieren

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

Scala kann auch faul sein

5. Abstrakte Klassen

Prüfungszeuch im Fach Objektorientierte Programmierung WS 2000

HANDBUCH PHOENIX II - DOKUMENTENVERWALTUNG

Leichte-Sprache-Bilder

CAQ Software für Ihr Qualitätsmanagement. Ablauf für die Erfassung der Fehler in der Fertigung

Step by Step Softwareverteilung unter Novell. von Christian Bartl

WebService in Java SE und EE

Nathan Burgener. Design by Contract. Modul SWE

Kapitel 6. Vererbung

Abteilung Informatik, JFC/Swing 2004 Diego Schmidlin V2.2

Java Reflection. Meta-Programmierung mit der java.lang.reflection API. Prof. Dr. Nikolaus Wulff

Menü auf zwei Module verteilt (Joomla 3.4.0)

Positionierungsspiel. Statements und Fragen zu Werbung im Social Web

Kapitel 6. Vererbung

368 4 Algorithmen und Datenstrukturen

Dieses Tutorial gibt eine Übersicht der Form Klassen von Struts, welche Besonderheiten und Unterschiede diese aufweisen.

Algorithmen & Datenstrukturen 1. Klausur

Universität Augsburg, Institut für Informatik Sommersemester 2005 Prof. Dr. Werner Kießling 15. Oktober 2005 Dr. Alfons Huhn, Timotheus Preisinger

Transkript:

Große Übung Praktische Informatik 1 2005-12-08 fuessler@informatik.uni-mannheim.de http://www.informatik.uni-mannheim.de/pi4/people/fuessler

1: Announcements / Orga

Weihnachtsklausur zählt als Übungsblatt, d.h. die Punkte werden sowohl im Zähler, als auch im Nenner gutgeschrieben. 22ter Dezember, A3, 17:15-18:45 gr. Übung am 15.12. entfällt leider 3

Organisatorisches nächste große Übung entfällt d.h. keine große Übung mehr vor der Klausur Blatt 8 wird erst im Januar abzugeben sein 4

2: Relevantes in Java

.class Files.class files enthalten alles, was man braucht. es gibt Tools, um aus.class files wieder source-code zu machen wenn man ein.class File ohne Implementierung hat, gibt javap <ClassName> das Interface der Klasse aus. 6

javap Beispiel [fuessler@proteus pi1]$ javap List Compiled from "List.java" public interface List{ public abstract java.lang.object insertfirst(java.lang.object); public abstract java.lang.object insertlast(java.lang.object); public abstract java.lang.object removefirst(); public abstract java.lang.object removelast(); public abstract java.lang.object search(java.lang.object); public abstract java.lang.string tostring(); } [fuessler@proteus pi1]$ 7

Exceptions Möglichkeiten der Fehlerbehandlung Methodenrückgabewert (schlecht, weil man den auch für anderes braucht) Ausnahmen (spezieller Algorithmus) 8

Exception Exception auswerfen mit throw Throwable, z.b. throw new Exception; Exception nach oben weiterreichen oder abfangen. 9

Exception Beispiel //... public static int doublepositiveint(int n) throws Exception { if (n < 1) throw new Exception("positive Int required"); return 2*n; } public static void catchex(int n) { try { int result = doublepositiveint(n); } catch (Exception e) { e.printstacktrace(); } } public static void handupex(int n) throws Exception { int result = doublepositiveint(n); } //... 10

Programming by Contract Die Signatur einer Methode sagt dem Benutzer alles, was er wissen muss rückgabewert parameter Exceptions, die ausgeworfen werden können 11

Für die Übung nach oben weiterreichen ist ausreichend try/catch macht auch nur wirklich Sinn, wenn man den Fehler behandeln kann, z.b. wenn eine Datei nicht gefunden wird und man dann beim Benutzer nach einem neuen Namen fragen kann 12

Ein bisschen UML UML - Unified Modelling Language Sprache zur Objekt-Modellierung über ein Dutzend Diagramm-Typen Hier: Klassendiagramme 13

Beispiel 14

15

3: Vorlesung

Interfaces 17

Interface Beispiel FahrzeugCockpit fc = new Boxster(); public void umsteigen() { fc = new 1er(); } public void fahre() { for (int i = 0; i < 100; i++) fc.gibgas(); } 18

Wann Interface? Interfaces immer dann, wenn ich die Methoden beschreiben will, die ein Objekt haben soll, ohne Funktionalität zu vererben. (Abstrakte) Superklassen, wenn ich auch Funktionalität / Attribute vererben will. 19

Datenstrukturen Grundsätzlich benutzt jedes vernünftige Programm Variablen. Wenn man z.b. eine variable Anzahl von ints braucht, bei der ständig vorne Elemente angehängt werden, bietet sich eine Liste an. 20

Liste Allgemein Eine Liste ist ein Speicher für eine variable Anzahl von Elementen und besitzt eine interne Ordnung, d.h. die Reihenfolge bleibt erhalten. 21

Listenimplementierungen mit einem Object[] Feld verkettete Objekte einfach verkettet doppelt verkettet firstunusedelement 8 6 3 1 9 22

mit einem Object Feld public class VectorList implements List { private Object[] elements; private int firstunusedelement; private static final int bucketsize = 20; VectorList() { elements = new Object[bucketSize]; firstunusedelement = 0; } private void growvector(){ Object[] newelements = new Object[elements.length + bucketsize]; System.arraycopy(elements, 0, newelements, 0, elements.length); elements = newelements; } public String tostring(){ StringBuffer sb = new StringBuffer(); for(int i = 0; i < elements.length; i++) sb.append(string.format("%s:", elements[i])); return(sb.tostring()); } /... } 23

Listenoperation firstunusedelement InsertFirst 8 6 3 1 9 2 2 firstunusedelement InsertLast 2 8 6 3 1 9 2 24

Vor / Nachteile Datenstruktur ist übersichtlich ich könnte auch auf Elemente per Index zugreifen braucht viel Hauptspeicher kopier-operationen teuer 25

Verkettete Liste 8 6 9 null null 2 8 InsertFirst(2) 6 9 null null InsertLast(2) 8 6 9 null null 2 26

4: Übungsblatt 4/A3

Geometrie-Aufgabe zunächst Vererbungs-Hierarchie aufbauen dann die Klassen-Dateien anlegen Attribute festlegen, und Konstruktoren Interface-Methoden implementieren 28

29

5: Übungsblatt 7

Hinweise A1 Hanoi-Algorithmus der Vorlesung implementieren. Unter Verwendung der Hanoi.class mit javap kann man das Interface anzeigen Exception einfach nach oben weiterleiten 31

Hinweise A2 Fibonacci mit Laufzeitmessung zeit speichern -> laufen lassen -> differenzzeit bilden 32

Hinweis A3 8 6 9 2 33

Hinweise A4 Funktion erstmal in Formel umwandeln dann vollst. Induktion durchführen guter wikipedia.de Artikel vorhanden 34

Hinweise Blatt8 soweit selbsterklärend B-Baum Operationen auf Papier Fibonacci-Zahlen bei Fragen: über Liste mailen 35

Ende