3.4 Strukturierte Datentypen

Größe: px
Ab Seite anzeigen:

Download "3.4 Strukturierte Datentypen"

Transkript

1 3.4 Strukturierte Datentypen Strukturen: Die Daten sind häufig nicht ein einzelner atomarer Wert (Zahl, Boolean, Symbol), sondern eine höhere Einheit mit vielen Eigenschaften. Jeder Eintrag einer Datenbank enthält fast immer mehrere einzelne Felder (atomare Werte). Beispiel: CD: Titel, Interpreter, Label, Jahr, Preis Person: Vor-, Nachname, Jahrgang, Strasse, PLZ, Ort, Telefon-Nr. Punkt im n-dimensionalen Raum: n Koordinaten (reelle Zahlen) Wir brauchen Mechanismen, um alle einzelnen Felder einer höheren Dateneinheit zusammenzufassen und als Ganzes anzusprechen 65

2 3.4 Strukturierte Datentypen Definition einer Struktur: (define-struct s (field1 field2 fieldn)) s: Bezeichnung der Struktur n: Anzahl der Felder (Eigenschaften) fieldi: das i-te Feld Beispiel: (define-struct CD (Titel Interpreter Label Jahr Preis)) (define-struct point3 (x1 x2 x3)) 66

3 3.4 Strukturierte Datentypen (define-struct point3 (x1 x2 x3)) Jede define-struct Definition erzeugt eine Reihe von Prozeduren: Eine Konstruktor-Prozedur make-s die n Argumente bekommt und einen neuen Struktur-Wert zurückliefert. Bsp. (define p (make-point )) erzeugt einen neuen Punkt (2,3,1) Eine Prädikat-Prozedur s? die true zurückliefert für einen Wert, der durch make-s erzeugt wurde und false für jeden anderen Wert. Bsp. (point3? p) true s-field Für jedes Feld einen Selektor, der eine Struktur als Argument bekommt und den Wert des Feldes extrahiert. Bsp. (point3-x1 p) 2 67

4 3.4 Strukturierte Datentypen Beispiel: (define-struct point3 (x1 x2 x3)) Die obige Definition erzeugt die folgenden Prozeduren: Konstruktor-Prozedur: make-point3 Prädikat-Prozedur: point3? Selektoren: (point3-x1 p) (point3-x2 p) (point3-x3 p) 68

5 3.4 Strukturierte Datentypen Beispiel: Skalieren eines Punktes p mit Faktor scale (define-struct point3 (x1 x2 x3)) (define (point3-scaling p scale) (make-point3 (* (point3-x1 p) scale) (* (point3-x2 p) scale) (* (point3-x3 p) scale))) > (define p (make-point )) > (define q (point3-scaling p 2.5)) > q (make-point ) > (point3-x1 q) 5 > (point3-x2 q) 7.5 > (point3-x3 q)

6 3.4 Strukturierte Datentypen Definition von Daten: > (define p (make-point3 'a 'b 'c)) > (point3-scaling p 2.5) *: expects type <number> as 1st argument, given: 'a; other arguments were: 2.5 Zur Vermeidung derartiger Laufzeitfehler ist es hilfreich, die Felder einer Struktur genau zu spezifizieren (define-struct point3 (x1 x2 x3)) ;; x1, x2, x2: reele Zahlen 70

7 3.4.1 Design von Prozeduren für strukturierte Datentypen Wann brauchen wir Strukturen? Immer dann, wenn die Beschreibung eines Objekts aus mehreren Informationen besteht Verfeinerung des Designprozesses: Verstehen, was der Zweck des Programms ist Programmbeispiele ausdenken Den Programmkörper implementieren Testen Datenanalyse: Problembeschreibung durchsuchen nach relevanten Objekten; alle relevanten Eigenschaften eines Objektes spezifizieren und entsprechende Strukturen anlegen Implementierung des Programmkörpers: Benutzung der Selektor- Ausdrücke 71

8 3.4.1 Design von Prozeduren für strukturierte Datentypen Beispiel: Skalierung von 2D-Punkten ;; Datenanalyse & -definitionen ;; (define-struct posn (x y)) ;; posn: vordefinierte Struktur im Teachpack draw.ss von DrScheme ;; (Sprache Teachpack hinzufügen) ;; Vertrag: posn-scaling :: posn number number posn ;; Zweck: einen Punkt mit unterschiedlichen Faktoren skalieren ;; Beispiele ;; (posn-scaling (make-posn 2 3) ) = (make-posn 5 7.5) ;; (posn-scaling (make-posn 2 3) 2.5 3) = (make-posn 5 9) 72

9 3.4.1 Design von Prozeduren für strukturierte Datentypen ;; Template ;; (define (posn-scaling p sx sy)...) ;; Programmkörper implementieren (define (posn-scaling p sx sy) (make-posn (* (posn-x p) sx) (* (posn-y p) sy))) ;; Testen > (posn-scaling (make-posn 2 3) ) (make-posn 5 7.5) > (posn-scaling (make-posn 2 3) 2.5 3) (make-posn 5 9) 73

10 3.4.1 Design von Prozeduren für strukturierte Datentypen 74

11 3.4.2 Datenabstraktion Wir haben für Prozeduren primitive Ausdrücke (+, -, and, or, ) Kombinationsmittel (Prozedurdefinition) Abstraktionsmittel (prozedurale Abstraktion) Das ähnliche Prinzip besteht auch für Daten: primitive Daten (Zahlen, Boolean, Symbole) zusammengesetzte Daten (z.b. Strukturen) Datenabstraktion 75

12 3.4.2 Datenabstraktion Warum brauchen wir Datenabstraktion? Beispiel: Implementierung von Operationen an 2D-Punkten (Skalierung, Translation, Rotation): Punkte bestehen aus zwei Koordinaten Jede Operation liefert zwei Ergebnisse Eine Prozedur kann aber nur einen Wert zurückgeben Wir brauchen zwei Prozeduren: Eine gibt die resultierende x- Koordinate, die andere die y-koordinate zurück Wir müssten uns merken, welche x-koordinate zu welcher y- Koordinate gehört Datenabstraktion ist eine Methode, die mehrere Objekteigenschaften kombiniert darstellt, so dass sie als eine Einheit gehandhabt werden können 76

13 3.4.2 Datenabstraktion Die neuen Datenobjekte sind abstrakte Daten: Sie werden ohne Kenntnisse über ihre Implementierung benutzt Die Schnittstelle zwischen Benutzer und Implementation sind die Prozeduren Konstruktoren und Selektoren Datenabstraktion hilft das konzeptuelle Level zu erhöhen, auf dem wir Programme entwerfen die Modularität der Designs zu erhöhen die Lesbarkeit/Warbarkeit der Programme zu verbessern 77

14 3.4.2 Datenabstraktion Beispiel: Operationen an 2D-Punkten (Skalierung, Translation, Rotation) Y (x,y ) (x,y) X 78

15 3.4.2 Datenabstraktion ;; Skalierung mit Faktor sx, sy (define (posn-scaling p sx sy) (make-posn (* (posn-x p) sx) (* (posn-y p) sy))) ;; Translation um (dx,dy) (define (posn-translation p dx dy) (make-posn (+ (posn-x p) dx) (+ (posn-y p) dy))) ;; Winkel von Grad in Radiant umwandeln (define (d-to-r angle) (/ (* angle pi) 180.0)) ;; Rotation mit Winkel theta (define (posn-rotation p theta) (make-posn (- (* (posn-x p) (cos theta)) (* (posn-y p) (sin theta))) (+ (* (posn-x p) (sin theta)) (* (posn-y p) (cos theta))))) 79

16 3.4.2 Datenabstraktion > (define p (make-posn 50 50)) > (posn-scaling p ) (make-posn 25 25) > (posn-scaling p ) (make-posn 75 75) > (posn-translation p ) (make-posn 25 40) > (posn-translation p 25 10) (make-posn 75 60) > (posn-rotation p (d-to-r 5)) (make-posn #i #i ) > (posn-rotation p (d-to-r -5)) (make-posn #i #i ) ;; #i: Hinweis auf approximative Ergebniszahl 80

17 Exkurs: Grafik in DrScheme Teachpack draw.ss bietet folgende einfache Grafik-Funktionen: (start width height): Öffnen einer Zeichenfläche (stop): Schließen der Zeichenfläche (draw-solid-line posn posn color): Gerade mit Farbe color (draw-solid-disk posn radius color) (draw-circle posn radius color) (draw-solid-rect posn width height color): Rechteck mit Ecke posn (links oben) Operatoren zum Lösen von grafischen elementen: clear-solid-line, clear-solid-disk, clear-circle, clear-solid-rect 81

18 Exkurs: Grafik in DrScheme (define (draw-point p size color) (draw-solid-disk p size color)) (start ) (define p (make-posn 50 50)) (draw-point p 5 'red) (draw-point (posn-scaling p ) 3 'red) (draw-point (posn-scaling p ) 3 'red) (draw-point (posn-scaling p ) 3 'red) (draw-point (posn-translation p 20 10) 3 'green) (draw-point (posn-translation p 40 20) 3 'green) (draw-point (posn-translation p 60 30) 3 'green) (draw-point (posn-rotation p (d-to-r 20)) 3 'yellow) (draw-point (posn-rotation p (d-to-r 40)) 3 'yellow) (draw-point (posn-rotation p (d-to-r -20)) 3 'yellow) (draw-point (posn-rotation p (d-to-r -40)) 3 'yellow) 82

19 Exkurs: Grafik in DrScheme Beispiel: ;; dimensions of traffic light (define WIDTH 50) (define HEIGHT 160) (define BULB-RADIUS 20) (define BULB-DISTANCE 10) ;; positions of the bulbs (define X-BULBS (quotient WIDTH 2)) (define Y-RED (+ BULB-DISTANCE BULB-RADIUS)) (define Y-YELLOW (+ Y-RED BULB-DISTANCE (* 2 BULB-RADIUS))) (define Y-GREEN (+ Y-YELLOW BULB-DISTANCE (* 2 BULB-RADIUS))) ;; draw the light with the red bulb turned on (start WIDTH HEIGHT) (draw-solid-disk (make-posn X-BULBS Y-RED) BULB-RADIUS 'red) (draw-circle (make-posn X-BULBS Y-YELLOW) BULB-RADIUS 'yellow) (draw-circle (make-posn X-BULBS Y-GREEN) BULB-RADIUS 'green) 83

20 3.4.2 Datenabstraktion Programme sind als Schichten von Spracherweiterungen (hinsichtlich der Daten und Prozeduren) aufgebaut Jede Schicht ist eine Abstraktionsebene Jede Abstraktionsebene versteckt Implementierungsdetails In unserem Beispiel gibt es drei Ebenen für die Abstraktion: Anwendungen von Punkten Punkte im Problembereich posn-scaling, posn-translation, posn-rotation make-posn, posn? Operationen an Punkten 2D-Punkte als Struktur 84

21 3.4.2 Datenabstraktion Unterste Ebene: Ebene der Punkte als Datenobjekte Prozeduren make-posn und posn? auf dieser Ebene definiert Die tatsächliche Implementierung der Punkte wird versteckt Mittlere Ebene: Ebene der Dienst-Prozeduren für Punkte Prozeduren posn-scaling, posn-translation, posn-rotation auf dieser Ebene definiert Implementierung dieser Prozeduren wird versteckt Oberste Ebene: Programmebene Punkte und deren Operationen werden in Berechnungen verwendet 85

22 3.4.2 Datenabstraktion Beispiel: Rationale Zahlen und die Operationen (define-struct rat (Z N)) Die obige Definition erzeugt die folgenden Prozeduren: Konstruktor-Prozedur: make-rat Prädikat-Prozedur: rat? Selektoren: (rat-z x) (rat-n x) 86

23 3.4.2 Datenabstraktion Multiplikation von x = z x / n x und y = z y / n y : z x / n x * z y / n y = (z x * z y ) / (n x * n y ) ;; rat-mult :: rat rat rat (define (rat-mult x y) (make-rat (* (rat-z x) (rat-z y)) (* (rat-n x) (rat-n y)))) Addition von x = z x / n x und y = z y / n y : z x / n x + z y / n y = (z x * n y +n x * z y ) / (n x * n y ) ;; rat-add :: rat rat rat (define (rat-add x y) (make-rat (+ (* (rat-z x) (rat-n y)) (* (rat-n x) (rat-z y))) (* (rat-n x) (rat-n y)))) 87

24 3.4.2 Datenabstraktion Subtraktion und Division werden ähnlich wie Addition und Multiplikation implementiert Gleichheit von x = z x / n x und y = z y / n y : z x / n x = z y / n y genau dann, wenn z x * n y = n x * z y ;; rat-equal? :: rat rat boolean (define (rat-equal? x y) (= (* (rat-z x) (rat-n y)) (* (rat-n x) (rat-z y)))) 88

25 3.4.2 Datenabstraktion Ausgabeoperation für rationale Zahlen ;; rat-print :: rat String (define (rat-print x) (string-append (number->string (rat-z x)) "/" (number->string (rat-n x)))) Das erstes Beispiel mit String-Operationen. string-append setzt mehrere Strings zusammen. number->string wandelt eine Zahl in einen String um. 89

26 3.4.2 Datenabstraktion > (define p (make-rat 2 5)) > (rat-print p) "2/5" > (define q (make-rat 3 4)) > (rat-print (rat-mult p q)) "6/20" > (rat-print (rat-add p q)) "23/20" 90

27 3.5 Mit unterschiedlichen Datentypen umgehen Bis jetzt gehen unsere Prozeduren bei jedem Parameter immer von einem bestimmten Typ von Daten aus Zahlen Booleans Symbole Struktur Häufig möchten wir jedoch, dass für denselben Parameter unterschiedliche Arten von Daten übergeben werden Außerdem müssen wir lernen, wie man Prozeduren vor falscher Benutzung schützt 91

28 3.5 Mit unterschiedlichen Datentypen umgehen Beispiel: Die Operationen für rationale Zahlen sollen auch ganze Zahlen als Eingabe haben. Prozedurkörper mit cond-ausdruck, der nach Typ unterscheidet. (define (rat-mult-2 x y) (cond [(and (rat? x) (rat? y)) (rat-mult x y)] [(and (rat? x) (not (rat? y))) (rat-mult x (make-rat y 1))] [(and (not (rat? x)) (rat? y)) (rat-mult (make-rat x 1) y)] [else (rat-mult (make-rat x 1) (make-rat y 1))])) Andere Operationen können ähnlich formuliert werden 92

29 3.5 Mit unterschiedlichen Datentypen umgehen > (define p (make-rat 2 3)) > (define q (make-rat 4 5)) > (rat-print (rat-mult-2 p q)) "8/15" > (rat-print (rat-mult-2 p 5)) "10/3" > (rat-print (rat-mult-2 5 p)) "10/3" > (rat-print (rat-mult-2 2 5)) "10/1" 93

30 3.5 Mit unterschiedlichen Datentypen umgehen Beispiel: Überprüfung der Parameterwerte (define (area-of-disk r) (* pi (* r r))) > (area-of-disk 'a) *: expects type <number> as 1st argument, given: 'a; other arguments were: 'a (define (checked-area-of-disk r) (cond [(number? r) (area-of-disk r)] [else (error 'checked-area-of-disk "number expected")])) > (checked-area-of-disk 'a) checked-area-of-disk: number expected 94

zu große Programme (Bildschirmseite!) zerlegen in (weitgehend) unabhängige Einheiten: Unterprogramme

zu große Programme (Bildschirmseite!) zerlegen in (weitgehend) unabhängige Einheiten: Unterprogramme Bisher Datentypen: einfach Zahlen, Wahrheitswerte, Zeichenketten zusammengesetzt Arrays (Felder) zur Verwaltung mehrerer zusammengehörender Daten desselben Datentypes eindimensional, mehrdimensional, Array-Grenzen

Mehr

zu große Programme (Bildschirmseite!) zerlegen in (weitgehend) unabhängige Einheiten: Unterprogramme

zu große Programme (Bildschirmseite!) zerlegen in (weitgehend) unabhängige Einheiten: Unterprogramme Bisher Datentypen: einfach Zahlen, Wahrheitswerte, Zeichenketten zusammengesetzt Arrays (Felder) zur Verwaltung mehrerer zusammengehörender Daten desselben Datentypes eindimensional, mehrdimensional, Array-Grenzen

Mehr

13 Abstrakte Datentypen

13 Abstrakte Datentypen 13 Abstrakte Datentypen Bisher: Konkrete Datentypen Menge von Elementen Operationen auf den Elementen (Konstruktoren, Selektoren, Typprädikate) Eigenschaften abgeleitet Jetzt: Abstrakte Datentypen (ADT)

Mehr

Objektorientierte Programmierung

Objektorientierte Programmierung Unterlagen zur Veranstaltung Einführung in die Objektorientierte Programmierung Mit Processing Alexis Engelke Sommer 2012 Alexis Engelke Inhalt Level 1: Geometrie Hintergrundfarben Punkte, Linien und deren

Mehr

10 Abstrakte Datentypen

10 Abstrakte Datentypen 10 Abstrakte Datentypen abstrakte Datentypen generische Implementierung datengesteuerte Programmierung Operationstabelle 10.1 Abstrakte Datentypen Bisher: Konkrete Datentypen Menge von Elementen Operationen

Mehr

Bisher. Programme, Sequenzen von Formen. Ausdrücke und ihre Auswertung (Substitutionsmodell)

Bisher. Programme, Sequenzen von Formen. Ausdrücke und ihre Auswertung (Substitutionsmodell) Bisher Programme, Sequenzen von Formen Ausdrücke und ihre Auswertung (Substitutionsmodell) Konstruktionsanleitung für Prozeduren Kurzbeschreibung Sorten und Verträge Gerüst Testfälle Rumpf ausfüllen Testen

Mehr

1 Erste Schritte in Scheme

1 Erste Schritte in Scheme 1 Erste Schritte in Scheme Die Programmiersprache Scheme geboren 1975 Eltern: Gerald Jay Sussman and Guy Lewis Steele Jr. Ort: Massachusetts Institute of Technology aktuelle Beschreibung: R6RS (September

Mehr

26 Hierarchisch strukturierte Daten

26 Hierarchisch strukturierte Daten Algorithmik II Peter Wilke Sommersemester 2005 Teil III Funktionale Programmierung 26 Hierarchisch strukturierte Daten Peter Wilke Algorithmik II Sommersemester 2005 1 Peter Wilke Algorithmik II Sommersemester

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.3 Datenabstraktion - 1 - Selektoren public class Rechteck

Mehr

Bisher. Programme. Ausdrücke und ihre Auswertung (Substitutionsmodell)

Bisher. Programme. Ausdrücke und ihre Auswertung (Substitutionsmodell) Bisher Programme Ausdrücke und ihre Auswertung (Substitutionsmodell) Konstruktionsanleitung für Prozeduren Kurzbeschreibung Sorten und Verträge Gerüst Testfälle Rumpf ausfüllen Testen 2.21 Erinnerung:

Mehr

PROCESSING EINE ZUSAMMENFASSUNG. Created by Michael Kirsch & Beat Rossmy

PROCESSING EINE ZUSAMMENFASSUNG. Created by Michael Kirsch & Beat Rossmy PROCESSING EINE ZUSAMMENFASSUNG Created by Michael Kirsch & Beat Rossmy INHALT 1. Typen und Operatoren 1. Datentypen 3. Klassen und Objekte 1. Klassen und Objekte 2. Operatoren 2. Konstruktor 3. Typkonversion

Mehr

Probeklausur: Programmierung WS04/05

Probeklausur: Programmierung WS04/05 Probeklausur: Programmierung WS04/05 Name: Hinweise zur Bearbeitung Nimm Dir für diese Klausur ausreichend Zeit, und sorge dafür, dass Du nicht gestört wirst. Die Klausur ist für 90 Minuten angesetzt,

Mehr

Datentypen. Agenda für heute, 4. März, 2010. Pascal ist eine streng typisierte Programmiersprache

Datentypen. Agenda für heute, 4. März, 2010. Pascal ist eine streng typisierte Programmiersprache Agenda für heute, 4. März, 2010 Zusammengesetzte if-then-else-anweisungen Datentypen Pascal ist eine streng typisierte Programmiersprache Für jeden Speicherplatz muss ein Datentyp t (Datenformat) t) definiert

Mehr

Übungsblatt 3. Julia Wolters 1-Fach Bachelor Informatik

Übungsblatt 3. Julia Wolters 1-Fach Bachelor Informatik 1-Fach Bachelor Informatik Aufgabe erhaltene Punkte mögliche Punkte 10 9 10 11 11 10 12 4 10 Korrektur vorhanden! :) 13 7 10 31 40 Abgabe: 10. 11. 2008 Donnerstag, 08 10 Uhr 2 10. Anzahl der Nullstellen

Mehr

Musterübung 09: Vererbung und Dynamische Bindung

Musterübung 09: Vererbung und Dynamische Bindung Musterübung 09: Vererbung und Dynamische Bindung Abgabetermin: TT.MM.JJJJ Name: Matrikelnummer: Gruppe: G1 (Prähofer) G2 (Prähofer) G3 (Hofer) G4 (Angerer) Aufgabe Punkte gelöst abzugeben schriftlich abzugeben

Mehr

Modul 122 VBA Scribt.docx

Modul 122 VBA Scribt.docx Modul 122 VBA-Scribt 1/5 1 Entwicklungsumgebung - ALT + F11 VBA-Entwicklungsumgebung öffnen 2 Prozeduren (Sub-Prozeduren) Eine Prozedur besteht aus folgenden Bestandteilen: [Private Public] Sub subname([byval

Mehr

8 Grafik & Rekursion. 8.1 Übersicht. Grundsätzlich können zwei Aufgaben gestellt werden:

8 Grafik & Rekursion. 8.1 Übersicht. Grundsätzlich können zwei Aufgaben gestellt werden: Abb. 63: Ein Bild sagt mehr als tausend Worte das gilt insbesondere beim Entdecken rekursiver Muster und deren funktionaler Modellierung 8.1 Übersicht Grundsätzlich können zwei Aufgaben gestellt werden:

Mehr

Übung 09: Vererbung und Dynamische Bindung

Übung 09: Vererbung und Dynamische Bindung Übung 09: Vererbung und Dynamische Bindung Abgabetermin: TT.MM.JJJJ Name: Matrikelnummer: Gruppe: G1 (Prähofer) G2 (Prähofer) G3 (Wolfinger) G4 (Wolfinger) Aufgabe Punkte gelöst abzugeben schriftlich abzugeben

Mehr

Daten mit Typetikett Abstrakter Datentyp (ADT) 4-Stufen-Modell Generische Operationen Datengesteuerte Programmierung.

Daten mit Typetikett Abstrakter Datentyp (ADT) 4-Stufen-Modell Generische Operationen Datengesteuerte Programmierung. Datenabstraktion Prof. Dr. Christian Wagenknecht Prof. Dr. Christian Wagenknecht Datenabstraktion 1 von 36 Daten mit Typetikett Programmiersprachen mit Deklarationszwang von Variablen Schlüsselworte, wie

Mehr

Letztes Mal. static int ggt(int a, int b) { if (a == b) return a; else if (a > b) return ggt(a-b,b); else if (a < b) return ggt(a,b-a);

Letztes Mal. static int ggt(int a, int b) { if (a == b) return a; else if (a > b) return ggt(a-b,b); else if (a < b) return ggt(a,b-a); Letztes Mal static int ggt(int a, int b) { if (a == b) return a; else if (a > b) } return ggt(a-b,b); else if (a < b) return ggt(a,b-a); Darf hier nicht stehen! Compiler sagt: Missing return statement

Mehr

3.3 Entwurf von Datentypen

3.3 Entwurf von Datentypen 3.3 Entwurf von Datentypen Durch das Erzeugen von Datentypen entwickelt der Programmierer eine eigene Sprache, mit der über die Daten gesprochen werden kann. Deshalb muss man beim Entwickeln einer Idee

Mehr

Diskrete Modellierung

Diskrete Modellierung Diskrete Modellierung Wintersemester 2016/17 Martin Mundhenk Uni Jena, Institut für Informatik 24. Oktober 2016 3.2 Erzeugen von Datentypen Der Datentyp Charge Charge ist eine Datentyp für geladene Teilchen

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.3 Datenabstraktion - 1 - public class Rechteck

Mehr

17 Interpretation. Scheme-Programme als Datenstruktur. Interpretation von Ausdrücken. Interpretation von Lambda. Lambda als Datenstruktur

17 Interpretation. Scheme-Programme als Datenstruktur. Interpretation von Ausdrücken. Interpretation von Lambda. Lambda als Datenstruktur 17 Interpretation Scheme-Programme als Datenstruktur Interpretation von Ausdrücken Interpretation von Lambda Lambda als Datenstruktur Toplevel Definitionen set! 17.1 Programme als Datenstruktur 17.1.1

Mehr

pue08 December 9, 2016

pue08 December 9, 2016 pue08 December 9, 2016 1 Aufgabe 1: Ein einfaches Zeichenprogramm 1.1 a) Erstellen Sie eine Klasse Square mit den folgenden Eigenschaften: Objektvariablen: - width: Seitenlänge (default: 0) - color: Füllfarbe

Mehr

Objektorientierung. Klassen und Objekte. Dr. Beatrice Amrhein

Objektorientierung. Klassen und Objekte. Dr. Beatrice Amrhein Objektorientierung Klassen und Objekte Dr. Beatrice Amrhein Überblick Konzepte der Objektorientierten Programmierung Klassen und Objekte o Implementierung von Klassen o Verwendung von Objekten 2 Konzepte

Mehr

Geheimnisprinzip: (information hiding principle, Parnas 1972)

Geheimnisprinzip: (information hiding principle, Parnas 1972) 2. Abstrakte Datentypen 2.0 Begriffe Geheimnisprinzip: (information hiding principle, Parnas 1972) Zugriffe auf Teile einer Programmeinheit, die für die reguläre Benutzung nicht erforderlich sind, sollten

Mehr

14. Java Objektorientierung. Klassen, Vererbung, Kapselung

14. Java Objektorientierung. Klassen, Vererbung, Kapselung 427 14. Java Objektorientierung Klassen, Vererbung, Kapselung Objektorientierung: Verschiedene Aspekte 428 Daten Typhierarchie Objekte Code Vererbung Unter- und Oberklassen Methoden überschreiben Unterklassen

Mehr

Languages and Tools for Object-Oriented Development Klausur Wintersemester 2007/2008

Languages and Tools for Object-Oriented Development Klausur Wintersemester 2007/2008 Languages and Tools for Object-Oriented Development Klausur Wintersemester 2007/2008 27. Februar 2008 Institut für Softwaresysteme, TUHH Regeln: 1. Zu dieser Klausur sind keinerlei Hilfsmittel zugelassen.

Mehr

Die Klasse string Verfasser: Christian Bartl

Die Klasse string Verfasser: Christian Bartl Die Klasse string Verfasser: Index 1. Allgemein... 3 2. Eingabe von Strings... 3 3. Ausgabe von Strings... 4 4. Länge eines Strings... 4 5. Durchlaufen aller Zeichen eines Strings... 4 6. Kopieren von

Mehr

Javaprogrammierung mit NetBeans. Variablen, Datentypen, Methoden

Javaprogrammierung mit NetBeans. Variablen, Datentypen, Methoden Javaprogrammierung mit NetBeans Variablen, Datentypen, Methoden Programmieren 2 Java Bezeichner Bezeichner: Buchstabe _ $ Buchstabe _ $ Ziffer Groß- und Kleinbuchstaben werden strikt unterschieden. Schlüsselwörter

Mehr

Arbeitsblatt 6: Programmierung geometrischer Figuren

Arbeitsblatt 6: Programmierung geometrischer Figuren Arbeitsblatt 6: Programmierung geometrischer Figuren Die Karten, auf denen die Lärmmessungen dargestellt werden, bestehen aus einer Vielzahl geometrischer Formen. Diese geometrischen Formen ergeben zusammen

Mehr

3.2 Erzeugen von Datentypen

3.2 Erzeugen von Datentypen 3.2 Erzeugen von Datentypen Der Datentyp Charge Charge ist ein Datentyp für geladene Teilchen auf einer Fläche (Punktladung). Potential in px, yq Das elektrische Potential V im Punkt px, yq bezgl. p ist

Mehr

Einführung in die Programmierung Lösungen P. Fierz / HS 2011/2012

Einführung in die Programmierung Lösungen P. Fierz / HS 2011/2012 Kapitel 2 Objekte und Klassen Aufgabe 2.1 [Klassen und Objekte] Erklären Sie den Unterschied zwischen einem Objekt und einer Objektreferenz. Ein Objekt enthält Informationen über den Zustand eines Objektes.

Mehr

Teil VI: Prozeduren Feld-Parameter & Typen. 1. Offene ARRAY-Parameter 2. Prozedurtypen und -variablen

Teil VI: Prozeduren Feld-Parameter & Typen. 1. Offene ARRAY-Parameter 2. Prozedurtypen und -variablen Teil VI: Prozeduren Feld-Parameter & Typen 1. Offene ARRAY-Parameter 2. Prozedurtypen und -variablen Offene ARRAY-Parameter Motivation Problem : geg.: mehrere deklarierte Felder unterschiedlicher Längen,

Mehr

float: Fließkommazahl nach IEEE 754 Standard mit 32 bit

float: Fließkommazahl nach IEEE 754 Standard mit 32 bit Primitive Datentypen Fließkommazahlen float: Fließkommazahl nach IEEE 754 Standard mit 32 bit Vorzeichen Exponent 8 bit Mantisse 23 bit double: Fließkommazahl nach IEEE 754 Standard mit 64 bit Vorzeichen

Mehr

14. Java Objektorientierung

14. Java Objektorientierung Objektorientierung: Verschiedene Aspekte Daten Typhierarchie Objekte 14. Java Objektorientierung Code Vererbung Unter- und Oberklassen Klassen, Vererbung, Kapselung Methoden überschreiben Unterklassen

Mehr

1 Aufgaben 1.1 Objektorientiert: ("extended-hamster") Sammel-Hamster

1 Aufgaben 1.1 Objektorientiert: (extended-hamster) Sammel-Hamster 1 Aufgaben 1.1 Objektorientiert: ("extended-hamster") Sammel-Hamster Aufgabe: Bearbeitungszeit: ca. 1/4 Std) Schreiben Sie ein "objektorientiertes" Programm ("CuB_05_1") für das Sammeln der Körner. Aufgabenbeschreibung:

Mehr

Allgemeine Hinweise:

Allgemeine Hinweise: TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK Lehrstuhl für Sprachen und Beschreibungsstrukturen WS 11/12 Einführung in die Informatik I Probe-Klausur Prof. Dr. Helmut Seidl, M. Schwarz, A. Herz,

Mehr

Objektorientierung (OO)

Objektorientierung (OO) Objektorientierung (OO) Objekte haben Zustände (oder Eigenschaften, Attribute) und Verhalten Zustände: Objektvariablen (in Java auch fields) Verhalten (oder Aktionen): Methoden (methods, Funktionen) members

Mehr

Datentypen. strukturierte. elementare. skalare reelle statische dynamische int. list. real float. set. record. inhomogen. homogen

Datentypen. strukturierte. elementare. skalare reelle statische dynamische int. list. real float. set. record. inhomogen. homogen Datentypen elementare strukturierte skalare reelle statische dynamische int real float list homogen set inhomogen record Der elementare Datentyp nat bestehend aus einer Objektmenge und den darauf definierten

Mehr

Eingeben, Ausgeben, Übergeben, Zurückgeben

Eingeben, Ausgeben, Übergeben, Zurückgeben Eingeben, Ausgeben, Übergeben, Zurückgeben eingeben: Werte werden vom Nutzer oder Eingabegeräten (z. B. Maus) eingelesen ausgeben: Werte werden auf der Konsole, in einem Display oder einer Datei ausgegeben

Mehr

Informatik I. 7. Der let-ausdruck und eine graphische Anwendung. 18. November Albert-Ludwigs-Universität Freiburg. Informatik I.

Informatik I. 7. Der let-ausdruck und eine graphische Anwendung. 18. November Albert-Ludwigs-Universität Freiburg. Informatik I. 7. und eine graphische Anwendung Albert-Ludwigs-Universität Freiburg 18. November 2010 1 / 24 2 / 24 Wiederholte Berechnungen: (define square-sum (lambda (x y) (* (+ x y) (+ x y)))) wiederholt die Auswertung

Mehr

Objektorientierte Programmierung Studiengang Medieninformatik

Objektorientierte Programmierung Studiengang Medieninformatik Objektorientierte Programmierung Studiengang Medieninformatik Hans-Werner Lang Hochschule Flensburg Vorlesung 1 15.03.2017 Objektorientierte Programmierung (Studiengang Medieninformatik) Form: Prüfung:

Mehr

Einführung in die C++ Programmierung für Ingenieure

Einführung in die C++ Programmierung für Ingenieure Einführung in die C++ Programmierung für Ingenieure MATTHIAS WALTER / JENS KLUNKER Universität Rostock, Lehrstuhl für Modellierung und Simulation 14. November 2012 c 2012 UNIVERSITÄT ROSTOCK FACULTY OF

Mehr

2.5 Primitive Datentypen

2.5 Primitive Datentypen 2.5 Primitive Datentypen Wir unterscheiden 5 primitive Datentypen: ganze Zahlen -2, -1, -0, -1, -2,... reelle Zahlen 0.3, 0.3333..., π, 2.7 10 4 Zeichen a, b, c,... Zeichenreihen "Hello World", "TIFI",

Mehr

1 Bedingte Anweisungen. 2 Vergleiche und logische Operatoren. 3 Fallunterscheidungen. 4 Zeichen und Zeichenketten. 5 Schleifen.

1 Bedingte Anweisungen. 2 Vergleiche und logische Operatoren. 3 Fallunterscheidungen. 4 Zeichen und Zeichenketten. 5 Schleifen. Themen der Übung Kontrollstrukturen, Pseudocode und Modulo-Rechnung CoMa-Übung III TU Berlin 9.10.01 1 Bedingte Anweisungen Vergleiche und logische Operatoren 3 Fallunterscheidungen 4 Zeichen und Zeichenketten

Mehr

Fallstudie: Nim Spiel

Fallstudie: Nim Spiel Fallstudie: Nim Spiel Angeblich chinesischen Ursprungs (Jianshizi) Interessant für Spieltheorie: vollständig analysierbar Frühzeitig computerisiert 1939 Nimatron (Weltausstellung New York) 1951 Nimrod

Mehr

// compiliert, aber Programmabbruch zur Laufzeit: einesuppe = ((EßbarerPilz)einPilz).kochen();

// compiliert, aber Programmabbruch zur Laufzeit: einesuppe = ((EßbarerPilz)einPilz).kochen(); Typecast class Pilz void suchen() void sammeln() class EßbarerPilz extends Pilz Suppe kochen() Suppe einesuppe = new Suppe(); return einesuppe; class GiftPilz extends Pilz void entsorgen() class Suppe

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

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.3 Datenabstraktion - 1 - public class Rechteck { Selektoren

Mehr

1 Klassen und Objekte

1 Klassen und Objekte 1 Klassen und Objekte Datentyp - Spezifikation des Typs von Datenobjekten Datenstruktur - logische Ordnung von Elementen eines Datentyps - zur (effizienten) Speicherung, Verwaltung, Zugriff - auf die Elemente

Mehr

Graphic Coding. Klausur. 9. Februar 2007. Kurs A

Graphic Coding. Klausur. 9. Februar 2007. Kurs A Graphic Coding Klausur 9. Februar 2007 Kurs A Name: Matrikelnummer: Hinweise - Es sind keine Hilfsmaterialien erlaubt. (Keine Bücher, Taschenrechner, Handys) - Sie haben zwei Stunden Zeit. - Insgesamt

Mehr

1 Aufgaben 1.1 Umgebungsvariable setzen: CLASSPATH

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

Mehr

Kapitel 3 Programmierung Lernen mit Scheme. Xiaoyi Jiang Informatik I Grundlagen der Programmierung

Kapitel 3 Programmierung Lernen mit Scheme. Xiaoyi Jiang Informatik I Grundlagen der Programmierung Kapitel 3 Programmierung Lernen mit Scheme 1 3.1 Wie lehrt man Programmierung? Klassischer Ansatz: Es wird die Syntax einer (modischen) Programmiersprache beigebracht Es wird eine komplexe, kommerzielle

Mehr

Übung Datenstrukturen. Objektorientierung in C++

Übung Datenstrukturen. Objektorientierung in C++ Übung Datenstrukturen Objektorientierung in C++ Aufgabe 1a - Farben Schreiben Sie eine Klasse COLOR zur Beschreibung von Farben. Eine Farbe werde hierbei additiv durch ihren Rot-, Grün- und Blauanteil

Mehr

3.4 Struktur von Programmen

3.4 Struktur von Programmen 3.4 Struktur von Programmen Programme sind hierarchisch aus Komponenten aufgebaut. Für jede Komponente geben wir Regeln an, wie sie aus anderen Komponenten zusammengesetzt sein können. program ::= decl*

Mehr

6.1 Funktionale Programmierung 6.2 Programmierung mit Logik 6.3 Ereignisgesteuerte Programmierung

6.1 Funktionale Programmierung 6.2 Programmierung mit Logik 6.3 Ereignisgesteuerte Programmierung 6.1 Funktionale Programmierung 6.2 Programmierung mit Logik 6.3 Ereignisgesteuerte Programmierung 6a - 1 6.1 Funktionale Programmierung Ein Algorithmus wird beschrieben als eine Funktion im mathematischen

Mehr

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

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

Mehr

Kapitel 4. Programmierkurs. Datentypen. Arten von Datentypen. Datentypen und Operatoren Ganzzahlige Numerische Datentypen Logischer Datentyp

Kapitel 4. Programmierkurs. Datentypen. Arten von Datentypen. Datentypen und Operatoren Ganzzahlige Numerische Datentypen Logischer Datentyp Kapitel 4 Programmierkurs Birgit Engels, Anna Schulze Datentypen und Operatoren Ganzzahlige Numerische Datentypen Logischer Datentyp ZAIK Universität zu Köln WS 07/08 1 / 6 Datentypen Arten von Datentypen

Mehr

Programmierkurs Java

Programmierkurs Java Programmierkurs Java Dr. Dietrich Boles Aufgaben zu UE22-NutzungVonKlassen (Stand 28.09.2012) Aufgabe 1: Entwickeln Sie in Eclipse auf der Basis der vorgestellten Java-GUI-Klassen ein Java- Programm, das

Mehr

Teil IV : Abstrakte Datentypen (ADT)

Teil IV : Abstrakte Datentypen (ADT) Teil IV : Abstrakte Datentypen (ADT) Abstraktion ADT in Modula-2 K. Murmann, H. Neumann, Fakultät für Informatik, Universität Ulm, 2001 1. Abstraktion Rekapitulation Realisation eines Stacks Idee für ADT-Konzept

Mehr

Java Einführung Klassendefinitionen

Java Einführung Klassendefinitionen Java Einführung Klassendefinitionen Inhalt dieser Einheit Java-Syntax Klassen definieren Objekte instanziieren Instanzvariable deklarieren Klassenvariable deklarieren 2 Klassen definieren In der Problemanalyse

Mehr

Tutorium für Fortgeschrittene

Tutorium für Fortgeschrittene Tutorium für Fortgeschrittene Stroop Aufgabe: Die Farbe gesehener Wörter ist zu klassifizieren. Es gibt 4 Farben (rot, blau, gelb, grün) In Eprime: red, blue, yellow and green. Jeder Farbe ist einer Taste

Mehr

Grundlagen der Informatik 1 Sommersemester 2011

Grundlagen der Informatik 1 Sommersemester 2011 Grundlagen der Informatik 1 Sommersemester 2011 Dr. Guido Rößling https://moodle.informatik.tu-darmstadt.de/ Übung 4 Version: 1.1 09. 05. 2011 1 Mini Quiz Kreuzen Sie die wahren Aussagen an. 1. Der allgemeine

Mehr

Informatik I. Informatik I. 7.1 Der let-ausdruck. 7.2 Das Graphik-Paket image.ss. 7.3 Fraktale Bilder. Wiederholte Berechnungen: Der let-ausdruck

Informatik I. Informatik I. 7.1 Der let-ausdruck. 7.2 Das Graphik-Paket image.ss. 7.3 Fraktale Bilder. Wiederholte Berechnungen: Der let-ausdruck Informatik I 18. November 2010 7. und eine graphische Anwendung Informatik I 7. und eine graphische Anwendung Jan-Georg Smaus Albert-Ludwigs-Universität Freiburg 7.1 7.2 7.3 18. November 2010 Jan-Georg

Mehr

Die Definition eines Typen kann rekursiv sein, d.h. Typ-Konstruktoren dürfen Elemente des zu definierenden Typ erhalten.

Die Definition eines Typen kann rekursiv sein, d.h. Typ-Konstruktoren dürfen Elemente des zu definierenden Typ erhalten. 4.5.5 Rekursive Typen Die Definition eines Typen kann rekursiv sein, d.h. Typ-Konstruktoren dürfen Elemente des zu definierenden Typ erhalten. datatype IntList = Nil Cons o f ( i n t IntList ) ; Damit

Mehr

Diskrete Modellierung

Diskrete Modellierung Diskrete Modellierung Wintersemester 2018/19 Martin Mundhenk Uni Jena, Institut für Informatik 13. November 2018 3.3.1 3.3 Entwurf von Datentypen Durch das Erzeugen von Datentypen entwickelt der Programmierer

Mehr

Kapitel 3: Variablen

Kapitel 3: Variablen Kapitel 3: Variablen Thema: Programmieren Seite: 1 Kapitel 3: Variablen Im letzten Kapitel haben wir gelernt, bestimmte Ereignisse zu wiederholen solange eine Bedingung erfüllt ist. Nun möchten wir aber

Mehr

Angewandte Mathematik und Programmierung

Angewandte Mathematik und Programmierung Angewandte Mathematik und Programmierung Einführung in das Konzept der objektorientierten Anwendungen zu mathematischen Rechnens WS 2013/14 Operatoren Operatoren führen Aktionen mit Operanden aus. Der

Mehr

Selbsteinstufungstest Vorkurs Programmieren

Selbsteinstufungstest Vorkurs Programmieren VPR Selbsteinstufungstest Vorkurs Programmieren Zeit 90 Minuten Aufgabe 1: Einzigartig (10 Punkte) Schreiben Sie eine Methode die angibt, ob ein String str1 in einem zweiten String str2 genau einmal vorkommt.

Mehr

Funktionen nur wenn dann

Funktionen nur wenn dann Funktionen nur wenn dann Funktionen können auch nur in bestimmten Fällen angewendet werden. Code wird nur in einem bestimmten Fall ausgeführt Code Ja Code Block wahr if wahr? Nein else Code Block Alternative

Mehr

Kapitel 4. Programmierkurs. Datentypen. Arten von Datentypen. Wiederholung Kapitel 4. Birgit Engels, Anna Schulze WS 07/08

Kapitel 4. Programmierkurs. Datentypen. Arten von Datentypen. Wiederholung Kapitel 4. Birgit Engels, Anna Schulze WS 07/08 Kapitel 4 Programmierkurs Birgit Engels, Anna Schulze Wiederholung Kapitel 4 ZAIK Universität zu Köln WS 07/08 1 / 23 2 Datentypen Arten von Datentypen Bei der Deklaration einer Variablen(=Behälter für

Mehr

Einführung in die Programmierung

Einführung in die Programmierung Einführung in die Programmierung by André Karge Übung - Operatoren, Methoden, Primitives 25. Oktober 2018 Einführung in die Programmierung WS18/19 André Karge 1/29 Notizen Standard Linux Befehle: http://images.linoxide.com/linux-cheat-sheet.pdf

Mehr

14. Java Objektorientierung

14. Java Objektorientierung Objektorientierung: Verschiedene Aspekte Daten Typhierarchie Objekte 14. Java Objektorientierung Code Vererbung Unter- und Oberklassen Klassen, Vererbung, Kapselung Methoden überschreiben Unterklassen

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

Projekt 3 Variablen und Operatoren

Projekt 3 Variablen und Operatoren Projekt 3 Variablen und Operatoren Praktisch jedes Programm verarbeitet Daten. Um mit Daten programmieren zu können, muss es Möglichkeiten geben, die Daten in einem Programm zu verwalten und zu manipulieren.

Mehr

Lösung Probeklausur Informatik I

Lösung Probeklausur Informatik I Lösung Probeklausur Informatik I 1 Lösung Aufgabe 1 (5 Punkte) Algorithmen und Programme Was ist der Unterschied zwischen einem Algorithmus und einem Programm? Ein Algorithmus ist eine Vorschrift zur Durchführung

Mehr

Vorkurs Informatik WiSe 16/17

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

Mehr

5.3 Auswertung von Ausdrücken

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

Mehr

Ausdrücke der Programmiersprache Java

Ausdrücke der Programmiersprache Java Ausdrücke der Programmiersprache Java Hamburg 1 Ablauf des Vortrags 01. Eigenschaften von Ausdrücken 02. Arithmetische Operatoren 03. Relationale Operatoren 04. Logische Operatoren 05. Bitweise Operatoren

Mehr

Generische Funktionen Datenabstraktion höherer Ordnung. Horizontale und vertikale Strukturierung. Rein horizontale Struktur: Generische Operationen

Generische Funktionen Datenabstraktion höherer Ordnung. Horizontale und vertikale Strukturierung. Rein horizontale Struktur: Generische Operationen Generische Operationen Generische Funktionen Datenabstraktion höherer Ordnung Implementierung manifester Typen Datengesteuerte Programmierung Nachrichtenaustausch Typanpassung Typhierarchie Rekursive Datenabstraktion

Mehr

Verträge und objektorientierter Entwurf

Verträge und objektorientierter Entwurf Verträge und objektorientierter Entwurf Überblick Was dieses Video behandelt: Design by Contract (etwa: Entwurf gemäß Vertrag) als Richtlinie beim objektorientierten Entwurf Verträge Vererbung Invarianten

Mehr

Computergrafik 1 Transformationen

Computergrafik 1 Transformationen Computergrafik 1 Transformationen Kai Köchy Sommersemester 2010 Beuth Hochschule für Technik Berlin Überblick Repräsentationen, Primitiven Transformationen in 2D Skalierung Translation Rotation Scherung

Mehr

Bru ckenkurs Programmieren

Bru ckenkurs Programmieren Bru ckenkurs Programmieren Tag 2: Animationen und Schleifen Jakob Czekansky Technische Hochschule Mittelhessen 28. Ma rz 2017 Inhalt Animationen Bewegungen Mausposition abfragen Schleifen While For Ausblick:

Mehr

Lösung der Übungsaufgabenserie 12 Grundlagen der Informatik und Numerik

Lösung der Übungsaufgabenserie 12 Grundlagen der Informatik und Numerik Lösung der Übungsaufgabenserie 12 Grundlagen der Informatik und Numerik 1. Tangens.java, Cotangens.java, TanCotVergleich.java zu (a) DifferenzierbareFunktion Tangens + wert(double): double + wertersteableitung(double):

Mehr

Java 8. Elmar Fuchs Grundlagen Programmierung. 1. Ausgabe, Oktober 2014 JAV8

Java 8. Elmar Fuchs Grundlagen Programmierung. 1. Ausgabe, Oktober 2014 JAV8 Java 8 Elmar Fuchs Grundlagen Programmierung 1. Ausgabe, Oktober 2014 JAV8 5 Java 8 - Grundlagen Programmierung 5 Kontrollstrukturen In diesem Kapitel erfahren Sie wie Sie die Ausführung von von Bedingungen

Mehr

12 Abstrakte Klassen, finale Klassen und Interfaces

12 Abstrakte Klassen, finale Klassen und Interfaces 12 Abstrakte Klassen, finale Klassen und Interfaces Eine abstrakte Objekt-Methode ist eine Methode, für die keine Implementierung bereit gestellt wird. Eine Klasse, die abstrakte Objekt-Methoden enthält,

Mehr

Programmieren I. Kapitel 5. Kontrollfluss

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,

Mehr

Institut für Informatik und Angewandte Kognitionswissenschaften

Institut für Informatik und Angewandte Kognitionswissenschaften Grundlegende Programmiertechniken (»Programmierung«), WS 2007/2008 Übungsblatt 5 Präsenzaufgaben: 11, 12, 13 Hausaufgabe: 14 Aufgabe 11 STRING- UND OBJEKT-VERGLEICH String s1 = new String("Test String");

Mehr

Grundlagen der Informatik für Ingenieure I

Grundlagen der Informatik für Ingenieure I 3 Einführung in das objektorientierte Programmier-Paradigma 3 Einführung in das objektorientierte Programmier-Paradigma 3.1.1 Top-down structured design 3.1.2 Data-driven design 3.1.3 Object-oriented design

Mehr

Vorkurs Informatik WiSe 17/18

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

Mehr

15 Zuweisungen und Zustand

15 Zuweisungen und Zustand 15 Zuweisungen und Zustand Bisher: funktionale / wertorientierte Programmierung (let ((new-set (set-insert old-set new-element)))... new-set... old-set...) alte und neue Version sind gleichzeitig verfügbar

Mehr