7.0 Arbeiten mit Objekten und Klassen

Größe: px
Ab Seite anzeigen:

Download "7.0 Arbeiten mit Objekten und Klassen"

Transkript

1 Einführung in die Programmierung I 7.0 Arbeiten mit Objekten und Klassen Thomas R. Gross Department Informatik ETH Zürich Copyright (c) Pearson and Thomas Gross 2016 All rights reserved.

2 Uebersicht Review 7.0 Listen als Beispiel Copyright (c) Pearson 2013 and Thomas Gross All rights reserved. 2

3 Variable eines Basistyps, Methode public static void somefct() { int x = 0; int y = 0; int z = 0; x y // first stmt z 3

4 Variable eines Basistyps, Methode public static void somefct() { int x = 0; int y = 0; int z = 0; x y 0 0 // first stmt z 0 4

5 Leider falsch. Lokale Variable müssen explizit initialisiert werden, siehe letzte Slides. 5

6 Variable eines Basistyps, Instanzmethode void somefct() { int x = 1; int y = x + 1; int z = 0; x y // first stmt z 6

7 Variable eines Basistyps, Instanzmethode void somefct() { int x = 1; int y = x + 1; int z = 0; // first stmt x y z

8 Variable eines Basistyps, Attribute public class SomeClass { int x = 1; int y = x + 1; int z; x y void somefct() { // first stmt z 8

9 public class SomeClass { int x = 1; int y = x + 1; int z; public class OtherClass { void otherfct() { SomeClass s = new SomeClass(); // first stmt 9 x y z

10 public class SomeClass { OtherClass.java SomeClass.java int x = 1; int y = x + 1; int z; public class OtherClass { void otherfct() { SomeClass s = new SomeClass(); // first stmt 10 x y z

11 public class SomeClass { OtherClass.java SomeClass.java int x = 1; int y = x + 1; int z; public class OtherClass { void otherfct() { x 1 y 2 z 0 SomeClass s = new SomeClass(); // z set to 0 even w/o initialization 11

12 OtherClass.java SomeClass.java class SomeClass { int x; class OtherClass { public static void main (String[] args) { SomeClass x = new SomeClass(); System.out.println(x.x); // poor naming x 12

13 Variable eines Referenztypes ( reference variable ) public static void somefct() { SomeClass c; c // first stmt System.out.println(c); Class2d.java:8: variable c might not have been initialized System.out.println(c) 1 error ^ 14

14 Variable eines Referenztypes ( reference variable ) Alle Variablen müssen in einer Methode initialisiert werden Gilt für Variable die Referenzen (Verweise) auf Objekte speichern Gilt für auch für Arrays Verwenden auch Referenzvariable Sonst gibt es eine Compiler Error Message Es muss für den Compiler klar sein dass eine Zuweisung stattfand Wenn möglich in Definition initialisieren 15

15 17

16 Variable eines Referenztypes ( reference variable ) public static void somefct() { int [] x; x // first stmt System.out.println(x); Class2d.java:8: variable x might not have been initialized System.out.println(x) 1 error ^ 20

17 Variable eines Referenztypes ( reference variable ) public static void somefct() { int [] x = new int[3]; x // first stmt Index Element

18 Variable eines Referenztypes ( reference variable ) public static void somefct() { int [] x = {2, 5, 8; x // first stmt Index Element

19 Variable eines Referenztypes ( reference variable ) public static void somefct() { String [] s = null; s // first stmt 23

20 Variable eines Referenztypes ( reference variable ) public static void somefct() { String [] s = { a, b, c ; s // first stmt Index Element a b c 24

21 Variable eines Referenztypes ( reference variable ) public static void somefct() { String [] s = new String[3] s // first stmt Index Element null null null 25

22 Attribute einer Klasse public class SomeClass { int i; int [] ia; OtherClass o; i ia o 26

23 Variable eines Referenztypes ( reference variable ) public static void somefct() { SomeClass c = new SomeClass(); c // first stmt i 0 ia null o null 28

24 Variable eines Referenztypes ( reference variable ) public static void somefct() { SomeClass [] ca = new SomeClass[3]; ca // first stmt Index Element null null null 29

25 31

26 Variable eines Referenztypes ( reference variable ) public static void somefct() { SomeClass [] ca = new SomeClass[3]; ca for (int i=0; i<3; i++){ ca[i] = new SomeClass(); Index Element ca[i].ia = new int[3]; i ia 0 i ia 0 i ia 0 32 o null o null o null Index Element Index Element Index Element

27 34

28 Attribute einer Klasse public class SomeClass { int i; int [] ia; SomeClass o; i ia o 35

29 39

30 41

31 Variable eines Referenztypes ( reference variable ) public static void somefct() { SomeClass c = new SomeClass(); SomeClass d = null; c d d = c; d.i = 1; c = null; d = null; i ia o 1 null null 42

32 Variable eines Referenztypes ( reference variable ) public static void somefct() { SomeClass c = new SomeClass(); SomeClass d = new SomeClass(); c d i 0 i 0 ia null ia null 43 o null o null

33 Variable eines Referenztypes ( reference variable ) public static void somefct() { SomeClass c = new SomeClass(); SomeClass d = new SomeClass(); c d c.o = d; i 0 i 0 ia null ia null o o null 44

34 Variable eines Referenztypes ( reference variable ) public static void somefct() { SomeClass c = new SomeClass(); SomeClass d = new SomeClass(); c d c.o = d; i 0 i 0 ia null ia null Wie kann ich d.i auf 1 setzen? 2 Möglichkeiten 45 o o null

35 46

36 Referenzen und Objekte In Java, für Objekte und Arrays gelten die reference semantics Regeln.

37 Eine Klasse für Knoten einer Liste public class ListNode { int data; ListNode next; JederKnoten derlistespeichert: Den Wert einer ganzen (int) Zahl Einen Verweis auf einen anderen Listenknoten null ListNodes können zu einerkette verbunden ( linked ) werden um eine Menge oder Liste von Werten zu speichern.

38 Verknüpfte Knoten -- Uebungsproblem 1 Welche Folge von Anweisungen verändert dieses Bild: list in dieses? list list.next.next = new ListNode(30);

39 Verknüpfte Knoten -- Uebungsproblem 2 Welche Folge von Anweisungen verändert dieses Bild: list in dieses? list list = new ListNode(30, list);

40 Verknüpfte Knoten -- Uebungsproblem 3 Welche Folge von Anweisungen verändert dieses Bild: list in dieses? list list list2 40

41 rest = list2.next; list2.next = list1.next; list1.next = list2; list2 = rest; 64

42 Referenzen vs. Objekten Variable = Wert; Eine Variable (links von = ) ist ein Zeiger ("Referenzvariable") Ein Wert (rechts von = ) ist ein Objekt (ein Rechteck,; worauf der Zeiger zeigt) Für die Liste rechts: a.next = value; heisst anpassen worauf zeigt variable = a.next; heisst die variable setzen so dass sie auf 1 a zeigt 2 20

43 Referenzen verändern Wenn das Programm sagt: a a.next = b.next; b dann heisst das: Lasse die Variable a.next auf den selben Wert (Objekt) zeigen wie b.next." Oder, Lasse a.next auf den selben Ort wie b.next zeigen."

44 Verknüpfte Knoten -- Uebungsproblem 4 Welche Folge von Anweisungen verändert dieses Bild: list in dieses? list data 1000 next

45 Frage über verknüpfte Knoten Nehmen wir an wir haben eine lange Kette von Knoten: list Wir wissen nicht wie lang die Kette ist. Wie könnten wir die Werte in allen Knoten ausgeben?

46 Algorithmus Pseudocode Fangen wir am Anfang der Liste an, front ist der 1. Knoten while (es gibt noch Knoten auszugeben): Gebe den data Wert des Knotens aus Gehe weiter zum nächsten Knoten via das next Attribut. list

47 Algorithmus Pseudocode Fangen wir am Anfang der Liste an, front ist der 1. Knoten while (es gibt noch Knoten auszugeben): Gebe den data Wert des Knotens aus Gehe weiter zum nächsten Knoten via das next Attribut. list Wie wissen wir ob noch Knoten auszugeben sind? Wir haben einen Verweis auf einen Knoten Nach der Ausgabe des letzten Knotens ist next null.

48 Algorithmus Pseudocode Fangen wir am Anfang der Liste an, front ist der 1. Knoten while (es gibt noch Knoten auszugeben): Gebe den data Wert des Knotens aus Gehe weiter zum nächsten Knoten via das next Attribut. list Wie können wir uns durch die Liste arbeiten? 990 list = list.next; // is this a good idea?

49 Abarbeiten einer Liste? Ein (schlechter) Weg jeden Wert in der Liste auszugeben : while (list!= null) { System.out.println(list.data); list = list.next; // move to next node Was ist das Problem? (Wir verlieren die Liste während wir sie ausgeben) list

50 Eine weitere Referenz: current Wir wollen list nicht verändern. Wir deklarieren eine andere Variable und ändern diese. Eine ListNode Variable ist nicht ein ListNode Objekt sondern eine Referenz (Verweis) auf ein Objekt ListNode current = list; list current

51 Eine weitere Referenz: current ListNode current = list; list current Was passiert wenn wir jetzt diese Anweisung ausführen: current = current.next;

52 Korrektes Durchlaufen einer Liste Der korrekte Weg jeden Wert der Liste auszugeben: ListNode current = list; while (current!= null) { System.out.println(current.data); current = current.next; // move to next node list Das Verändern von current hat keinen Einfluss auf die Liste

53 Eine Klasse LinkedIntList ListNodes sollen nichtvon Klienten direktverändert werden. Also entwickeln wir eine Klasse die die Knoten versteckt: LinkedIntList. LinkedIntList front ListNode ListNode ListNode element 0 element 1 element 2

54 Hat die Methoden: add, add, get, indexof, remove, size, tostring Die Liste ist als Kette von Knoten intern implementiert Das LinkedIntList Objekt enthält eine Referenz auf das erste Element im front null im next Attribut signalisiert Ende der Liste Hat front den Wert null so ist die Liste leer LinkedIntList front add(value) add(index, value) indexof(value) remove(index) size() tostring() ListNode ListNode ListNode element 0 element 1 element 2

55 LinkedIntList Klasse v1 public class LinkedIntList { private ListNode front; public LinkedIntList() { front = null; LinkedIntList front = // methods go here

56 Die add Methode // Adds the given value to the end of the list. public void add(int value) {... Wie wollen wir einen neuen Knoten am Ende hinzufügen? Sind die Werte in der Liste vor diesem Schritt wichtig? front = element 0 element 1 element 2

57 Ein Element n eine leere Liste hinzufügen Bevor 20 hinzugefügt wird: Danach: front = front = 20 element 0 Wir müssen einen Knoten erstellen und an die Liste anhängen.

58 Die add Methode, 1. Versuch // Adds the given value to the end of the list. public void add(int value) { if (front == null) { // adding to an empty list front = new ListNode(value); else { // adding to the end of an existing list...

59 An eine nicht-leere Liste anhängen Bevor 20 am Ende hinzugefügt wird : front = 42-3 element 0 element 1 Danach: front = element 0 element 1 element 2

60 Vorsicht an der Kante! Um ein Element zur Liste hinzuzufügen (oder zu von der Liste zu entfernen) müssen wir das next Attribut des vorherigen Knotens modifizieren. front = 42-3 element 0 element 1

61 Vorsicht an der Kante! Um ein Element zur Liste hinzuzufügen (oder zu von der Liste zu entfernen) müssen wir das next Attribut des vorherigen Knotens modifizieren. front = 42-3 element 0 element 1 Wie durchlaufen wir eine Liste?

62 Vorsicht an der Kante! Um ein Element zur Liste hinzuzufügen (oder zu von der Liste zu entfernen) müssen wir das next Attribut des vorherigen Knotens modifizieren. front = 42-3 element 0 element 1 current = Wie durchlaufen wir eine Liste?

63 Vorsicht an der Kante! Um ein Element zur Liste hinzuzufügen (oder zu von der Liste zu entfernen) müssen wir das next Attribut des vorherigen Knotens modifizieren. front = 42-3 element 0 element 1 current = Wie durchlaufen wir eine Liste? Was für einen Typ muss current haben?

64 Vorsicht an der Kante! Um ein Element zur Liste hinzuzufügen (oder zu von der Liste zu entfernen) müssen wir das next Attribut des vorherigen Knotens modifizieren. front = 42-3 element 0 element 1 current = Wie durchlaufen wir eine Liste? Was für einen Typ muss current haben? ListNode

65 Vorsicht an der Kante! Um ein Element zur Liste hinzuzufügen (oder zu von der Liste zu entfernen) müssen wir das next Attribut des vorherigen Knotens modifizieren. front = 42-3 element 0 element 1 Worauf sollte current verweisen wenn wir 20 am Ende einfügen wollen? Welcher Loop Test lässt uns an dieser Stelle anhalten?

66 Die add Methode // Adds the given value to the end of the list. public void add(int value) { if (front == null) { // adding to an empty list front = new ListNode(value); else { // adding to the end of an existing list ListNode current = front; while (current.next!= null) { current = current.next; current.next = new ListNode(value);

7.0 Arbeiten mit Objekten und Klassen

7.0 Arbeiten mit Objekten und Klassen 252-0027 Einführung in die Programmierung 7.0 Arbeiten mit Objekten und Klassen Thomas R. Gross Department Informatik ETH Zürich Copyright (c) Pearson 2013. and Thomas Gross 2016 All rights reserved. Uebersicht

Mehr

Einführung in die Programmierung. 5.0 Input/Output. Thomas R. Gross. Department Informatik ETH Zürich

Einführung in die Programmierung. 5.0 Input/Output. Thomas R. Gross. Department Informatik ETH Zürich 252-0027 Einführung in die Programmierung 5.0 Input/Output Thomas R. Gross Department Informatik ETH Zürich 1 Übersicht 5.1 Output in Fenster 5.2 Arbeiten mit Dateien 5.3 Scanner im Einsatz/Beispiele 5.4

Mehr

7.0 Arbeiten mit Objekten und Klassen

7.0 Arbeiten mit Objekten und Klassen 252-0027 Einführung in die Programmierung 7.0 Arbeiten mit Objekten und Klassen Thomas R. Gross Department Informatik ETH Zürich Copyright (c) Pearson 2013. and Thomas Gross 2016 All rights reserved. Uebersicht

Mehr

Martin Unold INFORMATIK. Geoinformatik und Vermessung

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

Mehr

Software Entwicklung 1

Software Entwicklung 1 Software Entwicklung 1 Annette Bieniusa / Arnd Poetzsch-Heffter AG Softech FB Informatik TU Kaiserslautern Fallstudie: Lauftagebuch Bieniusa/Poetzsch-Heffter Software Entwicklung 1 2/ 21 Erstellen einer

Mehr

11.0 Systematisches Programmierung

11.0 Systematisches Programmierung 252-0027 Einführung in die Programmierung 11.0 Systematisches Programmierung Thomas R. Gross Department Informatik ETH Zürich Copyright (c) Pearson 2013 and Thomas Gross 2016 All rights reserved. Uebersicht

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 - ! 1. Rekursive Algorithmen! 2. Rekursive (dynamische) Datenstrukturen II.3.2 Rekursive Datenstrukturen - 1 - Ausdruck Ausdruck Grundwert ( Typ ) Präfix-Operator Name Methodenaufruf [ Ausdruck ] ( Ausdruck

Mehr

1. Rekursive Algorithmen 2. Rekursive (dynamische) Datenstrukturen

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

Mehr

Einführung in die Programmierung. 6.0 Objekte. Thomas R. Gross Department Informatik ETH Zürich

Einführung in die Programmierung. 6.0 Objekte. Thomas R. Gross Department Informatik ETH Zürich 252-0027 Einführung in die Programmierung 6.0 Objekte Thomas R. Gross Department Informatik ETH Zürich Copyright (c) Pearson 2013 and Thomas R Gross 2016, 2017 All rights reserved. Uebersicht 6.3 Parameter

Mehr

Beispielprüfung CuP WS 2015/2016

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

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 34 Einstieg in die Informatik mit Java Klassen mit Instanzmethoden Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 34 1 Definition von Klassen 2 Methoden 3 Methoden

Mehr

ALP II Dynamische Datenmengen

ALP 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

Mehr

Einführung in die Programmierung I. 2.4 Felder. Thomas R. Gross. Department Informatik ETH Zürich

Einführung in die Programmierung I. 2.4 Felder. Thomas R. Gross. Department Informatik ETH Zürich 252-0027 Einführung in die Programmierung I 2.4 Felder Thomas R. Gross Department Informatik ETH Zürich Uebersicht 2.4 Felder (Vektoren, "array"s) 2.5 Verschachtelte Schleifen 2.6 "if" Anweisungen 2.7

Mehr

Einfü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. 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

Mehr

Einführung in die Programmierung Systematisches Programmieren. Thomas R. Gross. Department Informatik ETH Zürich

Einführung in die Programmierung Systematisches Programmieren. Thomas R. Gross. Department Informatik ETH Zürich 252-0027 Einführung in die Programmierung 11.0 Systematisches Programmieren Thomas R. Gross Department Informatik ETH Zürich Copyright (c) Pearson 2013 and Thomas Gross 2016 All rights reserved. 1 Übersicht

Mehr

Einführung in die Programmierung I Systematisches Programmieren. Thomas R. Gross. Department Informatik ETH Zürich

Einführung in die Programmierung I Systematisches Programmieren. Thomas R. Gross. Department Informatik ETH Zürich 252-0027 Einführung in die Programmierung I 10.0 Systematisches Programmieren Thomas R. Gross Department Informatik ETH Zürich Copyright (c) Pearson 2013 and Thomas Gross 2016 All rights reserved. Uebersicht

Mehr

Einführung in die Programmierung. 6.0 Objekte. Thomas R. Gross Department Informatik ETH Zürich

Einführung in die Programmierung. 6.0 Objekte. Thomas R. Gross Department Informatik ETH Zürich 252-0027 Einführung in die Programmierung 6.0 Objekte Thomas R. Gross Department Informatik ETH Zürich Copyright (c) Pearson 2013 and Thomas R Gross 2016, 2017 All rights reserved. Die 1. Aufgabe Wir wollen

Mehr

Einführung in die Programmierung. 4.0 Klassen und Objekte. Thomas R. Gross. Department Informatik ETH Zürich

Einführung in die Programmierung. 4.0 Klassen und Objekte. Thomas R. Gross. Department Informatik ETH Zürich 252-0027 Einführung in die Programmierung 4.0 Klassen und Objekte Thomas R. Gross Department Informatik ETH Zürich 1 Klassen und Objekte Objekt ( object ): Ein Gebilde das Zustand ( state ) und Verhalten

Mehr

Institut für Programmierung und Reaktive Systeme. Java 6. Markus Reschke

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

Mehr

Einfü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 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,

Mehr

Software Entwicklung 1

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

Mehr

ALP II Dynamische Datenmengen Datenabstraktion (Teil 2)

ALP 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

Mehr

ADT: Verkettete Listen

ADT: Verkettete Listen ADT: Verkettete Listen Abstrakter typ - Definition public class Bruch int zaehler, nenner; public Bruch(int zaehler, int nenner) this.zaehler = zaehler; this.nenner = nenner; Konstruktor zum Initialisieren

Mehr

Objektorientierte Programmierung und Modellierung

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

Mehr

Informatik II (D-ITET) Informatik II (D-ITET) Übungsstunde 1. Distributed Systems Group, ETH Zürich

Informatik 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

Mehr

Informatik II Übung 5

Informatik 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

Mehr

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 16/17. Kapitel 13. Listen. Listen 1

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 16/17. Kapitel 13. Listen. Listen 1 Kapitel 13 Listen Listen 1 Ziele Implementierungen für Listen kennenlernen Einfach verkettete und doppelt verkettete Listen verstehen Listen-Implementierungen in der Java-Bibliothek kennenlernen Durch

Mehr

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 15/16. Kapitel 12. Listen. Listen 1

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 15/16. Kapitel 12. Listen. Listen 1 Kapitel 12 Listen Listen 1 Ziele Implementierungen für Listen kennenlernen Einfach verkettete und doppelt verkettete Listen verstehen Listen-Implementierungen in der Java-Bibliothek kennenlernen Durch

Mehr

Informatik II - Tutorium 5

Informatik 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

Mehr

ADT: Verkettete Listen

ADT: Verkettete Listen ADT: Verkettete Listen Motivation I public class Bruch{ int zaehler, nenner; public Bruch(int zaehler, int nenner) { this.zaehler= zaehler; this.nenner = nenner; Konstruktor zum Initialisieren der Werte

Mehr

Abgabe: (vor 12 Uhr)

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,

Mehr

Variablenarten. Gerd Bohlender. Institut für Angewandte und Numerische Mathematik. Vorlesung: Einstieg in die Informatik mit Java

Variablenarten. Gerd Bohlender. Institut für Angewandte und Numerische Mathematik. Vorlesung: Einstieg in die Informatik mit Java Variablenarten Gerd Bohlender Institut für Angewandte und Numerische Mathematik Vorlesung: Einstieg in die Informatik mit Java 10.12.07 G. Bohlender (IANM UNI Karlsruhe) OOP und Klassen 10.12.07 1 / 15

Mehr

n 1. Grundzüge der Objektorientierung n 2. Methoden, Unterprogramme und Parameter n 3. Datenabstraktion n 4. Konstruktoren n 5. Vordefinierte Klassen

n 1. Grundzüge der Objektorientierung n 2. Methoden, Unterprogramme und Parameter n 3. Datenabstraktion n 4. Konstruktoren n 5. Vordefinierte Klassen n 1. Grundzüge der Objektorientierung n 2. Methoden, Unterprogramme und Parameter n 3. Datenabstraktion n 4. Konstruktoren n 5. Vordefinierte Klassen II.2.2 Methoden, Unterprogramme und Parameter - 1 -

Mehr

16. Dynamische Datenstrukturen

16. 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

Mehr

ADT: Verkettete Listen

ADT: Verkettete Listen ADT: Verkettete Listen Abstrakter typ - Definition public class Bruch{ int zaehler, nenner; public Bruch(int zaehler, int nenner) { this.zaehler = zaehler; this.nenner = nenner; Konstruktor zum Initialisieren

Mehr

Repetitorium Informatik (Java)

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

Mehr

Martin Unold INFORMATIK. Geoinformatik und Vermessung

Martin Unold INFORMATIK. Geoinformatik und Vermessung Wiederholung Anweisungen durch Methodenaufrufe Ausgabe auf der Konsole System.out.println(...); Benutzereingabe einlesen = scanner.nextdatentyp(); Mathematische Funktionen Math.sqrt( ), Math.sin( ), Math.random(),

Mehr

13. Dynamische Datenstrukturen

13. 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

Mehr

7. Verkettete Strukturen: Listen

7. 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++):

Mehr

Schwerpunkte. Verkettete Listen. Verkettete Listen: 7. Verkettete Strukturen: Listen. Überblick und Grundprinzip. Vergleich: Arrays verkettete Listen

Schwerpunkte. 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

Mehr

1. Grundzüge der Objektorientierung 2. Methoden, Unterprogramme und Parameter 3. Datenabstraktion 4. Konstruktoren 5. Vordefinierte Klassen

1. Grundzüge der Objektorientierung 2. Methoden, Unterprogramme und Parameter 3. Datenabstraktion 4. Konstruktoren 5. Vordefinierte Klassen 1. Grundzüge der Objektorientierung 2. Methoden, Unterprogramme und Parameter 3. Datenabstraktion 4. Konstruktoren 5. Vordefinierte Klassen II.2.2 Methoden, Unterprogramme und Parameter - 1 - 2. Methoden

Mehr

Informatik II (D-ITET) Übungsstunde 5

Informatik 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

Mehr

Einstieg in die Informatik mit Java

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

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 39 Einstieg in die Informatik mit Java Objektorientierte Programmierung und Klassen mit Instanzmethoden Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 39 1 Überblick:

Mehr

Tag 8 Repetitorium Informatik (Java)

Tag 8 Repetitorium Informatik (Java) Tag 8 Repetitorium Informatik (Java) Dozent: Michael Baer Lehrstuhl für Informatik 2 (Programmiersysteme) Friedrich-Alexander-Universität Erlangen-Nürnberg Wintersemester 2017/2018 Informatik-Repetitorium

Mehr

Datenkapselung: public / private

Datenkapselung: public / private 627 18. Klassen Klassen, Memberfunktionen, Konstruktoren, Stapel, verkettete Liste, dynamischer Speicher, Copy-Konstruktor, Zuweisungsoperator, Destruktor, Konzept Dynamischer Datentyp Datenkapselung:

Mehr

a) Für das vorgegebene Programmstück ergibt sich folgendes Referenzgeflecht:

a) Für das vorgegebene Programmstück ergibt sich folgendes Referenzgeflecht: Technische Universität München WS 2011/12 Fakultät für Informatik Übungsblatt 7 Dr. C. Herzog, M. Maalej 05. Dezember 2011 Übungen zu Grundlagen der Programmierung Aufgabe 32 (Lösungsvorschlag) Für die

Mehr

Institut für Informatik

Institut für Informatik Technische Universität München Institut für Informatik Lehrstuhl für Computer Graphik & Visualisierung WS 2010 Praktikum: Grundlagen der Programmierung Lösungsblatt 6 Prof. R. Westermann, A. Lehmann, R.

Mehr

pue13 January 28, 2017

pue13 January 28, 2017 pue13 January 28, 2017 1 Aufgabe 1 (Klammern und Anweisungsblöcke) Wie Sie in der Vorlesung gelernt haben, werden Anweisungsblöcke in Java nicht durch Einrückung, sondern mithilfe von geschweiften Klammern

Mehr

Implementieren von Klassen

Implementieren von Klassen Implementieren von Klassen Felder, Methoden, Konstanten Dr. Beatrice Amrhein Überblick Felder/Mitglieder (Field, Member, Member-Variable) o Modifizierer Konstanten Methoden o Modifizierer 2 Felder und

Mehr

Technische Universität München WiSe 2018/19 Fakultät für Informatik Übungsblatt 6 Dr. Ch. Herzog 26. November 2018

Technische Universität München WiSe 2018/19 Fakultät für Informatik Übungsblatt 6 Dr. Ch. Herzog 26. November 2018 Technische Universität München WiSe 2018/19 Fakultät für Informatik Übungsblatt 6 Dr. Ch. Herzog 26. November 2018 Übungen zu Grundlagen der Programmierung Aufgabe 19 (Lösungsvorschlag) Rekursive Datenstruktur

Mehr

Variablen. int Flugzeug. float. I write code Hund. String. long. Borchers: Programmierung für Alle (Java), WS 06/07 Kapitel

Variablen. int Flugzeug. float. I write code Hund. String. long. Borchers: Programmierung für Alle (Java), WS 06/07 Kapitel 4213 Variablen 17.834 float Flugzeug 36812736294 I write code Hund long String Borchers: Programmierung für Alle (Java), WS 06/07 Kapitel 3 + 4 1 Variablen sind wie Becher. Sie speichern etwas. // Variablen

Mehr

Klassen mit Instanzmethoden

Klassen mit Instanzmethoden Klassen mit Instanzmethoden Gerd Bohlender Institut für Angewandte und Numerische Mathematik Vorlesung: Einstieg in die Informatik mit Java 3.12.07 G. Bohlender (IANM UNI Karlsruhe) OOP und Klassen 3.12.07

Mehr

Methoden. Gerd Bohlender. Einstieg in die Informatik mit Java, Vorlesung vom

Methoden. Gerd Bohlender. Einstieg in die Informatik mit Java, Vorlesung vom Einstieg in die Informatik mit Java, Vorlesung vom 2.5.07 Übersicht 1 2 definition 3 Parameterübergabe, aufruf 4 Referenztypen bei 5 Überladen von 6 Hauptprogrammparameter 7 Rekursion bilden das Analogon

Mehr

Verkettete Datenstrukturen: Listen

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).

Mehr

Lösungshinweise/-vorschläge zum Übungsblatt 8: Software-Entwicklung 1 (WS 2017/18)

Lösungshinweise/-vorschläge zum Übungsblatt 8: Software-Entwicklung 1 (WS 2017/18) Dr. Annette Bieniusa Mathias Weber, M. Sc. Peter Zeller, M. Sc. TU Kaiserslautern Fachbereich Informatik AG Softwaretechnik Lösungshinweise/-vorschläge zum Übungsblatt 8: Software-Entwicklung 1 (WS 2017/18)

Mehr

Informatik II (D-ITET) Übungsstunde 5,

Informatik 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

Mehr

Software Entwicklung 1. Fallstudie: Arithmetische Ausdrücke. Rekursive Klassen. Überblick. Annette Bieniusa / Arnd Poetzsch-Heffter

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

Mehr

Tutoraufgabe 1 (Implementierung eines ADTs):

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

Mehr

Software Entwicklung 1

Software Entwicklung 1 Software Entwicklung 1 Annette Bieniusa AG Softech FB Informatik TU Kaiserslautern Lernziele Verschiedene Listenarten zu implementieren (einfach-/doppelt-verkettet, Array-Listen). Konzept Information Hiding

Mehr

Verkettete Listen. DVG Verkettete Listen 1

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

Mehr

Algorithmen und Programmierung II

Algorithmen und Programmierung II Algorithmen und Programmierung II Vererbung Prof. Dr. Margarita Esponda SS 2012 1 Imperative Grundbestandteile Parameterübergabe String-Klasse Array-Klasse Konzepte objektorientierter Programmierung Vererbung

Mehr

FH D. Objektorientierte Programmierung in Java FH D FH D. Prof. Dr. Ing. André Stuhlsatz. Referenzen. Referenzen

FH D. Objektorientierte Programmierung in Java FH D FH D. Prof. Dr. Ing. André Stuhlsatz. Referenzen. Referenzen 5 Objektorientierte Programmierung in Java Prof. Dr. Ing. André Stuhlsatz Referenzen Beispiel an der einfachen Klasse Walze: public class Walze { int id; public Walze(int id) { this.id = id; Verwenden

Mehr

Vorlesung Informatik 2 Algorithmen und Datenstrukturen

Vorlesung 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

Mehr

// Objekt-Methoden: public void insert(int x) { next = new List(x,next); } public void delete() { if (next!= null) next = next.next; } public String

// Objekt-Methoden: public void insert(int x) { next = new List(x,next); } public void delete() { if (next!= null) next = next.next; } public String // Objekt-Methoden: public void insert(int x) { next = new List(x,next); } public void delete() { if (next!= null) next = next.next; } public String tostring() { String result = "["+info; for(list t=next;

Mehr

6 Speicherorganisation

6 Speicherorganisation 6 Speicherorganisation Der Speicher des Programms ist in verschiedene Speicherbereiche untergliedert Speicherbereiche, die den eigentlichen Programmcode und den Code der Laufzeitbibliothek enthalten; einen

Mehr

Datenstrukturen sind neben Algorithmen weitere wichtige Bausteine in der Informatik

Datenstrukturen sind neben Algorithmen weitere wichtige Bausteine in der Informatik 5. Datenstrukturen Motivation Datenstrukturen sind neben Algorithmen weitere wichtige Bausteine in der Informatik Eine Datenstruktur speichert gegebene Daten und stellt auf diesen bestimmte Operationen

Mehr

Übungsblatt 13. Abgabe / Besprechung in Absprache mit dem Tutor

Ü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

Mehr

class ListElement { int value; ListElement next; ListElement() { next=null; value=0;

class ListElement { int value; ListElement next; ListElement() { next=null; value=0; Listenimplementierung Übung 1, Aufgabe 4. c 2004 Evgeny Matusov, Thomas Deselaers Zunächst definieren wir die Basisklasse für die Listenelemente, die gleichzeitig einen Verweis auf weitere Listenelemente

Mehr

Software Entwicklung 1

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

Mehr

Einstieg in die Informatik mit Java

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

Mehr

TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK

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 SS 2011 Einführung in die rmatik I Übungsblatt 8 Prof. Dr. Helmut Seidl, A. Lehmann, A. Herz, Dr.

Mehr

Schlussendlich geben wir die Listen aus. Es kommt zu folgender Ausgabe:

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 -

Mehr

Informatik II Übung 5

Informatik 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

Mehr

Heap vs. Stack vs. statisch. 6 Speicherorganisation. Beispiel Statische Variablen. Statische Variablen

Heap vs. Stack vs. statisch. 6 Speicherorganisation. Beispiel Statische Variablen. Statische Variablen Heap vs. vs. statisch Der Speicher des Programms ist in verschiedene Speicherbereiche untergliedert Speicherbereiche, die den eigentlichen Programmcode und den Code der Laufzeitbibliothek enthalten; einen

Mehr

II. Grundlagen der Programmierung. Beispiel: Merge Sort. Beispiel: Merge Sort (Forts. ) Beispiel: Merge Sort (Forts. )

II. Grundlagen der Programmierung. Beispiel: Merge Sort. Beispiel: Merge Sort (Forts. ) Beispiel: Merge Sort (Forts. ) Technische Informatik für Ingenieure (TIfI) WS 2006/2007, Vorlesung 9 II. Grundlagen der Programmierung Ekkart Kindler Funktionen und Prozeduren Rekursion Datenstrukturen Merge S ( split, s, merge ) Beispiel:

Mehr

Informatik II Übung, Woche 14

Informatik 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

Dynamische Datentypen. Destruktor, Copy-Konstruktor, Zuweisungsoperator, Dynamischer Datentyp, Vektoren

Dynamische 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

Mehr

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 15/16. Kapitel 13. Bäume. Bäume 1

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 15/16. Kapitel 13. Bäume. Bäume 1 Kapitel 13 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

Mehr

Heap vs. Stack vs. statisch. 6 Speicherorganisation. Beispiel Statische Variablen. Statische Variablen

Heap vs. Stack vs. statisch. 6 Speicherorganisation. Beispiel Statische Variablen. Statische Variablen Heap vs. vs. statisch Der Speicher des Programms ist in verschiedene Speicherbereiche untergliedert Speicherbereiche, die den eigentlichen Programmcode und den Code der Laufzeitbibliothek enthalten; einen

Mehr

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 16/17. Kapitel 14. Bäume. Bäume 1

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

Mehr

Rechtsbelehrung. Java und OOP Das Buch Christian Silberbauer 144

Rechtsbelehrung. Java und OOP Das Buch Christian Silberbauer   144 Rechtsbelehrung Dieser Foliensatz ist urheberrechtlich geschützt. Änderungen an den Folien sind untersagt. Ausschließlich eine nicht-kommerzielle Nutzung ist kostenfrei. Andernfalls wird eine Gebühr fällig.

Mehr

1. Grundzüge der Objektorientierung 2. Methoden, Unterprogramme und Parameter 3. Datenabstraktion 4. Konstruktoren 5. Vordefinierte Klassen

1. Grundzüge der Objektorientierung 2. Methoden, Unterprogramme und Parameter 3. Datenabstraktion 4. Konstruktoren 5. Vordefinierte Klassen 1. Grundzüge der Objektorientierung 2. Methoden, Unterprogramme und Parameter 3. Datenabstraktion 4. Konstruktoren 5. Vordefinierte Klassen II.2.2 Methoden, Unterprogramme und Parameter - 1 - 2. Methoden

Mehr

Basispruefung Herbst 2016/ Einführung in die Programmierung

Basispruefung Herbst 2016/ Einführung in die Programmierung Basispruefung Herbst 2016/17 0027 Einführung in die Programmierung Departement Informatik ETH Zürich Nachname: Vorname: Stud.number: Mit Ihrer Unterschrift bestätigen Sie, dass Sie folgenden Hinweise zur

Mehr

EINFÜHRUNG IN DIE PROGRAMMIERUNG

EINFÜHRUNG IN DIE PROGRAMMIERUNG EINFÜHRUNG IN DIE PROGRAMMIERUNG OBJEKTORIENTIERTES PROGRAMMIEREN Tobias Witt 25.03.2014 09:00-10:30 Täglich Übungen zur Vertiefung Laptop hier nicht erforderlich Linux, OS X Freitag: http://hhu-fscs.de/linux-install-party/

Mehr

Einführung in die Programmierung I. 1.0 EBNF 2.0 Einfache Java Programme. Thomas R. Gross. Department Informatik ETH Zürich

Einführung in die Programmierung I. 1.0 EBNF 2.0 Einfache Java Programme. Thomas R. Gross. Department Informatik ETH Zürich 252-0027 Einführung in die Programmierung I 1.0 EBNF 2.0 Einfache Java Programme Thomas R. Gross Department Informatik ETH Zürich Graphische Darstellung von EBNF Regeln Syntax Graph: graphische Darstellung

Mehr

Überblick. Rekursive Methoden. Backtracking. Memorization. Einfache rekursive Datenstrukturen. Aufzählen, Untermengen, Permutationen, Bitmengen

Überblick. Rekursive Methoden. Backtracking. Memorization. Einfache rekursive Datenstrukturen. Aufzählen, Untermengen, Permutationen, Bitmengen Überblick 2 Rekursive Methoden Backtracking Memorization Bäume Aufzählen, Untermengen, Permutationen, Bitmengen Memorization Nochmals Fibonacci-Zahlen int fibo(int n) { if(n == 0) { return 0; else if(n

Mehr

3. Übungsbesprechung Programmkonstruktion

3. Ü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

Mehr

Kapselung und Datenstruktur Liste Software Entwicklung 1

Kapselung und Datenstruktur Liste Software Entwicklung 1 Kapselung und Datenstruktur Liste Software Entwicklung 1 Annette Bieniusa, Mathias Weber, Peter Zeller 1 Kapselung und Strukturieren von Klassen Objekte stellen eine bestimmte Funktionalität bzw. Dienste

Mehr

Geoinformatik und Vermessung Prüfung 502 : Informatik (JAVA)

Geoinformatik und Vermessung Prüfung 502 : Informatik (JAVA) Geoinformatik und Vermessung Prüfung 502 : Informatik (JAVA) Ergebnisse teilgenommen: 73 nicht bestanden: 22 bestanden: 51 davon 4er: 12 davon 3er: 18 davon 2er: 15 davon 1er: 6 Aufgabe 1: Tracing 4 Punkte

Mehr

Software Entwicklung 1

Software Entwicklung 1 Software Entwicklung 1 Annette Bieniusa / Arnd Poetzsch-Heffter AG Softech FB Informatik TU Kaiserslautern Überblick Parametrisierte Datentypen mit Java Generics Java Collections Framework Parametrisierte

Mehr

Einführung Sprachfeatures Hinweise, Tipps und Styleguide Informationen. Einführung in C. Patrick Schulz

Einführung Sprachfeatures Hinweise, Tipps und Styleguide Informationen. Einführung in C. Patrick Schulz Patrick Schulz patrick.schulz@paec-media.de 29.04.2013 1 Einführung Einführung 2 3 4 Quellen 1 Einführung Einführung 2 3 4 Quellen Hello World in Java Einführung 1 public class hello_ world 2 { 3 public

Mehr

Konstruktor/Destruktor

Konstruktor/Destruktor 1/23 Konstruktor/Destruktor Florian Adamsky, B. Sc. (PhD cand.) florian.adamsky@iem.thm.de http://florian.adamsky.it/ cbd Softwareentwicklung im WS 2014/15 2/23 Outline 1 2 3/23 Inhaltsverzeichnis 1 2

Mehr

Algorithmen und Programmierung III

Algorithmen 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

Mehr