Einführung in die Programmierung
|
|
- Lioba Fuchs
- vor 6 Jahren
- Abrufe
Transkript
1 Chair of Software Engineering Einführung in die Programmierung Prof. Dr. Bertrand Meyer Lecture 10: Das dynamische Modell und mehr zu Referenzen
2 Ziel dieser Vorlesung Ein paar neue Konzepte und insbesondere ein besseres Verständnis des recht schwierigen Themas der Referenzen Anmerkungen zu Speicherbereinigung und zugehörigen Konzepten 2
3 Zuweisung Ersetzt einen Wert durch einen anderen p x y p.set_coordinates (2, 1) 3
4 Feldern einen Wert zuweisen (in einer Routine) class POSITION feature Zugriff x: REAL -- Horizontale Position y: REAL -- Vertikale Position feature Element-Veränderung set_coordinates (xval, yval: REAL) -- Setze Koordinaten auf (`xval', `yval'). require x_positive: xval >= 0 do y_positive: yval >= 0 x := xval y := yval end ensure x_set: x = xval y_set: y = yval end 4
5 Effekt einer Zuweisung Referenztypen: Referenzzuweisung Expandierte Typen: Kopie des Wertes item right class LINKED_CELL feature end item : INTEGER right : LINKED_CELL set_fields (n : INTEGER ; r : LINKED_CELL) do end -- Beide Felder neu setzen. item item := n:= n right right := r := r Siehe LINKABLE in EiffelBase 3 t 25 0 u 0 t, u : LINKED_CELL create t ; create u t.set_fields (25, u) u) 5
6 Eine verkettete Liste von Strings: Einfügen am Ende count 3 4 item right first_element active last_element Paradeplatz (LINKABLE) Haldenegg Central Hauptbahnhof item right item right item right (LINKABLE) (LINKABLE) (LINKABLE) 6
7 Ein Element am Ende einfügen extend (v : STRING) -- Füge v am Ende hinzu. -- Cursor nicht verschieben. local p : LINKABLE [STRING] do create p.make (v) if is_empty then first_element := p active := p else last_element.put_right ( p) if after then active := p end end last_element := p count := count + 1 end 7
8 Übung (beinhaltet Schleifen) Kehren Sie eine Liste um! (LINKED_LIST) 3 count last_element first_element Central Haldenegg Hauptbahnhof Paradeplatz item right (LINKABLE) 8
9 Eine Liste umkehren
10 Eine Liste umkehren right i first_element pivot from pivot := first_element first_element := Void until pivot = Void loop i := first_element end first_element := pivot pivot := pivot.right first_element.put_right (i ) 10
11 Eine Liste umkehren right i first_element pivot from pivot := first_element first_element := Void until pivot = Void loop i := first_element end first_element := pivot pivot := pivot.right first_element.put_right (i ) 11
12 Eine Liste umkehren right i first_element pivot from pivot := first_element first_element := Void until pivot = Void loop i := first_element end first_element := pivot pivot := pivot.right first_element.put_right (i ) 12
13 Eine Liste umkehren right i first_element pivot from pivot := first_element first_element := Void until pivot = Void loop i := first_element end first_element := pivot pivot := pivot.right first_element.put_right (i ) 13
14 Eine Liste umkehren right i first_element pivot from pivot := first_element first_element := Void until pivot = Void loop i := first_element end first_element := pivot pivot := pivot.right first_element.put_right (i ) 14
15 Die Schleifeninvariante right i first_element pivot Invariante: Von first_element nach right: anfängliche Elemente in umgekehrter Reihenfolge; Von pivot aus: Rest der Elemente in ursprünglicher Reihenfolge. from pivot := first_element first_element := Void until pivot = Void loop end i := first_element first_element := pivot pivot := pivot.right first_element.put_right (i ) 15
16 Das Problem mit Referenzzuweisungen Eine intuitive Argumentationsweise: -- Hier ist SOME_PROPERTY für a erfüllt Wende SOME_OPERATION auf b an -- Hier gilt SOME_PROPERTY immer noch für a Dies gilt für expandierte Werte, z.b. ganze Zahlen (integers) -- Hier ist P (a) erfüllt. OP (b) -- Hier ist P (a) immer noch erfüllt für a 16
17 Dynamische Mehrfachbenennung a, b: LINKABLE [STRING] create a... a b (" Haldenegg ") a.put b := a -- Hier hat a.item den Wert "Haldenegg" (" Paradeplatz ") b.put -- Hier hat a.item den Wert????? Haldenegg item right 17
18 Andererseits Ich habe gehört, dass die Cousine des Chefs weniger -- als Franken pro Jahr verdient Erhöhen Sie Caroline s Gehalt um 1 Franken --????? Metaphern: Die schöne Tochter von Leda Menelas Gefährtin Geliebte von Paris = Helena von Troja 18
19 Tipps für die Praxis Referenzzuweisungen sind nützlich Sie sind möglicherweise auch etwas schwieriger Überlassen Sie diese so oft wie möglich den spezialisierten Bibliotheken von generellen Datenstrukturen. 19
20 Varianten von Zuweisungen und Kopieren Referenzzuweisung (Typen von a und b sind Referenztypen): b := a Duplizieren eines Objektes (flach): c := a.twin Duplizieren eines Objektes (tief): d := a.deep_twin Weiterhin: flache Feld-um-Feld Kopie (Kein neues Objekt wird erzeugt): ( a ) e.copy 20
21 Flaches und tiefes Klonen Anfangssituation: a Resultat von: O2 name landlord loved_one Figaro Almaviva O1 O3 Susanna b := a b c := a.twin c O4 Almaviva d := a.deep_twin d O5 Almaviva O6 Figaro O7 Susanna 21
22 Woher kommen diese Mechanismen? Die Klasse ANY in der Eiffel Kernel-Bibliothek Jede Klasse, die nicht explizit von einer anderen erbt, erbt implizit von ANY Deshalb ist jede Klasse ein Nachkomme von ANY 22
23 Die Vererbungsstruktur vervollständigen ANY A B C Erbt von D E NONE 23
24 Ein verwandter Mechanismus: Persistenz ( file ) a.store... b := retrieved (file) Muss verbessert werden, siehe Objekt-Test Speicherung erfolgt automatisch. Persistente Objekte werden durch individuelle Schlüssel identifiziert. Diese Features kommen aus der Bibliotheksklasse STORABLE. 24
25 Objekte und Referenzen Status einer Referenz: create p ( ist p := q (wobei q gebunden p VOID VOID p := Void GEBUNDEN p GEBUNDEN ( ist p := q (wobei q void Operationen auf Referenzen: create p p := q p := Void if p = Void then... 25
26 Die Objekt-Orientierte Form eines Aufrufs ( some_arguments ) some_target.some_feature Zum Beispiel: Paris.display ( Station_Parade_Platz ) Line6.extend x := a.plus (b)??????? 26
27 Infix- und Präfix-Operatoren In a b In ist der Operator ein infix -Operator ( geschrieben (zwischen den Operanden b ist der Operator ein präfix -Operator ( geschrieben (vor dem Operand 27
28 Operator-Features expanded class INTEGER feature plus alias "+" (other : INTEGER): INTEGER -- Summe mit other do... end times alias * (other : INTEGER): INTEGER -- Multiplikation mit other do... end end minus alias -" : INTEGER -- unäres Minus do... end... Aufrufe wie i.plus (j) können jetzt auch als i + j geschrieben werden 28
29 Leseaufgaben auf nächste Woche Chapters on Syntax (11) Inheritance (16) 29
30 Was wir gesehen haben Mit Referenzen spielen: Umkehrung einer Liste Dynamische Mehrfachbenennung und die Schwierigkeiten von Zeigern und Referenzen Allgemeine Vererbungsstruktur Kopieren, Klonen und Speicheroperationen Persistenzhülle Infix- & Präfix-Operatoren 30
Einfü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
Einfü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
Einführung in die Programmierung. Vorlesung 12: Das dynamische Modell. Werte ändern: Zuweisung. Bertrand Meyer. target := source
1 Einführung in die Programmierung Bertrand Meyer Letzte Änderungen 24. November 2004 2 Vorlesung 12: Das dynamische Modell Werte ändern: Zuweisung 3 source ist ein Ausdruck: target := source Aufruf einer
Einführung in die Programmierung. Vorlesung 12: Das dynamische Modell. Zuweisung. Werte ändern: Zuweisung. Bertrand Meyer
1 2 Einführung in die Programmierung Bertrand Meyer Vorlesung 12: Das dynamische Modell Letzte Änderungen 24. November 2004 Werte ändern: Zuweisung 3 Zuweisung 4 target := source Ersetzt einen Wert durch
Einfü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
Einführung in die Programmierung
Chair of Software Engineering Einführung in die Programmierung Prof. Dr. Bertrand Meyer Lektion 7: Referenzen und Zuweisungen Das heutige Programm Wie werden Objekte gemacht? (Mehr Details) Wie modifizieren
Einführung in die Programmierung
Chair of Software Engineering Einführung in die Programmierung Prof. Dr. Bertrand Meyer Lektion 7: Referenzen und Zuweisungen Das Programm für diese Lektion Wie werden Objekte gemacht? (Mehr Details) Wie
Einfü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
Einfü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
Einfü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
Einfü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
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,
Schlussendlich geben wir die Listen aus. Es kommt zu folgender Ausgabe:
Musterlösung Übung 7 Aufgabe 1 Sehen wir uns zu allererst das gegebene Forth Programm an: 0 3 new - list constant list1 list1 5 new - list constant list2 list1 6 new - list constant list3 list2 2 new -
Verkettete 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).
! 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
Einfü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
1. Rekursive Algorithmen 2. Rekursive (dynamische) Datenstrukturen
1. Rekursive Algorithmen 2. Rekursive (dynamische) Datenstrukturen II.3.2 Rekursive Datenstrukturen - 1 - Grundwert ( Typ ) Präfix-Operator Name Methodenaufruf [ ] ( ) Infix-Operator Methodenaufruf new
Informatik II, SS 2014
Informatik II SS 2014 (Algorithmen & Datenstrukturen) Vorlesung 7 (21.5.2014) Binäre Suche, Hashtabellen I Algorithmen und Komplexität Abstrakte Datentypen : Dictionary Dictionary: (auch: Maps, assoziative
Eiffel: 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
Programmieren 1 C Überblick
Programmieren C Überblick. Einleitung 2. Graphische Darstellung von Algorithmen 3. Syntax und Semantik 4. Einstieg in C: Einfache Sprachkonstrukte und allgemeiner Programmaufbau 5. Skalare Standarddatentypen
Universitä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
Programmierung 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
Einführung in die Programmierung. Vorlesung 6: Invarianten und Objekt-Erzeugung. Entwurf durch Verträge. Bertrand Meyer
1 Einführung in die Programmierung Bertrand Meyer Endgültige Version, 11. November 2003 2 Vorlesung 6: Invarianten und Objekt-Erzeugung Entwurf durch Verträge 3 Analyse, Entwurf, Implementation: Die Software
Programmierung 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
Institut für Programmierung und Reaktive Systeme. Java 2. Markus Reschke
Java 2 Markus Reschke 07.10.2014 Datentypen Was wird gespeichert? Wie wird es gespeichert? Was kann man mit Werten eines Datentyps machen (Operationen, Methoden)? Welche Werte gehören zum Datentyp? Wie
Warum 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
Grundlagen der Informatik
Grundlagen der Informatik Musterklausur 1. Dynamische Datenstrukturen und objektorientierte Programmierung Zur Verwaltung einer digitalen Fotogalerie sollen Techniken der objektorientierten Programmierung
Physikalisch Technische Lehranstalt Wedel 31. Januar 2004 Prof. Dr. Uwe Schmidt
Physikalisch Technische Lehranstalt Wedel 31. Januar 2004 Prof. Dr. Uwe Schmidt Aufgaben zur Klausur Objektorientierte Programmierung im WS 2003/04 (IA 252) Zeit: 90 Minuten erlaubte Hilfsmittel: keine
II.1.1. Erste Schritte - 1 -
1. Grundelemente der Programmierung 2. Objekte, Klassen und Methoden 3. Rekursion und dynamische Datenstrukturen 4. Erweiterung von Klassen und fortgeschrittene Konzepte II.1.1. Erste Schritte - 1 - 1.
2.13 Vererbung. Rainer Feldmann Universität Paderborn Technische Informatik für Ingenieure (TIFI) WS 09/ Article
2.13 Vererbung Klassen modellieren Objekte der realen Welt. Diese sind oft hierarchisch gegliedert. Beispiel: Ein Verlag bietet Bücher und CDs an. Beide Medien sind Artikel des Verlages. Book author: String
Vorstellung der. Eiffel-Die Programmiersprache. OO-Programmiersprache
Vorstellung der Eiffel-Die Programmiersprache OO-Programmiersprache Eiffel Ursprünge Eiffels Eiffel ist nach Gustave Eiffel bannannt. Eiffel wurde 85' bis 87' von Bertrand Meyer entworfen und von seiner
Repetitorium Programmieren I + II
Repetitorium Programmieren I + II Stephan Gimbel Johanna Mensik Michael Roth 6. März 2012 Agenda 1 Operatoren 2 Datentypen Gleitpunkt Zahl Typkonvertierung 3 Strommanipulatoren 4 Bedingungen if-else switch-case
Ein 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
Vorkurs Informatik WiSe 16/17
Java Ausdrücke und Variablen Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe, 05.10.2016 Technische Universität Braunschweig, IPS Überblick Ausdrücke, Datentypen und Variablen Kontrollstrukturen 05.10.2016
II.1.1. Erste Schritte - 1 -
1. Grundelemente der Programmierung 2. Objekte, Klassen und Methoden 3. Rekursion und dynamische Datenstrukturen 4. Erweiterung von Klassen und fortgeschrittene Konzepte II.1.1. Erste Schritte - 1 - 1.
Einstieg in die Informatik mit Java
1 / 15 Einstieg in die Informatik mit Java Collections Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 15 1 Überblick Collections 2 Hierarchie von Collections 3 Verwendung
C# - Einführung in die Programmiersprache Arrays, Enumeration und Collections. Leibniz Universität IT Services Anja Aue
C# - Einführung in die Programmiersprache Arrays, Enumeration und Collections Leibniz Universität IT Services Anja Aue Arrays... speichern mehrere Werte vom gleichen Datentyp. fassen zusammenhängende Werte
Objektorientierte Programmierung und Modellierung
Objektorientierte Programmierung und Modellierung Einführung, Teil 2 24.10.17 - WS17/18 Hakan Aksu 1 Raumänderung beachten Dienstag 14:15-15:45 Uhr in M001 (anstatt K101) 2 Ausfalltermine 31.10 Vorlesung
Algorithmen und Datenstrukturen I. Blatt 2. Prof. Dr. Oliver Braun. Fakultät für Informatik und Mathematik Hochschule München
Algorithmen und Datenstrukturen I Blatt 2 Fakultät für Informatik und Mathematik Hochschule München Letzte Änderung: 18.03.2018 20:05 Aufgabe 1 struct, Parameterübergabe und const Das Repository für diese
Vorkurs Informatik WiSe 17/18
Java Ausdrücke und Variablen Dr. Werner Struckmann / Stephan Mielke, Nicole Naczk, 05.10.2017 Technische Universität Braunschweig, IPS Überblick Ausdrücke, Datentypen und Variablen Kontrollstrukturen 05.10.2017
Programmierkurs C++ Templates & STL (1/2)
Programmierkurs C++ Templates & STL (1/2) Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck https://www.itm.uni-luebeck.de/people/fischer #2 Templates Die wichtigsten objekt-orientierten
Fachhochschule Wedel 31. Januar 2004 Prof. Dr. Uwe Schmidt
Fachhochschule Wedel 31. Januar 2004 Prof. Dr. Uwe Schmidt Aufgaben zur Klausur C und Objektorientierte Programmierung im WS 2003/04 (WI h103, II h105, MI h353) Zeit: 150 Minuten erlaubte Hilfsmittel:
Variablen. CoMa-Übung VIII TU Berlin. CoMa-Übung VIII (TU Berlin) Variablen / 15
Variablen CoMa-Übung VIII TU Berlin 4.12.2013 CoMa-Übung VIII (TU Berlin) Variablen 4.12.2013 1 / 15 Themen der Übung 1 Typanpassungen 2 Operatoren 3 Variablen-Gültigkeit CoMa-Übung VIII (TU Berlin) Variablen
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
Android-Apps Gegenüberstellung Delphi java
Android-Apps Gegenüberstellung 2/9 Grundsätzliches etc. Groß-/Kleinschreibung egal sensitiv! Zuweisung := = Kommentare // // { } /* */ Zeichenkettenbegrenzer: 'text' "text" Inkrementieren / Dekrementieren
Objektorientierte Programmierung. Kapitel 14: Interfaces
14. Interfaces 1/26 Objektorientierte Programmierung Kapitel 14: Interfaces Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester 2013/14 http://www.informatik.uni-halle.de/ brass/oop13/
Einführung in die Programmierung
Chair of Software Engineering Einführung in die Programmierung Prof. Dr. Bertrand Meyer Vorlesung 5: Invarianten und Logik Erinnerung: Verträge In Verbindung mit einem Feature: Vorbedingungen Nachbedingungen
Einfü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
Institut für Programmierung und Reaktive Systeme. Java 6. Markus Reschke
Institut für Programmierung und Reaktive Systeme Java 6 Markus Reschke 13.10.2014 OOP Objekte = Verhalten (durch Methoden) + Daten (durch Attribute) Klassen = Baupläne für Objekte Kapselung von Programmteilen
1 Aufgaben 1.1 Umgebungsvariable setzen: CLASSPATH
1 Aufgaben 1.1 Umgebungsvariable setzen: CLASSPATH Die Umgebungsvariable CLASSPATH kann im Hamster-Simulator sowohl für Compiler als auch für die Ausführung des Hamster-Programms gesetzt werden: Hierdurch
19. Vererbung und Polymorphie
667 19. Vererbung und Polymorphie Ausdrucksbäume, Vererbung, Code-Wiederverwendung, virtuelle Funktionen, Polymorphie, Konzepte des objektorientierten Programmierens (Ausdrucks-)Bäume -(3-(4-5))*(3+4*5)/6
Einführung in die Programierung
Chair of Software Engineering Einführung in die Programierung Prof. Dr. Bertrand Meyer Lektion 8: Kontrollstrukturen I In dieser (Doppel-) Lektion Der Begriff des Algorithmus Grundlege Kontrollstrukturen:
Autotest. 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
Repetitorium Informatik (Java)
Repetitorium Informatik (Java) Tag 6 Lehrstuhl für Informatik 2 (Programmiersysteme) Übersicht 1 Klassen und Objekte Objektorientierung Begrifflichkeiten Deklaration von Klassen Instanzmethoden/-variablen
II.1.1. Erste Schritte - 1 -
1. Grundelemente der Programmierung 2. Objekte, Klassen und Methoden 3. Rekursion und dynamische Datenstrukturen 4. Erweiterung von Klassen und fortgeschrittene Konzepte II.1.1. Erste Schritte - 1 - 1.
Einführung in die Programmierung. Bertrand Meyer. Vorlesung 23: Ein Beispiel: Undo-Redo. Das Problem
1 Einführung in die Programmierung Bertrand Meyer Letzte Bearbeitung 20. Januar 2004 2 Vorlesung 23: Ein Beispiel: Un-Re Das Problem 3 Den Benutzern eines interaktiven Systems ermöglichen, den Effekt des
4. Kontrollstrukturen Programmieren / Algorithmen und Datenstrukturen 1 Prof. Dr. Bernhard Humm FB Informatik, Hochschule Darmstadt
4. Kontrollstrukturen Programmieren / Algorithmen und Datenstrukturen 1 Prof. Dr. Bernhard Humm FB Informatik, Hochschule Darmstadt 1 Kontrollfragen Variablen und Datentypen Was ist eine Variable? Was
Objektorientierte Programmierung II
Objektorientierte Programmierung II OOP I Erlaubt Entwicklers, im Problemraum zu denken und zu arbeiten. Das Problem wird in eine Menge von Objekten zerlegt. Objekte wirken aufeinander, um das Problem
Einfü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
Wie entwerfe ich ein Programm?
Wie entwerfe ich ein Programm? Welche Objekte brauche ich? Flussdiagramme für Programmablauf Vorcode Testcode Hauptcode Wir spielen Lotto! Borchers: Programmierung für Alle (Java), WS 06/07 Kapitel 5 +
Programmieren I. Kapitel 5. Kontrollfluss
Programmieren I Kapitel 5. Kontrollfluss Kapitel 5: Kontrollfluss Ziel: Komplexere Berechnungen im Methodenrumpf Ausdrücke und Anweisungen Fallunterscheidungen (if, switch) Wiederholte Ausführung (for,
Institut für Programmierung und Reaktive Systeme 2. Februar Programmieren I. Übungsklausur
Technische Universität Braunschweig Dr. Werner Struckmann Institut für Programmierung und Reaktive Systeme 2. Februar 2017 Hinweise: Klausurtermine: Programmieren I Übungsklausur Programmieren I: 13. März
Informatik II, SS 2018
Informatik II - SS 2018 (Algorithmen & Datenstrukturen) Vorlesung 6 (7.5.2018) Dictionaries, Binäre Suche, Hashtabellen I / Yannic Maus Algorithmen und Komplexität Abstrakte Datentypen : Dictionary Dictionary:
Einfü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
Institut für Programmierung und Reaktive Systeme 10. Mai Programmieren II. 11. Übungsblatt
Technische Universität Braunschweig Dr. Werner Struckmann Institut für Programmierung und Reaktive Systeme 10. Mai 2013 Programmieren II 11. Übungsblatt Hinweis: Dieses Übungsblatt enthält die zweite Pflichtaufgabe.
Klassen als Datenstrukturen
Einstieg in die Informatik mit Java, Vorlesung vom 27.11.07 Übersicht 1 Klassen als Datenstruktur 2 Vereinbarung von Klassen 3 Erzeugen von Objekten - Instanzen einer Klasse 4 Zugriff auf Attribute 5 Initialisierung
Programmierung 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
Bekannte Schwächen der Entwicklungsumgebungen
Hochschule Reutlingen - Reutlingen University Fakultät Informatik Studiengang Medien- und Kommunikationsinformatik akkreditiert von der ASIIN Prof. Dr. Karlheinz Hug Informatik 3 BSE Bekannte Schwächen
Einführung in die Programmierung II. 5. Zeiger
Einführung in die Programmierung II 5. Zeiger Thomas Huckle, Stefan Zimmer 16. 5. 2007-1- Bezüge als Objekte Bisher kennen wir als Bezüge (Lvalues) nur Variablennamen Jetzt kommt eine neue Sorte dazu,
Chair 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
Grundlagen der Informatik
Grundlagen der Informatik Klausur 1. August 2008 1. Dynamische Datenstrukturen und objektorientierte Programmierung (45 Punkte) Gegeben sei eine Datenstruktur mit folgendem Aufbau struct lelem { int w;
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
Unterlagen. CPP-Uebungen-08/
Unterlagen http://projects.eml.org/bcb/people/ralph/ CPP-Uebungen-08/ http://www.katjawegner.de/lectures.html Kommentare in C++ #include /* Dies ist ein langer Kommentar, der über zwei Zeilen
Informatik - Übungsstunde
Informatik - Übungsstunde Jonas Lauener (jlauener@student.ethz.ch) ETH Zürich Woche 12-23.05.2018 Lernziele Klassen Dynamic Memory Jonas Lauener (ETH Zürich) Informatik - Übung Woche 12 2 / 20 Structs
Vererbung in der objektorientieren Programmierung
Vererbung in der objektorientieren Programmierung Stage Stage(title:String,width:Integer:height:Integer) addstageobject(obj:stageobject) getheight():integer getstageobjectbyname(id:string) getwidth():integer
Prinzipien der Softwareentwicklung S. Strahringer
Gliederung 1 Einführung Was ist ein Programm? Vorteile (und Nachteile) von PHP Erste PHP-Programme Ausführung von PHP-Programmen 2 Grundbegriffe der Programmierung Anweisungen, Variablen, Datentypen und
Informatik II (D-ITET) Übungsstunde 6
Informatik II (D-ITET) Übungsstunde 6 simon.mayer@inf.ethz.ch Distributed Systems Group, ETH Zürich Ablauf Nachbesprechung Übung 5 Besprechung der Vorlesung Die neue Serie... Zeit zum Programmieren / für
6. Globalübung (zu Übungsblatt 8)
6. Globalübung (zu Übungsblatt 8) Inhalt: Klassenhierarchien Verdecken von Attributen Überschreiben von Methoden Codeanalyse Analyse von JAVA-Programmen Semestralklausur Klausurtermin: Mittwoch 11.01.2006
Einstieg in die Informatik mit Java
1 / 27 Einstieg in die Informatik mit Java Klassen als Datenstrukturen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 27 1 Überblick: Klassen als Datenstruktur 2 Vereinbarung
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
Institut für Programmierung und Reaktive Systeme 7. Mai Programmieren II. 11. Übungsblatt
Technische Universität Braunschweig Dr. Werner Struckmann Institut für Programmierung und Reaktive Systeme 7. Mai 2018 Programmieren II 11. Übungsblatt Hinweis: Auf diesem und den folgenden Übungsblättern
Programmierkurs Java
Programmierkurs Java Java Generics und Java API (1/2) Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck https://www.itm.uni-luebeck.de/people/fischer Datenstrukturen In vielen Sprachen
5.3 Auswertung von Ausdrücken
5.3 Auswertung von Ausdrücken Funktionen in Java bekommen Parameter/Argumente als Input, und liefern als Output den Wert eines vorbestimmten Typs. Zum Beispiel könnte man eine Funktion i n t min ( i n
Software 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
Grundlagen der Informatik / Algorithmen und Datenstrukturen. Aufgabe 132
Aufgabenstellung Gehen Sie bei der Bearbeitung der folgenden Teilaufgabenstellungen von den Beispiel-Implementierungen der Klassen ListNodeSL und LinkedList für einfach verkettete Listen aus, wie sie in
Städtisches Gymnasium Olpe Java Ht Informatik - Q1 Die Klasse List im Abitur Methoden und Beispielcode Hier alle wichtigen Methoden. Ein Beispielcode
Die Klasse List im Abitur Methoden und Beispielcode Hier alle wichtigen Methoden. Ein Beispielcode folgt im Anschluss. Beispielcode Es gibt eine Klasse Benutzerverwaltung, welche eine Liste mit Benutzern
Einstieg in die Informatik mit Java
Vorlesung vom 5.11.07, Weitere Ausdrücke Übersicht 1 Vergleichsoperatoren 2 Kombinierte Zuweisungsoperatoren 3 Logische Operatoren 4 Weitere Operatoren 5 Klassifizierung von Operatoren 6 Typumwandlungen
Verkettete Listen. DVG Verkettete Listen 1
Verkettete Listen DVG2-03 - Verkettete Listen 1 Primitive typen Vorteile: werden direkt vom Prozessor unterstützt schneller Zugriff schnelle Verarbeitung Nachteile: kleine menge feste Struktur unflexibel