Institut für Wirtschaftsinformatik – Software Engineering, JKU Linz 1 Algorithmen und Datenstrukturen SS 2005 Mag.Th. Hilpold u. Dr. A.Stritzinger Institut.

Slides:



Advertisements
Ähnliche Präsentationen
Einführung in die Programmiersprache C/C++
Advertisements

Imperative Programmierung
Imperative Programmierung
Klassen - Verkettete Liste -
DVG Einfache Klassen Einfache Klassen. DVG Einfache Klassen 2 Strukturen Beispiel: Personendaten bestehen aus –String name –String vorname.
der Universität Oldenburg
Sequentielle Liste - Array
Java: Objektorientierte Programmierung
Java: Dynamische Datentypen
Indirekte Adressierung
FH-Hof Indirekte Adressierung Richard Göbel. FH-Hof Einfache Speicherung von Daten Eine "einfache" Deklaration definiert direkt eine Speicherplatz für.
FH-Hof Verwaltung von Zeichenketten Richard Göbel.
Java: Referenzen und Zeichenketten
Objekte werden als Adressen (Referenzen) übergeben. Dies führt manchmal zu unerwarteten Ergebnissen...
Polymorphie (Vielgestaltigkeit)
Objekte und Arbeitsspeicher
V AdresseWert public static void main(...){ int[] v; v=new int[2]; } Was veranlasst diese Anweisung im Arbeitsspeicher ? Es wird im Arbeitsspeicher.
Dynamischer Speicher. In einer Funktion wird z.B. mit der Deklaration int i; Speicher auf dem sogenannten Stack reserviert. Wenn die Funktion verlassen.
ARRAY oder FELD oder VEKTOR
Informatik II, SS 2008 Algorithmen und Datenstrukturen Vorlesung 6 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für Informatik Fakultät.
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Vorlesung 2 SWS WS 99/00 Gisbert Dittrich FBI Unido
DVG Felder1 Felder. DVG Felder 2 Was sind Felder? Felder sind Reihungen aus endlich vielen Elementen gleichen Typs. Z.B.: Vektoren : (x.
Arrays,Strings&Pointer in C/C++
DVG Einfache Klassen 1 Einfache Klassen. 2DVG Einfache KlassenStrukturen Beispiel: Personendaten bestehen aus String name String name.
Seite 1 Interface - Konzept Ein Interface führt einen neuen Datentyp ein: interface Frau {... } Das Interface enthält Deklarationen ( keine Definitionen.
Java programmieren mit JavaKara
Institut für Wirtschaftsinformatik – Software Engineering, JKU Linz 1 Algorithmen und Datenstrukturen Übungsmodul 4 Dr. W. Narzt u. Dr. A. Stritzinger.
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich.
Einführung in die Programmiersprache C 3.Tag Institut für Mathematische Optimierung - Technische Universität Braunschweig.
Einführung in die Programmierung Wintersemester 2008/09 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Einführung in die Programmierung Wintersemester 2009/10 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fakultät.
Vom Umgang mit Daten. public void myProgram() { int[] saeulenWerte = new int[world.getSizeX()]; for (int i = 0; i < saeulenWerte.length; i++) { saeulenWerte[i]
Algorithmen und Datenstrukturen SS 2005 Mag.Th. Hilpold u. Dr. A.Stritzinger Institut für Wirtschaftsinformatik- Software Engineering JKU Linz.
Institut für Wirtschaftsinformatik – Software Engineering, JKU Linz 1 Algorithmen und Datenstrukturen SS 2005 Mag.Th. Hilpold u. Dr. A.Stritzinger Institut.
Algorithmen und Datenstrukturen Übungsmodul 6
Algorithmen und Datenstrukturen Übungsmodul 10
Algorithmen und Datenstrukturen SS 2005
Institut für Wirtschaftsinformatik – Software Engineering, JKU Linz 1 Algorithmen und Datenstrukturen 1 SS 2007 Dr. W. Narzt u. Dr. A. Stritzinger Institut.
Dynamische Datentypen
Institut für Wirtschaftsinformatik – Software Engineering, JKU Linz 1 Algorithmen und Datenstrukturen Übungsmodul 5 Dr. W. Narzt u. Dr. A. Stritzinger.
Institut für Wirtschaftsinformatik – Software Engineering, JKU Linz 1 Algorithmen und Datenstrukturen SS 2005 Mag.Th. Hilpold u. Dr. A.Stritzinger Institut.
Variablenkonzept Klassisch, in Java Basistyp
Algorithmen und Datenstrukturen Übungsmodul 8
Algorithmen und Datenstrukturen Übungsmodul 11
Institut für Wirtschaftsinformatik – Software Engineering, JKU Linz 1 Thomas Hilpold: Algorithmen und Datenstrukturen SS 2005 Mag.Th. Hilpold u. Dr. A.Stritzinger.
Algorithmen und Datenstrukturen SS 2005
Algorithmen und Datenstrukturen Übungsmodul 1
Institut für Wirtschaftsinformatik – Software Engineering, JKU Linz 1 Algorithmen und Datenstrukturen Übungsmodul 2 Dr. W. Narzt u. Dr. A. Stritzinger.
Programmieren in C Grundlagen C 2
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich.
Programmiervorkurs WS 2014 Referenzdatentypen
Algorithmen und Datenstrukturen 1 SS 2002
Java-Kurs - 7. Übung Besprechung der Hausaufgabe Referenzvariablen
Institut für Wirtschaftsinformatik – Software Engineering, JKU Linz 1 Algorithmen und Datenstrukturen SS 2005 Mag.Th. Hilpold u. Dr. A.Stritzinger Institut.
Mag. Thomas Hilpold, Universität Linz, Institut für Wirtschaftsinformatik – Software Engineering 1 Programmierpraktikum Java SS 2005 Mag.Thomas Hilpold.
Java-Kurs - 3. Übung Hausaufgabe Arrays For-Schleifen.
Sammlungsklassen Array.
Mag. Thomas Hilpold, Universität Linz, Institut für Wirtschaftsinformatik – Software Engineering 1 Algorithmen und Datenstrukturen 1 SS 2002 Mag.Thomas.
Algorithmen und Datenstrukturen 1 SS 2002
Mag. Thomas Hilpold, Universität Linz, Institut für Wirtschaftsinformatik – Software Engineering 1 Algorithmen und Datenstrukturen 1 SS 2002 Mag.Thomas.
Mag. Thomas Hilpold, Universität Linz, Institut für Wirtschaftsinformatik – Software Engineering 1 Algorithmen und Datenstrukturen 1 SS 2002 Mag.Thomas.
Institut für Wirtschaftsinformatik – Software Engineering, JKU Linz 1 Algorithmen und Datenstrukturen 1 SS 2005 Mag.Th. Hilpold u. Dr. A.Stritzinger Institut.
Mag. Thomas Hilpold, Universität Linz, Institut für Wirtschaftsinformatik – Software Engineering 1 Algorithmen und Datenstrukturen 1 SS 2002 Mag.Thomas.
Mag. Thomas Hilpold, Universität Linz, Institut für Wirtschaftsinformatik – Software Engineering 1 Programmierpraktikum Java SS 2005 Mag.Thomas Hilpold.
Variablen und Operatoren. C++ Teil 2: Grundstrukturen Variablen Operatoren Kontrollstrukturen Funktionen Header-Dateien Pointer und Referenzen.
Tutorium Software-Engineering SS14 Florian Manghofer.
Java Programme nur ein bisschen objektorientiert.
Pointer, Arrays und verkettete Listen. Mehrdimensionale Arrays  Pointer auf ein Array von Pointern  int32 **matrix = new int32*[3];  matrix: Zeiger.
Felder in der Informatik
 Präsentation transkript:

Institut für Wirtschaftsinformatik – Software Engineering, JKU Linz 1 Algorithmen und Datenstrukturen SS 2005 Mag.Th. Hilpold u. Dr. A.Stritzinger Institut für Wirtschaftsinformatik- Software Engineering JKU Linz

Institut für Wirtschaftsinformatik – Software Engineering, JKU Linz 2 Inhalt l Lösung Übung 4 l Referenzdatentypen l Vorbesprechung Übung 6

Institut für Wirtschaftsinformatik – Software Engineering, JKU Linz 3 Verbund-Datentypen als Werte Verbund-Variable: Typ – Name – Wert – Adresse JanaSpeicher AdresseWert type Pair = { int a int b } Pair p p.a = 10 p.b = Name = p Typ = Pair Adresse = 100 Adresse = 100 Wert = 10 Adresse = 104 Wert = 13 pa b 13 10

Institut für Wirtschaftsinformatik – Software Engineering, JKU Linz 4 Referenzdatentypen JanaSpeicher AdresseWert reftype RefPair = { int a int b } RefPair p P = new RefPair p.a = 10 p.b = Name = p Typ = RefPair Adresse = 100 Wert = 112 Adresse = 112 Wert = 10 Adresse = 116 Wert = 13 Warum Referenzvariablen? zur Laufzeit kann (beliebig viel) Speicherplatz für neue Daten belegt werden Strukturierung der Daten pa b a b 13 10

Institut für Wirtschaftsinformatik – Software Engineering, JKU Linz 5 Vergleich Referenz/Verbund-Datentypen I type Person = { char[] firstName, lastName } reftype RefPerson = { char[] firstName, lastName } Deklaration Erzeugen von Datenobjekten Person student Objekt wird bei Deklaration bereits erzeugt; Wert undefiniert! RefPerson refStudent Wert von student: Referenz auf ein Objekt Student; noch nicht initialisiert! refStudent = new RefPerson erst jetzt ist ein Objekt des Typs RefPerson erzeugt. Wert ist noch nicht definiert Wert-Variable Referenzvariable

Institut für Wirtschaftsinformatik – Software Engineering, JKU Linz 6 Vergleich Referenz/Verbund-Datentypen II student.firstName = "Hugo"refStudent^.firstName = "Hugo" oder refStudent.firstName = "Hugo" Zugriff auf Elemente Löschen von Datenobjekten Werden beim Verlassen des Algorithmus automatisch aus dem Speicher entfernt delete refStudent jetzt gilt: refStudent == null Spezieller Referenzwert null refStudent = null - Wert-Variable Referenzvariable

Institut für Wirtschaftsinformatik – Software Engineering, JKU Linz 7 Person hugo, franz hugo.firstname = "Hugo hugo.lastname = "Berger franz = hugo RefPerson hugo, franz hugo = new RefPerson hugo^.firstname = "Hugo hugo^.lastname = "Berger franz = hugo Achtung: Zuweisung der Referenz! Zuweisung Vergleich Person a,b a.firstName = "Hugo " a.lastName = "Berger " b.firstName = "Hugo " b.lastName = "Berger " if (a == b) {...} // true RefPerson a,b,c a = new RefPerson, b = …; c =... a.firstName = "Hugo a.lastName = "Berger b.firstName = "Hugo b.lastName = "Berger " c=a if (a == b) {...} //Gleichheit false! if (a == c) {...} //Identität true! Wert-Variable Referenzvariable Vergleich Referenz/Verbund-Datentypen III

Institut für Wirtschaftsinformatik – Software Engineering, JKU Linz 8 Vergleich Referenz/Verbund-Datentypen IV f( Person p) { p.firstName = "nix" } Kopie des Werts = Datenobjekt selbst wird übergeben g( RefPerson p) { p.firstName = "nix" } Kopie des Werts = Referenz wird übergeben !! Verwendung als Eingangsparameter Verwendung als Übergangsparameter f( Person p) { Person a a.firstName="franz" a.lastName="Huber" p=a } g( RefPerson p) { RefPerson b; b = new Refperson b.firstName="franz" b.lastName="Huber" p=b } Referenz p wird verändert! Wert-Variable Referenzvariable

Institut für Wirtschaftsinformatik – Software Engineering, JKU Linz 9 Beispiel Algorithmusanalyse: reftype X = { int a Y y } type Y = { int a } algorithm() { X x1,x2 Y y x1 = new X x1.a = 99 y.a = 11 x1.y = y (1) y.a = 77 x2 = x1 (2) invert( x2) write( x1.y.a) (3) } invert ( X x) { x.y.a = -x.y.a } Was wird am Ende des Algorithmus ausgegeben? Welche Werte enthalten die Variablen x1, x2 und y an den Stellen (1)-(3)

Institut für Wirtschaftsinformatik – Software Engineering, JKU Linz 10 Lösung (1) x1 a:11 a:99 y x2? a:11 x1 a:11 a:99 y x2 a:77 (2) y y x1 a:-11 a:99 y x2 a:77 (3) y Ausgabe:-11