Informatik II Übung 7 Gruppe 7

Ähnliche Dokumente
Informatik II Übung 7 Gruppe 3

Informatik II - Übung 07

Informatik II Übung 6 Gruppe 7

Informatik II Übung 7. Gruppe 2 Carina Fuss

Informatik II Übung 7. Pascal Schärli

Informatik II (D-ITET) Übungsstunde 7,

Informatik II Übung 7

Informatik II (D-ITET)

Informatik II Übung 5 Gruppe 3

Informatik II Übung 8 Gruppe 3

Informatik II Übung 4 Gruppe 7

Informatik II Übung 4 Gruppe 7

Informatik II Übung 8

Informatik II - Übung 07. Christian Beckel

Informatik II. Übungsstunde 6. Distributed Systems Group, ETH Zürich

Informatik II - Tutorium 7

Informatik II Übung 2 Gruppe 7

Übungsserie Nr. 6. Ausgabe: 1. April 2015 Abgabe: 15. April Hinweise

Informatik II Übung 6

Datenstrukturen. Ziele

Collections und Generics

Informatik II Übung 06. Benjamin Hepp 5 April 2017

Programmieren in Java

1. Die rekursive Datenstruktur Liste

Informatik II Übung 2

Mengen und Multimengen

Anwendungsbeispiel MinHeap

Aufgabenblatt 4. Aufgabe 3. Aufgabe 1. Aufgabe 2. Prof. Dr. Th. Letschert Algorithmen und Datenstrukturen

Übung Algorithmen und Datenstrukturen

Informatik II, SS 2014

public interface Stack<E> { public void push(e e); public E pop();

Informatik II Übung 6

Informatik II - Tutorium 8

Programmieren in Java

Kapitel 4: Bäume i. 1. Einleitung. 2. Ein Datenmodell für Listen. 3. Doppelt-verkettete Listen. 4. Bäume. 5. Das Collections-Framework in Java

Mengen und Multimengen

Informatik II Übung 11 Gruppe 7

Informatik II (D-ITET) Übungsstunde 2,

Softwaretechnik WS 16/17. Übungsblatt 01

9. Natürliche Suchbäume

Informatik II Prüfungsvorbereitungskurs

Software Entwicklung 1. Fallstudie: Arithmetische Ausdrücke. Rekursive Klassen. Überblick. Annette Bieniusa / Arnd Poetzsch-Heffter

Wie kann man es verhindern das Rad immer wieder erneut erfinden zu müssen?

Übung Algorithmen und Datenstrukturen

18. Natürliche Suchbäume

Schein-/Bachelorklausur Teil 2 am Zulassung: Mindestens 14 Punkte in Teilklausur 1 und 50% der Übungspunkte aus dem 2. Übungsblock.

Software Entwicklung 1

16. Dynamische Datenstrukturen

Informatik II Übung 11 Gruppe 3

5.14 Generics. Xiaoyi Jiang Informatik I Grundlagen der Programmierung

Programmierkurs Java

Informatik II (D-ITET)

Übung Algorithmen und Datenstrukturen

Informatik II Vorlesung am D-BAUG der ETH Zürich

18. Natürliche Suchbäume

Probeklausur zur Vorlesung

Informatik II (D-ITET) Informatik II (D-ITET) Übungsstunde 1. Distributed Systems Group, ETH Zürich

Lösungshinweise/-vorschläge zum Übungsblatt 8: Software-Entwicklung 1 (WS 2017/18)

Programmiermethodik 1. Klausur

Tutoraufgabe 1 (Implementierung eines ADTs):

Informatik II Übung 1 Gruppe 7. Leyna Sadamori

Algorithmen und Datenstrukturen

Faulheit professionell: Fertige Datenbehälter. Das Java-Collections-Framework Typsicherheit Generische Klassen

13. Dynamische Datenstrukturen

Informatik II, SS 2016

Informatik II Prüfungsvorbereitungskurs

B6.1 Introduction. Algorithmen und Datenstrukturen. Algorithmen und Datenstrukturen. B6.1 Introduction. B6.3 Analyse. B6.4 Ordnungsbasierte Methoden

Algorithmen und Datenstrukturen

Informatik II Übung 8 Gruppe 4

Dynamische Datenstrukturen

4. Algorithmen und Datenstrukturen I Grundlagen der Programmierung 1 (Java)

Bäume. Text. Prof. Dr. Margarita Esponda SS 2012 O4 O5 O6 O ALP2-Vorlesung, M. Esponda

5.5 Prioritätswarteschlangen

Informatik II Übung 9 Gruppe 3

Prof. Dr. Uwe Schmidt. 30. Januar 2017

Informatik II - Tutorium 12

Informatik II. Giuseppe Accaputo, Felix Friedrich, Patrick Gruntz, Tobias Klenze, Max Rossmannek, David Sidler, Thilo Weghorn FS 2017

Informatik II (D-ITET) Übungsstunde 5

4.4.1 Implementierung vollständiger Bäume mit Feldern. Reguläre Struktur: Nachfolger des Knoten i sind die Knoten 2*i und 2*i+1.

Stacks, Queues & Bags. Datenstrukturen. Pushdown/Popup Stack. Ferd van Odenhoven. 19. September 2012

Informatik II - Tutorium 2

Abstract Data Structures

Informatik II (D-ITET) Übungsstunde 2

Programmierkurs Java

Informatik - Übungsstunde

ALP II Dynamische Datenmengen Datenabstraktion

Abstract Data Structures

Informatik II - Übung 03

Java Einführung Collections

Algorithmen und Datenstrukturen II

Algorithmen und Datenstrukturen. Algorithmen und Datenstrukturen. B6.1 Einführung. B6.2 Symboltabellen. B6.3 Einfache Implementationen

Informatik II Übung 2. Gruppe 4. Lukas Burkhalter (Folien teils von Christian B. und Leyna S.)

Informatik II Übung 2. Pascal Schärli

7. Dynamische Datenstrukturen Bäume. Informatik II für Verkehrsingenieure

Fallstudie: Online-Statistik

Wie entwerfe ich ein Programm?

Transkript:

Informatik II Übung 7 Gruppe 7 Leyna Sadamori leyna.sadamori@inf.ethz.ch Informatik II Übung 7 Leyna Sadamori 10. April 2014 1

Administratives Nächste Übung fällt leider aus! Bitte eine andere Übung besuchen. Die Woche danach sind Osterferien Die Woche danach ist 1.Mai Ausweichtermin am Mittwoch Raum muss noch organisiert werden à Benachrichtigung per Mail Informatik II Übung 7 Leyna Sadamori 10. April 2014 2

Debriefing Übung 6 Informatik II Übung 7 Leyna Sadamori 10. April 2014 3

U6A1 Statischer Typ vs. Dynamischer Typ UML Klassendiagramm Informatik II Übung 7 Leyna Sadamori 10. April 2014 4

U6A2 Interfaces Factory Methode return (IStack) new ListStack() è Type Cast unnötig!! JUnit Tests AssertTrue, AssertFalse besser als AssertEquals(, true, ) Informatik II Übung 7 Leyna Sadamori 10. April 2014 5

U6A4 ChunkedListStack Optimierung von size() Man kann die Grösse des Stacks in einer Klassenvariable speichern, z.b. int size! size() gibt dann lediglich size zurück Natürlich muss size bei jeder push() oder pop() Operation angepasst werden! Informatik II Übung 7 Leyna Sadamori 10. April 2014 6

Briefing Übung 7 Informatik II Übung 7 Leyna Sadamori 10. April 2014 7

Java Generics Java Beispiel" Was sind Generics? Generics erlauben es, Interfaces oder Klassen über einen Typen zu parametrisieren Wozu braucht man Generics? (Auszug aus den Java Tutorials) Stronger type checks at compile time. A Java compiler applies strong type checking to generic code and issues errors if the code violates type safety. Fixing compile-time errors is easier than fixing runtime errors, which can be difficult to find. Elimination of casts. Enabling programmers to implement generic algorithms. By using generics, programmers can implement generic algorithms that work on collections of different types, can be customized, and are type safe and easier to read. Quelle: http://docs.oracle.com/javase/tutorial/java/generics/why.html Informatik II Übung 7 Leyna Sadamori 10. April 2014 8

Java Generics Verwendung von Generics Beispiel: public class Box<T> {! // T stands for "Type"! private final T t;!!! public T get() {! return t;! }! }! Learning by doing è Leseverstehen von Generics Java API" Naming Conventions T - Type K - Key V - Value E - Element (used extensively by the Java Collections Framework) N - Number Informatik II Übung 7 Leyna Sadamori 10. April 2014 9

U7A1 Array-Listen und Generics U7A1a Schreibt eine neue Klasse Filter, die das Interface IFilter implementiert ( und ignoriert die Eclipse Fehlermeldungen) FactoryMethode: So wie letzte Übung U7A1b FilterRaw erwartet eine ArrayList mit Gruppen Eine Gruppe ist wiederum eine ArrayList, die Studenten enthält Explizite Type Casts notwendig! Informatik II Übung 7 Leyna Sadamori 10. April 2014 10

U7A1 Array-Listen und Generics U7A1c Jetzt eine Implementierung mit Generics è keine Type Casts mehr nötig Nicht von den doppelten Generics einschüchtern lassen Allgemeiner Hinweis: Lagert die eigentliche Filter-Funktion aus (Student mit ausreichend Punkten) Informatik II Übung 7 Leyna Sadamori 10. April 2014 11

Binäre Suchbäume Suchen Einfügen Traversierung Pre-order: F, B, A, D, C, E, G, I, H (root, left, right) In-order: A, B, C, D, E, F, G, H, I (left, root, right) Post-order: A, C, E, D, B, H, I, G, F (left, right, root) Löschen Tafel Beispiel" Strategie: Ersetzen durch kleinstes Element des rechten Teilbaums Quelle: http://en.wikipedia.org/wiki/preorder_traversal#implementations Informatik II Übung 7 Leyna Sadamori 10. April 2014 12

U7A2 Binäre Suchbäume Binäre Suchbäume zum Sortieren von beliebigen Dingen Der Baum speichert für jedes Ding einen Key (integer), anhand dessen sortiert wird Informatik II Übung 7 Leyna Sadamori 10. April 2014 13

U7A2 Binäre Suchbäume U7A2b Schreibt eine generic Klasse BinarySearchTreeUtils<T>, die das Interface IBinarySearchTreeUtils implementiert Erst die Factory Methode legt den Typ auf String fest und gibt ein Objekt vom Typ IBinarySearchTreeUtils<String> zurück! Iff ist kein Tippfehler! Iff bedeutet if, and only if Remove Sonderfälle zuerst: Baum ist Blattknoten, Baum hat nur ein Kindknoten vorhanden Verwendet die Klasse UnlinkSmallestResult und die Methode unlinksmallest()! unlinksmallest() macht 2 Dinge gleichzeitig: Kleinstes Element finden Kleinstes Element entfernen Informatik II Übung 7 Leyna Sadamori 10. April 2014 14

U7A3 Reversi Turnier Reversi Tafel Beispiel" Spielregeln Framework API: http://www.vs.inf.ethz.ch/edu/i2/reversi/javadoc/index.html?reversi/package-summary.html U7A3a: Eclipse Hinweise Eclipse Demo" Einfügen von externen Libraries Linken von externen Dokumentationen Run Configurations U7A3b: Implentierung von RandomPlayer Strategie 1. Finde mögliche Spielzüge und überprüfe sie auf ihre Gültigkeit 2. Wähle von den möglichen gültigen Spielzügen zufällig einen aus Tafel Beispiel" Informatik II Übung 7 Leyna Sadamori 10. April 2014 15

Tipps und Tricks Informatik II Übung 7 Leyna Sadamori 10. April 2014 16

viel Spass! Informatik II Übung 7 Leyna Sadamori 10. April 2014 17