Versuchsziele Vertiefung im Verständnis der JFrame-Programmierung, Benutzung von Klassen für die Grafikanzeige.

Größe: px
Ab Seite anzeigen:

Download "Versuchsziele Vertiefung im Verständnis der JFrame-Programmierung, Benutzung von Klassen für die Grafikanzeige."

Transkript

1 Hochschule Harz FB Automatisierung und Informatik 2. Labor: Grafische Nutzerschnittstellen mit Java Grafikdarstellung Thema:Anzeigen einer Grafikdatei Versuchsziele Vertiefung im Verständnis der JFrame-Programmierung, Benutzung von Klassen für die Grafikanzeige. Aufgabenstellung: Erweitern Sie das erste Labor. Das MyJInternalFrame soll die ausgewählte Datei über eine Klasse Middleware einlesen und über die Klasse Canvas darstellen. Abbildung 1 Musterlösung mit einigen JInternalFrames und deren Daten Wichtige Hinweise: In jedem JInternalFrame wird genau eine Datei dargestellt. Es werden nur vorhandene Dateien benutzt. Das New-File-Event wird nicht benötigt Das Open-File-Event gibt die ausgewählte Datei an das aktive Fenster. Das Save bzw. SaveAs-File-Event gibt es nicht Gesamte Musterlösung (inkl. 1. Labor): 1096 Zeilen Einiger vorhandener Quellcode muss geändert bzw. gelöscht werden 1

2 Aufgabenstellung: Entwickeln Sie ein Programm, welches Grafikdateien (*.grf) nach der unten aufgelisteten Spezifikation einliest und die darin gespeicherten Objekte auf einem Canvas eines JInternalFrames grafisch darstellt. Die Datei gliedert sich in zwei Teile. Der erste Teil besteht aus einem Kopfteil (Header), der zweite besteht aus den grafischen Elementen. In der Einleseroutine wird erst der Header gelesen und dann in einer Schleife die verschiedenen Objekte. Für jeden Datensatz muss ein passendes Objekt erzeugt werden und in ein internes Vectorfeld der Klasse Middleware eingetragen werden (Ein Beispiel ist vorgegeben). In der Paint-Methode der Klasse Canvas werden die Objekte gezeichnet. Die Klasse Canvas speichert nur die Grafikliste als Referenz. Für jedes grafisches Objekt ist eine eigene Klasse zu entwerfen (z. B. MyLine, MyCircle, MyTriangle, MyPolyline). Dabei sind sämtliche Attribute als privat zu deklarieren. Für die Aufgabe werden die benötigten Klassen in einer Rohform zur Verfügung gestellt. Weitere Information sind den Skripten bzw. den Beispieldateien zu entnehmen. Kommentierung Sie den Quelltext. Switch-Anweisungen müssen den default-fall abprüfen und mit einer Fehlermeldung abschließen (passive Programmierung). Wichtig: Fehlerhafte Dateien dürfen das Programm nicht zum Absturz bringen. Das Programm soll dann eine sinnvolle Fehlermeldung ausgeben. Dazu soll in der Klasse Middleware eine private Variable mit get-methode implementiert werden. Diese zeigt an, ob das Einlesen vollständig war. Sinnvoll wäre zum Beispiel ein String, der mit einem Fehlertext versehen werden kann. Diese Text könnte dann im Canvas angezeigt werden. Hinweis: Es gibt fehlerhafte Dateien, die auch abgefangen werden müssen! Inhalt der Beispieldateien: bsp01.grf Linie bsp02.grf Kreis bsp03.grf Kreis, Quadrat bsp04.grf Zwei Polylinien bsp05.grf zwei Dreiecke bsp06.grf Würfel bestehend aus 1 Rechteck, 2 Linien, 1 Polyline bsp07.grf zwei Rechtecke mit zwei Inkreisen bsp08.grf zwei Rechtecke mit Kreisen bsp09.grf 1000 Linien, jede einzeln eingebaut ;-) bsp10.grf Surprise ;-) bsperror1.grf bsperror2.grf bsperror3.grf Fehlerhafte Datei Fehlerhafte Datei Fehlerhafte Datei 2

3 Lösungen der mitgelieferten Dateien mit den Originalen Fenstergrößen: Ausgabe Datei bsp02.grf Ausgabe Datei bsp01.grf Ausgabe Datei bsp03.grf Ausgabe Datei bsp04.grf Ausgabe Datei: bsp05.grf Ausgabe Datei bsp06.grf 3

4 Ausgabe Datei bsp07.grf Ausgabe Datei bsp08.grf Ausgabe Datei bsp09.grf? Ausgabe Datei bsp10.grf Typen und Koordinaten der Beispiel-Dateien BSP01.grf Fenster: 300 x 250 Pixel (w/h) Linie: 10/80 bis 180/180 Farbe: rot Linienstärke: 2 BSP02.grf Fenster: 607 x 331 Pixel (w/h) Kreis: Mittelpunkt: 150/150 Radius: 120 Farbe: rot BSP03.grf Fenster: 300 x 330 Pixel (w/h) Rechteck: 40/40 bis 280/280 Farbe: Kreis: Mittelpunkt: 160/160 Radius: 120 Farbe: rot 4

5 BSP04.grf Fenster: 400 x 430 Pixel (w/h) Polylinie: 40, , ,200 40,200 Farbe: 3435 Polylinie: 70, , , , , , ,270 Farbe: BSP05.grf Fenster: 500 x 530 Pixel (w/h) 1. Dreieck: 100, , ,300 Farbe: rot 2. Dreieck: 100, , ,70 Farbe: blau BSP06.grf (Würfel) Fenster: 300 x 330 Pixel (w/h) Rechteck: 100/150 bis 200/250 Farbe: 0xFFF 1. Linie: 100/150 bis 171/79 Farbe: rot Polyline: 100/ /79 271/79 271/ /250 Farbe: Linie: 171/79 bis 171/150 Farbe: rot 3. Linie: 271/79 bis 200/150 Farbe: schwarz 5

6 BSP07.grf Fenster: 450 x 470 Pixel (w/h) Circle: 180/180, Radius 170 Farbe: rot Rectangle: 10/10 bis 350/350 Farbe: Circle: 180/180, Radius 120 Farbe: rot Rectangle: 60/60 bis 180/180 Farbe: BSP08.grf Fenster: 500 x 500 Pixel (w/h) Circle: 200/200, Radius 180 Farbe: rot Circle: 200/200, Radius 90 Farbe:schwarz Rectangle: 20/20 bis 200/200 Farbe: Rectangle: 200/200 bis 380/380 Farbe: BSP09.grf Fenster: 500 x 500 Pixel (w/h) 1000 Linien mit Zufalls-Koordinaten und Zufalls-Farben BSP10.grf: Surprise Fenster: 500 x 500 Pixel (w/h) Circle: 250/250, Radius 200 Farbe: blau Rectangle: 120/150 bis 220/175 Farbe: Grün Rectangle: 190/150 bis 390/175 Farbe: Grün etc. BSPError1.grf Fehlerhafter Dateikennung BSPError2.grf Fehlerhafter Header, Version ist 2 BSPError3.grf Fehlerhafter Header, negative Abmessungen 6

7 Aufbau der Datei Die Java-Dateien haben folgenden Aufbau: Open-File-Event Create JInternalFrame Create Middleware, jede grf-datei hat ihre eigene Middleware readfile Read Header (loadfromdata) Read Objekte (loadfromdata) Show Windows readfile in der Klasse Middleware Read Header Read Objekt-Kennung, korrekter Typ? While(...) { Read Objekt-Kennung, korrekter Typ? Create Objekt Read Objekt Insert Objekt Read Objekt-Kennung, korrekter Typ? } paint.routine in MyCanvas For all Objekte in _liste { Referenziere Objekt g.draw ( ) } Klasse Header Private Attribute Set / get -Methoden loadfromdata(... ) Klasse Linie Private Attribute loadfromdata(... ) draw( ) etc. 7

8 Überblick über alle Klassen Klasse MDI-Hauptframe Labor1.java (JFrame) Deklaration der Variablen setgui o Verhindern, dass die Menüs nicht sichtbar sind o Eintragen in der Methode setgui NEU setdefaultlightweightpopupenabled(false); actionperformed newfile o Datei Öffnen mittels eines FileChoosers o Erzeugt einen MyInternalFrames (Parameter sfilename). Der Dateiname wird in der Titelzeile angezeigt. o Eintragen in das DesktopPane o Aufruf der Methode setgrafiksize (NEU) openfile o Neue Auswahl mittels eines FileChoosers o Der Dateiname wird dem aktuellen Fenster übergeben (Parameter sfilename) und in der Titelzeile angezeigt o Aufruf der Methode setgrafiksize (NEU) Klasse MyInternalsFrame Deklaration der Variablen o private sfilename bitte LÖSCHEN, ist in Middleware o private Middleware _middleware; o private MyCanvas _canvas; Konstruktor o Initialisieren der Variablen o Erstellen einer Instanz der Klasse Middleware Middleware erhält den Dateinamen setgui o Layout setzen o Canvas erzeugen und einfügen in das Layout o Die Klasse Canvas erhält einen zusätzlichen Parameter (Middleware middleware) public setgrafiksize // neu o setzen der Größe nach dem Lesen. Diese Methode muss nach dem Eintragen in das DesktopPane aufgerufen werden. Sonst wird die Originalgröße aus der grf-datei nicht gesetzt. JInternalFrame-Optionen: setclosable(true); seticonifiable(true); setmaximizable(true); setresizable(true); Klasse Middleware Deklaration der Variablen o private ArrayList _grafikliste Typisiert wäre besser ;-) o private String _sfilename; o private int height=0; o private int width=0; 8

9 Konstruktor o Initialisieren der Variablen private readfile(string sfilename o Öffnen der Datei o Lesen des Headers o Speichern der Abmessungen o Irgendetwas mit der Grafikliste machen o Lesen der Grafikdaten bis zum letzten Datensatz (Typ=0) Abfragen des Typs Erzeugen des Grafiktyps Lesen des Grafiktyps, aber nicht hier Einfügen o Schließen des Dateikanals (fin) Klasse MyCanvas Löschen des Default-Konstruktors Erstellen eines Konstruktors mit einem Parameter der Klasse Middleware o Aus dem Parameter Middleware die Liste holen und global speichern Speichern des Parameters in einer globalen Variablen der Klasse Überschreiben der Methode void paint (Graphics g) o Aufruf von super.paint super.paint(g); // Neu o Einen weißen Hintergrund erstellen o Aus der Liste die grafischen Elemente holen Canvas-Optionen: setcolor( color) fillrect(x,y, width, height) drawline(x1,y1, x2,y2) Optional: Graphics2D g2 = (Graphics2D) g; float[] dash = { 20, 10 }; // new float[]{ 20,10 } BasicStroke stroke = new BasicStroke( 12, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER, 1, dash, 10 ); g2.setstroke( stroke ); Strichdicke für Linien: Graphics2D g2 = (Graphics2D) g; g2.setstroke( new BasicStroke(strichstaerke) ); g.drawline(10,10, 300,400) ; Klasse MyHeader Löschen des Default-Konstruktors Implementieren der Methode loadfromdata o Lesen der Magic-Number o Lesen und speichern der Versionsnummer o Lesen und speichern der Breite o Lesen und speichern der Höhe 9

10 Klasse MyGrfObject Hat folgende Methoden o draw(graphics g); o loadfromdata(datainputstream DataIn) throws IOException; Außerdem müssen noch einige Wörter in die Klasse eingefügt werden Klasse MyLine Erstellen der privaten Attribute Implementieren der abstrakten Methoden o loadfromdata Lesen von x1, y1, x2, y2 Lesen von color (int) Lesen der Linienstärke (linewidth) o draw setzen der Farbe setzen der Linienstärke zeichnen der Linie Klasse MyCircle Erstellen der privaten Attribute Implementieren der abstrakten Methoden o loadfromdata Lesen von x, y, radius Lesen von color (int) o draw setzen der Farbe zeichnen des Kreises Klasse MyRect Erstellen der privaten Attribute o Width und Height dürfen nicht als Attribute verwendet werden. Implementieren der abstrakten Methoden o loadfromdata Lesen von x1, y1, x2, y2 Width und Height dürfen nicht als Attribute verwendet werden. Lesen von color (int) o draw setzen der Farbe zeichnen des Rechteckes Klasse MyTriangle Erstellen der privaten Attribute Implementieren der abstrakten Methoden o loadfromdata Lesen von x1, y1, x2, y2, x3, y3 Lesen von color (int) o draw setzen der Farbe setzen der drei einzelnen Linien 10

11 Klasse MyPolyline Erstellen der privaten Attribute o Farbe o Array von x o Array von y Implementieren der abstrakten Methoden o loadfromdata Lesen der Anzahl der Koordinaten Irgendetwas erzeugen Lesen der Koordinaten Lesen der Farbe o draw setzen der Farbe zeichnen der Polyline Versuchsdurchführung Alle Klassen erstellen: 1) Eintragen in der Methode setgui: setdefaultlightweightpopupenabled(false); 2) Erstellen der Klasse Middleware. Ein Rahmen ist als Txt-Datei vorhanden. Bitte benutzen. 3) Erstellen der Klasse Kostanten. Ein vollständiger Rahmen ist als Txt-Datei vorhanden. Bitte benutzen. 4) Erstellen der Klasse MyHeader. Ein Rahmen ist als Txt-Datei vorhanden. Bitte benutzen. 5) Erstellen der Klasse MyGrfObject. Ein Rahmen ist als Txt-Datei vorhanden. Bitte benutzen. 6) Erstellen der grafischen Klassen. Ein jeweiliger Rahmen ist als Txt-Datei vorhanden. Bitte benutzen. Modifikation des Quellcode: 7) Klasse Middleware Löschen Sie das Attribut sfilename in der Klasse MyJinternalFrame. Einbau der Klasse Middleware als Attribut. Verknüpfen der Attribute canvas und middleware. Im Konstruktor muss der Dateiname gesetzt werden. Im Konstruktor muss die Datei durch die Klasse Middleware gelesen werden. Implementierung der Methode setgrafiksize. Einbau des Aufrufs der Methode setgrafiksize nach dem Einfügen des MyJInternalFrames. 11

12 8) Klasse Header Einbau der Attribute. Einbau der set- und get-methoden. Implementierung der Methode loadfromdata Eingelesen werden dürfen die Daten des Headers nur in der Methode loadfromdata( ). Im Konstruktor darf das Einlesen nicht stattfinden. o Lesen der Magic-Number o Lesen der Version o Lesen der Breite und Höhe o Test der Attribut auf Korrektheit 9) Klasse Middleware Implementierung der Methode loadfromdata o Öffnen der Datei o Lesen des Headers o Ausgabe von Testdaten mittels syso 10) Klasse MyJInternalFrame Implementierung der Methode setfilename o In der Middleware setzen des Dateinamens o Titel setzen o Lesen der Datei o Fenstergröße setzen 11) Klasse MyGrfObject Verändern des Quellcodes, so dass die Klasse sinnvoll genutzt werden kann. 12) Klasse MyLine Einbau der Attribute. Kein Einbau von set- und get-methoden. Implementierung der Methode loadfromdata Eingelesen werden dürfen die Daten nur in der Methode loadfromdata( ). Im Konstruktor darf das Einlesen nicht stattfinden. o Lesen der vier Koordinaten o Lesen der Farbe als int-wert o Lesen der Strichstärke (int Implementierung der Methode draw o Setzen der Farbe o Casten des g auf Graphics2D o Setzen der Strichstärke o Zeichnen der Linie 13) Test mit der ersten Datei bsp01.grf Fenster: 300 x 250 Pixel (w/h) Linie: 10/80 bis 180/180 Farbe: rot Linienstärke: 2 14) Vervollständigen Sie die weiteren Grafik-Klassen. Entwickeln Sie insbesondere die Methoden loadfromdata( ) und draw Eingelesen werden die Daten der Grafikelemente nur in den jeweiligen Klassen resp. in der Methode loadfromdata( ). Nicht im Konstruktor! Implementieren Sie die Grafikausgabe in der Methode paint() des Canvas. Jedes Objekt muss mit der Methode draw(g) gezeichnet werden. 12

13 Hinweise: Erste Tests können mit den Dateien (bsp01.grf bis bsp04.grf) durchgeführt werden. Für die Fehlerprüfung werden die Dateien (bsp06.grf und bsp07.grf) verwendet. Falls ein Fehler beim Einlesen der Datei auftritt, soll der Anwender durch die eine Fehlerausgabe im Dos-Fenster benachrichtigt werden (Syso). Lesen Sie alle geometrischen Objekte aus der Datei und speichern Sie diese im privaten Objekt. Fügen Sie das neue Objekt dann in die Liste. Verwenden Sie für die Unterscheidung der Grafiktypen die vorhandenen Konstanten. Zum Bestehen des Labors müssen alle vorgegebenen Dateien ohne Absturz funktionieren. Hinweise: a) Verwenden Sie nur Standardjava. b) Farben Die gespeicherten Farben entsprechen einem RGB-Wert (32-Bits). Das Objekt Color wird durch folgenden Konstruktor erzeugt: Beispielcode: Color c; int rgbwert = 255; c = new Color(rgbwert) ); c) Paint-Methode Durch das Eintragen in die Liste kann es vorkommen, dass beim ersten Zeichnen nicht alle Elemente dargestellt werden. Nachdem Einlesen sollte man deshalb das Canvas sich neu zeichnen lassen. Dazu gibt es die Methode updateui. 13

14 Aufbau der Dateien: Aufbau des Headers: Byte Bedeutung Erläuterung 0-1 Dateikennung KI (KommunkationsInformatik) K=75 I= Version Breite der Grafik Bedingung: Breite > Höhe der Grafik Bedingung: Höhe> 0 Definition der Konstanten: 1: Linie x1, y1, x2, y2, Farbe, Linienstärke 2: Rechteck x1, y1, x2, y2, Farbe 3: Kreis x1, y1, Radius, Farbe 4: Dreieck x1, y1, x2 y2, x3, y3, Farbe 5: Polylinie x1, y1,, xn, yn, Farbe Schema der Speicherung der Objekte: Header Kennung des 1. Objektes (2 Byte) Datensatz des 1. Objektes Kennung des 2. Objektes (2 Byte) Datensatz des 2. Objektes Kennung des 3. Objektes (2 Byte) Datensatz des 3. Objektes Kennung des n. Objektes (2 Byte) Datensatz des n. Objektes Kennung 0 DATENSATZENDE 14

15 Definition der Linie (MyLine): Bytes Type 0-1 Kennung (1) 2-5 x1 6-9 y x y Farbe Strichstärke Definition des Rechtecks (MyRect): Bytes Type 0-1 Kennung (2) 2-5 x1 6-9 y x y Farbe Definition des Kreises (MyCircle): Bytes Type 0-1 Kennung (3) 2-5 x 6-9 y Radius Farbe Definition des Dreiecks (MyTriangle): Bytes Type 0-1 Kennung (4) 2-5 x1 6-9 y x y x y Farbe 15

16 Definition der Polylinie (MyPolylinie): Bytes Type 0-1 Kennung (5) 2-5 Anzahl der Koordinaten (0 bis beliebig) 6-9 x y x y x y x y3 etc Farbe Grafikfunktionen in Java: Methode drawline() drawoval() drawpolyline drawrect() setcolor() Beschreibung: zeichnet eine Gerade void drawline(int x1, int y1, int x2, int y2) zeichnet eine Ellipse void drawoval(int x, int y, int width, int height) zeichnet ein Linie mit mehreren Punkten (Array) void drawpolyline(int [] xpoints, int [] ypoints, int anz) zeichnet ein Rechteck void drawrect(int x, int y, int width, int height) legt die Zeichnungsfarbe fest void setcolor(color c) void setcolor( new Color(int) ) Zusätzliche Grafikbefehle (für Klasse MyLine): Dickere Linie: Graphics2D g2 = (Graphics2D) g; g2.setstroke( new BasicStroke(4.0f) ); 16

17 Beispiele: Einlesen eines double-wertes: FileInputStream Fin; DataInputStream Din; double d; try { Fin = new FileInputStream(sFileName); Din = new DataInputStream(Fin); } d = Din.readDouble(); Din.close(); catch (IOException ee) { System.err.println("IOException: " + ee); } Einlesen eines integer-wertes: FileInputStream Fin; DataInputStream Din; int i; try { Fin = new FileInputStream(sFileName); Din = new DataInputStream(Fin); i = DataIn.readInt(); Din.close(); } catch (IOException ee) { System.err.println("IOException: " + ee); } 17

18 Klasse ArrayList: Die Klasse Vector speichert beliebige Objekte in einer Liste (Vergleichbar mit einem dynamischen Array). Methoden des Objektes Vector: add(object) get (i) size() clear() Trägt ein Objekt in die Liste ein Gibt das i-te Element aus der Liste aus. Der Index zählt von 0 bis n-1!! Gibt die Anzahl der Elemente aus Löscht alle Elemente in der Liste Deklaration und Erzeugen eines Vector: ArrayList liste1 = new ArrayList (); // speichert beliebige Objekte ArrayList <Circle> liste2 = new ArrayList <Circle>(); // speichert nur Kreise Element aus der Liste holen: Object obj = liste1.elementat(2); Circle c = (Circle) obj; // Cast Circle c = liste2.get(2); // automatischer Cast möglicher Beispielquellcode: MyLine linie; // speichert ein Linienobjekt MyLine linie2; // Zwischenspeicher für ein Linienobjekt MyCircle kreis; // speichert ein Kreisobjekt MyCircle kreis2; // Zwischenspeicher für ein Kreisobjekt Object obj; // Zwischenspeicher für die Liste ArrayList liste; // Deklaration linie=new MyLine(); kreis = new MyKreis(); liste = new Vector(); liste.add(linie); liste.add(kreis); // Vector wird erzeugt // Objekt vom Typ MyLine wird in die Liste eingetragen // Objekt vom Typ MyCircle wird in die Liste eingetragen for (int i=0; i<liste.size(); i++) { Object obj = liste.get(i); // weitere Verarbeitung } 18

Versuchsziele Konzepte der parallelen Programmierung am Beispiel von Threads anwenden können. Einbau von Kontrollmechanismen mittels Semaphore.

Versuchsziele Konzepte der parallelen Programmierung am Beispiel von Threads anwenden können. Einbau von Kontrollmechanismen mittels Semaphore. Hochschule Harz Versuch: fcopy Mit Java FB Automatisierung und Informatik Betriebssysteme Thema: Kopieren einer Datei unter der Kontrolle von Semaphoren Versuchsziele Konzepte der parallelen Programmierung

Mehr

Grafik-Programmierung

Grafik-Programmierung Grafik-Programmierung In dieser Übung beschäftigen wir uns zunächst mit elementaren Grundlagen der Grafikprogrammierung. In der nächsten Übung werden wir dies auf Spiele anwenden. Aufgabe 1: Einfache Grafik:

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

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

Fragen zur OOP in Java

Fragen zur OOP in Java - 1 - Inhalt Was bedeutet OOP?... 2 Was versteht man unter einer Klasse?... 2 Wie nennt man die Mitglieder einer Klasse?... 2 Wie erzeugt man Objekte?... 2 Wie greife ich auf Member einer Klasse zu?...

Mehr

Tutorial04: Swing: Erstellen eines JFrames mit einem JSplitPane

Tutorial04: Swing: Erstellen eines JFrames mit einem JSplitPane Hochschule Harz Programmierung2 Tutorial 04: FB Automatisierung und Informatik Dipl.-Inf., Dipl.-Ing. (FH) M. Wilhelm Programmierung 2 für MI / WI Thema: Swing, JSplitPane und I/O Versuchsziele Kenntnisse

Mehr

Einführung in die Programmierung

Einführung in die Programmierung Technische Universität München WS 2003/2004 Institut für Informatik Prof. Dr. Christoph Zenger Semestralklausur Einführung in die Programmierung Semestralklausur Java (Lösungsvorschlag) 1 Die Klasse ArrayList

Mehr

Beispiele für Ausdrücke. Der imperative Kern. Der imperative Kern. Imperativer Kern - Kontrollstrukturen. Deklarationen mit Initialisierung

Beispiele für Ausdrücke. Der imperative Kern. Der imperative Kern. Imperativer Kern - Kontrollstrukturen. Deklarationen mit Initialisierung Beispiele für Ausdrücke Der imperative Kern Deklarationen mit Initialisierung Variablendeklarationen int i = 10; int j = 15; Beispiele für Ausdrücke i+j i++ i & j i j [] [static]

Mehr

Vertiefung im Verständnis der SDI-Programmierung mit der Tabelle ListView unter Visual Studio 2008.

Vertiefung im Verständnis der SDI-Programmierung mit der Tabelle ListView unter Visual Studio 2008. Hochschule Harz MFC FB Automatisierung und Informatik Grafische Nutzerschnittstellen mit MFC Thema: SDI-Programmierung mit ListView Versuchsziele Vertiefung im Verständnis der SDI-Programmierung mit der

Mehr

Durch die Möglichkeit, Ein- und Ausgaben auf der Konsole durchzuführen, kann man auch systematisch das Verhalten von Klassen analysieren.

Durch die Möglichkeit, Ein- und Ausgaben auf der Konsole durchzuführen, kann man auch systematisch das Verhalten von Klassen analysieren. Durch die Möglichkeit, Ein- und Ausgaben auf der Konsole durchzuführen, kann man auch systematisch das Verhalten von Klassen analysieren. 267 Das hier skizzierte Problem basiert auf der strategischen Entscheidung

Mehr

Humboldt-Universität zu Berlin Wintersemester 2010/11 Institut für Informatik Grundlagen der Programmierung. 6. Übungsblatt

Humboldt-Universität zu Berlin Wintersemester 2010/11 Institut für Informatik Grundlagen der Programmierung. 6. Übungsblatt Humboldt-Universität zu Berlin Wintersemester 2010/11 Institut für Informatik Grundlagen der Programmierung Prof. Redlich 6. Übungsblatt 21 (+4) Punkte Abgabe bis 31.01.2010 (08:00 Uhr) über GOYA Aufgabe

Mehr

Versuchsziele. Grundlagen. Überblick: FB Automatisierung und Informatik Betriebssysteme Thema: Bounded-Buffer-Problem. 3.

Versuchsziele. Grundlagen. Überblick: FB Automatisierung und Informatik Betriebssysteme Thema: Bounded-Buffer-Problem. 3. Hochschule Harz 3. Labor Threads FB Automatisierung und Informatik Betriebssysteme Thema: Bounded-Buffer-Problem Versuchsziele Vertiefung im Verständnis der Thread- und Semaphor-Programmierung. Grundlagen

Mehr

Objektorientierte Programmierung Studiengang Medieninformatik

Objektorientierte Programmierung Studiengang Medieninformatik Objektorientierte Programmierung Studiengang Medieninformatik Hans-Werner Lang Hochschule Flensburg Vorlesung 5 12.04.2017 Was bisher geschah... Objektorientierte Programmierung Klassen und Objekte, Attribute

Mehr

ADT: Java Collections und ArrayList

ADT: Java Collections und ArrayList ADT: Java Collections und ArrayList Überblick der Klassen Object File Collections Map List Set ArrayList LinkedList SortedSet HashSet SortedSet Methode ArrayList Klasse I Beschreibung void add(int position,

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

Der Ball kann angezeigt werden: anzeigen( ) {... } Der Ball kann z.b. seine Größe verändern: groesseaendern(int veraenderung) {... } usw.

Der Ball kann angezeigt werden: anzeigen( ) {... } Der Ball kann z.b. seine Größe verändern: groesseaendern(int veraenderung) {... } usw. Objekt-Orientierung Die ersten objektorientierten Sprachen wurden ab 1967 entwickelt (Simula, Smalltalk). Die Grundidee besteht darin, Objekte der realen Welt abzubilden. Java-Programme bestehen aus Klassen.

Mehr

Grafikausgabe mit dem Abstract- Windowing-Toolkit. Eine Einführung

Grafikausgabe mit dem Abstract- Windowing-Toolkit. Eine Einführung Grafikausgabe mit dem Abstract- Windowing-Toolkit Eine Einführung Inhalt Einführung Grundlegende Eigenschaften des Abstract-Windowing- Toolkit (AWT) Grundlagen Grafikausgabe Linien zeichnen Rechtecke zeichnen

Mehr

Kapitel 13. Abstrakte Methoden und Interfaces. Fachgebiet Knowledge Engineering Prof. Dr. Johannes Fürnkranz

Kapitel 13. Abstrakte Methoden und Interfaces. Fachgebiet Knowledge Engineering Prof. Dr. Johannes Fürnkranz Kapitel 13 Abstrakte Methoden und Interfaces 13. Abstrakte Klassen und Interfaces 1. Abstrakte Klassen 2. Interfaces und Mehrfachvererbung Folie 12.2 Abstrakte Methoden und Klassen Manchmal macht es überhaupt

Mehr

Kapitel 9. Programmierkurs. Attribute von Klassen, Methoden und Variablen. 9.1 Attribute von Klassen, Methoden und Variablen

Kapitel 9. Programmierkurs. Attribute von Klassen, Methoden und Variablen. 9.1 Attribute von Klassen, Methoden und Variablen Kapitel 9 Programmierkurs Birgit Engels Anna Schulze Zentrum für Angewandte Informatik Köln Objektorientierte Programmierung Attribute von Klassen, Methoden und Variablen Interfaces WS 07/08 1/ 18 2/ 18

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

Staubsauger-Roboter. Als Vorlage dienen dir drei Klassen: RECHTECK Damit kannst du die Wände des Raums darstellen.

Staubsauger-Roboter. Als Vorlage dienen dir drei Klassen: RECHTECK Damit kannst du die Wände des Raums darstellen. Projekt: Staubsauger-Roboter Immer beliebter werden die kleinen automatischen Haushaltshilfen. Du sollst nun einen Staubsauger-Roboter programmieren, der gesteuert von einer künstlichen Intelligenz (KI)

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

Versuchsziele Kenntnisse in der Anwendung von: Sortieren mit Klassen Benutzung von generischen Klassen o Definition o Sortierung.

Versuchsziele Kenntnisse in der Anwendung von: Sortieren mit Klassen Benutzung von generischen Klassen o Definition o Sortierung. Hochschule Harz Programmierung1 Tutorial 11: FB Automatisierung und Informatik Dipl.-Inf. Dipl.-Ing. (FH) M. Wilhelm Programmierung 1 für MI / WI Thema: Sortieren und generische Klassen Versuchsziele Kenntnisse

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

Theorie zu Übung 8 Implementierung in Java

Theorie zu Übung 8 Implementierung in Java Universität Stuttgart Institut für Automatisierungstechnik und Softwaresysteme Prof. Dr.-Ing. M. Weyrich Theorie zu Übung 8 Implementierung in Java Klasse in Java Die Klasse wird durch das class-konzept

Mehr

Übungsblatt Programmierung und Software-Entwicklung Generizität, Interfaces, Listen, Sortieralgorithmen & JUnit

Übungsblatt Programmierung und Software-Entwicklung Generizität, Interfaces, Listen, Sortieralgorithmen & JUnit Übungsblatt Programmierung und Software-Entwicklung Generizität, Interfaces, Listen, Sortieralgorithmen & JUnit Aufgabe : Die allgemeine Object-Liste Gegeben sei folgendes UML-Klassendiagramm: MyObjectList

Mehr

Allgemeines - Prinzipien

Allgemeines - Prinzipien OOP - Prinzipien Allgemeines - Prinzipien OO modelliert die reale Welt als System interagierender Objekte Objekt = gedankliche oder reale Einheit in der Umwelt und/oder in Software Klar definierte Schnittstellen

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 22 Einstieg in die Informatik mit Java Generics Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 22 1 Überblick Generics 2 Generische Klassen 3 Generische Methoden 4

Mehr

Objektorientierung. Programmierstarthilfe WS 2010/11 Fakultät für Ingenieurwissenschaften und Informatik

Objektorientierung. Programmierstarthilfe WS 2010/11 Fakultät für Ingenieurwissenschaften und Informatik Programmierstarthilfe WS 2010/11 Fakultät für Ingenieurwissenschaften und Informatik Organisatorisches Im Web unter http://www.uni-ulm.de/psh Vorwissen Du kannst bereits Klassen als Typen mit statischen

Mehr

Graphische Nutzerschnittstellen

Graphische Nutzerschnittstellen Graphische Nutzerschnittstellen Dipl.-Inf., Dipl.-Ing. (FH) Michael Wilhelm Hochschule Harz FB Automatisierung und Informatik mwilhelm@hs-harz.de Raum 2.202 Tel. 03943 / 659 338 1 Inhalt 1. Einführung,

Mehr

Probeklausur Informatik 2 Sommersemester 2013

Probeklausur Informatik 2 Sommersemester 2013 Probeklausur Informatik 2 Sommersemester 2013 1 Probeklausur Informatik 2 Sommersemester 2013 Name: Matrikelnummer: Hilfsmittel: Es sind alle schriftlichen Unterlagen, aber keine elektronischen Hilfsmittel

Mehr

Aufgabe 5.1 (Laboraufgabe, Nocheinmal ein wenig Graphik)

Aufgabe 5.1 (Laboraufgabe, Nocheinmal ein wenig Graphik) Übungen zu Objektorientierte Programmierung in Java PD Dr. Wolfgang Goerigk Sommersemester 2009 Musterlösungen Serie 5 Aufgabe 5.1 (Laboraufgabe, Nocheinmal ein wenig Graphik) Die Klasse java.awt.container

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 für Nebenfach Medieninformatik. Beat Rossmy, Michael Kirsch

Einführung in die Programmierung für Nebenfach Medieninformatik. Beat Rossmy, Michael Kirsch Einführung in die Programmierung für Nebenfach Medieninformatik Beat Rossmy, Michael Kirsch Direct Feedback - Socrative Eure Mitarbeit ist uns wichtig! Installiert euch dazu die kostenlose App Socrative

Mehr

Durch die Teil-von-Beziehung soll ausgedrückt werden, dass ein Objekt A als (physikalischer) Teil eines Objekts B angesehen wird. Insbesondere kann ei

Durch die Teil-von-Beziehung soll ausgedrückt werden, dass ein Objekt A als (physikalischer) Teil eines Objekts B angesehen wird. Insbesondere kann ei Lösungsvorschläge zur Klausur zum Kurs 1618 Sommersemester 2001 am 22.9.2001 Aufgabe 1 a) Benutzungsbeziehung: class Kennzeichen class Fahrzeug boolean gueltigeskennzeichen (Kennzeichen kz) Objekte der

Mehr

Hochschule Darmstadt Informatik-Praktikum WS 2017/2018 WIng Bachelor 6. Aufgabenblatt Zeiger, verkettete Liste, Dateieingabe und -ausgabe

Hochschule Darmstadt Informatik-Praktikum WS 2017/2018 WIng Bachelor 6. Aufgabenblatt Zeiger, verkettete Liste, Dateieingabe und -ausgabe Aufgabe 6: Häuser verwalten - dynamisch Für ein Schneeräumungsunternehmen soll ein Programm zur Verwaltung von Häuserlisten geschrieben werden. Das Programm soll in der Lage sein, zu einem Haus die wichtigsten

Mehr

Programmieren in Java

Programmieren in Java Einführung in die Objektorientierung Teil 4 Interfaces, innere Klassen und Polymorphie 2 Vererbung im Klassendiagram (Wiederholung) Vererbung repräsentiert eine ist ein Beziehung zwischen Klassen Ware

Mehr

Klausur Grundlagen der Programmierung

Klausur Grundlagen der Programmierung Klausur Grundlagen der Programmierung Aufgabenstellung: Martin Schultheiß Erreichte Punktzahl: von 60 Note: Allgemeine Hinweise: Schreiben Sie bitte Ihren Namen auf jedes der Blätter Zugelassene Hilfsmittel

Mehr

7. Arrays. Beim Deklarieren und Initialisieren der Liste bräuchte man oft zueinander sehr ähnlichen Code:

7. Arrays. Beim Deklarieren und Initialisieren der Liste bräuchte man oft zueinander sehr ähnlichen Code: 7. Arrays Gelegentlich braucht man für ein Programm mehrere Attribute desselben Datentyps oder derselben Klasse. Beispiel: In der Highscore-Liste eines Spiels werden von den 10 besten Spielern die Namen

Mehr

JAVA für Nichtinformatiker - Probeklausur -

JAVA für Nichtinformatiker - Probeklausur - JAVA für Nichtinformatiker - Probeklausur - Die folgenden Aufgaben sollten in 150 Minuten bearbeitet werden. Aufgabe 1: Erläutere kurz die Bedeutung der folgenden Java-Schlüsselwörter und gib Sie jeweils

Mehr

Anwendung Kamel-Simulation

Anwendung Kamel-Simulation Anwendung Kamel-Simulation (Nach einer Idee von Christian Wendl) Normale Kamele haben die Eigenschaften Alter, Gewicht, Name und Darstellung (für die Darstellung wählen wir ein WECHELSBILD). Durch Züchtung

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

JAVA KURS COLLECTION

JAVA KURS COLLECTION JAVA KURS COLLECTION COLLECTIONS Christa Schneider 2 COLLECTION Enthält als Basis-Interface grundlegende Methoden zur Arbeit mit Collections Methode int size() boolean isempty() boolean contains (Object)

Mehr

Vererbung. Generalisierung und Spezialisierung Vererbung und Polymorphismus

Vererbung. Generalisierung und Spezialisierung Vererbung und Polymorphismus Vererbung Generalisierung und Spezialisierung Vererbung und Polymorphismus Wir wollen in unserem Aquarium verschiedene Arten von Fischen schwimmen lassen. In einem ersten Ansatz definieren wir nicht nur

Mehr

Graphische Benutzungsoberflächen mit Java. Einführung in NetBeans

Graphische Benutzungsoberflächen mit Java. Einführung in NetBeans Graphische Benutzungsoberflächen mit Java Einführung in NetBeans Graphische Benutzungsoberflächen! Interaktion mit dem Programm! Datenein- und ausgabe! Rückmeldungen über Verarbeitung der Daten! Visualisierung

Mehr

Übungsblatt 1. Java Vorkurs (WS 2017)

Übungsblatt 1. Java Vorkurs (WS 2017) Übungsblatt 1 Java Vorkurs (WS 2017) Aufgabe 1 Hallo-Welt Erstelle ein neues Projekt mit dem Namen HelloJava. Erzeuge in diesem Projekt eine neue Klasse HelloJava. (a) Schreibe die main-methode in die

Mehr

Programmieren in Java -Eingangstest-

Programmieren in Java -Eingangstest- Programmieren in Java -Eingangstest- Nummer: 1. Studiengang: Informatik B.Sc. Informatik M.Sc. ESE B.Sc. ESE M.Sc. Sonstiges: Fachsemester: Bitte Fragen, die Sie nicht beantworten können unbedingt mit

Mehr

C++ - Objektorientierte Programmierung Konstante und statische Elemente

C++ - Objektorientierte Programmierung Konstante und statische Elemente C++ - Objektorientierte Programmierung Konstante und statische Elemente hat eine Kantenlänge hat eine Füllfarbe Kantenlänge setzen Füllfarbe lesen Volumen berechnen Leibniz Universität IT Services Anja

Mehr

Java - AWT Basispraktikum SystemArchitektur WS 2008/ Atanas Dimitrov

Java - AWT Basispraktikum SystemArchitektur WS 2008/ Atanas Dimitrov Java - AWT Basispraktikum SystemArchitektur WS 2008/2209 09.12.2008 Atanas Dimitrov 1 Was besprechen wir heute: AWT Klassen Die Klasse Graphics AWT Methoden Die Klasse ToolKit Ausgabe von Bilder Die Klasse

Mehr

Vorkurs Informatik WiSe 17/18

Vorkurs Informatik WiSe 17/18 Institut für Programmierung Java Objektorientierte Programmierung Dr. Werner Struckmann / Stephan Mielke, Nicole Naczk, 11. bis 13.10.2017 Technische Universität Braunschweig, IPS Warum OOP? OOP mit Java

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

Objektorientierte Programmierung. Kapitel 22: Aufzählungstypen (Enumeration Types)

Objektorientierte Programmierung. Kapitel 22: Aufzählungstypen (Enumeration Types) Stefan Brass: OOP (Java), 22. Aufzählungstypen 1/20 Objektorientierte Programmierung Kapitel 22: Aufzählungstypen (Enumeration Types) Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester

Mehr

Informatik I (D-MAVT)

Informatik I (D-MAVT) Informatik I (D-MAVT) Übungsstunde 9 simon.mayer@inf.ethz.ch Distributed Systems Group, ETH Zürich Ablauf Nachbesprechung Übung 7 Besprechung/Vertiefung der Vorlesung Vorbesprechung Übung 9 Aufgabe 1:

Mehr

C++ - Objektorientierte Programmierung Vererbung

C++ - Objektorientierte Programmierung Vererbung C++ - Objektorientierte Programmierung Vererbung Personen Kunden Mitarbeiter Verwaltung Verkäufer Leibniz Universität IT Services Anja Aue Vererbung Definition von Klassen auf Basis von bestehenden Klassen.

Mehr

Problem: Was ist, wenn der Stapel voll ist? Idee: Erzeuge dynamisch ein grösseres Array und kopiere um. Dynamische Anpassung der Größe

Problem: Was ist, wenn der Stapel voll ist? Idee: Erzeuge dynamisch ein grösseres Array und kopiere um. Dynamische Anpassung der Größe Maximale Größe?! Problem: Was ist, wenn der Stapel voll ist? Idee: Erzeuge dynamisch ein grösseres Array und kopiere um Dynamische Anpassung der Größe Praktische Informatik I, HWS 2009, Kapitel 10 Seite

Mehr

Umsetzung einer Klassenkarte in einer Programmiersprache

Umsetzung einer Klassenkarte in einer Programmiersprache Klassen in Java Umsetzung einer Klassenkarte in einer Programmiersprache Objektorientierte Programme bestehen (nur) aus Klassendefinitionen In Klassendefinitionen wird die Struktur der Objekte festgelegt,

Mehr

Info B VL 8: Abstrakte Klassen & Interfaces

Info B VL 8: Abstrakte Klassen & Interfaces Info B VL 8: Abstrakte Klassen & Interfaces Objektorientiere Programmierung in Java 2003 Ute Schmid (Vorlesung) Elmar Ludwig (Übung) FB Mathematik/Informatik, Universität Osnabrück Info B VL 8: Abstrakte

Mehr

GUI Programmierung in Java

GUI Programmierung in Java vs und niemals mischen! Daher muss man sich für eine Klasse entscheiden 1 (Abstract Window Toolkit) schwergewichtige Alle Elemente werden vom Betriebssytem gemalt sehen aus wie alle anderen Programme auf

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

3. Aufgabe: Bitmap-Datei

3. Aufgabe: Bitmap-Datei 1 Einleitung 3. Aufgabe: Bitmap-Datei In dieser Programmieraufgabe soll eine Grafik erstellt und gespeichert werden. Es wurde das Bitmap-Format von Microsoft gewählt, da es recht einfach erstellt und von

Mehr

Abstrakte Klassen, Interfaces

Abstrakte Klassen, Interfaces Abstrakte Klassen, Interfaces INE2, Mittwoch 8.00-9.35 / TE561 M. Thaler, tham@zhaw.ch Office TG208 http://www.zhaw.ch/~tham 1 Um was gehtes? Problemstellung Klassenhierachie - verschiedene geometrische

Mehr

Organisatorisches. drei Gruppen Gruppe 1: 10:10-11:40, Gruppe 2: 11:45-13:15 Gruppe 3: 13:20-14:50

Organisatorisches. drei Gruppen Gruppe 1: 10:10-11:40, Gruppe 2: 11:45-13:15 Gruppe 3: 13:20-14:50 Organisatorisches Vorlesung Donnerstag 8:35 bis 10:05 Übung drei Gruppen Gruppe 1: 10:10-11:40, Gruppe 2: 11:45-13:15 Gruppe 3: 13:20-14:50 Tutorium (Mehr oder weniger) abwechselnd Mo und Mi 10-11:30 Termine

Mehr

IT I: Heute. Klasse Object. equals, hashcode, tostring. HashSet IT I - VO 6 1

IT I: Heute. Klasse Object. equals, hashcode, tostring. HashSet IT I - VO 6 1 IT I: Heute Klasse Object equals, hashcode, tostring HashSet 14.11.2017 IT I - VO 6 1 Wissensüberprüfung Wie ruft man statische Methode auf? Gegeben Klasse Fix mit statischer Methode static boolean foxi(string

Mehr

C++ - Objektorientierte Programmierung Konstruktoren und Destruktoren

C++ - Objektorientierte Programmierung Konstruktoren und Destruktoren C++ - Objektorientierte Programmierung Konstruktoren und Destruktoren hat eine Kantenlänge hat eine Füllfarbe Kantenlänge setzen Füllfarbe lesen Volumen berechnen Leibniz Universität IT Services Anja Aue

Mehr

Programmierung für Mathematik (HS13)

Programmierung für Mathematik (HS13) software evolution & architecture lab Programmierung für Mathematik (HS13) Übung 6 1 Aufgabe: Getter- und Setter-Methoden 1.1 Lernziele 1. Getter- und Setter-Methoden verstehen und anwenden. 1.2 Aufgabenstellung

Mehr

Informatik II Übung 06. Benjamin Hepp 5 April 2017

Informatik II Übung 06. Benjamin Hepp 5 April 2017 Informatik II Übung 06 Benjamin Hepp benjamin.hepp@inf.ethz.ch 5 April 2017 Nachbesprechung U5 5 April 2017 Informatik II - Übung 01 2 Nachbesprechung U5 1. Einfach verkettete Listen Keine Probleme 2.

Mehr

1 Modellierung einer Uhr

1 Modellierung einer Uhr PNS Wahlpflichtfach Informatik Projekt: Uhrzeit Seite 1 1 Modellierung einer Uhr Aufgabe: Es soll ein Modell für eine Digitaluhr erstellt werden, die Stunden und Minuten im Format hh:mm repräsentiert.

Mehr

Grundlagen der Informatik

Grundlagen der Informatik Grundlagen der Informatik Polymorphie, Abstrakte Klassen, Mehrfachvererbung Prof. Dr.-Ing. Thomas Wiedemann Prof. Dr. rer.nat. Ralph Großmann Fachgebiet Informatik / Mathematik Überblick zum Inhalt Klassen-3

Mehr

Listen. ArrayList. Definition Listen erzeugen Listen verändern Listen durchlaufen Listen sortieren. Dr. Beatrice Amrhein

Listen. ArrayList. Definition Listen erzeugen Listen verändern Listen durchlaufen Listen sortieren. Dr. Beatrice Amrhein Listen ArrayList Definition Listen erzeugen Listen verändern Listen durchlaufen Listen sortieren Dr. Beatrice Amrhein Definition 2 Definition: Liste (ArrayList) Eine C#-Liste (ArrayList) ist eine geordnete

Mehr

DAP2-Programmierpraktikum Einführung in C++ (Teil 2)

DAP2-Programmierpraktikum Einführung in C++ (Teil 2) DAP2-Programmierpraktikum Einführung in C++ (Teil 2) Carsten Gutwenger 18. April 2008 Lehrstuhl 11 Algorithm Engineering Fakultät für Informatik, TU Dortmund Überblick Dynamischer Speicher Klassen und

Mehr

Universität Paderborn Prof. Dr. Heike Wehrheim. Betreutes Arbeiten. Ab diese Woche: freitags, 14 16, E-Pool (während Tutorium Knopf) GPI, WS 07/08

Universität Paderborn Prof. Dr. Heike Wehrheim. Betreutes Arbeiten. Ab diese Woche: freitags, 14 16, E-Pool (während Tutorium Knopf) GPI, WS 07/08 Betreutes Arbeiten Ab diese Woche: freitags, 14 16, E-Pool (während Tutorium Knopf) 375 Wiederholung Klasse: class Klassenname { konzeptuelle Einheit der Modellierungsdomäne kapselt Daten und Operationen

Mehr

Programmierstarthilfe SS 2008 Fakultät für Ingenieurwissenschaften und Informatik 8. Blatt Für den 16. und

Programmierstarthilfe SS 2008 Fakultät für Ingenieurwissenschaften und Informatik 8. Blatt Für den 16. und Programmierstarthilfe SS 2008 Fakultät für Ingenieurwissenschaften und Informatik 8. Blatt Für den 16. und 17.6.2008 Organisatorisches Um auf die Mailingliste aufgenommen zu werden schicke einfach eine

Mehr

5.4 Arrays. Oft müssen viele Werte gleichen Typs gespeichert werden. Idee: Lege sie konsekutiv ab! Greife auf einzelne Werte über ihren Index zu!

5.4 Arrays. Oft müssen viele Werte gleichen Typs gespeichert werden. Idee: Lege sie konsekutiv ab! Greife auf einzelne Werte über ihren Index zu! 5.4 Arrays Oft müssen viele Werte gleichen Typs gespeichert werden. Idee: Lege sie konsekutiv ab! Greife auf einzelne Werte über ihren Index zu! Feld: Index: 17 3-2 9 0 1 0 1 2 3 4 5 Harald Räcke 114/656

Mehr

Organisatorisches. Neue Übungsblätter: Nur mehr elektronisch? Abgabe Di, , 14 Uhr bis Do, , 8Uhr

Organisatorisches. Neue Übungsblätter: Nur mehr elektronisch? Abgabe Di, , 14 Uhr bis Do, , 8Uhr Organisatorisches Neue Übungsblätter: Nur mehr elektronisch? Abgabe Di, 14.10., 14 Uhr bis Do, 23.10., 8Uhr. 14.10.2014 IT I - VO 1 1 IT I: Heute Wiederholung CuP ctd: this Arrays, ArrayLists Schleifen:

Mehr

Tutoraufgabe 1 (Seiteneekte):

Tutoraufgabe 1 (Seiteneekte): Prof. aa Dr. J. Giesl Programmierung WS14/15 C. Aschermann, F. Frohn, J. Hensel, T. Ströder Allgemeine Hinweise: Die Hausaufgaben sollen in Gruppen von je 2 Studierenden aus der gleichen Kleingruppenübung

Mehr

Allgemeine Informatik II SS :30-13:30 Uhr

Allgemeine Informatik II SS :30-13:30 Uhr TU Darmstadt FB Informatik Prof. J. Fürnkranz Vordiplomsklausur - Lösungsvorschlag Allgemeine Informatik II SS 2005 15.09.2005 11:30-13:30 Uhr Hinweise: Als Hilfsmittel ist nur ein schwarzer oder blauer

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 18 Einstieg in die Informatik mit Java Applets Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 18 1 Einführung 2 Sicherheits-Maßnahmen 3 Ereignisgesteuerte Programmierung

Mehr

Konzepte objektorientierter Programmierung

Konzepte objektorientierter Programmierung Konzepte objektorientierter Programmierung Objekte Klassen Nachrichten Kapselung Einführung Vererbung heute! Konzepte objektorientierter Programmierung Was ist ein Objekt? Was ist eine Klasse? Was sind

Mehr

Java Übung. Übung 3. Werner Gaulke. 2. Mai Universität Duisburg-Essen Kommedia, Übung EinPro SS06, Einführung in Java - Übung.

Java Übung. Übung 3. Werner Gaulke. 2. Mai Universität Duisburg-Essen Kommedia, Übung EinPro SS06, Einführung in Java - Übung. Java Übung Übung 3 Universität Duisburg-Essen Kommedia, Übung EinPro SS06, 2. Mai 2006 (UniDUE) 2. Mai 2006 1 / 17 Aufgabe 1 Umwandeln von do while in for Schleife. Listing 1: aufgabe3 1.java 1 public

Mehr

Programmierung für Mathematik (HS13)

Programmierung für Mathematik (HS13) software evolution & architecture lab Programmierung für Mathematik (HS13) Übung 11 1 Aufgabe: Codeverständnis 1.1 Aufgabenstellung Notieren Sie, was der folgende Code ausgeben würde, wenn er so in einer

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

Kapitel 8. Programmierkurs. Methoden. 8.1 Methoden

Kapitel 8. Programmierkurs. Methoden. 8.1 Methoden Kapitel 8 Programmierkurs Birgit Engels Anna Schulze Zentrum für Angewandte Informatik Köln Objektorientierte Programmierung Methoden Überladen von Methoden Der this-zeiger Konstruktoren Vererbung WS 07/08

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Tafelübung 03 Vererbung, Polymorphie, Sichtbarkeit, Interfaces Clemens Lang T2 11. Mai 2010 14:00 16:00, 00.152 Tafelübung zu AuD 1/26 Klassen und Objekte Klassen und Objekte

Mehr

Android Programmierung. Studiengang MI

Android Programmierung. Studiengang MI Android Programmierung mit Java Studiengang MI Dipl.-Inf., Dipl.-Ing. (FH) Michael Wilhelm Hochschule Harz FB Automatisierung und Informatik mwilhelm@hs-harz.de http://mwilhelm.hs-harz.de Raum 2.202 Tel.

Mehr

Hochschule Darmstadt Informatik-Praktikum WS 2017/2018 EIT Bachelor 5. Aufgabenblatt Datenstruktur, Dateieingabe und -ausgabe

Hochschule Darmstadt Informatik-Praktikum WS 2017/2018 EIT Bachelor 5. Aufgabenblatt Datenstruktur, Dateieingabe und -ausgabe Aufgabe 5: Häuser verwalten Für ein Schneeräumungsunternehmen soll ein Programm zur Verwaltung von Häuserlisten geschrieben werden. Das Programm soll in der Lage sein, zu einem Haus die wichtigsten Informationen

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

Klausur Software-Entwicklung März 01

Klausur Software-Entwicklung März 01 Aufgabe 1: minimaler Punktabstand ( 2+5 Punkte ) Matrikelnr : In einem Array punkte sind Koordinaten von Punkten gespeichert. Ergänzen Sie in der Klasse Punkt eine Klassen-Methode (=static Funktion) punktabstand,

Mehr

Ein String ist in Java eigentlich eine Klasse, wir können ihn aber zunächst als Datentyp betrachten, der zur Speicherung von Zeichenketten dient.

Ein String ist in Java eigentlich eine Klasse, wir können ihn aber zunächst als Datentyp betrachten, der zur Speicherung von Zeichenketten dient. Strings Ein String ist in Java eigentlich eine Klasse, wir können ihn aber zunächst als Datentyp betrachten, der zur Speicherung von Zeichenketten dient. Beispiel: String zeile = "Cusanus-Gymnasium Wittlich";

Mehr

Einführung in die Programmierung für NF MI. Übung 07

Einführung in die Programmierung für NF MI. Übung 07 Einführung in die Programmierung für NF MI Übung 07 Inhalt Wiederholung Kommentare Wiederholung Arrays Einführung in Objekte Einführung in die Programmierung für NF Übung 07 2 Wiederholung Kommentare Kommentare

Mehr

Heute. Nachbetrachtung Wissensüberprüfung. Sortieren Interface Comparable TreeSet Sortieren von Arrays: Arrays.sort() 3.12.

Heute. Nachbetrachtung Wissensüberprüfung. Sortieren Interface Comparable TreeSet Sortieren von Arrays: Arrays.sort() 3.12. Heute Nachbetrachtung Wissensüberprüfung Sortieren Interface Comparable TreeSet Sortieren von Arrays: Arrays.sort() 3.12.2015 IT I - VO 9 1 Organisatorisches Zwischentest findet am 16.12. von 17:30 bis

Mehr

Universität Augsburg, Institut für Informatik Sommersemester 2001 Prof. Dr. Martin Ester 08. Oktober Klausur II

Universität Augsburg, Institut für Informatik Sommersemester 2001 Prof. Dr. Martin Ester 08. Oktober Klausur II Universität Augsburg, Institut für Informatik Sommersemester 2001 Prof. Dr. Martin Ester 08. Oktober 2001 Stefan Holland Informatik II Hinweise: Klausur II Verwenden Sie für Ihre Lösungen ausschließlich

Mehr

1 Klassen anlegen und Objekte erzeugen

1 Klassen anlegen und Objekte erzeugen Werkzeugkiste Java 1 1 Klassen anlegen und Objekte erzeugen Klassengrundgerüst 1 /** 2 * Write a description of class Testklasse here. 3 * 4 * @author ( your name ) 5 * @version (a version number or a

Mehr

Hochschule Darmstadt Informatik-Praktikum SS 2017 EIT Bachelor 5. Aufgabenblatt Datenstruktur, Dateieingabe und -ausgabe

Hochschule Darmstadt Informatik-Praktikum SS 2017 EIT Bachelor 5. Aufgabenblatt Datenstruktur, Dateieingabe und -ausgabe Aufgabe 5: Bücher verwalten Für das Literaturverzeichnis einer Abschlussarbeit soll ein Programm zur Verwaltung von Bücherlisten geschrieben werden. Das Programm soll in der Lage sein, zu einem Buch die

Mehr

Informatik B. Vorlesung 14 Serialisierung, Autoboxing. Dr. Ralf Kunze

Informatik B. Vorlesung 14 Serialisierung, Autoboxing. Dr. Ralf Kunze Vorlesung 14 Serialisierung, Autoboxing 1 Serialisierung von Objekten Die Objekte innerhalb eines Java-Programmes sollen manchmal auch nach Beendigung der JVM verfügbar bleiben Objekte müssen ab und an

Mehr

Algorithmen, Datenstrukturen und Programmieren I WS 2001/2002

Algorithmen, Datenstrukturen und Programmieren I WS 2001/2002 1. Welches Ergebnis liefern die folgenden Operationen? Geben Sie zunächst einen educated guess an und überprüfen Sie diesen dann mittels einer selbstgeschriebenen Java-Applikation. a) x = 7 + 3 * 6 / 2-1;

Mehr

Kapitel X - Zeichnen mit Java2D

Kapitel X - Zeichnen mit Java2D Kapitel X - Zeichnen mit Java2D SWT I Sommersemester 2010 Walter F. Tichy, Andreas Höfer, Korbinian Molitorisz IPD Tichy, Fakultät für Informatik KIT die Kooperation von Forschungszentrum Karlsruhe GmbH

Mehr

Arbeitsblatt 5 EAD II NetBeans

Arbeitsblatt 5 EAD II NetBeans Arbeitsblatt 5 EAD II NetBeans Graphische Oberfläche für Uhrenanzeige mit NetBeans Für die Einführung in die Verwendung von NetBeans erstellen wir die graphische Oberfläche für die Uhr nun mit NetBeans.

Mehr

Betreutes Programmieren Vorlesung Informatik II, Blatt 11

Betreutes Programmieren Vorlesung Informatik II, Blatt 11 SS 2011 Fakultät für Angewandte Informatik Lehrprofessur für Informatik 13.07.2011 Prof. Dr. Robert Lorenz Betreutes Programmieren Vorlesung Informatik II, Blatt 11 Programmieraufwand für geübte Programmierer:

Mehr

Name: Klausur Informatik III WS 2003/04

Name: Klausur Informatik III WS 2003/04 1 : Methodenimplementierung ca. 42 Punkte Gegeben ist die Klasse Mitarbeiter. Listing 1: (./Code1/Mitarbeiter.h) using namespace std; // globale Variable fuer Ausgabedatei // kann entsprechend

Mehr