Informatik II Übung 3. Pascal Schärli
|
|
|
- Frida Flater
- vor 7 Jahren
- Abrufe
Transkript
1 Informatik II Übung 3 [email protected]
2 Warm up Ist das ein Baum? Left child: Right child: Parent: [A B C _ E _ G H I _] *i + 1 2*i + 2 (i-1)/2 2
3 Überblick Serie 3 Aufgabe 1 Caesar Verschlüsselung String vs StringBuffer Garbage Collector Aufgabe 2&3 Syntaxdiagramme und Syntaxparser Aufgabe 4 Schleifeninvarianten 3
4 Aufgabe 1 Caesar-Verschlüsselung Buchstaben werden um 3 weiterversetzt. Geheimniss --> Jhkhlpqlvv Chars können durch Integeroperationen nach ASCII modifiziert werden. ( A - 1) ( A + $ ) = e 4
5 Aufgabe 1 String vs StringBuffer Klasse String Unveränderlich (immutable) final Operationen können gut optimiert werden. (Zb. multithreading) Klasse StringBuffer Ohne Kopie veränderbar (mutable) Mehr Platz Gewisse Operationen sind teurer. 5
6 Aufgabe 1 String vs StringBuffer Objekte im Speicher: String mystring = "hello"; mystring = mystring + " world"; hello world hello world StringBuffer mystringbuffer = "hello"; mystringbuffer.append(" world"); hello hello world world 6
7 Aufgabe 1 String vs StringBuffer Speicher "hello" Garbage Collector " world" "hello world" " how" "hello world how" " are" String mystring = "hello"; mystring = mystring+" world"; "hello world how are" " you" mystring = mystring+" how"; Garbage Collector mystring = mystring+" are"; "hello world how are you" " today" mystring = mystring+" you"; mystring = mystring+" today"; "hello world how are you today" Animation von Beat Saurenmann 7
8 Aufgabe 1 String vs StringBuffer Garbage Collector: C++ MyObject obj1 = new MyObject(1); delete obj1; obj1 = new MyObject(2) Java: MyObject obj1 = new MyObject(1); obj1 = new MyObject(2) 8
9 Aufgabe 2 Syntaxdiagramm (Beliebt an Prüfungen!) Welche der folgenden Ausdrücke können nach dem Diagramm Expr (Ausdruck) korrekt erzeugt werden? Von hand durchgehen und schauen ob es gültig ist. 9
10 Aufgabe 3 Syntaxdiagramm (Beliebt an Prüfungen!) Ergänzen Sie das Syntaxdiagramm auf Folie 455 im Skript, sodass leere Bäume und leere Teilbäume generiert werden können. Leerer Baum = - 10
11 Aufgabe 3 Syntaxparser (Beliebt an Prüfungen!) Funktion, welche einen Baum in Klammerdarstellung auf Korrektheit überprüft. Eigene Funktion für Baum, Nachfolger und Knoten Folie 434 im Skript als Inspiration 11
12 Aufgabe 3 Syntaxparser (Beliebt an Prüfungen!) Benötigte Funktionen: //checks if the char at position offset in the String kd is equal to c Boolean checknext(char c, String kd, int offset){ int parsetree(string kd, int offset){ int parsesubtree(string kd, int offset) { int parsenode(string kd, int offset){ Der return-wert der parse-funktionen ist die Anzahl Zeichen, des Strings kd, welche schon auf die Korrekte Syntax überprüft wurden. Prüft regelmässig, ob euer Index noch innerhalb des Strings ist. 12
13 Aufgabe 4 Schleifeninvarianten (Beliebt an Prüfungen!) Schleifeninvarianten gilten zum Beginn und Ende jeder Schleifenausführung Nach dem Ende der Schleife ist die Schleifenbedingung (hier: u > 0) nicht mehr erfüllt. Das Resultat ist die Invariante, wenn man die nicht erfüllte Schleifenbedingung (hier: u = 0) einsetz. static int f(int int u = i; int z = 0; while (u > z = z + u = u return z; i, int j) { 0){ j; 1; 13
14 Nachbesprechung Serie 2 Aufgabe 1 c) S Gegeben sei die folgene Klammerdarstellung S(R(H(K)),P(A(N,O),Q,T),V(J,F(G))) Ist der Baum eindeutig rekonstruierbar? Ja, falls die Reihenfolge der Kinder keine Rolle spielt Sonst nein (zb. Binärbaum) P R H K V A Q T N J F O G Falls man zwischen linken und rechten Nachfolgern differenzieren will (im Falle eines Binärbaums), könnte man leere Blätter zb mit kodieren: S(R(H(K,-)),P(A(N,O),Q,T),V(J,F(-,G))) 14
15 Nachbesprechung Serie 2 Aufgabe 1 d) 0 1 Baum aus Teilaufgabe a): Höhe: 4 Längste Pfade: Blätter: 41,7,13,54,17,1,5,3,65 15
16 Nachbesprechung Serie 2 Aufgabe 2 a) Konstruktor für RandomArray: public RandomArray(int length){ Random r = new Random(); //create new random number generator numbers = new int[length]; //create array with desired length for (int i=0; i<length; i++) { //fill array with random integers from 0 to 999 numbers[i] = r.nextint(1000); 16
17 Nachbesprechung Serie 2 Aufgabe 2 b) Stringrepräsentation des Arrays public String tostring(){ String s="["; //create String for (int i=0; i<numbers.length; i++) { if (i!=0) { s = s + ", "; //add comma unless its the first time s = s + numbers[i]; //add number to string s = s + "]" //close bracket return s; 17
18 Nachbesprechung Serie 2 Aufgabe 2 c) Recursive sort private void recursivesort(int until){ if (until == 0) { //An empty array is already sorted return; else { recursivesort(until 1); //Sort first n-1 elements if (until == numbers.length) return; //Return if we reached the end int index_max = until-1; for (int i=until; i<numbers.length; i++) { //Find biggest element in rest of array if (numbers[i] > numbers[index_max]) { index_max = i; swap(until - 1, index_max); //Swap biggest element with first unsorted element 18
19 Nachbesprechung Serie 2 Aufgabe 3 a) int leftchild(int node ){ return 2 * node + 1; int rightchild(int node ){ return 2 * node + 2; int father(int node ){ return (node 1) / 2; 19
20 Nachbesprechung Serie 2 Aufgabe 3 b) tostring() - Rekursive Lösung: Gebe aktuellen Knoten aus (unter Berücksichtigung der Ebene) Gebe linken Unterbaum aus Gebe rechten Unterbaum aus 20
21 Nachbesprechung Serie 2 Aufgabe 3 b) private String tostring(int node, String indentation){ assert (tree[node]!= ); //Error if tree is empty String s = indentation + tree[node] + \n ; int c1 = leftchild(node); if (isnode(c1)) { //Add left Child if it exists s = s + tostring(c1, indentation + " "); int c2 = rightchild(node); if (isnode(c2)) { //Add right Child if it exists s = s + tostring(c2, indentation + " "); return s; 21
22 Nachbesprechung Serie 2 Aufgabe 3 c) private static void checktree(char[] array) throws IllegalArgumentException { if (array.length == 0) throw new IllegalArgumentException( "At least one, node is required."); for (int i=0; i<array.length; i++) { if (array[i]!= ' ') { int f = father(i); if (array[f] == ' ') { throw new IllegalArgumentException("node number " + i + " has no father"); 22
23 Viel Spass! 23
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 [email protected] Informatik II Übung 2 Lukas Burkhalter 14. März 2018 1 Ablauf der Übung Nachbesprechung der
Informatik II Übung 3
Informatik II Übung 3 Gruppe 2 Carina Fuss [email protected] 14.3.2018 Carina Fuss 14.3.2018 1 Übung 2 Nachbesprechung Übung 2 Vorbesprechung Übung 3 String vs. StringBuffer Syntaxdiagramme und Syntaxchecker
Informatik II Übung 2. Pascal Schärli
Informatik II Übung 2 Pascal Schärli [email protected] 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
Informatik II Übung 2
Informatik II Übung 2 Florian Scheidegger [email protected] Folien mit freundlicher Genehmigung adaptiert von Gábor Sörös und Simon Mayer [email protected], [email protected] 7.3.2013
Informatik II Übung 4. Pascal Schärli
Informatik II Übung 4 [email protected] 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
Informatik II Übung 2
Informatik II Übung 2 Gruppe 2 Carina Fuss [email protected] 7.3.2018 Carina Fuss 7.3.2018 1 Übersicht Tipps zu Eclipse Nachbesprechung Übung 1 Vorbesprechung Übung 2 Wurzelbäume Sortieralgorithmus
Informatik II Übung 04
Informatik II Übung 04 Michael Baumann [email protected] 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)
Kapitel 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
JAVA BASICS. 2. Primitive Datentypen. 1. Warum Java? a) Boolean (logische Werte wahr & falsch)
JAVA BASICS 2. Primitive Datentypen 1. Warum Java? weit verbreitet einfach und (relativ) sicher keine Pointer (?) keine gotos kein Präprozessor keine globalen Variablen garbage collection objekt-orientiert
Informatik II - Übung 07
Informatik II - Übung 07 Katja Wolff [email protected] Besprechung Übungsblatt 6 Informatik II Übung 07 12.04.2017 2 Übungsblatt 6 1.) Klassen, Schnittstellen, Typumwandlung 2.) Schnittstellen und
Übungen zum Bioinformatik-Tutorium. Blatt 6
Institut für Informatik Wintersemester 2018/19 Praktische Informatik und Bioinformatik Prof. Dr. Ralf Zimmer Übungen zum Bioinformatik-Tutorium Blatt 6 Termin: Dienstag, 27.11.2018, 11 Uhr 1. Klassen und
Informatik II Übung 5. Pascal Schärli
Informatik II Übung 5 [email protected] Warm - Up Warm - Up public static int power(int base, int exp) { int out=1; for(int i = 0; i
Software Entwicklung 1
Software Entwicklung 1 Annette Bieniusa / Arnd Poetzsch-Heffter AG Softech FB Informatik TU Kaiserslautern Datenstruktur Liste Bieniusa/Poetzsch-Heffter Software Entwicklung 1 2/ 42 Formale Definition
Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 17/18. Kapitel 14. Bäume. Bäume 1
Kapitel 14 Bäume Bäume 1 Ziele Den Begriff des Baums in der Informatik kennenlernen Bäume als verkettete Datenstruktur repräsentieren können Rekursive Funktionen auf Bäumen verstehen und schreiben können
Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 16/17. Kapitel 14. Bäume. Bäume 1
Kapitel 14 Bäume Bäume 1 Ziele Den Begriff des Baums in der Informatik kennenlernen Bäume als verkettete Datenstruktur repräsentieren können Rekursive Funktionen auf Bäumen verstehen und schreiben können
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 WS 2006/2007 Praktikum Grundlagen der Programmierung Lösungsvorschläge zu Blatt 3 F. Forster, M.
Algorithmen und Datenstrukturen Musterlösung 5
Algorithmen und Datenstrukturen Musterlösung 5 Martin Avanzini Thomas Bauereiß Herbert Jordan René Thiemann
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
Informatik II. Woche 10, Giuseppe Accaputo
Informatik II Woche 10, 09.03.2017 Giuseppe Accaputo [email protected] 1 Nachbesprechung: Übung 2 2 Übung 2: Abgaben Habe von allen Abgaben erhalten! Kompliment an euch alle! 3 Tests laufen lassen vor Submit
Software Entwicklung 1
Software Entwicklung 1 Annette Bieniusa AG Softech FB Informatik TU Kaiserslautern Lernziele Die Definition wichtiger Begriffe im Zusammenhand mit Bäumen zu kennen. Markierte Bäumen, insbesondere Suchbäume,
Übung 4: Die generische Klasse AvlBaum in Java 1
Übung 4: Die generische Klasse AvlBaum in Java 1 Ein binärer Suchbaum hat die AVL -Eigenschaft, wenn sich in jedem Knoten sich die Höhen der beiden Teilbäume höchstens um 1 unterscheiden. Diese Last (
Bäume. Text. Prof. Dr. Margarita Esponda SS 2012 O4 O5 O6 O ALP2-Vorlesung, M. Esponda
Bäume O1 O2 Text O3 O4 O5 O6 O7 Prof. Dr. Margarita Esponda SS 2012 22. ALP2-Vorlesung, M. Esponda Inhalt 1. Einführung 2. Warum Bäume? 3. Listen und Arrays vs. Bäume 4. Einfach verkettete binäre Suchbäume
Objektorientierte Programmierung
Universität der Bundeswehr Fakultät für Informatik Institut 2 Priv.-Doz. Dr. Lothar Schmitz FT 2006 Übungsblatt 5 Lösungsvorschlag Objektorientierte Programmierung 22. 05. 2006 Lösung 9 (SMS-Eingabe am
Abschnitt 11: Beispiel: Die Klasse String (Teil 1)
Abschnitt 11: Beispiel: Die Klasse String (Teil 1) 11. Beispiel: Die Klasse String (Teil 1) 11.1 Einführung 11.2 Die Klasse String und ihre Methoden 11.3 Effizientes dynamisches Arbeiten mit Zeichenketten
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/
Martin Unold INFORMATIK. Geoinformatik und Vermessung
Wiederholung So sieht ein leeres Java-Programm aus public class Programmname { public static void main (String[] args) { // Hier stehen die Anweisungen Welche Arten von Anweisungen gibt es? Anweisungen
13. Bäume: effektives Suchen und Sortieren
13. Bäume: effektives Suchen und Sortieren Java-Beispiele: Baum.java Traverse.java TraverseTest.java Version: 25. Jan. 2016 Schwerpunkte Aufgabe und Vorteile von Bäumen Sortieren mit Bäumen Ausgabealgorithmen:
JAVA BASICS. 2. Primitive Datentypen. 1. Warum Java? a) Boolean (logische Werte wahr & falsch)
JAVA BASICS 2. Primitive Datentypen 1. Warum Java? zunehmend weit verbreitet einfach und (relativ) sicher keine Adressrechnung, aber Pointer keine gotos kein Präprozessor keine globalen Variablen garbage
Wie kann man es verhindern das Rad immer wieder erneut erfinden zu müssen?
Generic Programming without Generics from JAVA5 Motivation Wie kann man es verhindern das Rad immer wieder erneut erfinden zu müssen? Ein Bespiel: sie haben bereits eine Klasse zur Multiplikation von Matrizen
13. Bäume: effektives Suchen und Sortieren
Schwerpunkte Aufgabe und Vorteile von Bäumen 13. Bäume: effektives Suchen und Sortieren Java-Beispiele: Baum.java Traverse.java TraverseTest.java Sortieren mit Bäumen Ausgabealgorithmen: - Preorder - Postorder
Informatik II Übung 06. Benjamin Hepp 5 April 2017
Informatik II Übung 06 Benjamin Hepp [email protected] 5 April 2017 Nachbesprechung U5 5 April 2017 Informatik II - Übung 01 2 Nachbesprechung U5 1. Einfach verkettete Listen Keine Probleme 2.
Stacks, 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
Abschnitt 7: Beispiel: Die Klasse String (Teil 1)
Abschnitt 7: Beispiel: Die Klasse String (Teil 1) 7. Beispiel: Die Klasse String (Teil 1) 7.1 Einführung 7.2 Die Klasse String und ihre Methoden 7.3 Effizientes dynamisches Arbeiten mit Zeichenketten 7.4
Pascal Schärli
Informatik I - Übung 8 Pascal Schärli [email protected] 12.04.2019 1 Was gibts heute? Best-Of Vorlesung: Prefix / Infix EBNF Vorbesprechung Problem of the Week 2 Vorlesung 3. 1 Prefix Notation Infix
Abgabe: (vor 12 Uhr)
TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK Lehrstuhl für Sprachen und Beschreibungsstrukturen SS 2011 Einführung in die Informatik I Übungsblatt 7 Prof. Dr. Helmut Seidl, A. Lehmann, A. Herz,
Objektorientierte Programmierung
Universität der Bundeswehr Fakultät für Informatik Institut 2 Priv.-Doz. Dr. Lothar Schmitz FT 2006 Übungsblatt 5 Objektorientierte Programmierung 22. 05. 2006 Aufgabe 9 (SMS-Eingabe am Handy mit Tries)
EINFÜHRUNG IN DIE PROGRAMMIERUNG
EINFÜHRUNG IN DIE PROGRAMMIERUNG GRUNDLAGEN Tobias Witt 24.03.2014 ORGANISATORISCHES [email protected] 10:30-12:00 Täglich Übungen zur Vertiefung Laptop hier nicht erforderlich Aber später in den Übungen!
Beispielprüfung CuP WS 2015/2016
Beispielprüfung CuP WS 2015/2016 Univ.-Prof. Dr. Peter Auer 23. Dezember 2015 Informationen zur Prüfung Die Prüfung wird als Multiple-Choice-Test mit 10 Fragen am Computer abgehalten. (Bei manchen Fragen
Informatik II Musterlösung
Ludwig-Maximilians-Universität München SS 2006 Institut für Informatik Übungsblatt 4 Prof. Dr. M. Wirsing, M. Hammer, A. Rauschmayer Informatik II Musterlösung Zu jeder Aufgabe ist eine Datei abzugeben,
Nachtragstest in Programmkonstruktion 1. Phase. 1. Multiple-Choice-Aufgaben
Nachtragstest in Programmkonstruktion 1. Phase 29.5 / 60 Punkte 1. Multiple-Choice-Aufgaben 14.5 / 24 Punkte Bitte wählen Sie alle zutreffenden Antwortmöglichkeiten aus. Es können beliebig viele Antwortmöglichkeiten
Informatik II Übung 5
Informatik II Übung 5 Gruppe 2 Carina Fuss [email protected] 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
Übung Algorithmen und Datenstrukturen
Übung Algorithmen und Datenstrukturen Sommersemester 2017 Patrick Schäfer, Humboldt-Universität zu Berlin Agenda: Kürzeste Wege, Heaps, Hashing Heute: Kürzeste Wege: Dijkstra Heaps: Binäre Min-Heaps Hashing:
5.4 Arrays. Oft müssen viele Werte gleichen Typs gespeichert werden. Idee: Lege sie konsekutiv ab! Greife auf einzelne Werte über ihren Index zu!
5.4 Arrays Oft müssen viele Werte gleichen Typs gespeichert werden. Idee: Lege sie konsekutiv ab! Greife auf einzelne Werte über ihren Index zu! Feld: Index: 17 3-2 9 0 1 0 1 2 3 4 5 Harald Räcke 114/656
Tutorium 2. Strings. Skript zur Vorlesung Einführung in die Programmierung
LUDWIG- MAXIMILIANS- UNIVERSITY MUNICH DEPARTMENT INSTITUTE FOR INFORMATICS DATABASE Tutorium 2 Strings Skript zur Vorlesung Einführung in die Programmierung im Wintersemester 2012/13 Ludwig-Maximilians-Universität
Software 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
7. Dynamische Datenstrukturen Bäume. Informatik II für Verkehrsingenieure
7. Dynamische Datenstrukturen Bäume Informatik II für Verkehrsingenieure Übersicht dynamische Datenstrukturen Wozu? Oft weiß man nicht von Beginn an, wieviele Elemente in einer Datenstruktur untergebracht
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.
4.4 Implementierung von Bäumen 4.4.1 Implementierung vollständiger Bäume mit Feldern 1 3 2 7 9 3 4 8 5 17 12 10 6 7 8 13 11 18 9 10 Reguläre Struktur: Nachfolger des Knoten i sind die Knoten 2*i und 2*i+1.
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
18. Vererbung und Polymorphie
590 18. Vererbung und Polymorphie Ausdrucksbäume, Vererbung, Code-Wiederverwendung, virtuelle Funktionen, Polymorphie, Konzepte des objektorientierten Programmierens (Ausdrucks-)Bäume 591 -(3-(4-5))*(3+4*5)/6
Klausur. Informatik 1 Wintersemester 2005/2006 Prof. Dr. Wolfgang May 4. April 2006, Uhr Bearbeitungszeit: 90 Minuten
Klausur Informatik 1 Wintersemester 2005/2006 Prof. Dr. Wolfgang May 4. April 2006, 11-13 Uhr Bearbeitungszeit: 90 Minuten Aufgabe erreichbare erreichte Punkte Punkte 1 10 / 10 2 14 / 14 3 16 / 16 4 26(+8)*
Einführung in die Informatik 2
Einführung in die Informatik 2 Bäume & Graphen Sven Kosub AG Algorithmik/Theorie komplexer Systeme Universität Konstanz http://www.inf.uni-konstanz.de/algo/lehre/ss08/info2 Sommersemester 2008 Sven Kosub
