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

Ähnliche Dokumente
Informatik II (D-ITET)

Informatik II (D-ITET) Übungsstunde 5

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

Informatik II - Übung 03

Informatik II (D-ITET) Übungsstunde 2

Informatik II Übung 3

Informatik II (D-ITET) Übungsstunde 3,

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

Informatik II Übung 02. Benjamin Hepp 8 March 2017

Informatik II (D-ITET)

Informatik II (D-ITET)

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

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

Informatik II Übung 3. Pascal Schärli

Programmieren I. Methoden-Special Heusch --- Ratz 6.1, Institut für Angewandte Informatik

Informatik II (D-ITET) Übungsstunde 6

Informatik II Übung 5

Programmieren I. Methoden-Spezial Heusch --- Ratz 6.1, Institut für Angewandte Informatik

Informatik II Übung 2

Informatik II (D-ITET) Übungsstunde 2,

Informatik II Übung 2

Informatik II - Tutorium 4

Informatik II Übung 5 Gruppe 3

Informatik I (D-MAVT)

Informatik II Übung 4 Gruppe 7

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

Informatik II Übung 5

Klassen, Vererbung, Benutzereingabe

Informatik II - Übung 02

Informatik II (D-ITET) Übungsstunde 1,

Programmierung für Mathematik HS11

Programmieren in Java

Informatik II Übung 05. Benjamin Hepp 3 April 2017

Informatik II Übung 1 (slides teils von Christian Beckel) Gruppe 4. Lukas Burkhalter

12 Abstrakte Klassen, finale Klassen und Interfaces

Informatik II (D-ITET) Übungsstunde 5,

Informatik II Übung 2. Pascal Schärli

Informatik II. Woche 10, Giuseppe Accaputo

Informatik II - Übung 01

Martin Unold INFORMATIK. Geoinformatik und Vermessung

Informatik II. Woche 15, Giuseppe Accaputo

Informatik II - Tutorium 2

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

Die abstrakte Klasse Expression:

Informatik I (D-MAVT)

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

Kapitel 12: Induktive

Übung zur Vorlesung Programmierung

Algorithmen und Datenstrukturen 07

Informatik II - Übung 04

Übung Programmierung WS 2007/08 - Blatt 6

Martin Unold INFORMATIK. Geoinformatik und Vermessung

Methoden. Gerd Bohlender. Einstieg in die Informatik mit Java, Vorlesung vom

Informatik II Übung 2 Gruppe 7

Übungsblatt 13. Abgabe / Besprechung in Absprache mit dem Tutor

Übungsblatt 13. Abgabe / Besprechung in Absprache mit dem Tutor

Tag 5. Repetitorium Informatik (Java) Dozent: Marius Kamp Lehrstuhl für Informatik 2 (Programmiersysteme)

Matrikelnummer:

II. Grundlagen der Programmierung. Beispiel: Merge Sort. Beispiel: Merge Sort (Forts. ) Beispiel: Merge Sort (Forts. )

Objektorientierte Programmierung Studiengang Medieninformatik

Semestralklausur Informatik I - Programmierung

Informatik II - Übung 01

! 1. Rekursive Algorithmen.! 2. Rekursive (dynamische) Datenstrukturen. II.3.2 Rekursive Datenstrukturen - 1 -

Einführung in Java, Teil 7

Informatik II - Übung 04. Christian Beckel Besprechung Übungsblatt 3

Abstrakte Datentypen. Daten und Operationen Mögliche Implementierungen Veränderbare Typen, Ergebnistypen

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

Informatik II Übung 1

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

Methoden und Wrapperklassen

Informatik II - Übung 07

Erste Java-Programme (Java Wiederholung & Vererbung)

Java Kurs für Anfänger Einheit 5 Methoden

Tutoraufgabe 1 (Programmanalyse):

Informatik II Übung 5 Gruppe 4

Vorkurs Informatik WiSe 15/16

Informatik II Übung 01. Benjamin Hepp 8 March 2017

2. Unterprogramme und Methoden

Objektorientierte Programmierung. Kapitel 22: Aufzählungstypen (Enumeration Types)

Programmieren in Java

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

14 Abstrakte Klassen, finale Klassen, Interfaces

Informatik II Übung 06. Benjamin Hepp 5 April 2017

Tutoraufgabe 1 (Programmanalyse):

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

Datum, Uhrzeit: , Uhr Semester: I1 Note:... Prof. Dr. G. Meixner

n 1. Grundzüge der Objektorientierung n 2. Methoden, Unterprogramme und Parameter n 3. Datenabstraktion n 4. Konstruktoren n 5. Vordefinierte Klassen

Programmieren 2 Java Überblick

Vorkurs Informatik WiSe 16/17

1. Grundzüge der Objektorientierung 2. Methoden, Unterprogramme und Parameter 3. Datenabstraktion 4. Konstruktoren 5. Vordefinierte Klassen

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D.

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

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

Vorkurs Informatik WiSe 17/18

14 Abstrakte Klassen, finale Klassen, Interfaces

M3 M4 M7 VORNAME: Nom-Kenner VERTIEFUNG: Ausdruck des vorab bekannt gemachten Quelltextes

Einstieg in die Informatik mit Java

Vorkurs Informatik WiSe 17/18

Transkript:

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 der Vorlesung Übungsbezogene Themen: Strings, Syntaxdiagramme, Parser Zeit zum Programmieren / für Demos Informatik II (D-ITET) 2

Nachbesprechung Übung 1 1. Altägyptische Multiplikation und Beweise keine Probleme 2. Zählen von Methodenaufrufen und Komplexität schauen wir uns an... 3. Java: JUnit, Javadoc, Exceptions lief super... Informatik II (D-ITET) 3

2. Zählen von Methodenaufrufen und Komplexität b) Wie viele Aufrufe von gerade/verdopple/halbiere bei einem Aufruf von f (ohne Rekursion)? ~ a + 3b/2 + 3 Informatik II (D-ITET) 4

2. Zählen von Methodenaufrufen und Komplexität b) Wie viele Aufrufe von gerade/verdopple/halbiere bei einem Aufruf von f (mit Rekursion)? #Aufrufe: N(a, b) N(a,b) = (a + 3b/2 + 3) + N(2a, b/2) Wie gross ist k? N(a,b) = 2ab a + 3b + 3 log 2 (b) + 2.25 Informatik II (D-ITET) 5

Informatik II (D-ITET) 6

public static void main(string [] args) { final int NUM_CALC = 1000000; final int a = 5000; final int b = 20; long t1 = System.nanoTime(); for (int i = 0; i < NUM_CALC; i++) { mult(a, b); } + Demo long t2 = System.nanoTime(); for (int i = 0; i < NUM_CALC; i++) { mult(b, a); } long t3 = System.nanoTime(); } System.out.println("mult(5000, 20): " + (t2 - t1) + "ns"); System.out.println("mult(20, 5000): " + (t3 - t2) + "ns"); Informatik II (D-ITET) 7

Nachbesprechung Übung 2 1. Wurzelbäume keine Probleme 2. Sortieren tostring() Und schnell mal die Rekursion... :-) 3. Binärbäume als Arrays tostring() checktree() aber generell super gemacht! Informatik II (D-ITET) 8

Ablauf Nachbesprechung Übung 1 und Übung 2 Besprechung der Vorlesung Übungsbezogene Themen: Strings, Syntaxdiagramme, Parser Zeit zum Programmieren / für Demos Informatik II (D-ITET) 9

Syntaxbäume, Syntaxchecker, rekursive Syntaxchecker,... Wichtiges Thema, auch sehr prüfungsrelevant Informatik II (D-ITET) 10

Informatik II (D-ITET) 11

Informatik II (D-ITET) 12

Informatik II (D-ITET) 13

Informatik II (D-ITET) 14

Rekursive Syntaxchecker Intuitiv... wie stellt man programmatisch fest, ob etwas ein «Haus» ist (in 2D... ;-))? Wir definieren, dass ein Haus besteht aus: Von unten nach oben: Haus = Fundament, Erdgeschoss, Stockwerk(e), Dach Von links nach rechts: Erdgeschoss = eine Tür, ein oder mehrere Fenster Von links nach rechts: Stockwerk = ein oder mehrere Fenster Das Haus wird von unten nach oben gescannt Informatik II (D-ITET) 15

Rekursive Syntaxchecker Intuitiv... wie stellt man programmatisch fest, ob etwas ein «Haus» ist (in 2D... ;-))? Wir definieren, dass ein Haus besteht aus: Von unten nach oben: Haus = Erdgeschoss, Stockwerk(e), Dach Von links nach rechts: Erdgeschoss = eine Tür, dann ein/mehrere Fenster Von links nach rechts: Stockwerk = ein/mehrere Fenster Informatik II (D-ITET) 16

Rekursive Syntaxchecker HAUS Stockwerk Erdgeschoss Dach STOCKWERK FENSTER TÜR Fenster ERDGESCHOSS DACH Tür Fenster Informatik II (D-ITET) 17

1 2 3 4 5 6 Informatik II (D-ITET) 18

Ablauf Nachbesprechung Übung 1 und Übung 2 Besprechung der Vorlesung Übungsbezogene Themen: Strings, Syntaxdiagramme, Parser Zeit zum Programmieren / für Demos Informatik II (D-ITET) 19

Übung 3 1. Objekte und Referenzen mit Strings Programmausgabe Programmanalyse 2. Syntaxdiagramme Welche Ausdrücke sind erzeugbar? 3. Syntaxchecker für Bäume Syntaxdiagramm ergänzen...und Implementieren Informatik II (D-ITET) 20

Übung 3 Aufgabe 1 Klasse String (immutable) Operationen können gut optimiert werden Aber: Modifikationen nur durch Kopie! Klasse StringBuffer (mutable) Veränderbar ohne Kopie Aber: Gewisse Operationen sind teuer! Demo: Immutable und Mutable Strings Informatik II (D-ITET) 21

Übung 3 Aufgabe 1 Programmanalyse Welche Objekte existieren an den markierten Stellen zur Laufzeit? Informatik II (D-ITET) 22

Übung 3 Aufgabe 1 Beispiel: Referenzen und Objekte String str = foo ; StringBuffer buf = new StringBuffer( foobuffer ); Welche Objekte und Referenzen gibt es nun? Objekte: Referenzen: (1, String, foo ) (2, String, foobuffer ) (3, Stringbuffer, foobuffer ) (str, 1) (buf, 3) Informatik II (D-ITET) 23

Übung 3 Aufgabe 2 Syntaxdiagramme, wie in der Vorlesung vorgestellt... Reine Anwendung Informatik II (D-ITET) 24

Übung 3 Aufgabe 3 Baumsyntax aus der Vorlesung Erweitern um leere Teilbäume Implementierung rekursiver Syntaxchecker (für erweiterte Baumsyntax!)...ein bisschen involvierter :-) Informatik II (D-ITET) 25

Übung 3 Aufgabe 3 Informatik II (D-ITET) 26

Ablauf Nachbesprechung Übung 1 und Übung 2 Besprechung der Vorlesung Übungsbezogene Themen: Strings, Syntaxdiagramme, Parser Zeit zum Programmieren / für Demos Informatik II (D-ITET) 27

Projekt: Einfacher Syntaxchecker Besonderes: offset-parameter Informatik II (D-ITET) 28