Einführung in die Programmierung. Bertrand Meyer. Vorlesung 23: Ein Beispiel: Undo-Redo. Das Problem
|
|
- Ruth Engel
- vor 7 Jahren
- Abrufe
Transkript
1 1 Einführung in die Programmierung Bertrand Meyer Letzte Bearbeitung 20. Januar Vorlesung 23: Ein Beispiel: Un-Re Das Problem 3 Den Benutzern eines interaktiven Systems ermöglichen, den Effekt des letzten Befehls aufzuheben. Häufig als Control-Z implementiert Sollte mehrstufiges Un-Re ohne Limitierung ausser einem vom Benutzer gesetzten Maximum unterstützen 1
2 Ein Texteditor 4 Begriff der aktuellen Zeile. Mögliche Befehle wie: Zeile unter aktueller Position einfügen Zeile über aktueller Position einfügen Aktuelle Zeile löschen Aktuelle Zeile ersetzen Aktuelle Zeile mit nächster vertauschen, falls diese existiert Diese Sicht ist zur Vereinfachung zeilenorientiert, aber die Diskussion gilt auch für komplexere Sichten. Zugrunde liege Klasse (aus business model ) 5 class EDIT_CONTROLLER feature text: LINKED_LIST [STRING] remove is -- Remove line at current position. not off text.remove put_right (line: STRING) is -- Insert line after current position. not after text.put_right (line) Hauptschritt beim Finden einer Software- Architektur 6 Die richtigen Abstraktionen finden (Die involvierten Typen von Objekten.) Hier: Die Idee des command 2
3 History der Session behalten 7 Die History-Liste: Ältestes Neustes history: LINKED_LIST [COMMAND] Was ist ein command -Objekt? 8 Ein Command-Objekt (Instanz der Klasse COMMAND) enthält genüg Informationen über eine einzelne Ausführung eines Befehls durch den Benutzer, um: den Befehl auszuführen den Befehl aufzuheben, falls später verlangt In einem Delete-Befehl, zum Beispiel (wie von remove implementiert), brauchen wir: Die Position der zu löschen Zeile Den Inhalt dieser Zeile! Eine allgemeine Idee des Command 9 deferred class COMMAND feature execute is -- Carry out one execution of this command. deferred ensure ne: ne un is -- Cancel an earlier execution of this command. already: ne deferred 3
4 Eine allgemeine Idee des Command 10 deferred class COMMAND feature ne: BOOLEAN is -- Has this command been executed? execute is -- Carry out one execution of this command. un is -- Cancel an earlier execution of this command. deferred ensure ne: ne already: ne deferred Command Klassenhierarchie 11 execute un* COMMAND deferred + effective + DELETION execute + un + line index + INSERTION execute + un + index Eine Command-Klasse (Sketch, keine Contracts) class DELETION inherit COMMAND feature controller: EDIT_CONTROLLER -- Access to business model line: STRING -- The line being deleted index: INTEGER -- Position of line being deleted execute is -- Remove current line and remember it. line := controller.item ; index := controller.index controller.remove ; ne := True un is -- Re-insert previously removed line. controller.go_ith (index) controller.put_left (line) 12 4
5 Zugrunde liege Klasse (vom business model ) class EDIT_CONTROLLER feature text: LINKED_LIST [STRING] remove is -- Remove line at current position. not off text.remove put_right (line: STRING) is -- Insert line after current position. not after text.put_right (line) Also item, index, go_ith, put_left 13 Einen Befehl ausführen 14 Die History-Liste: Ältestes Neustes history: LINKED_LIST [COMMAND] Einen Befehl ausführen 15 decode_user_request if Request is normal command then -- Create command object c corresponding to user request history.ext (c) c.execute elseif Request is UNDO then if not history.before then history.item.un history.back -- We ignore excessive requests elseif Request is REDO then if not history.is_last then history.forth history. item.un -- We ignore excessive requests 5
6 Bedingte Kreation (1) 16 B A C a1: A if condition_1 then -- Create a1 as an instance of B elseif condition_2 then -- Create a1 as an instance of C etc D a1: A; b1: B; c1: C; d1: D; if condition_1 then create b1.make () a1 := b1 elseif condition_2 then create c1.make () a1 := c1 etc Bedingte Kreation (2) 17 B A C a1: A if condition_1 then -- Create a1 as an instance of B elseif condition_2 then -- Create a1 as an instance of C etc D a1: A if condition_1 then create {B} a1.make () elseif condition_2 then create {C} a1.make () etc Einen Befehl ausführen 18 decode_user_request if Request is normal command then -- Create command object c corresponding to user request history.ext (c) c.execute elseif Request is UNDO then if not history.before then history.item.un history.back -- Ignore excessive requests elseif Request is REDO then if not history.is_last then history.forth history. item.un -- Ignore excessive requests 6
7 Command-Objekte kreieren (1) 19 c: COMMAND decode_user_request if Request is delete then create {DELETION} c elseif Request is insert then create {INSERTION} c etc Command-Klassenhierarchie 20 execute un* COMMAND deferred + effective + DELETION execute + un + line index + INSERTION execute + un + index Command-Objekte kreieren (2) 21 Jedem Command-Typ eine Nummer (oder sonstigen Schlüssel) geben Eine Tabelle (z.b. ein Array) anfangs mit einer Instanz jeden Command-Typs füllen. Für ein neues Command-Object: Insertion Deletion command_type bestimmen c := clone (COMMAND_TABLE.item (command_type)) 7
8 Das Un-Re-Pattern 22 Wird häufig benutzt (z.b. in Eiffel-Tools) Ziemlich einfach zu implementieren Elegante Verwung von O-O-Techniken Nachteil: Explosion von kleinen Klassen In Java kann man innere Klassen benutzen. Benutzung von agents 23 Zwei Routinen für jede Befehl: Die Routine um ihn auszuführen Die Routine um ihn aufzuheben! Die History-Liste im Un-Re-Pattern 24 history: LINKED_LIST [COMMAND] Ältestes Neustes 8
9 Die History-Liste mit agents Die History-Liste wird einfach eine Liste von agent-paaren: history: LINKED_LIST [TUPLE [PROCEDURE [ANY, TUPLE], PROCEDURE [ANY, TUPLE]] 25 De-Insert De-Insert Re-insert De-Insert Prinzip bleibt das gleiche, aber keine Command-Objekte mehr nötig; wir speichern einfach agents. Diese Technik wird in allen aktuellen Eiffel-Tools verwet. Einen Befehl ausführen (vorher) 26 decode_user_request if Request is normal command then -- Create command object c corresponding to user request history.ext (c) c.execute elseif Request is UNDO then if not history.before then history.item.un history.back -- Ignore excessive requests elseif Request is REDO then if not history.is_last then history.forth history. item.un -- Ignore excessive requests Einen Befehl ausführen (jetzt) 27 Decode user_request giving two agents _it and un_it if Request is normal command then history.ext ([_it, un_it]) _it.call ([]) elseif Request is UNDO then if not history.before then history.item.item (2).call ([]) history.back De- De- Reinsert Insert Insert elseif Request is REDO then if not history.is_last then history.forth history.item.item (1).call ([]) Insert Insert Remove 9
10 28 Ende Vorlesung 23 10
Einführung in die Programmierung
Chair of Software Engineering Einführung in die Programmierung Prof. Dr. Bertrand Meyer Lecture 18: Undo/Redo Weiterführe Referenzen Kapitel 21 von Object-Oriented Software Construction, Prentice Hall,
MehrEinführung in die Programmierung
Chair of Software Engineering Einführung in die Programmierung Prof. Dr. Bertrand Meyer Lecture 18: Undo/Redo Chair of Software Engineering Weiterführe Referenzen Kapitel 21 von Object-Oriented Software
MehrEin O-O Design Beispiel. Ein Reservierungs-Panel. Das Übergangs-Diagramm. Programmierung im Grossen Bertrand Meyer Vorlesung 19
Programmierung im Grossen Bertrand Meyer Vorlesung 9 Ein O-O Design Beispiel Letzte Aktualisierung: 8. Juni 004 Ein Reservierungs-Panel -- Enquiry on Flights -- Flight sought from: Santa Barbara Departure
MehrProgrammierung im Grossen
1 Letzte Aktualisierung: 16. April 2004 Programmierung im Grossen Bertrand Meyer 2 Vorlesung 4: Abstrakte Daten-Typen Übungen 3 Passe die vorhergehende Spezifikation von Stacks (LIFO, Last-In First-Out
MehrEinführung in die Programmierung
Chair of Software Engineering Einführung in die Programmierung Prof. Dr. Bertrand Meyer Lektion 11: Einführung in die Konzepte der Vererbung und Generizität Programm für heute (und nächstes Mal) Zwei fundamentale
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
MehrSoftwaretechnik WS 16/17. Übungsblatt 01
Softwaretechnik WS 16/17 Übungsblatt 01 Was ist eine Klasse? Definition der Object Management Group: A class describes a set of objects that share the same specifications of features, constraints, and
MehrAutotest. Automatische Testgenerierung mit Design by Contract. von Simon Greiner am 12. Juli 2007
Autotest Automatische Testgenerierung mit Design by Contract von Simon Greiner am 12. Juli 2007 Autotest 1. Testen 2. Design by Contract 3. Strategien zur Testerstellung 1. Zufallsstrategie 2. Planungsstrategie
MehrEiffel: Beispiel 1a. FOOP Teil 5 1
Eiffel: Beispiel 1a class TIME_OF_DAY -- Absolute time within a day feature hour: INTEGER is -- Hour of day, 00 to 23 do Result := minutes // 60 end -- hour minute: INTEGER is -- Minute in hour, 00 to
MehrProgrammierung im Grossen. Vorlesung 15: Konkurrente Objekt- Orientierte Programmierung. Volkan Arslan. Überblick. Bertrand Meyer.
1 Programmierung im Grossen Bertrand Meyer 2 Vorlesung 15: Konkurrente Objekt- Orientierte Programmierung Volkan Arslan Überblick 3 Ziel / Motivation Grundlagen des SCOOP Modells Beispiele Zusammenfassung
Mehr4. Algorithmen und Datenstrukturen I Grundlagen der Programmierung 1 (Java)
4. Algorithmen und Datenstrukturen I Grundlagen der Programmierung 1 (Java) Fachhochschule Darmstadt Haardtring 100 D-64295 Darmstadt Prof. Dr. Bernhard Humm FH Darmstadt, 8./15. November 2005 Einordnung
MehrEinführung in die Programmierung
Chair of Software Engineering Einführung in die Programmierung Prof. Dr. Bertrand Meyer Lektion 9: Abstraktion Heutige Themen Abstraktion, vor allem funktionale Abstraktion Der Begriff der Routine Das
MehrInstitut für Programmierung und Reaktive Systeme 24. April Programmieren II. 10. Übungsblatt
Technische Universität Braunschweig Dr. Werner Struckmann Institut für Programmierung und Reaktive Systeme 24. April 2018 Programmieren II 10. Übungsblatt Hinweis: Auf diesem und den folgenden Übungsblättern
MehrEinführung in die Programmierung
Chair of Software Engineering Einführung in die Programmierung Prof. Dr. Bertrand Meyer Lecture 10: Das dynamische Modell und mehr zu Referenzen Ziel dieser Vorlesung Ein paar neue Konzepte und insbesondere
MehrDatenstrukturen. Ziele
Datenstrukturen Ziele Nutzen von Datenstrukturen Funktionsweise verstehen Eigenen Datenstrukturen bauen Vordefinierte Datenstrukturen kennen Hiflsmethoden komplexer Datenstrukten kennen Datenstrukturen
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
MehrArrays. Arrays werden verwendet, wenn viele Variablen benötigt werden. Der Vorteil in Arrays liegt darin, dass man nur eine Variable deklarieren muss
Arrays FTI 41 2005-09-09 Arrays werden verwendet, wenn viele Variablen benötigt werden. Der Vorteil in Arrays liegt darin, dass man nur eine Variable deklarieren muss z.b. Dim Werte(x) As Single. Wobei
MehrWarum Programme Verträge schließen sollten
1 Warum Programme Verträge schließen sollten RALF HINZE Institut für Informatik, Lehrstuhl Softwaretechnik, Universität Freiburg Georges-Köhler-Allee, Gebäude 079, 79110 Freiburg i. Br. Email: ralf@informatik.uni-bonn.de
MehrProgrammierung im Grossen
1 Letzte Aktualisierung: 16. April 2004 Programmierung im Grossen Bertrand Meyer 2 Vorlesung 2: Modularität, Wiederverwendbarkeit Programm für heute 3 Software Qualität Modularität Wiederverwendbarkeit
Mehrp^db=`oj===pìééçêíáåñçêã~íáçå=
p^db=`oj===pìééçêíáåñçêã~íáçå= Error: "Could not connect to the SQL Server Instance" or "Failed to open a connection to the database." When you attempt to launch ACT! by Sage or ACT by Sage Premium for
MehrNachtrag: Vergleich der Implementierungen von Stack
Nachtrag: Vergleich der Implementierungen von Stack In der letzten Vorlesung hatten wir zwei Implementierung der Klasse Stack: eine Implementierung als Liste (Array): liststack eine Implementierung als
MehrDatenstrukturen & Algorithmen Lösungen zu Blatt 8 FS 16
Eidgenössische Technische Hochschule Zürich Ecole polytechnique fédérale de Zurich Politecnico federale di Zurigo Federal Institute of Technology at Zurich Institut für Theoretische Informatik. April 0
MehrEinführung in die Programmierung
Chair of Software Engineering Einführung in die Programmierung Prof. Dr. Bertrand Meyer Lecture 10: Das dynamische Modell und mehr zu Referenzen Ziel dieser Vorlesung Ein paar neue Konzepte und insbesondere
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Tafelübung 03 Vererbung, Polymorphie, Sichtbarkeit, Interfaces Clemens Lang T2 11. Mai 2010 14:00 16:00, 00.152 Tafelübung zu AuD 1/26 Klassen und Objekte Klassen und Objekte
MehrIT 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
MehrEinführung in die Programmierung
Chair of Software Engineering Einführung in die Programmierung Prof. Dr. Bertrand Meyer Lektion 9: Abstraktion Heutige Themen Abstraktion, vor allem funktionale Abstraktion Der Begriff der Routine Das
MehrEinführung in die Programmierung
Chair of Software Engineering Einführung in die Programmierung Prof. Dr. Bertrand Meyer Lecture 13: (Container-)Datenstrukturen Themen dieser Lektion Container und Generizität Container-Operationen Die
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
MehrProgrammierstil. Objektsammlungen. Konzepte. Zwischenspiel: Einige beliebte Fehler... Variablennamen Kommentare Layout Einrückung
Programmierstil Objektsammlungen Einführung in Sammlungen Variablennamen Kommentare Layout Einrückung (siehe: Stilrichtlinien im Buchanhang) 4.0 Konzepte Sammlungen (besonders: ArrayList) Schleifen: die
MehrUnified-E Standard WebHttp Adapter
Unified-E Standard WebHttp Adapter Version: 1.5.0.2 und höher Juli 2017 Inhalt 1 Allgemeines... 2 2 Adapter-Parameter in Unified-E... 2 3 Symbolische Adressierung... 3 3.1 ReadValues-Methode... 4 3.2 WriteValues
Mehrs(x, i) = i h 2 (x), i N 0
TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK Lehrstuhl für Sprachen und Beschreibungsstrukturen SS 2009 Grundlagen: Algorithmen und Datenstrukturen Übungsblatt 5 Prof. Dr. Helmut Seidl, S. Pott,
MehrEinführung in die Programmierung
Chair of Software Engineering Einführung in die Programmierung Prof. Dr. Bertrand Meyer Lektion 4: Die Schnittstelle einer Klasse (und eine erste Einführung in den Begriff von Vertrag) Kunde, Versorger
MehrAufgabe11. 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
MehrEinführung in die Programmierung
Chair of Software Engineering Einführung in die Programmierung Prof. Dr. Bertrand Meyer Lektion 11: Einführung in die Konzepte der Vererbung und Generizität Programm für heute (und nächstes Mal) Zwei fundamentale
MehrProgrammentwicklung ohne BlueJ
Objektorientierte Programmierung in - Eine praxisnahe Einführung mit Bluej Programmentwicklung BlueJ 1.0 Ein BlueJ-Projekt Ein BlueJ-Projekt ist der Inhalt eines Verzeichnisses. das Projektname heißt wie
MehrProgrammieren 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
Mehr3. Übungsblatt zu Algorithmen I im SoSe 2017
Karlsruher Institut für Technologie Prof. Dr. Jörn Müller-Quade Institut für Theoretische Informatik Björn Kaidel, Sebastian Schlag, Sascha Witt 3. Übungsblatt zu Algorithmen I im SoSe 2017 http://crypto.iti.kit.edu/index.php?id=799
MehrEinführung in die Programmierung
Chair of Software Engineering Einführung in die Programmierung Prof. Dr. Bertrand Meyer Lektion 11: Einführung in die Konzepte der Vererbung und Generizität 2 Programm für heute (und nächstes Mal) Zwei
MehrObjektorientierung III
Lehrstuhl für Bioinformatik Einführung in die Programmierung für Bioinformatiker Prof. B. Rost, Dr. L. Richter Blatt 10 9.1.2017 Objektorientierung III Aufgabe 10.1. Wir sind doch alle gleich In der Vorlesung
MehrProgramming 101. Carl Herrmann IPMB & DKFZ
Programming 101 Carl Herrmann IPMB & DKFZ Programmieren Kommandozeile Einfache Befehle Shell Skript aneinanderketten von Befehlen Schleifen Programmiersprache Komplexere Aufgaben Gemeinsamkeiten Alle Programmiersprachen
MehrTransaktionen in Praxis. Dr. Karsten Tolle Vorl
Transaktionen in Praxis Dr. Karsten Tolle Vorl. 13.06.2017 Probleme bei Transaktionen Lost Update und Inconsistent Retrieval Sichtweise vom Benutzer Auszug aus SQL 92 1) P1 ("Dirty read"): SQL-transaction
MehrGrundlagen der Programmierung in C Klassen
Grundlagen der Programmierung in C Klassen Wintersemester 2005/2006 G. Zachmann Clausthal University, Germany zach@in.tu-clausthal.de Das C++ Typsystem simple address pointer reference structured integral
MehrUniversität Karlsruhe (TH)
Universität Karlsruhe (TH) Lehrstuhl für Programmierparadigmen Fortgeschr. Objektorientierung SS 2009 http://pp.info.uni-karlsruhe.de/ Dozent: Prof. Dr.-Ing. G. Snelting snelting@ipd.info.uni-karlsruhe.de
MehrEinführung in die Programmierung. Lektion 14: Mehrfachvererbung
Chair of Software Engineering Einführung in die Programmierung Prof. Dr. Bertrand Meyer Lektion 14: Mehrfachvererbung Abstraktionen kombinieren Gegeben sind die Klassen EISENBAHNWAGEN, RESTAURANT Wie würden
MehrEinführung in die Programmierung
Chair of Software Engineering Einführung in die Programmierung Prof. Dr. Bertrand Meyer Lecture 13: (Container-)Datenstrukturen Themen dieser Lektion Container und Generik Container-Operationen Listen
MehrProgrammierung WS12/13 Lösung - Präsenzübung M. Brockschmidt, F. Emmes, C. Otto, T. Ströder
Prof. aa Dr. J. Giesl M. Brockschmidt, F. Emmes, C. Otto, T. Ströder Aufgabe 1 (Programmanalyse): (9 + 1 = 10 Punkte) a) Geben Sie die Ausgabe des Programms für den Aufruf java M an. Tragen Sie hierzu
MehrFEINDLICHE VERWENDUNG
1 2 Letzte Aktualisierung: 16. April 2004 Programmierung im Grossen Bertrand Meyer Vorlesung 2: Modularität, Wiederverwbarkeit Programm für heute 3 Software Qualität 4 Software Qualität Modularität Wiederverwbarkeit
MehrZusicherungen A01 OOP. Zusicherungen
2013-10-23 Zusicherungen 1 185.A01 OOP Zusicherungen 2013-10-23 Zusicherungen 2 OOP Ersetzbarkeit und Verhalten U ist Untertyp von T wenn eine Instanz von U überall verwendbar ist wo eine Instanz von T
MehrChair of Software Engineering. Bezieher SUBSCRIBERS Ereignis Erzeuger (zb GUI) Chair of Software Engineering. Save_file ROUTINE
1 2 Letzte Aktualisierung: 27. Mai 2004 Programmierung im Grossen Vorlesung 13: Ereignis-Gesteuertes Design Bertrand Meyer Ereignis-gesteuerte Programmierung 3 Vermeiden von glue code 4 Verbreiter PUBLISHERS
MehrErsetzbarkeit und Verhalten
Ersetzbarkeit und Verhalten U ist Untertyp von T, wenn eine Instanz von U überall verwendbar ist, wo eine Instanz von T erwartet wird Struktur der Typen für Ersetzbarkeit nicht ausreichend Beispiel: void
MehrEinführung in die Programmierung
Chair of Software Engineering Einführung in die Programmierung Prof. Dr. Bertrand Meyer Lecture 10: Das dynamische Modell und mehr zu Referenzen Ziel dieser Vorlesung Ein paar neue Konzepte und insbesondere
MehrAlgorithmen und Programmierung III
Musterlösung zum 3. Aufgabenblatt zur Vorlesung WS 2006 Algorithmen und Programmierung III von Christian Grümme Aufgabe 1 Potenzieren von Matrizen Testlauf der Klasse Matrix.java: 10 Punkte Erzeuge Matrix
MehrJAVA KURS COLLECTION
JAVA KURS COLLECTION COLLECTIONS Christa Schneider 2 COLLECTION Enthält als Basis-Interface grundlegende Methoden zur Arbeit mit Collections Methode int size() boolean isempty() boolean contains (Object)
MehrDatenstrukturen und Algorithmen. Vorlesung 10
Datenstrukturen und Algorithmen Vorlesung 10 Hashtabelle als Erinnerung Hashtabellen sind Tabellen (Arrays), wo aber die Elemente nicht von links nach rechts eingefügt werden, wie bei typischen Arrays
MehrTutoraufgabe 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
MehrOOP. Tagesprogramm. Zusicherungen Zusicherungen und Ersetzbarkeit
1 2016-11-09 Tagesprogramm Zusicherungen Zusicherungen und Ersetzbarkeit 2 Ersetzbarkeit und Verhalten U ist Untertyp von T wenn Instanz von U überall verwendbar wo Instanz von T erwartet Struktur der
MehrVerschlüsseln eines Bildes. Visuelle Kryptographie. Verschlüsseln eines Bildes. Verschlüsseln eines Bildes
Verschlüsseln eines Bildes Visuelle Kryptographie Anwendung von Zufallszahlen Wir wollen ein Bild an Alice und Bob schicken, so dass Alice allein keine Information über das Bild bekommt Bob allein keine
MehrChair of Software Engineering
1 2 Enführung n de Programmerung Bertrand Meyer Vorlesung 13: Contaner-Datenstrukturen Letzte Bearbetung 1. Dezember 2003 Themen für dese Vorlesung 3 Contaner-Datenstrukturen 4 Contaner und Genercty Enthalten
MehrInformatik II, SS 2014
Informatik II SS 2014 (Algorithmen & Datenstrukturen) Vorlesung 10 (3.6.2014) Binäre Suchbäume I Algorithmen und Komplexität Zusätzliche Dictionary Operationen Dictionary: Zusätzliche mögliche Operationen:
MehrALP II Dynamische Datenmengen
ALP II Dynamische Datenmengen Teil III Iteratoren Iterator-Objekt O1 O2 O3 O4 SS 2012 Prof. Dr. Margarita Esponda 22. ALP2-Vorlesung, M. Esponda 2 Motivation: Iteratoren Wir haben für die Implementierung
MehrProgrammieren lernen mit Visual Basic
Programmieren lernen mit Visual Basic Teil 5: Fallunterscheidungen (Teil 1) Ein paar Operatoren fehlen noch. Zum einen logische Operatoren, die mit Wahrheitswerden arbeiten. Die folgenden drei verwenden
MehrProgrammieren in Java
Programmieren in Java Vorlesung 11: Generic Methods Prof. Dr. Peter Thiemann Albert-Ludwigs-Universität Freiburg, Germany SS 2017 Peter Thiemann (Univ. Freiburg) Programmieren in Java JAVA 1 / 15 Inhalt
MehrInterface. So werden Interfaces gemacht
Design Ein Interface (=Schnittstelle / Definition) beschreibt, welche Funktionalität eine Implementation nach Aussen anzubieten hat. Die dahinter liegende Algorithmik wird aber der Implementation überlassen.
MehrIsolationsstufen für Transaktionen. Dr. Karsten Tolle
Isolationsstufen für Transaktionen Dr. Karsten Tolle Probleme bei Transaktionen Gewährleistung der Isolation Sperren kein Lost Update Read 1 (Accounts[13]) Read 2 (Accounts[13]) Write 2 (Accounts[13],101.000)
MehrGrundlagen der Informatik
Grundlagen der Informatik Vorlesungsprüfung vom 13.06.2008 Gruppe B Lösung Name: Matrikelnummer: Zuerst bitte Name und Matrikelnummer auf das Titelblatt schreiben. Es sind keine Unterlagen und keine Teamarbeit
MehrEinführung in die Programmierung
Chair of Software Engineering Einführung in die Programmierung Prof. Dr. Bertrand Meyer Lektion 7: Referenzen und Zuweisungen Chair of Software Engineering Einführung in die Programmierung Prof. Dr. Bertrand
MehrDynamische Datentypen. Destruktor, Copy-Konstruktor, Zuweisungsoperator, Dynamischer Datentyp, Vektoren
Dynamische Datentypen Destruktor, Copy-Konstruktor, Zuweisungsoperator, Dynamischer Datentyp, Vektoren Probleme mit Feldern (variabler Länge) man kann sie nicht direkt kopieren und zuweisen Probleme mit
MehrBeispielprü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
MehrInformatik I (D-MAVT)
Informatik I (D-MAVT) Übungsstunde 9 simon.mayer@inf.ethz.ch Distributed Systems Group, ETH Zürich Ablauf Nachbesprechung Übung 7 Besprechung/Vertiefung der Vorlesung Vorbesprechung Übung 9 Aufgabe 1:
MehrEinführung in die Informatik
Einführung in die Informatik Jochen Hoenicke Software Engineering Albert-Ludwigs-University Freiburg Sommersemester 2014 Jochen Hoenicke (Software Engineering) Einführung in die Informatik Sommersemester
MehrProgrammier-Befehle - Woche 08
Datentypen Vektoren (mehrdim.) eines bestimmten Typs Erfordert: #include Wichtige Befehle: Definition: std::vector my vec (n rows, std::vector(n cols, init value)) Zugriff:
Mehr2.2 Spezifikation abstrakter Datentypen. 2.3 Implementierung und Anwendung von ADT. 2.4 Datenabstraktion und Objektorientierung
Inhaltsverzeichnis (update) 2 Datenabstraktion 2.1 Begriffe 2.2 Spezifikation abstrakter Datentypen 2.2.1 Algebraische Spezifikation 2.2.2 Modellierende Spezifikation 2.3 Implementierung und Anwendung
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.
MehrKonfiguration von eduroam. Configuring eduroam
eduroam Windows 8.1 / 10 Konfiguration von eduroam Configuring eduroam 08.10.2018 kim.uni-hohenheim.de kim@uni-hohenheim.de Wissenschaftliche Einrichtungen und Universitäten bieten einen weltweiten Internetzugang
MehrIT I: Heute. Klasse Object. equals, hashcode, tostring. HashSet IT I - VO 6 1
IT I: Heute Klasse Object equals, hashcode, tostring HashSet 13.11.2018 IT I - VO 6 1 Organisatorisches Wissensüberprüfung gleich im Anschluss an die VO UE heute schon früher (ab 11:45) heute beide UE-Gruppen
MehrFunktionen. Überblick über Stored Functions. Syntax zum Schreiben einer Funktion. Schreiben einer Funktion
Überblick über Stored Functions Funktionen Eine Funktion ist ein benannter PL/SQL- Block, der einen Wert zurückgibt. Eine Funktion kann in der Datenbank als Objekt zur wiederholbaren Ausführung gespeichert
MehrIT I: Heute. Klasse Object. equals, hashcode, tostring. HashSet IT I - VO 6 1
IT I: Heute Klasse Object equals, hashcode, tostring HashSet 14.11.2017 IT I - VO 6 1 Wissensüberprüfung Wie ruft man statische Methode auf? Gegeben Klasse Fix mit statischer Methode static boolean foxi(string
MehrÜbung PL/SQL Trigger Lösungen
Übung PL/SQL Trigger Lösungen 1) Gebe das aktuelle Datum aus. Wofür steht dual? Ändere das Datum für Deine aktuelle Session auf das Format Jahr (4 Stellen) Monat (2 Stellen) Tag (2 Stellen)[Leerzeichen]Stunde
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
Mehr1. Download der benötigten Software Version 2. Speichern Sie das easytouch Update auf einem leeren USB-Sick (FAT) (max 2 GB) P3 / Mini.
easytouch 1.3.0.20 (2.3.0.20): (german) (for English see below please) Für die easytouch Geräteserie ist eine neue Softwareversion 1.3.0.20 & 2.3.0.20 erhältlich und zum Download auf unserer deutschen
MehrObjektorientierte Programmierung OO mit Ada 2005
Objektorientierte Programmierung mit Ada 2005 Markus Knauß 8. Januar 2010 1/33 Motivation Erstellen Sie ein Programm, mit dem Sie Literaturverweise verwalten können. Die Literaturverweise sollen in einer
MehrEinführung in die Programmierung
Einführung in die Programmierung ETH Zürich Datum: 6.2.2017 Nachname, Vorname:... Leginummer:... Ich bestätige mit meiner Unterschrift, dass ich die Prüfung unter regulären Bedingungen schreiben konnte
MehrVisuelle Kryptographie. Anwendung von Zufallszahlen
Visuelle Kryptographie Anwendung von Zufallszahlen Verschlüsseln eines Bildes Wir wollen ein Bild an Alice und Bob schicken, so dass Verschlüsseln eines Bildes Wir wollen ein Bild an Alice und Bob schicken,
MehrAlgorithmen und Datenstrukturen Musterlösung 5
Algorithmen und Datenstrukturen Musterlösung 5 Martin Avanzini Thomas Bauereiß Herbert Jordan René Thiemann
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
MehrJavakurs für Anfänger
Javakurs für Anfänger Einheit 11: Vererbung Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda 1. Teil Einführung in die Vererbung Motivation Das Schlüsselwort extends Einführendes
MehrProgrammier-Befehle - Woche 10
Funktionen Rekursion Selbstaufruf einer Funktion Jeder rekursive Funktionsaufruf hat seine eigenen, unabhängigen Variablen und Argumente. Dies kann man sich sehr gut anhand des in der Vorlesung gezeigten
MehrEXCEL VBA Cheat Sheet
Variable Declaration Dim As Array Declaration (Unidimensional) Dim () As Dim ( To ) As
MehrInformatik II. Giuseppe Accaputo, Felix Friedrich, Patrick Gruntz, Tobias Klenze, Max Rossmannek, David Sidler, Thilo Weghorn FS 2017
1 Informatik II Übung 6 Giuseppe Accaputo, Felix Friedrich, Patrick Gruntz, Tobias Klenze, Max Rossmannek, David Sidler, Thilo Weghorn FS 2017 Heutiges Programm 2 1 Klassen - Technisch 2 Prediscussion
MehrVerkettete Datenstrukturen: Listen
Verkettete Datenstrukturen: Listen 2 Listen Formal: Liste = endliche Folge von Elementen [a 1, a 2,..., a n ]. Spezialfall: leere Liste [ ]. Länge einer Liste = Anzahl der Elemente (bei leerer Liste: 0).
MehrListElement (E i n f o, ListElement<E> prev, ListElement<E> next ) {
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 11 Prof. Dr. Helmut Seidl, A. Lehmann, A. Herz,
Mehr