Informatik II (D-ITET) Übungsstunde 8,

Größe: px
Ab Seite anzeigen:

Download "Informatik II (D-ITET) Übungsstunde 8,"

Transkript

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

2 The Heartbleed Bug * 2

3 Ablauf Besprechung von Übung 7 Hinweise für Übung 8 (Binary Search, Rucksack problem, Reversi)

4 Lösung U7.A1 IFilter Helfermethode private boolean filter(student student) { return student.getpoints() >= (IFilter.criteria / 100 * IFilter.maxNumberofPoints); 4

5 Lösung U7.A1 IFilter Beispiellösung - filterraw public ArrayList filterraw( ArrayList groups ) { ArrayList result = new ArrayList(); dynamic for( int i = 0; i < groups.size(); i++ ) cast { ArrayList group = (ArrayList) groups.get(i); for( int j = 0; j < group.size(); j++ ) { Student student = (Student) group.get(j); if( filter( student ) ) result.add( student ); return result; 5

6 Lösung U7.A1 IFilter Beispiellösung - filtergeneric public ArrayList<Student> filtergeneric(arraylist<arraylist<student>> groups) { ArrayList<Student> result = new ArrayList<Student>(); for( int i = 0; i < groups.size(); i++ ) { ArrayList<Student> group = groups.elementat(i); for( int j = 0; j < group.size(); j++ ) { Student student = group.elementat(j); if( filter( student ) ) result.add( student ); return result; 6

7 for-each loop (seit Java 5) The core collections in Java The basic for loop was extended in Java 5 to make iteration over arrays and other collections more convenient n Arrays and Collections for-each is commonly used to iterate over an array or a Collection Iterable<E> it can also iterate over anything that implements the Iterable<E> interface Many of the Collections classes (e.g., ArrayList) implement Iterable<E>, which makes the for-each loop very useful. You can also implement Iterable<E> for your own data structures. 7

8 for-each loop Beispiele: for-each loop Equivalent for loop for( type var : arr ) { //body of loop = for( int i = 0; i < arr.length; i++) { type var = arr[i]; //body of loop for( type var : coll ) { //body of loop = for( Iterator<type> iter = coll.iterator(); iter.hasnext(); ) { type var = iter.next(); //body of loop leer! 8

9 for-each loop interface Collection<T> Wir sagen: for each currentthing (of type T) in mycollectionofthings (do) funnymethod Collection<T> mycollectionofthings =... ; //mit Objekten auffüllen for( T currentthing : mycollectionofthings ) { funnymethod( currentthing ); 9

10 for-each loop Although the enhanced for loop can make code much clearer, it can't be used in some common situations. Only access. Elements can not be assigned to, e.g., not to increment each element in a collection. Only single structure. It's not possible to traverse two structures at once, e.g., to compare two arrays. Only single element. Use only for single element access, e.g., not to compare successive elements. Only forward. It's possible to iterate only forward by single steps. At least Java 5. Don't use it if you need compatibility with versions before Java 5. 10

11 Hinweise zu U7.A1 Tic-Tac-Toe Überlegungen zu Spielbäumen Überlegen Sie sich, wie das Attribut eines Knotens auf Grund der Attribute der Nachfolger berechnet wird, wenn Sie bzw. Ihr Gegner an der Reihe sind. 11

12 Lösung U7.A1 Tic-Tac-Toe MAX Strategie von MAX MIN MAX MIN 12

13 Lösung U7.A2 IBinarySearchTreeUtils<T> Verwirrung wegen Generics? Der Typ von T ist für uns völlig egal. public class TreeUtils<T> extends IBinarySearchTreeUtils<T> { //... public int height(binarysearchtree<t> tree) { if (tree == null) return 0; return 1 + Math.max(height(tree.left), height(tree.right)); //... Eclipse DEMO 13

14 Lösung U7.A2 IBinarySearchTreeUtils<T> public BinarySearchTree<T> remove(binarysearchtree<t> tree, int key) { if (tree == null) return null; if (tree.key == key) { if (isleaf(tree)) { return null; if (hasonechild(tree)) { if (tree.left!= null) { return tree.left; return tree.right; if (tree.right.left == null) { tree.right.left = tree.left; return tree.right; BinarySearchTree<T> smallest = getsmallest(tree.right); smallest.left = tree.left; smallest.right = tree.right; return smallest; if (key < tree.key) { tree.left = remove(tree.left, key); else { tree.right = remove(tree.right, key); return tree; 14

15 Lösung U7.A2 IBinarySearchTreeUtils<T> /** * Finds the thing with the smallest key in the given * tree, returns and removes it (according to the specification of remove). * tree The tree to search in The thing with the smallest key. */ private BinarySearchTree<T> getsmallest(binarysearchtree<t> tree) { BinarySearchTree<T> smallest; // If left child is smallest, re-link. Otherwise, look further left. if (tree.left.left == null) { smallest = tree.left; tree.left = smallest.right; else { smallest = getsmallest(tree.left); return smallest; 15

16 Tipps zu U7.A3a Spielt! Framework aufsetzen Spielt eine Partie gegen euren Teammate (oder euch selbst) Snapshot schicken 16

17 Tipps zu U7.A3b ReversiPlayer package reversi; public interface ReversiPlayer { void initialize(int mycolor, long timelimit); Coordinates nextmove(gameboard gb); package randoomteam; public abstract class PlayerBase implements ReversiPlayer { private int m_color = 0; private long m_timeout = 0; protected final int getcolor() { return m_color; protected final long gettimout() { return m_timeout; protected abstract void foo(); package randoomteam; public class RandomPlayer extends PlayerBase { protected void foo() { 17

18 Lösung U7.A3b RandomPlayer private Random rand = new Random(); //ausserhalb nextmove!!! public Coordinates nextmove( GameBoard gb ){ Coordinates coord = null; ArrayList<Coordinates> validmoves = new ArrayList<Coordinates>( gb.getsize() * gb.getsize() ); System.out.print( "RandomPlayer" ); for( int row = 1; row <= gb.getsize(); row++ ){ for( int col = 1; col <= gb.getsize(); col++ ){ coord = new Coordinates(row, col); if( gb.checkmove( color, coord ) ) validmoves.add( coord ); if( validmoves.isempty() ) return null; int randindex = rand.nextint( validmoves.size() ); return validmoves.elementat( randindex ); 18

19 Ablauf Besprechung von Übung 7 Hinweise für Übung 8 (Binary Search, Rucksack problem, Reversi)

20 Hinweise zu U8 Binäre Suche Rucksackproblem und Backtracking Reversi (Teil 2) 20

21 Mehr Generics: Maps n Oft werden indexierte Daten benötigt n Personalien nach AHV-Nummer (unique id) n Dokumente nach Identifier (z.b. file name) n n Solche Datenstrukturen nennt man Maps n Identifier (Key) wird auf Inhalt (Value) "gemappt" n In der Java Standardbibliothek n interface Map<Key extends Comparable<Key>, Value> n Implementationen: TreeMap, HashMap, 21

22 Hinweise zu U8.A1 Binärsuche n Binary Search Algorithm (illustrated) n Entscheidungsbaum 24 ß 15 à ß 22 à query: 16 sub-array-length: return: null query: 23 sub-array-length: return: "23" 1 22

23 Hinweise zu U8.A1 Binärsuche Entscheidungsbaum zeichnen & Überlegungen anstellen Übereinanderlegen, Faktoren Implementierung: find(list<unit<key, Value>> haystack, Key needle) setfactor(int factor) Verallgemeinern der Suche à neu auch unbalancierte Suchbäume getnumberofcalls() Benchmarking mit verschiedenen Faktoren Durschnittliche # rekursiver Aufrufe für verschiedene Faktoren 23

24 U8.A2 Rucksackproblem und Backtracking x2 g2, w2 x3 g3, w3 x1 g1, w1 x4 g4, w4 x5 g5, w5 24

25 Hinweise zu U8.A2 x1 g1, w1 x2 g2, w2 x3 g3, w3 x4 g4, w4 x5 g5, w5 Das allgemeine Rucksackproblem k Gegenstände x 1,..., x k ; Jeweils bekannter Wert und Gewicht Auswahl von Gegenständen, sodass Gesamtgewicht nicht überschritten wird Optimierungsproblem: Maximieren des Wertes der ausgewählten Gegenstände a) Theorie b) Bruteforce Ansatz c) Backtracking Ansatz d) Vergleich von Bruteforce und Backtracking 25

26 U8.A2 Teilmengen Wie viele unterschiedlichen Möglichkeiten hat unser Dieb? M = Menge der verfügbaren Gegenständen Der Dieb kann nur eine Teilmenge davon nach Hause bringen Der Dieb kann auch die leere Menge Ø (fauler Dieb) oder die gesamte Menge M (starker Dieb mit grossem Sack) schaffen! #Teilmengen := #Elemente in der Potenzmenge von M Beispiel 26

27 U8.A2 Backtracking Was heisst Backtracking? Prinzip: trial and error Beispiel: Ausgang in einem Labyrinth suchen Sich für eine Richtung entscheiden In diese Richtung weitergehen Wenn letztendlich erfolglos zurückkehren und eine andere Richtung wählen Wenn letztendlich erfolgreich fertig Backtracking Falls bereits alle Richtungen ausprobiert à noch weiter zurück. 27

28 U8.A2 Einfache Diebstrategie Einfachen Algorithmus implementieren zur Erinnerung: Eine Menge M mit M =k besitzt 2^k Teilmengen 28

29 U8.A2 Einfache Diebstrategie Zu implementierendes Verfahren in Pseudocode: 1. Initialisierung 2. Nimm nächste Konfiguration (wie genau?) 3. Berechne das gesamte Gewicht if (gesamtes Gewicht < G) berechne Gesamtwert if (neuer Gesamtwert > Gesamtwert aktuelle optimale Lösung) aktuelle Konfiguration ist neue optimale Lösung 4. Falls noch Konfigurationen übrig, gehe zu Punkt 2 else Berechnung fertig 29

30 U8.A2.a Einfache Diebstrategie Liefert die einfache Dieb-Strategie immer das optimale Ergebnis? Ja/Nein Warum?... Gibt es immer genau eine optimale Lösung? Ja/Nein? Warum?... 30

31 U8.A2.b,c Bitwertigkeit Konfiguration als Bitfolge: class Selection Die Bitwertigkeit bezeichnet den Stellenwert eines einzelnen Bits, den es durch seine Position innerhalb einer Binärzahl hat. MSB - Most Significant Bit/Byte Das höchstwertige Bit ist das Bit, das innerhalb der Zahl an der Stelle mit dem höchsten Stellenwert steht. LSB - Least Significant Bit/Byte Analog dem MSB besitzt das niedrigstwertige Bit den niedrigsten Stellenwert. 31

32 U8.A2.b,c Tipps für die Implementation class Selection ist gut Dokumentiert Achtung: bei Vergrösserung der Konfiguration (neuen Gegenstand in den Sack legen, A1c) muss der neue Stellenwert initialisiert werden Beispiel-Selections für die Menge M 32

33 U8.A2.b,c Tipps für die Implementation Bruteforce Ansatz: public Selection findbest(arraylist<integer> values, ArrayList<Integer> weights, int maxweight) {... int last = java.math.pow(2, values.size()); //Anzahl der Teilmengen for( int i = 0; i < last; i++ ) { new Selection(values.size(), i); //Selection Bitfeld mit Wert i

34 U8.A2.b,c Tipps für die Implementation Backtracking Ansatz: FindResult Klasse (Selection und Value zusammen) Rekursive Methode: FindResult fr = find(currselection, currweight, values, weights, maxweight); Abbruchbedingung: selection.size==values.size(); //alles berücksichtigt In der Methode zwei mögliche Richtungen zum Weitergehen: //Gegenstand hinterlassen Selection without = new Selection(...); //um eins vergrössern, bit auf 0 setzen //und weiter nach unten im Baum //prüfen ob Gewicht passt, dann Gegenstand mitnehmen... Selection with = new Selection(...); //um eins vergrössern, bit auf 1 setzen //und weiter nach unten im Baum 34

35 Hinweise zu U8.A3 Reversi (Teil 2) HumanPlayer RandomPlayer GreedyPlayer nextmove() wartet auf Eingabe von der Kommandozeile nextmove() wählt einen zufälligen (aber gültigen!) nächsten Zug nextmove() wählt nächsten Zug anhand einer einfachen, nicht-rekursiven Bewertungsfunktion Download Übungsserie 7 Übungsserie 8 35

36 Hinweise zu U8.A3 Reversi (Teil 2) a. Implementieren von ICheckMove ohne Framework-Funktion. Ideen? b. Implementieren eines Spielers, der unter allen möglichen Zügen den besten auswählt Bester Zug: Zug, nach dessen Durchführung man maximal mehr Steine besitzt als der Gegner: «Denktiefe = 1» d.h.: Kein Spielbaum nötig! Ermitteln des besten Zugs: Board kopieren (clone), Zug ausführen, zählen... 36

37 Hinweise zu U8.A3a checkmove() boolean checkmove(gameboard gb, int player, Coordinates c){ //Überprüfe alle Richtungen //Solange nicht mindestens eine Richtung gültig ist //... //GameBoard.checkMove darf nicht verwendet werden! 37

38 Hinweise zu U8.A3a greedyplayer() n Einfacher Computergegner n Zugauswahl: Erstbester n Suchtiefe: 1 (mein Zug) n Bewertungsfunktion: Unterschied der Steinen nach dem Zug n Tipps n Ein GameBoard kann mit gb.clone() kopiert werden n Ihr dürft GameBoard.checkMove() hier verwenden n Mit einer etwas intelligenteren Bewertungsfunktion schon ein ziemlicher Gegner (auch ohne Rekursion) 38

39

Informatik II - Übung 08

Informatik II - Übung 08 Informatik II - Übung 08 Christian Beckel beckel@inf.ethz.ch 17.04.2014 U7.A1: IFilter public ArrayList filterraw( ArrayList groups ) dynamic ArrayList result = new ArrayList(); cast for( int i = 0; i

Mehr

Informatik II - Übung 08

Informatik II - Übung 08 Informatik II - Übung 08 Katja Wolff katja.wolff@inf.ethz.ch Übungsblatt 7 Informatik II Übung 08 26.04.2017 2 U7.A1: IFilter public ArrayList filterraw( ArrayList groups ) { ArrayList result = new ArrayList();

Mehr

Informatik II Übung 8 Gruppe 4

Informatik II Übung 8 Gruppe 4 Informatik II Übung 8 Gruppe 4 (Folien teils von Christian B. und Christelle G.) Lukas Burkhalter lubu@inf.ethz.ch Informatik II Übung 8 Lukas Burkhalter 24. April 2018 1 https://xkcd.com/1270/ Nachbesprechung

Mehr

Informatik II Übung 8 Gruppe 3

Informatik II Übung 8 Gruppe 3 Informatik II Übung 8 Gruppe 3 Leyna Sadamori leyna.sadamori@inf.ethz.ch Informatik II Übung 8 Leyna Sadamori 26. April 2017 1 Debriefing Übung 7 2 U7A1 Generics Grundprinzip sehr simpel Iteration über

Mehr

Informatik II - Übung 07. Christian Beckel

Informatik II - Übung 07. Christian Beckel Informatik II - Übung 07 Christian Beckel beckel@inf.ethz.ch 15.04.2015 Heute Besprechung Blatt 06 Demo: Objektorientierte Programmierung Hinweise zu Blatt 07 Christian Beckel 15/04/15 2 Besprechung Übungsblatt

Mehr

Informatik II Übung 08

Informatik II Übung 08 Informatik II Übung 08 Michael Baumann mbauman@student.ethz.ch n.ethz.ch/~mbauman 27.04.2016 Ablauf 1) Nachbesprechung Serie 7 2) Backtracking 3) Vorbesprechung Serie 8 2 Serie 7 3 Aufgabe 1 Wir Gegner

Mehr

Informatik II - Tutorium 8

Informatik II - Tutorium 8 Informatik II - Tutorium 8 Vincent Becker vincent.becker@inf.ethz.ch 25.04.2017 Vincent Becker 26.04.2018 1 Altklausuren verfügbar Für regisitrierte AMIV-Mitglieder Mehrere Altklausuren Disclaimer lesen!

Mehr

Informatik II Übung 9

Informatik II Übung 9 Informatik II Übung 9 Florian Scheidegger florsche@student.ethz.ch Folien mit freundlicher Genehmigung adaptiert von Gábor Sörös und Simon Mayer gabor.soros@inf.ethz.ch, simon.mayer@inf.ethz.ch Informatik

Mehr

Informatik II Übung 8. Pascal Schärli

Informatik II Übung 8. Pascal Schärli Informatik II Übung 8 pascscha@student.ethz.ch Was gibts heute? Warm-Up Nachbesprechung Serie 7 Best-Of Vorlesung: Binäre Suche Key-Value Paare Backtracking Vorbesprechung Serie 8 2 Warm - Up Warm - Up

Mehr

Informatik II Übung 8

Informatik II Übung 8 Informatik II Übung 8 Gruppe 2 Carina Fuss cfuss@student.ethz.ch 25.4.2018 Carina Fuss 25.4.2018 1 Übung 8 Nachbesprechung Übung 7 Vorbesprechung Übung 8 binäre Suche Backtracking anhand vom Rucksackproblem

Mehr

Informatik II Übung 7

Informatik II Übung 7 Informatik II Übung 7 Florian Scheidegger florsche@student.ethz.ch Folien mit freundlicher Genehmigung adaptiert von Gábor Sörös und Simon Mayer gabor.soros@inf.ethz.ch, simon.mayer@inf.ethz.ch 18.04.2013

Mehr

Informatik II (D-ITET) Übungsstunde 7,

Informatik II (D-ITET) Übungsstunde 7, Informatik II (D-ITET) Übungsstunde 7, 13.04.2017 Hossein Shafagh, shafagh@inf.ethz.ch Distributed Systems Group, ETH Zürich Ablauf Besprechung von Übung 6 Hinweise für Übung 7 (Generics, Binary Trees,

Mehr

Informatik II Übung 09

Informatik II Übung 09 Informatik II Übung 09 Michael Baumann mbauman@student.ethz.ch n.ethz.ch/~mbauman 04.05.2015 Ablauf 1) Nachbesprechung Serie 8 2) Minimax & Alpha-Beta 3) Vorbesprechung Serie 9 2 Serie 8 3 Aufgabe 1 a,

Mehr

Informatik II Übung 8

Informatik II Übung 8 Iformatik II Übug 8 Floria Scheidegger florsche@studet.ethz.ch Folie mit freudlicher Geehmigug adaptiert vo Gábor Sörös ud Simo Mayer gabor.soros@if.ethz.ch, simo.mayer@if.ethz.ch 25.4.2013 Iformatik II

Mehr

Informatik II Übung 09. Benjamin Hepp 3 May 2017

Informatik II Übung 09. Benjamin Hepp 3 May 2017 Informatik II Übung 09 Benjamin Hepp benjamin.hepp@inf.ethz.ch 3 May 2017 Nachbesprechung U8 3 May 2017 Informatik II - Übung 01 2 Nachbesprechung U8 1. Binaere Suche 2. Knapsack Problem 3. Reversi Teil

Mehr

Informatik II Übung 9. Pascal Schärli

Informatik II Übung 9. Pascal Schärli Informatik II Übung 9 pascscha@student.ethz.ch Was gibts heute? Warm-Up Nachbesprechung Serie 8 Best-Of Vorlesung: Minimax Alpha Beta Vorbesprechung Serie 9 Info zur Auffahrt 2 Warm - Up Warm-Up (Basisprüfung

Mehr

Informatik II Übung 9

Informatik II Übung 9 Informatik II Übung 9 Katja Wolff Katja.wolff@inf.ethz.ch 1 Othelligence Event Program: Game strategies and game theory Duell Human (German Champion) vs. Machine Panel Apéro Time: Friday, 19.05.2017, 16:00

Mehr

Informatik II - Tutorium 9

Informatik II - Tutorium 9 Informatik II - Tutorium 9 Vincent Becker vincent.becker@inf.ethz.ch 02.05.2018 Vincent Becker 02.05.2018 1 Übungsblatt 8 Vincent Becker 02.05.2018 2 U8.A1 Binäre Suche Suche nach 47 mi = li + (re-li)/2;

Mehr

Informatik II (D-ITET) Übungsstunde 10,

Informatik II (D-ITET) Übungsstunde 10, Informatik II (D-ITET) Übungsstunde 10, 11.05.2017 Hossein Shafagh, shafagh@inf.ethz.ch Distributed Systems Group, ETH Zürich Ablauf Besprechung von Übung 9 Hinweise für Übung 10 (Mergesort, Türme von

Mehr

Informatik II Übung 7. Pascal Schärli

Informatik II Übung 7. Pascal Schärli Informatik II Übung 7 pascscha@student.ethz.ch Was gibts heute? Warm-Up Nachbesprechung Serie 6 Best-Of Vorlesung: Generics Binäre Suchbäume Spielbäume Vorbesprechung Serie 7 2 Warm - Up Warm-Up interface

Mehr

Informatik II (D-ITET)

Informatik II (D-ITET) Informatik II (D-ITET) simon.mayer@inf.ethz.ch Distributed Systems Group, ETH Zürich Informatik II (D-ITET) 1 Ablauf Nachbesprechung Übung 6 Besprechung der Vorlesung Die neue Serie... Zeit zum Programmieren

Mehr

Informatik II Übung 7 Gruppe 7

Informatik II Übung 7 Gruppe 7 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.

Mehr

Informatik II - Übung 07

Informatik II - Übung 07 Informatik II - Übung 07 Katja Wolff katja.wolff@inf.ethz.ch Besprechung Übungsblatt 6 Informatik II Übung 07 12.04.2017 2 Übungsblatt 6 1.) Klassen, Schnittstellen, Typumwandlung 2.) Schnittstellen und

Mehr

Informatik II Übung 9 Gruppe 3

Informatik II Übung 9 Gruppe 3 Informatik II Übung 9 Gruppe 3 Julia Gygax jgygax@student.ethz.ch Julia Gygax 02.05.2018 1 Administratives Am 23. Mai beginnt die Übung erst um 13.15 Julia Gygax 02.05.2018 2 Warm up Spielbaum / Generics

Mehr

Informatik II Übung 7 Gruppe 3

Informatik II Übung 7 Gruppe 3 Informatik II Übung 7 Gruppe 3 Julia Gygax jgygax@student.ethz.ch Julia Gygax 18.04.2018 1 Nachbesprechung Übung 6 Julia Gygax 18.04.2018 2 Aufgabe 1 Klassen, Schnittstellen und Typumwandlungen Julia Gygax

Mehr

Informatik II (D-ITET) Übungsstunde 11,

Informatik II (D-ITET) Übungsstunde 11, Informatik II (D-ITET) Übungsstunde 11, 17.05.2017 Hossein Shafagh, shafagh@inf.ethz.ch Distributed Systems Group, ETH Zürich Ablauf Besprechung von Übung 10 Hinweise für Übung 11 (Sortieren, O-Notation)

Mehr

Informatik II Übung 7. Gruppe 2 Carina Fuss

Informatik II Übung 7. Gruppe 2 Carina Fuss Informatik II Übung 7 Gruppe 2 Carina Fuss cfuss@student.ethz.ch 18.4.2018 Carina Fuss 16.4.2018 1 Übung 7 Hinweise zum Programmieren Nachbesprechung Übung 6 Vorbesprechung Übung 7 ArrayList und Generics

Mehr

Informatik II - Übung 10

Informatik II - Übung 10 Informatik II - Übung 10 Katja Wolff katja.wolff@inf.ethz.ch U9.A1: Mini-Max-Algorithmus Strategie von MAX 4 Höhe: 4 Suchtiefe: 3 bester Zug: links MAX 4 0-2 MIN 4 7 3 0 2-2 8 MAX 7-5 2 1 7 8 MIN Informatik

Mehr

Informatik II - Tutorium 7

Informatik II - Tutorium 7 Informatik II - Tutorium 7 Vincent Becker vincent.becker@inf.ethz.ch 18.04.2018 Vincent Becker 19.04.2018 1 Altklausuren verfügbar Für regisitrierte AMIV-Mitglieder Mehrere Altklausuren Disclaimer lesen!

Mehr

Informatik II - Übung 10

Informatik II - Übung 10 Informatik II - Übung 10 Christian Beckel beckel@inf.ethz.ch 08.05.2014 Blatt 08 1) Binäre Suche 2) TicTacToe 3) Reversi: checkmove() & GreedyPlayer 4) Backtracking Christian Beckel 09/05/14 2 U8.A3: checkmove()

Mehr

Informatik II - Übung 11

Informatik II - Übung 11 Informatik II - Übung 11 Katja Wolff katja.wolff@inf.ethz.ch Blatt 10 1) Merge sort 2) Türme von Hanoi 3) Reversi: alpha-beta-suche Außerdem: Sortierverfahren und ihre Komplexität Informatik II Übung 11

Mehr

Informatik II - Übung 11

Informatik II - Übung 11 Informatik II - Übung 11 Christian Beckel beckel@inf.ethz.ch 15.05.2014 Blatt 10 1) Merge sort 2) Türme von Hanoi 3) Reversi: alpha-beta-suche Außerdem: Sortierverfahren und ihre Komplexität Christian

Mehr

Informatik II Übung 11 Gruppe 4

Informatik II Übung 11 Gruppe 4 Informatik II Übung 11 Gruppe 4 (Folien teils von Christian B. und Christelle G.) Lukas Burkhalter lubu@inf.ethz.ch Informatik II Übung 11 Lukas Burkhalter 16. Mai 2018 1 Alpha-Beta klarer 4 oder 2, beides

Mehr

Informatik II (D-ITET) Übungsstunde 2,

Informatik II (D-ITET) Übungsstunde 2, Informatik II (D-ITET) Übungsstunde 2, 9.03.2017 Hossein Shafagh, shafagh@inf.ethz.ch Distributed Systems Group, ETH Zürich Ablauf Besprechung von Übung 1 Hinweise für Übung 2 Lösung U1.A1 f(a,b) = a x

Mehr

Java Tools JDK. IDEs. Downloads. Eclipse. IntelliJ. NetBeans. Java SE 8 Java SE 8 Documentation

Java Tools JDK. IDEs.  Downloads. Eclipse. IntelliJ. NetBeans. Java SE 8 Java SE 8 Documentation Java Tools JDK http://www.oracle.com/technetwork/java/javase/ Downloads IDEs Java SE 8 Java SE 8 Documentation Eclipse http://www.eclipse.org IntelliJ http://www.jetbrains.com/idea/ NetBeans https://netbeans.org/

Mehr

Informatik II Übung 11 Gruppe 7

Informatik II Übung 11 Gruppe 7 Informatik II Übung 11 Gruppe 7 Leyna Sadamori leyna.sadamori@inf.ethz.ch Informatik II Übung 11 Leyna Sadamori 15. Mai 2014 1 Debriefing Übung 10 Informatik II Übung 11 Leyna Sadamori 15. Mai 2014 2 U10A1a

Mehr

Programmieren in Java

Programmieren in Java Programmieren in Java Vorlesung 05: Generics Prof. Dr. Peter Thiemann Albert-Ludwigs-Universität Freiburg, Germany SS 2015 Peter Thiemann (Univ. Freiburg) Programmieren in Java JAVA 1 / 19 Inhalt Generics

Mehr

1. Die rekursive Datenstruktur Liste

1. Die rekursive Datenstruktur Liste 1. Die rekursive Datenstruktur Liste 1.3 Rekursive Funktionen Ideen zur Bestimmung der Länge einer Liste: 1. Verwalte ein globales Attribut int laenge. Fügt man ein Element zur Liste oder löscht es, wird

Mehr

Informatik II (D-ITET)

Informatik II (D-ITET) Informatik II (D-ITET) simon.mayer@inf.ethz.ch Distributed Systems Group, ETH Zürich Informatik II (D-ITET) 1 Ablauf Nachbesprechung Übung 1 Besprechung der Vorlesung Übungsbezogene Themen: Bäume, Rekursion,

Mehr

12 Abstrakte Klassen, finale Klassen und Interfaces

12 Abstrakte Klassen, finale Klassen und Interfaces 12 Abstrakte Klassen, finale Klassen und Interfaces Eine abstrakte Objekt-Methode ist eine Methode, für die keine Implementierung bereit gestellt wird. Eine Klasse, die abstrakte Objekt-Methoden enthält,

Mehr

Algorithmen und Datenstrukturen Musterlösung 5

Algorithmen und Datenstrukturen Musterlösung 5 Algorithmen und Datenstrukturen Musterlösung 5 Martin Avanzini Thomas Bauereiß Herbert Jordan René Thiemann

Mehr

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

Informatik II. Übungsstunde 6. Distributed Systems Group, ETH Zürich Informatik II Übungsstunde 6 simon.mayer@inf.ethz.ch Distributed Systems Group, ETH Zürich Ablauf Besprechung der Vorlesung Uebungsbezogene Themen: Statisches & Dynamisches Type Checking Zeit zum Programmieren...

Mehr

Informatik II (D-ITET) Übungsstunde 5,

Informatik II (D-ITET) Übungsstunde 5, Informatik II (D-ITET) Übungsstunde 5, 30.04.2017 Hossein Shafagh, shafagh@inf.ethz.ch Distributed Systems Group, ETH Zürich Ablauf Besprechung von Übung 4 More Java insights (Call by Value und Call by

Mehr

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

Übungsserie Nr. 6. Ausgabe: 1. April 2015 Abgabe: 15. April Hinweise Informatik II (D-ITET) Frühjahrssemester 2015 Prof. Friedemann Mattern Christian Beckel (beckel@inf.ethz.ch) ETH Zürich Institut für Pervasive Computing Gruppe für Verteilte Systeme http://vs.inf.ethz.ch

Mehr

Informatik II (D-ITET) Übungsstunde 6

Informatik II (D-ITET) Übungsstunde 6 Informatik II (D-ITET) Übungsstunde 6 simon.mayer@inf.ethz.ch Distributed Systems Group, ETH Zürich Ablauf Nachbesprechung Übung 5 Besprechung der Vorlesung Die neue Serie... Zeit zum Programmieren / für

Mehr

Informatik II Übung 11 Gruppe 3

Informatik II Übung 11 Gruppe 3 Informatik II Übung 11 Gruppe 3 Leyna Sadamori leyna.sadamori@inf.ethz.ch Informatik II Übung 11 Leyna Sadamori 17. Mai 2017 1 Nachtrag zu Übung 10 Alpha-Beta-Algorithmus Knotenwerte: Beide Varianten sind

Mehr

IT I: Heute. abstrakte Methoden und Klassen. Interfaces. Interfaces List, Set und Collection IT I - VO 7 1

IT I: Heute. abstrakte Methoden und Klassen. Interfaces. Interfaces List, Set und Collection IT I - VO 7 1 IT I: Heute abstrakte Methoden und Klassen Interfaces Interfaces List, Set und Collection 22.11.2018 IT I - VO 7 1 Wissensüberprüfung Überschreiben von Methoden: Aufruf der Methode der Oberklasse ist oft

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

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

Informatik II Übung 2. Gruppe 4. Lukas Burkhalter (Folien teils von Christian B. und Leyna S.) Informatik II Übung 3 Gruppe 4 (Folien teils von Christian B. und Leyna S.) Lukas Burkhalter lubu@inf.ethz.ch Informatik II Übung 2 Lukas Burkhalter 14. März 2018 1 Ablauf der Übung Nachbesprechung der

Mehr

HTW IMI-B Informatik 1 Kara Worksheet 2 Seite: 1. Variables to store a true/false state: boolean movingright = true;

HTW IMI-B Informatik 1 Kara Worksheet 2 Seite: 1. Variables to store a true/false state: boolean movingright = true; HTW IMI-B Informatik 1 Kara Worksheet 2 Seite: 1 You will need these Java constructs for the following exercises: Variables to count things: int zaehler = 0; Variables to store a true/false state: boolean

Mehr

Informatik II - Übung 02

Informatik II - Übung 02 Informatik II - Übung 02 Katja Wolff katja.wolff@inf.ethz.ch Themen 1. Ein Algorithmus und seine Implementierung in Java 2. Java: Elementare Aspekte 3. Klassen und Referenzen 4. Syntaxanalyse und Compiler

Mehr

EINFÜHRUNG IN DIE PROGRAMMIERUNG

EINFÜHRUNG IN DIE PROGRAMMIERUNG EINFÜHRUNG IN DIE PROGRAMMIERUNG GRUNDLAGEN Tobias Witt!! 24.03.2014 ORGANISATORISCHES 09:00-10:30! Täglich Übungen zur Vertiefung! Laptop hier nicht erforderlich! Linux, OS X! Freitag: http://hhu-fscs.de/linux-install-party/

Mehr

Informatik II Übung 2. Pascal Schärli

Informatik II Übung 2. Pascal Schärli Informatik II Übung 2 Pascal Schärli pascscha@student.ethz.ch 08.03.2018 Code Expert Pascal Schärli 08.03.2018 2 Nachbesprechung Serie 1 Aufgabe 1 a) Induktionsbeweis über a möglich? Nein! Der Induktionsanfang

Mehr

Informatik II Übung 2

Informatik II Übung 2 Informatik II Übung 2 Florian Scheidegger florsche@student.ethz.ch Folien mit freundlicher Genehmigung adaptiert von Gábor Sörös und Simon Mayer gabor.soros@inf.ethz.ch, simon.mayer@inf.ethz.ch 7.3.2013

Mehr

14 Abstrakte Klassen, finale Klassen, Interfaces

14 Abstrakte Klassen, finale Klassen, Interfaces Eine abstrakte Objekt-Methode ist eine Methode, für die keine Implementierung bereit gestellt wird. Eine Klasse, die abstrakte Objekt-Methoden enthält, heißt ebenfalls abstrakt. Für eine abstrakte Klasse

Mehr

14 Abstrakte Klassen, finale Klassen, Interfaces. Auswertung von Ausdrücken. Beispiel. Abstrakte Methoden und Klassen

14 Abstrakte Klassen, finale Klassen, Interfaces. Auswertung von Ausdrücken. Beispiel. Abstrakte Methoden und Klassen Auswertung von Ausdrücken Eine abstrakte Objekt-Methode ist eine Methode, für die keine Implementierung bereit gestellt wird. Eine Klasse, die abstrakte Objekt-Methoden enthält, heißt ebenfalls abstrakt.

Mehr

Programmieren in Java

Programmieren in Java Programmieren in Java Vorlesung 09: Generics and Comparison Prof. Dr. Peter Thiemann Albert-Ludwigs-Universität Freiburg, Germany SS 2017 Peter Thiemann (Univ. Freiburg) Programmieren in Java JAVA 1 /

Mehr

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

B6.1 Introduction. Algorithmen und Datenstrukturen. Algorithmen und Datenstrukturen. B6.1 Introduction. B6.3 Analyse. B6.4 Ordnungsbasierte Methoden Algorithmen und Datenstrukturen 11. April 2018 B6. Binäre Suchbäume a Algorithmen und Datenstrukturen B6. Binäre Suchbäume 1 Marcel Lüthi and Gabriele Röger Universität Basel 11. April 2018 a Folien basieren

Mehr

Informatik II Übung 6

Informatik II Übung 6 Informatik II Übung 6 Florian Scheidegger florsche@student.ethz.ch Folien mit freundlicher Genehmigung adaptiert von Gábor Sörös und Simon Mayer gabor.soros@inf.ethz.ch, simon.mayer@inf.ethz.ch 11.03.2013

Mehr

14 Abstrakte Klassen, finale Klassen, Interfaces

14 Abstrakte Klassen, finale Klassen, Interfaces Eine abstrakte Objekt-Methode ist eine Methode, für die keine Implementierung bereit gestellt wird. Eine Klasse, die abstrakte Objekt-Methoden enthält, heißt ebenfalls abstrakt. Für eine abstrakte Klasse

Mehr

Aufgabe 1.1. Wählen Sie jene Variablendeklarationen mit Initialisierungen aus, die in Java hinsichtlich der Typen korrekt sind:

Aufgabe 1.1. Wählen Sie jene Variablendeklarationen mit Initialisierungen aus, die in Java hinsichtlich der Typen korrekt sind: Test 1 in Programmkonstruktion 59 / 100 Punkte 1. Multiple-Choice-Aufgaben 20 / 30 Punkte Bitte wählen Sie alle zutreffenden Antwortmöglichkeiten aus. Es können beliebig viele Antwortmöglichkeiten zutreffen,

Mehr

Informatik II (D-ITET) Übungsstunde 2

Informatik II (D-ITET) Übungsstunde 2 Informatik II (D-ITET) Übungsstunde 2 simon.mayer@inf.ethz.ch Distributed Systems Group, ETH Zürich Ablauf Besprechung der Vorlesung Übungsbezogene Themen: Bäume, Rekursion, Sortieren Zeit zum Programmieren

Mehr

Mengen und Multimengen

Mengen und Multimengen Überblick 17. Datenstrukturen 17.1 Einleitung 17.2 Listen 17.3 Assoziative Speicher 17.4 Bäume 17.5 Mengen 17.6 Das Collections-Framework in Java 17.7 Zusammenfassung 17 Datenstrukturen 5 Mengen Informatik

Mehr

Informatik I (D-MAVT)

Informatik I (D-MAVT) Informatik I (D-MAVT) Übungsstunde 8, 22.4.2009 simonmayer@student.ethz.ch ETH Zürich Aufgabe 1: Pointer & Structs Schauen wir s uns an! Aufgabe 2: Grossteils gut gemacht! Dynamische Arrays! Sortieren:

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

Selbststudium OOP7 & ALG2 Auftrag

Selbststudium OOP7 & ALG2 Auftrag Selbststudium OOP7 & ALG2 Auftrag Kapitel 5.6 1. zu bearbeitende Aufgaben: 5.24 bis 5.30 5.24: Return Method Set entryset() V get(object key) Set keyset() V put(k key, V value) void

Mehr

Datenstrukturen. Ziele

Datenstrukturen. Ziele Datenstrukturen Ziele Nutzen von Datenstrukturen Funktionsweise verstehen Eigenen Datenstrukturen bauen Vordefinierte Datenstrukturen kennen Hiflsmethoden komplexer Datenstrukten kennen Datenstrukturen

Mehr

Selbststudium OOP6 & ALG1 Auftrag

Selbststudium OOP6 & ALG1 Auftrag Selbststudium OOP6 & ALG1 Auftrag Kapitel 5.2 1. zu bearbeitende Aufgabe: 5.1 done 2. Auf den Seiten 157/158 wird in der Methode start()ein while-loop verwendet. Kreieren Sie ein Code-Fragment mit derselben

Mehr

Übung Algorithmen und Datenstrukturen

Übung Algorithmen und Datenstrukturen Übung Algorithmen und Datenstrukturen Sommersemester 2017 Patrick Schäfer, Humboldt-Universität zu Berlin Agenda: Suchen und Amortisierte Analyse Heute: Suchen / Schreibtischtest Amortisierte Analyse Nächste

Mehr

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

Informatik II (D-ITET) Informatik II (D-ITET) Übungsstunde 1. Distributed Systems Group, ETH Zürich Informatik II (D-ITET) Informatik II (D-ITET) simon.mayer@inf.ethz.ch Distributed Systems Group, ETH Zürich Übungsstunde 1 Informatik II (D-ITET) 1 Ablauf Nachbesprechung Übung 1 und Übung 2 Besprechung

Mehr

Programming for Engineers

Programming for Engineers Programming for Engineers Winter 2015 Andreas Zeller, Saarland University A Computer Device that processes data according to an algorithm. Computers are everywhere Your Computer Arduino Physical-Computing-Platform

Mehr

Institut für Programmierung und Reaktive Systeme. Java 7. Markus Reschke

Institut für Programmierung und Reaktive Systeme. Java 7. Markus Reschke Institut für Programmierung und Reaktive Systeme Java 7 Markus Reschke 14.10.2014 Vererbung in Java Vererbung ermöglicht es, Klassen zu spezialisieren Wiederverwendung vorhandener Klassen Kindsklasse erhält

Mehr

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

Algorithmen und Datenstrukturen. Algorithmen und Datenstrukturen. B6.1 Einführung. B6.2 Symboltabellen. B6.3 Einfache Implementationen Algorithmen und Datenstrukturen 03. April 2019 B6. Symboltabellen a Algorithmen und Datenstrukturen B6. Symboltabellen 1 Marcel Lüthi and Gabriele Röger Universität Basel 03. April 2019 a Folien basieren

Mehr

Informatik - Übungsstunde

Informatik - Übungsstunde Informatik - Übungsstunde Jonas Lauener (jlauener@student.ethz.ch) ETH Zürich Woche 12-23.05.2018 Lernziele Klassen Dynamic Memory Jonas Lauener (ETH Zürich) Informatik - Übung Woche 12 2 / 20 Structs

Mehr

Algorithms for graph visualization

Algorithms for graph visualization Algorithms for graph visualization Project - Orthogonal Grid Layout with Small Area W INTER SEMESTER 2013/2014 Martin No llenburg KIT Universita t des Landes Baden-Wu rttemberg und nationales Forschungszentrum

Mehr

Programmieren in Java

Programmieren in Java Programmieren in Java Vorlesung 04: Collection API Prof. Dr. Peter Thiemann Albert-Ludwigs-Universität Freiburg, Germany SS 2017 Peter Thiemann (Univ. Freiburg) Programmieren in Java JAVA 1 / 27 Inhalt

Mehr

EINFÜHRUNG IN DIE PROGRAMMIERUNG

EINFÜHRUNG IN DIE PROGRAMMIERUNG EINFÜHRUNG IN DIE PROGRAMMIERUNG GRUNDLAGEN Tobias Witt 24.03.2014 ORGANISATORISCHES tobias.witt@hhu.de 10:30-12:00 Täglich Übungen zur Vertiefung Laptop hier nicht erforderlich Aber später in den Übungen!

Mehr

Programmieren 2 Java Überblick

Programmieren 2 Java Überblick Programmieren 2 Java Überblick 1 Klassen und Objekte 2 Vererbung 4 Innere Klassen 5 Exceptions 6 Funktionsbibliothek 7 Datenstrukturen und Algorithmen 8 Ein-/Ausgabe 9 Graphische Benutzeroberflächen 10

Mehr

18. Natürliche Suchbäume

18. Natürliche Suchbäume Bäume Bäume sind. Natürliche Suchbäume [Ottman/Widmayer, Kap..1, Cormen et al, Kap. 12.1-12.] Verallgemeinerte Listen: Knoten können mehrere Nachfolger haben Spezielle Graphen: Graphen bestehen aus Knoten

Mehr

Kapitel zu bearbeitende Aufgaben: 6.1 bis :

Kapitel zu bearbeitende Aufgaben: 6.1 bis : Kapitel 6.3.1 1. zu bearbeitende Aufgaben: 6.1 bis 6.5 6.1: 6.2: === Day 23 === 9: pause 10: 11: 12: 13: lunch 14: 15: 16: 17: meeting 6.3: 6.4: PRG1_OOP8_ALG3_SS.docx Seite 1 von 10 http://hslu.ximit.ch

Mehr

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

Informatik II (D-ITET) Informatik II (D-ITET) Übungsstunde 1. Distributed Systems Group, ETH Zürich Informatik II (D-ITET) Informatik II (D-ITET) simon.mayer@inf.ethz.ch Distributed Systems Group, ETH Zürich Übungsstunde 1 Informatik II (D-ITET) 1 Ablauf Nachbesprechung Übungen 3 und 4 Besprechung der

Mehr

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

Aufgabenblatt 4. Aufgabe 3. Aufgabe 1. Aufgabe 2. Prof. Dr. Th. Letschert Algorithmen und Datenstrukturen Prof. Dr. Th. Letschert Algorithmen und Datenstrukturen Aufgabenblatt 4 Aufgabe 1 1. Erläutern Sie in eigenen Worten die Begriffe Datenstruktur, Datentyp und abstrakter Datentyp. Nutzen Sie das Beispiel

Mehr

TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK

TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK Lehrstuhl für Sprachen und Beschreibungsstrukturen SS 2011 Einführung in die rmatik I Übungsblatt 8 Prof. Dr. Helmut Seidl, A. Lehmann, A. Herz, Dr.

Mehr

Listen. Prof. Dr. Christian Böhm. in Zusammenarbeit mit Gefei Zhang. WS 07/08

Listen. Prof. Dr. Christian Böhm. in Zusammenarbeit mit Gefei Zhang.  WS 07/08 Listen Prof. Dr. Christian Böhm in Zusammenarbeit mit Gefei Zhang http://www.dbs.ini.lmu.de/lehre/nfinfosw WS 07/08 2 Ziele Standardimplementierungen für Listen kennenlernen Listeniteratoren verstehen

Mehr

Tutoraufgabe 1 (Implementierung eines ADTs):

Tutoraufgabe 1 (Implementierung eines ADTs): Prof. aa Dr. E. Ábrahám Datenstrukturen und Algorithmen SS Tutoriumslösung - Übung (Abgabe.05.0) F. Corzilius, S. Schupp, T. Ströder Tutoraufgabe (Implementierung eines ADTs): Wir spezifizieren den ADT

Mehr

Fragenkatalog ESOP WS 16/17

Fragenkatalog ESOP WS 16/17 Fragenkatalog ESOP WS 16/17 1. Einleitung 1.1 Was ist Programmieren? 1.2 Was ist ein Programm? 1.3 Welche Schritte werden bei der Programmerstellung benötigt? 1.4 Was ist ein Algorithmus? 1.5 Was sind

Mehr

Übung Algorithmen und Datenstrukturen

Übung Algorithmen und Datenstrukturen Übung Algorithmen und Datenstrukturen Sommersemester 2017 Marc Bux, Humboldt-Universität zu Berlin Agenda 1. (Sortierte) Listen 2. Stacks & Queues 3. Datenstrukturen 4. Rekursion und vollständige Induktion

Mehr

Universität München, Hans-Peter Kriegel und Thomas Seidl Informatik II a[0] a[1] a[2] a[3] a[n 1]

Universität München, Hans-Peter Kriegel und Thomas Seidl Informatik II a[0] a[1] a[2] a[3] a[n 1] Universität München, Hans-Peter Kriegel und Thomas Seidl Informatik II -108 Kapitel 5: Arrays Einführung Ein Array ist eine Reihung gleichartiger Objekte. a: a[0] a[1] a[2] a[3] a[n 1] Bezeichner a steht

Mehr

Arrays. Gilbert Beyer und Annabelle Klarl. Einführung in die Informatik. Zentralübung zur Vorlesung Einführung in die Informatik

Arrays. Gilbert Beyer und Annabelle Klarl. Einführung in die Informatik. Zentralübung zur Vorlesung Einführung in die Informatik Arrays Zentralübung zur Vorlesung Einführung in die Informatik http://www.pst.ifi.lmu.de/lehre/wise-11-12/infoeinf WS11/12 Inhalte der heutigen Vorlesung: Arraytypen Speicherdarstellung von Arrays Auswertung

Mehr

Informatik II PVK Tag 2

Informatik II PVK Tag 2 Informatik II PVK Tag 2 Michael Baumann mbauman@student.ethz.ch n.ethz.ch/~mbauman Themen Theorie 1) Java Basics 2) Theorie: Komplexität und Laufzeit 3) OOP 2 Themen Praxis 1) Syntaxbäume 2) Verkettete

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

Institut fu r Informatik

Institut fu r Informatik Technische Universita t Mu nchen Institut fu r Informatik Lehrstuhl fu r Bioinformatik Einfu hrung in die Programmierung fu r Bioinformatiker Prof. B. Rost, L. Richter WS 2014/15 Aufgabenblatt 11 19.01.2015

Mehr

Aufgabe11. Methode test1. import java.util.hashmap; import java.util.arraylist; public class Aufgabe11 {

Aufgabe11. Methode test1. import java.util.hashmap; import java.util.arraylist; public class Aufgabe11 { Hochschule Harz Programmierung1 Aufgabe 10: FB Automatisierung und Informatik Dipl.-Inf. Dipl.-Ing. (FH) M. Wilhelm Programmierung 1 für MI / WI Thema: Hashing und Generische Klassen Versuchsziele Kenntnisse

Mehr

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

Informatik II (D-ITET) Informatik II (D-ITET) Übungsstunde 1. Distributed Systems Group, ETH Zürich Informatik II (D-ITET) Informatik II (D-ITET) simon.mayer@inf.ethz.ch Distributed Systems Group, ETH Zürich Übungsstunde 1 Informatik II (D-ITET) 1 Ablauf Überblick + Administratives Besprechung der Vorlesung

Mehr

Informatik II (D-ITET) Übungsstunde 5

Informatik II (D-ITET) Übungsstunde 5 Informatik II (D-ITET) Übungsstunde 5 simon.mayer@inf.ethz.ch Distributed Systems Group, ETH Zürich Ablauf Nachbesprechung Übungen 3 und 4 Besprechung der Vorlesung Übungsbezogene Themen: Referenzen, Listen

Mehr

Informatik I (D-MAVT)

Informatik I (D-MAVT) Informatik I (D-MAVT) Übungsstunde 7 simon.mayer@inf.ethz.ch Distributed Systems Group, ETH Zürich Ablauf Nachbesprechung Übung 5 Besprechung/Vertiefung der Vorlesung Vorbesprechung Übung 7 Aufgabe 1:

Mehr

Abschlussklausur Lösung. Bitte in Druckschrift leserlich ausfüllen!

Abschlussklausur Lösung. Bitte in Druckschrift leserlich ausfüllen! Informatik für Informationsmanager II SS 2006 Universität Koblenz-Landau Institut für Informatik Prof. Dr. Steffen Staab Dr. Manfred Jackel Abschlussklausur 04.08.2006 Lösung Bitte in Druckschrift leserlich

Mehr

Anwendungsbeispiel MinHeap

Anwendungsbeispiel MinHeap Anwendungsbeispiel MinHeap Uns seien n ganze Zahlen gegeben und wir möchten darin die k größten Zahlen bestimmen; zudem gelten, dass n deutlich größer als k ist Wir können das Problem mit Laufzeit in O(n

Mehr