Informatik II Übung 4. Pascal Schärli
|
|
- Philipp Hinrich Weber
- vor 5 Jahren
- Abrufe
Transkript
1 Informatik II Übung 4 pascscha@student.ethz.ch
2 Nachbesprechung Serie 3 - Aufgabe 1 Schleifeninvariante: z+u j=i j Nach der while-scheife: u=0 z= i j Was passiert wenn man das Programm so abändert? Schleifeninvariante stimmt immernoch, aber das Programm terminiert nicht mehr. static int f(int int u = i; int z = 0; while (u > z = z + u = u return z; i, int j) { 0){ j; 1; static int f(int i, int j) { int u = i; int z = 0; while (u > 0){ z = z; u = u; return z; 2
3 Nachbesprechung Serie 3 - Aufgabe 2 StringBuffer sind bei häufigen veränderungen viel schneller als Strings Möglicher Output: public static String encrypt(string s) { String ret = ""; for (int i = 0; i!= s.length(); ++i) { ret = ret + (char) (s.charat(i) + 3); return ret; Starting encryption (using Strings) Done - Duration: 3732 ms. Starting decryption (using StringBuffers) Done - Duration: 73 ms. Decryption successful :-) public static String decrypt(string s) { StringBuffer ret = new StringBuffer(); for (int i = 0; i!= s.length(); ++i) { ret.append((char) (s.charat(i) - 3)); return ret.tostring(); 3
4 Nachbesprechung Serie 3 - Aufgabe 2 (char) (s.charat(i) 3) Was passiert denn hier alles genau? public static String decrypt(string s) { StringBuffer ret = new StringBuffer(); for (int i = 0; i!= s.length(); ++i) { ret.append((char) (s.charat(i) - 3)); return ret.tostring(); char int int Nach der Operation haben wir einen Integer Wir müssen den resultierenden Integer wider in einen Char umwandeln (Englisch: cast) 4
5 Nachbesprechung Serie 3 - Aufgabe 3 Clause: 5
6 Nachbesprechung Serie 3 Aufgabe 3 Expr: 6
7 Nachbesprechung Serie 3 Aufgabe 4-7
8 Nachbesprechung Serie 3 Aufgabe 5 private static int parsetree(string kd, int offset) throws ParseException { if (checknext('-', kd, offset)) { return offset + 1; offset = parsenode(kd, offset); if (checknext('(', kd, offset)) { offset += 1; offset = parsesubtree(kd, offset); if (! checknext(')', kd, offset)) { throw new ParseException("expected ')'", offset); offset += 1; return offset; 8
9 Nachbesprechung Serie 3 Aufgabe 5 private static int parsesubtree(string kd, int offset) throws ParseException { offset = parsetree(kd, offset); while (checknext(',', kd, offset)) { offset += 1; offset = parsetree(kd, offset); return offset; 9
10 Nachbesprechung Serie 3 Aufgabe 5 private static int parsenode(string kd, int offset) throws ParseException { if (offset >= kd.length()) { throw new ParseException("Expected a node", offset); char c = kd.charat(offset); if (Character.isUpperCase(c)) { return offset + 1; else { throw new ParseException(String.format("'%c' is not a valid node name", c), offset); 10
11 Nachbesprechung Serie 3 Aufgabe 5 public static void parse(string kd) throws ParseException { int offset = parsetree(kd, 0); if (offset!= kd.length()) { throw new ParseException("Garbage at the end of the tree", offset); - 11
12 Serie 4
13 Aufgabe 1 Stack, LIFO (last in first out) Viel benutzte Datenstruktur Pointer zeigt auf das nächste freie Element In Informatik 1 als verkettete Liste implementiert Aufgabe 1: Implementierung als Array 13
14 Aufgabe 1 Stack als Array Push: Neue Daten oben auf den Stapel legen [ ] 2 3 size = 2 Stack mystack = Stack(4); mystack.push(21) [ size = 3 ] 3 14
15 Aufgabe 1 Stack als Array Pop: Daten von zuoberst auf dem Stapel entfernen. [ ] 3 size = 3 Stack mystack = Stack(4); int myint = mystack.pop(); [1 4 ] myint = size =
16 Aufgabe 1 Stack als Array Grow: Falls der Puffer (Array) voll ist, muss mehr Platz gemacht werden. [ ] size = 4 Stack mystack = Stack(4); grow() int myint = mystack.push(9) [ size = ] myint =
17 Aufgabe 1 Stack als Array Programm: Stack mystack = new Stack(2); mystack.push(1); mystack.push(2); Output: System.out.pritnln(myStack.pop()); mystack.push(3); mystack.push(4); System.out.pritnln(myStack.pop()); System.out.pritnln(myStack.pop()) 17
18 Aufgabe 1 Stack als Array ToString() Wie U2A2.2 aber mit StringBuffer push, pop peek wie besprochen empty() Ist Stack leer? size() Anzahl Elemente im Stack capacity() Platz des zugrundeliegenden Arrays 18
19 Aufgabe 2 - Ackermann-Funktion Wikipedia: Die Ackermannfunktion ist eine 1926 von Wilhelm Ackermann gefundene, extrem schnell wachsende mathematische Funktion, mit deren Hilfe in der theoretischen Informatik Grenzen von Computer- und Berechnungsmodellen aufgezeigt werden können. Rekursive Definition: A(0,m) = m + 1 A(n,0) = A(n-1,1) A(n,m) = A(n-1,A(n,m-1)) 19
20 Aufgabe 2 - Ackermann-Funktion Ratespiel: Welche Rückgabewerte haben folgende Funktionen? A(4,0) 13 A(4,1) A(0,m) = m + 1 A(n,0) = A(n-1,1) A(n,m) = A(n-1,A(n,m-1)) A(4,2)
21 Aufgabe 2 - Ackermann-Funktion Beispiel 1: A(1,1) A(1,1) A(1,0) A(0, 1) <- 2 <- 2 A(0, 2) <- 3 <- 3 A(1,1) A(1,1) = A(0,A(1,0)) A(1,0) = A(0,1) A(0,1) = 2 A(1,0) = 2 A(1,1) = A(0,2) A(0,2) = 3 A(1,1) = 3 A(0,m) = m + 1 A(n,0) = A(n-1,1) A(n,m) = A(n-1,A(n,m-1)) A(1,2) = 3 21
22 Aufgabe 3 Ackermann Iterativ mit Stack Ackermann-Formel benötigt immer (genau) zwei Werte Die gerade benötigten Werte sollten also zuoberst auf dem Stack liegen Benutzt While Schleife Abbruch wenn nur noch ein Element im Stack liegt Resultat Stack stack = new Stack(10); stack.push(n); stack.push(m); while(stack.size() > 1) { if(n == 0){ else if(m == 0){ else{ A(0,m) = m + 1 A(n,0) = A(n-1,1) A(n,m) = A(n-1,A(n,m-1)) 22
23 23
24 24
25 25
26 26
27 27
28 28
29 Aufgabe 4 Java Bytecode 29
30 Aufgabe 4 Java Bytecode /J.v._bytencoien_i.strgucto._ list./s 30
31 Aufgabe 4 Java Bytecode Static int f(int a0,int a1,int a2){ return(a0+a1)/a2; static int f(int a0, int a1, int a2); 0 iload_0 1 iload_1 2 iadd 3 iload_2 4 idiv 5 ireturn Methode 1: Konsole (Terminal): javap -c yourfile.java Methode 2: Eclipse Links oben Tab Navigator auswählen Im Ordner bin das.class File der gewünschten Klasse suchen. 31
32 Aufgabe 4 Java Bytecode static int f1(int a0,int a1,int a2){ if(a0>a1) { a2 = a0-2; return a1*a2; static int f2(int a0,int a1,int a2){ while(a0>a1) { a0 = a0-2; return a1*2; static int f3(int a0,int a1,int a2){ if(a0<a1) { a2 = a1+2; return a0*a2; static int b1(int a0, int a1, int a2); goto 6 iinc 0-2 iload_0 iload_1 if_icmpgt 3 iload_1 iconst_2 imul ireturn 32
33 Aufgabe 4 Java Bytecode static int f1(int a0,int a1,int a2){ if(a0>a1) { a2 = a0-2; return a1*a2; static int f2(int a0,int a1,int a2){ while(a0>a1) { a0 = a0-2; return a1*2; static int f3(int a0,int a1,int a2){ if(a0<a1) { a2 = a1+2; return a0*a2; static int b2(int a0, int a1, int a2); iload_0 iload_1 if_icmpge 9 iload_1 iconst_2 iadd istore_2 iload_0 iload_2 imul ireturn 33
34 Aufgabe 4 Java Bytecode static int f1(int a0,int a1,int a2){ if(a0>a1) { a2 = a0-2; return a1*a2; static int f2(int a0,int a1,int a2){ while(a0>a1) { a0 = a0-2; return a1*2; static int f3(int a0,int a1,int a2){ if(a0<a1) { a2 = a1+2; return a0*a2; static int b3(int a0, int a1, int a2); iload_0 iload_1 if_icmple 9 iload_0 iconst_2 isub istore_2 iload_1 iload_2 imul ireturn 34
35 Reversi Turnier Turnier am 30.Mai Infos auf Vorlesungsseite: vs.inf.ethz.ch/edu/i2/reversi Online Plattform auf: reversi.ethz.ch Implementierung eines Spielers ab Serie 7 Wer als erstes mienen Spieler Trash.Can auf der Plattform schlägt bekomt wahlweise Bier oder Schokolade ;) 35
36 Viel Spass! 36
Informatik II - Tutorium 4
Informatik II - Tutorium 4 Vincent Becker vincent.becker@inf.ethz.ch 22.03.2017 Vincent Becker 27.03.2017 1 Übungsblatt 3 Vincent Becker 27.03.2017 2 U3.A1 Programmverifikation static int f(int i, int
MehrInformatik II - Übung 04
Informatik II - Übung 04 Katja Wolff katja.wolff@inf.ethz.ch Besprechung Übungsblatt 3 Informatik II - Übung 04 21.03.2017 2 U3.A1 Programmverifikation static int f(int i, int j) { int u = i; int z = 0;
MehrInformatik II Übung 04
Informatik II Übung 04 Michael Baumann mbauman@student.ethz.ch n.ethz.ch/~mbauman 23.03.2016 Ablauf 1) Nachbesprechung Serie 3 2) Stacks 3) Vorbesprechung Serie 4 4) Bytecode und Assembler 2 Ablauf 1)
MehrInformatik II Übung 4 Gruppe 7
Informatik II Übung 4 Gruppe 7 Leyna Sadamori leyna.sadamori@inf.ethz.ch Informatik II Übung 4 Leyna Sadamori 20. März 2014 1 Administratives Text Encoding: UTF-8 Informatik II Übung 4 Leyna Sadamori 20.
MehrInformatik II - Übung 04. Christian Beckel Besprechung Übungsblatt 3
Informatik II - Übung 04 Christian Beckel beckel@inf.ethz.ch 20.03.2014 Besprechung Übungsblatt 3 Christian Beckel 20/03/14 2 U3.A1! Unterschied zwischen! String! StringBuffer! Aufgabenstellung: "KEIN
MehrInformatik II Übung 5. Pascal Schärli
Informatik II Übung 5 pascscha@student.ethz.ch Warm - Up Warm - Up public static int power(int base, int exp) { int out=1; for(int i = 0; i
MehrInformatik II Übung 5 Gruppe 4
Informatik II Übung 5 Gruppe 4 (Folien teils von Christian B. und Christelle G.) Lukas Burkhalter lubu@inf.ethz.ch Informatik II Übung 5 Lukas Burkhalter 27. März 2018 1 Nachbesprechung Letzte Übung (4)
MehrInformatik II Übung 5 Gruppe 3
Informatik II Übung 5 Gruppe 3 Leyna Sadamori leyna.sadamori@inf.ethz.ch Informatik II Übung 5 Leyna Sadamori 29. März 2017 1 Administrativ Die Übung am 5. April fällt aus! Bitte in die Übung in HG G 3
MehrInformatik II (D-ITET) Übungsstunde 4,
Informatik II (D-ITET) Übungsstunde 4, 23.03.2017 Hossein Shafagh, shafagh@inf.ethz.ch Distributed Systems Group, ETH Zürich Quotes The purpose of software engineering is to control complexity, not to
MehrInformatik II - Tutorium 5
Informatik II - Tutorium 5 Vincent Becker vincent.becker@inf.ethz.ch 28.03.2018 Vincent Becker 28.03.2018 1 Neue Webseite Vincent Becker 28.03.2018 3 Allgemeines Java-Konvention: Alle Variablen- und Methodennamen
MehrInformatik II Übung 3. Pascal Schärli
Informatik II Übung 3 pascscha@student.ethz.ch Warm up Ist das ein Baum? Left child: Right child: Parent: [A B C _ E _ G H I _] 0 2 3 4 5 6 7 8 9 1 2*i + 1 2*i + 2 (i-1)/2 2 Überblick Serie 3 Aufgabe 1
MehrInformatik 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
MehrInformatik II (D-ITET) Übungsstunde 4, 24.03.2016
Informatik II (D-ITET) Übungsstunde 4, 24.03.2016 Hossein Shafagh, shafagh@inf.ethz.ch Distributed Systems Group, ETH Zürich Quotes The purpose of software engineering is to control complexity, not to
MehrInformatik 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
MehrInformatik II Übung 5
Informatik II Übung 5 Gruppe 2 Carina Fuss cfuss@student.ethz.ch 28.3.2018 Carina Fuss 28.3.2018 1 Übung 5 Administratives/Tipps zu Eclipse Nachbesprechung Übung 4 kurze Demo zu Stacks Java Pakete Call
MehrInformatik II Übung 4 Gruppe 7
Informatik II Übung 4 Gruppe 7 Leyna Sadamori leyna.sadamori@inf.ethz.ch Administratives Kontrolliert eure Abgaben! Jede Gruppe ist verantwortlich für ihre Abgaben Alle Teammitglieder tragen gleichermaßen
MehrInformatik 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
MehrInformatik 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
MehrALP II Dynamische Datenmengen Datenabstraktion
ALP II Dynamische Datenmengen Datenabstraktion O1 O2 O3 O4 SS 2012 Prof Dr Margarita Esponda M Esponda-Argüero 1 Dynamische Datenmengen Dynamische Datenmengen können durch verschiedene Datenstrukturen
MehrÜ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
MehrInformatik II - Übung 03
Informatik II - Übung 03 Katja Wolff katja.wolff@inf.ethz.ch 15.03.2014 Besprechung Übungsblatt 2 Informatik II - Übung 03 15.03.2017 2 U2.A1 S Klammerdarstellung und eingerückter Form R P V S(R(H(K)),P(A(N,O),Q,T),V(J,F(G)))
MehrInformatik II Übung 5
Informatik II Übung 5 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 27.03.2013
MehrInformatik II Übung 06. Benjamin Hepp 5 April 2017
Informatik II Übung 06 Benjamin Hepp benjamin.hepp@inf.ethz.ch 5 April 2017 Nachbesprechung U5 5 April 2017 Informatik II - Übung 01 2 Nachbesprechung U5 1. Einfach verkettete Listen Keine Probleme 2.
MehrRekursion. L. Piepmeyer: Funktionale Programmierung - Rekursion
Rekursion 1 Iterative und rekursive Methoden Summe von 1 bis n berechnen: iterativ rekursiv public int sum(int n){ int result = 0; for(int i=1; i
Mehr1 of :17:14
7 public class Main 10 /** 11 * @param args the command line arguments 1 */ 13 public static void main(string[] args) 14 { 15 // Aufgabe 1 16 System.out.println("##### AUFGABE 1 #####"); 17 // Stack initialisieren
MehrSchnittstellen, Stack und Queue
Schnittstellen, Stack und Queue Schnittstelle Stack Realisierungen des Stacks Anwendungen von Stacks Schnittstelle Queue Realisierungen der Queue Anwendungen von Queues Hinweise zum Üben Anmerkung: In
MehrVorkurs Informatik WiSe 17/18
Java Rekursion Dr. Werner Struckmann / Stephan Mielke, Nicole Naczk, 10.10.2017 Technische Universität Braunschweig, IPS Überblick Einleitung Türme von Hanoi Rekursion Beispiele 10.10.2017 Dr. Werner Struckmann
MehrInformatik II Übung 3
Informatik II Übung 3 Gruppe 2 Carina Fuss cfuss@student.ethz.ch 14.3.2018 Carina Fuss 14.3.2018 1 Übung 2 Nachbesprechung Übung 2 Vorbesprechung Übung 3 String vs. StringBuffer Syntaxdiagramme und Syntaxchecker
MehrInformatik 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
Mehr16. Dynamische Datenstrukturen
Datenstrukturen 6. Dynamische Datenstrukturen Eine Datenstruktur organisiert Daten so in einem Computer, dass man sie effizient nutzen kann. Verkettete Listen, Abstrakte Datentypen Stapel, Warteschlange
Mehr1. Die rekursive Datenstruktur Liste
1. Die rekursive Datenstruktur Liste 1.6 Die Datenstruktur Stapel Ein Stack, auch Stapel oder Keller genannt, ist eine Datenstruktur, bei der die Elemente nur an einem Ende der Folge eingefügt bzw. gelöscht
MehrAlgorithmen und Programmierung III
Musterlösung zum 4. Aufgabenblatt zur Vorlesung WS 2006 Algorithmen und Programmierung III von Christian Grümme Aufgabe 1 Amortisierte Analyse 10 Punkte Zu erst betrachte ich wie oft die letzte Ziffer
MehrInformatik II - Tutorium 2
Informatik II - Tutorium 2 Vincent Becker vincent.becker@inf.ethz.ch 07.03.2018 Vincent Becker 08.03.2018 1 Übungsblatt 1 Vincent Becker 08.03.2018 2 U1.A1 f(a, b) = a x b = a) Induktionsbeweis über a
MehrInformatik II Übung, Woche 14
Giuseppe Accaputo 7. April, 2016 Plan für heute 1. Java Klassen Beispiel: Implementation eines Vorlesungsverzeichnis (VVZ) 2. Informatik II (D-BAUG) Giuseppe Accaputo 2 Java Klassen Beispiel: Implementation
MehrÜbungsblatt 13. Abgabe / Besprechung in Absprache mit dem Tutor
Albert-Ludwigs-Universität Freiburg Institut für Informatik Einführung in die Informatik Sommersemester 2018 Prof. Dr. Wolfram Burgard Andreas Kuhner Daniel Büscher Übungsblatt 13 Abgabe / Besprechung
MehrStacks, Queues & Bags. Datenstrukturen. Pushdown/Popup Stack. Ferd van Odenhoven. 19. September 2012
, Queues & Ferd van Odenhoven Fontys Hogeschool voor Techniek en Logistiek Venlo Software Engineering 19. September 2012 ODE/FHTBM, Queues & 19. September 2012 1/42 Datenstrukturen Elementare Datenstrukturen
Mehr5.3 Doppelt verkettete Listen
5.3 Doppelt verkettete Listen Einfach verkettete Listen unterstützen das Einfügen und Löschen am Anfang in konstanter Zeit; für das Einfügen und Löschen am Ende benötigen sie jedoch lineare Laufzeit Doppelt
MehrInformatik 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Übungsblatt 13. Abgabe / Besprechung in Absprache mit dem Tutor
Albert-Ludwigs-Universität Freiburg Institut für Informatik Einführung in die Informatik Sommersemester 2013 PD Dr. Cyrill Stachniss Dr. Rainer Kümmerle Übungsblatt 13 Abgabe / Besprechung in Absprache
MehrInformatik II Übung 05. Benjamin Hepp 3 April 2017
Informatik II Übung 05 Benjamin Hepp benjamin.hepp@inf.ethz.ch 3 April 2017 Java package Hierarchie import.. nur noetig um Klassen aus anderen Packeten zu importieren Es kann auch immer der vollstaendige
MehrSoftware Entwicklung 1
Software Entwicklung 1 Annette Bieniusa / Arnd Poetzsch-Heffter AG Softech FB Informatik TU Kaiserslautern Überblick Weitere Sortierverfahren Merge Sort Heap Sort Praktische Auswirkungen der Laufzeitabschätzungen
MehrInfo2 Übungsstunde 5. Agenda. Lösungen U4. Java... more insights. Tipps zur Übung 5
Ifo2 Übugsstude 5 Ageda Lösuge U4 Java... more isights Tipps zur Übug 5 1 L4.A1 Stack Neeswertes Zwei Members: buffer ud size capacity := buffer.legth empty := size == 0 elemet idex := size void push(it
MehrJava Bytecode Eike Robert Freie Universität Berlin. Softwareprojekt Übersetzerbau, 2013
Java Bytecode Eike Robert Freie Universität Berlin Softwareprojekt Übersetzerbau, 2013 Inhalt Bytecode Allgemein Architektur Aufbau Instruktionsgruppen Beispiel FU Berlin, Bytecode, Übersetzerbau 2013
MehrInformatik II Übung 02. Benjamin Hepp 8 March 2017
Informatik II Übung 02 Benjamin Hepp benjamin.hepp@inf.ethz.ch 8 March 2017 Nachbesprechung U1 08.03.2017 Informatik II - Übung 01 2 Nachbesprechung U1.1 f(a,b) = a x b = a) Induktionsbeweis ueber a nicht
MehrEinführung in die Objektorientierte Programmierung Vorlesung 18: Lineare Datenstrukturen. Sebastian Küpper
Einführung in die Objektorientierte Programmierung Vorlesung 18: Lineare Datenstrukturen Sebastian Küpper Unzulänglichkeit von Feldern Wenn ein Unternehmen alle Rechnungen eines Jahres verwalten möchte,
Mehr7. Verkettete Strukturen: Listen
7. Verkettete Strukturen: Listen Java-Beispiele: IntList.java List.java Stack1.java Version: 4. Jan. 2016 Vergleich: Schwerpunkte Arrays verkettete Listen Listenarten Implementation: - Pascal (C, C++):
MehrSchwerpunkte. Verkettete Listen. Verkettete Listen: 7. Verkettete Strukturen: Listen. Überblick und Grundprinzip. Vergleich: Arrays verkettete Listen
Schwerpunkte 7. Verkettete Strukturen: Listen Java-Beispiele: IntList.java List.java Stack1.java Vergleich: Arrays verkettete Listen Listenarten Implementation: - Pascal (C, C++): über Datenstrukturen
Mehr13. Dynamische Datenstrukturen
Motivation: Stapel. Dynamische Datenstrukturen Verkettete Listen, Abstrakte Datentypen Stapel, Warteschlange, Sortierte Liste 40 40 Motivation: Stapel ( push, pop, top, empty ) Wir brauchen einen neuen
MehrALP II Dynamische Datenmengen Datenabstraktion (Teil 2)
ALP II Dynamische Datenmengen Datenabstraktion (Teil 2) O1 O2 O3 O4 SS 2012 Prof. Dr. Margarita Esponda 49 Einfach verkettete Listen O1 O2 O3 50 Einführung Einfach verkettete Listen sind die einfachsten
MehrOrdnung im Materiallager: Datenstrukturen II. Suchen und Sortieren im Array Verkettete Listen Rekursion
Ordnung im Materiallager: Datenstrukturen II Suchen und Sortieren im Array Verkettete Listen Rekursion Indizierter Datenbehälter Modell: Parkhaus, nummerierte Plätze interface FuhrparkIndex { // indiziert
Mehr3. Übungsbesprechung Programmkonstruktion
3. Übungsbesprechung Programmkonstruktion Karl Gmeiner karl@complang.tuwien.ac.at December 12, 2011 K Gmeiner (karl@complang.tuwien.ac.at) 3. Übungsbesprechung PK December 12, 2011 1 / 13 Rückblick und
Mehr1. Typen und Literale (6 Punkte) 2. Zuweisungen (6 = Punkte)
Praktische Informatik (Software) Vorlesung Softwareentwicklung 1 Prof. Dr. A. Ferscha Hauptklausur am 01. 02. 2001 Zuname Vorname Matr. Nr. Stud. Kennz. Sitzplatz HS / / / Punkte Note korr. Fügen Sie fehlende
MehrFallstudie: Online-Statistik
Fallstudie: Online-Statistik Ziel: Klasse / Objekt, welches Daten konsumiert und zu jeder Zeit Statistiken, z.b. Mittelwert, Varianz, Median (etc.) ausgeben kann Statistics s = new Statistics(maxSize);...
MehrTECHNISCHE 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 WS 2006/2007 Praktikum Grundlagen der Programmierung Lösungsvorschläge zu Blatt 3 F. Forster, M.
MehrInformatik II - Tutorium 6
Informatik II - Tutorium 6 Vincent Becker vincent.becker@inf.ethz.ch 11.04.2018 Vincent Becker 11.04.2018 1 Teilnehmer für Projekte gesucht Falls jemand gerne an Experimenten teilnimmt, ein Email an mich
MehrVorkurs Informatik WiSe 16/17
Java Rekursion Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe, 11.10.2016 Technische Universität Braunschweig, IPS Überblick Einleitung Beispiele 11.10.2016 Dr. Werner Struckmann / Stephan Mielke,
MehrInformatik 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.
Mehr4.2 Daten und Datenstrukturen
4.2 Daten und Datenstrukturen Daten Fundamentale Objekte, die in der Rechenanlage erfasst gespeichert ausgegeben (angezeigt, gedruckt) bearbeitet gelöscht werden können. Beispiele: Zahlen, Zeichenfolgen
MehrHTTP://WWW.WIKIPAINTINGS.ORG/EN/FRIEDENSREICH-HUNDERTWASSER/YOU-ARE-A-GUEST-OF-NATURE-BEHAVE Abstrakte Datentypen.
HTTP://WWW.WIKIPAINTINGS.ORG/EN/FRIEDENSREICH-HUNDERTWASSER/YOU-ARE-A-GUEST-OF-NATURE-BEHAVE Abstrakte Datentypen OOPM, Ralf Lämmel (C) Ralf Lämmel, OOPM, Universität Koblenz-Landau 562 Motivation abstrakter
MehrAufgabenblatt 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
MehrInformatik 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
MehrProgrammieren 2 15 Abstrakte Datentypen
Programmieren 2 15 Abstrakte Datentypen Bachelor Medieninformatik Sommersemester 2015 Dipl.-Inform. Ilse Schmiedecke schmiedecke@beuth-hochschule.de 1 Verallgemeinerte Datenbehälter Typ, der eine variable
MehrPraktikum Compilerbau Sitzung 9 Java Bytecode
Praktikum Compilerbau Sitzung 9 Java Bytecode Prof. Dr.-Ing. Gregor Snelting Matthias Braun und Sebastian Buchwald IPD Snelting, Lehrstuhl für Programmierparadigmen KIT Universität des Landes Baden-Württemberg
MehrCounting - Sort [ [ ] [ [ ] 1. SS 2008 Datenstrukturen und Algorithmen Sortieren in linearer Zeit
Counting-Sort Counting - Sort ( A,B,k ). for i to k. do C[ i]. for j to length[ A]. do C[ A[ j ] C[ A[ j ] +. > C[ i] enthält Anzahl der Elemente in 6. for i to k. do C[ i] C[ i] + C[ i ]. > C[ i] enthält
MehrInformatik II Übung 6. Pascal Schärli
Informatik II Übung 6 pascscha@student.ethz.ch Was gibts heute? Warm-Up Nachbesprechung Serie 5 Best-Of Vorlesung: Klassenhierarichie Abstrakte Klassen Factories Vorbesprechung Serie 6 2 Warm - Up Warm
MehrStapel (Stack, Keller)
Stapel (Stack, Keller) Eine wichtige Datenstruktur ist der Stapel. Das Prinzip, dass das zuletzt eingefügte Element als erstes wieder entfernt werden muss, bezeichnet man als LIFO-Prinzip (last-in, first-out).
MehrSoftware Entwicklung 1. Fallstudie: Arithmetische Ausdrücke. Rekursive Klassen. Überblick. Annette Bieniusa / Arnd Poetzsch-Heffter
Software Entwicklung 1 Annette Bieniusa / Arnd Poetzsch-Heffter Fallstudie: Arithmetische Ausdrücke AG Softech FB Informatik TU Kaiserslautern Bieniusa/Poetzsch-Heffter Software Entwicklung 1 2/ 33 Überblick
MehrStack und Queue. Thomas Schwotzer
Stack und Queue Thomas Schwotzer 1 Einführung Wir kennen eine Reihe von Java-Strukturen zur Verwaltung von Daten. Wir wollen aus Gründen der Übung zwei Datenstrukturen implementieren, die sicherlich bereits
MehrZwischencode-Erzeugung. 2. Juni 2009
Zwischencode-Erzeugung im Rahmen des Seminars "Übersetzung von künstlichen Sprachen" Sebastian Hanneken 2. Juni 2009 1 / 32 1 Einleitung Einordnung Funktion von Zwischencode 3-Adresscode (3AC) 2 Erzeugung
MehrErste Java-Programme (Scopes und Rekursion)
Lehrstuhl Bioinformatik Konstantin Pelz Erste Java-Programme (Scopes und Rekursion) Tutorium Bioinformatik (WS 18/19) Konstantin: Konstantin.pelz@campus.lmu.de Homepage: https://bioinformatik-muenchen.com/studium/propaedeutikumprogrammierung-in-der-bioinformatik/
MehrListen. M. Jakob. Gymnasium Pegnitz. 20. September Hinführung: Wartenschlangen. Grundprinzip von Listen Rekursion
M. Jakob Gymnasium Pegnitz 20. September 2015 Inhaltsverzeichnis Grundprinzip von Rekursion (10 Std.) Die einfach verkettete Liste als Kompositum (10 Std.) Klasse LISTENELEMENT? Entwurfsmuster Kompositum
MehrAlgorithmen und Datenstrukturen SS Übungsblatt 1: Grundlagen
Ludwig-Maximilians-Universität München München, 16.04.2018 Institut für Informatik Prof. Dr. Thomas Seidl Anna Beer, Florian Richter Algorithmen und Datenstrukturen SS 2018 Übungsblatt 1: Grundlagen Tutorien:
MehrInformatik 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:
MehrProgrammieren in C. Rekursive Strukturen. Prof. Dr. Nikolaus Wulff
Programmieren in C Rekursive Strukturen Prof. Dr. Nikolaus Wulff Rekursive Strukturen Häufig müssen effizient Mengen von Daten oder Objekten im Speicher verwaltet werden. Meist werden für diese Mengen
MehrKapitel 12: Induktive
Kapitel 12: Induktive Datenstrukturen Felix Freiling Lehrstuhl für Praktische Informatik 1 Universität Mannheim Vorlesung Praktische Informatik I im Herbstsemester 2009 Folien nach einer Vorlage von H.-Peter
MehrKonkatenation zweier Listen mit concat
Ein Datenmodell für Listen Konkatenation zweier Listen mit concat Was ist an der Konkatenation etwas unschön? Man muss die vordere Liste einmal durchgehen, um den letzten Nachfolger (urspr. null zu erhalten,
MehrSoftware Entwicklung 1
Software Entwicklung 1 Annette Bieniusa / Arnd Poetzsch-Heffter AG Softech FB Informatik TU Kaiserslautern Fallstudie: Arithmetische Ausdrücke Bieniusa/Poetzsch-Heffter Software Entwicklung 1 2/ 33 Überblick
MehrProgrammieren in Java
Programmieren in Java Vorlesung 03: Schleifen Prof. Dr. Peter Thiemann Albert-Ludwigs-Universität Freiburg, Germany SS 2017 Peter Thiemann (Univ. Freiburg) Programmieren in Java JAVA 1 / 12 Inhalt Codequalität
MehrWiederholungsblatt Einführung in die Programmierung Lösungen
Ludwig-Maximilians-Universität München Institut für Informatik Prof. Dr. Peer Kröger Michael Fromm, Florian Richter WiSe 2018/2019 09.02.2019 Wiederholungsblatt Einführung in die Programmierung Lösungen
MehrStack. Queue. pop() liefert zuletzt auf den Stack gelegtes Element und löscht es push( X ) legt ein Element X auf den Stack
Stack und Queue Grundlegender Datentyp Menge von Operationen (add, remove, test if empty) auf generischen Daten Ähnlich wie Listen, aber mit zusätzlichen Einschränkungen / Vereinfachungen: Einfügen immer
MehrEinführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12 1. Kapitel 11. Listen. Listen
Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12 1 Kapitel 11 Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12 2 Ziele Implementierungen für
MehrAlgorithmen und Programmierung III
Musterlösung zum 5. Aufgabenblatt zur Vorlesung WS 2006 Algorithmen und Programmierung III von Christian Grümme Aufgabe 1 Implementieren von ADTs Testlauf der Klasse TestDeque in der z05a1.jar: 10 Punkte
MehrInformatik 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
MehrEinfügen immer nur am Kopf der Liste Löschen auch nur an einem Ende (2 Möglichkeiten!)
Stack und Queue Grundlegender Datentyp Menge von Operationen (add, remove, test if empty) auf generischen Daten Ähnlich wie Listen, aber mit zusätzlichen Einschränkungen / Vereinfachungen: Einfügen immer
MehrDatenkapselung: public / private
627 18. Klassen Klassen, Memberfunktionen, Konstruktoren, Stapel, verkettete Liste, dynamischer Speicher, Copy-Konstruktor, Zuweisungsoperator, Destruktor, Konzept Dynamischer Datentyp Datenkapselung:
MehrEinführung in die Programmierung WS 2009/10. Übungsblatt 7: Imperative Programmierung, Parameterübergabe
Ludwig-Maximilians-Universität München München, 04.12.2009 Institut für Informatik Prof. Dr. Christian Böhm Annahita Oswald, Bianca Wackersreuther Einführung in die Programmierung WS 2009/10 Übungsblatt
MehrSoftware Entwicklung 1
Software Entwicklung 1 Annette Bieniusa AG Softech FB Informatik TU Kaiserslautern Lernziele Abstrakte Datentypen Stack und Queue zu implementieren und anzuwenden Vorteile von parametrischer Polymorphie
MehrInformatik II Übung 10. Benjamin Hepp 10 May 2017
Informatik II Übung 10 Benjamin Hepp benjamin.hepp@inf.ethz.ch 10 May 2017 Nachbesprechung U9 10 May 2017 Informatik II - Übung 01 2 Nachbesprechung U9 1. Spieltheorie 2. Reversi Teil 3 (Vorbesprechung
MehrDatenstrukturen (66) Programmieren 2 - H.Neuendorf
Datenstrukturen Schwerpunkte Bedeutung von Datenstrukturen Dynamische Datenstrukturen mit Java Umgang mit Objektreferenzen als "Pointer" Vorbereitung zum Collection Framework (66) Datenstrukturen Zusammenfassung
MehrListen. M. Jakob. 20. September Gymnasium Pegnitz
Listen M. Jakob Gymnasium Pegnitz 20. September 2015 Inhaltsverzeichnis 1 Hinführung: Wartenschlangen (6 Std.) 2 Grundprinzip von Listen Rekursion (10 Std.) 3 Die einfach verkettete Liste als Kompositum
MehrKlausur zur Vorlesung Einführung in die Programmierung
Ludwig-Maximilians-Universität München Institut für Informatik Dr. Peer Kröger, Dr. Andreas Züfle Daniel Kaltenthaler, Klaus Schmid Klausur zur Vorlesung Einführung in die Programmierung Lösungen Vorname:
MehrÜbung Algorithmen und Datenstrukturen
Übung Algorithmen und Datenstrukturen Sommersemester 2017 Patrick Schäfer, Humboldt-Universität zu Berlin Agenda 1. Sortierte Listen 2. Stacks & Queues 3. Teile und Herrsche Nächste Woche: Vorrechnen (first-come-first-served)
MehrÜbungen zu Kapitel 18
1 Übungen zu Kapitel 18 18.1 Stackimplementierung mittels Array "semidynamischer" Stack: Das folgende Coding realisiert einen Stack auf Grundlage eines Arrays. Da Arrays statische Datenstrukturen sind
MehrProgrammieren in Java
Datenstrukturen 2 Gruppierung von Daten Datentypen, die eine Menge an Daten gruppieren und auf dieser Gruppierung eine gewisse Logik bereitstellen werden Datenstrukturen genannt Bisher wurde zur Gruppierung
MehrInformatik II Übung 6 Gruppe 4
Informatik II Übung 6 Gruppe 4 (Folien teils von Christian B. und Christelle G.) Lukas Burkhalter lubu@inf.ethz.ch Informatik II Übung 6 Lukas Burkhalter 11.04.2018 1 Programm Heute Code Style Rückblick
MehrGliederung. 5. Compiler. 6. Sortieren und Suchen. 7. Graphen
Gliederung 5. Compiler 1. Struktur eines Compilers 2. Syntaxanalyse durch rekursiven Abstieg 3. Ausnahmebehandlung 4. Arrays und Strings 6. Sortieren und Suchen 1. Grundlegende Datenstrukturen 2. Bäume
Mehr! 1. Rekursive Algorithmen.! 2. Rekursive (dynamische) Datenstrukturen. II.3.2 Rekursive Datenstrukturen - 1 -
! 1. Rekursive Algorithmen! 2. Rekursive (dynamische) Datenstrukturen II.3.2 Rekursive Datenstrukturen - 1 - Ausdruck Ausdruck Grundwert ( Typ ) Präfix-Operator Name Methodenaufruf [ Ausdruck ] ( Ausdruck
MehrVorlesung Informatik 2 Algorithmen und Datenstrukturen
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (05 Elementare Datenstrukturen) Prof. Dr. Susanne Albers Lineare Listen (1) Lineare Anordnung von Elementen eines Grundtyps (elementarer Datentyp
Mehr11. Elementare Datenstrukturen
11. Elementare Datenstrukturen Definition 11.1: Eine dynamische Menge ist gegeben durch eine oder mehrer Mengen von Objekten sowie Operationen auf diesen Mengen und den Objekten der Mengen. Dynamische
Mehr