Tutoraufgabe 1 (Überladen von Methoden):

Größe: px
Ab Seite anzeigen:

Download "Tutoraufgabe 1 (Überladen von Methoden):"

Transkript

1 Prof. aa Dr. J. Giesl Programmierung WS12/13 M. Brockschmidt, F. Emmes, C. Otto, T. Ströder Allgemeine Hinweise: Die Hausaufgaben sollen in Gruppen von je 2 Studierenden aus der gleichen Kleingruppenübung (Tutorium) bearbeitet werden. Namen und Matrikelnummern der Studierenden sind auf jedes Blatt der Abgabe zu schreiben. Heften bzw. tackern Sie die Blätter! Die Nummer der Übungsgruppe muss links oben auf das erste Blatt der Abgabe geschrieben werden. Notieren Sie die Gruppennummer gut sichtbar, damit wir besser sortieren können. Die Lösungen müssen bis Freitag, um 8:00 Uhr in den entsprechenden Übungskasten eingeworfen werden. Sie nden die Kästen am Eingang Halifaxstr. des Informatikzentrums (Ahornstr. 55). Alternativ können Sie die Lösungen auch in Ihrem Tutorium vor der Abgabefrist direkt bei Ihrer Tutorin/Ihrem Tutor abgeben. In einigen Aufgaben müssen Sie in Java programmieren und.java-dateien anlegen. Drucken Sie diese aus und schicken Sie sie per vor Freitag, den um 8:00 Uhr an Ihre Tutorin/Ihren Tutor. Stellen Sie sicher, dass Ihr Programm von javac akzeptiert wird, ansonsten werden keine Punkte vergeben. Beachten Sie auch die Codekonventionen auf der Webseite zur Vorlesung (Verstöÿe gegen diese Konventionen können zu Punktabzügen führen). Tutoraufgabe 1 (Überladen von Methoden): Lösen Sie die folgende Aufgabe ohne Einsatz eines Computers. Bedenken Sie, dass Sie in einer Prüfungssituation ebenfalls keinen Computer zur Verfügung haben. Betrachten Sie das folgende kurze Programm: public class Ueberladen { public static int foo ( double x, char y) { return 1; public static int foo ( double x, double y) { return 2; public static int foo ( char x, long y) { return 3; public static int foo ( float... x ) { return 4; public static int foo ( float x, char y) { return 5; public static int foo ( int x, double y) { return 6; public static int foo ( int x ) { return 7; public static int foo ( double x ) { return 8; public static void main ( String [] args ) { byte x1 = ( byte ) 1; long x2 = ( long ) 2; double x3 = ( double ) 3; System. out. println ( foo (.0,.0 f )); // a) OUT : System. out. println ( foo (x2, 1L )); // b) OUT : System. out. println ( foo (x1, x2 )); // c) OUT : System. out. println ( foo (1f, 'c ' )); // d) OUT : System. out. println ( foo (1L, 'y ' )); // e) OUT : System. out. println ( foo (x3, 'z ' )); // f) OUT : System. out. println ( foo (1 )); // g) OUT : System. out. println ( foo (1 f )); // h) OUT : Geben Sie für die acht mit OUT: markierten Aufrufe von foo jeweils an, welche Ausgabe erzeugt wird. Begründen Sie Ihre Antwort. Hinweise: 1

2 Beachten Sie die Übersicht über implizite Datentypanpassung auf Folie 5 in Abschnitt II.1.2. Zahlen wie 1L mit einem L am Ende sind vom Typ long. Aufgabe 2 (Überladen von Methoden): (4 Punkte) Lösen Sie die folgende Aufgabe ohne Einsatz eines Computers. Bedenken Sie, dass Sie in einer Prüfungssituation ebenfalls keinen Computer zur Verfügung haben. Betrachten Sie das folgende kurze Programm: public class Ueberladen { public static int foo ( short x, int y) { return 1; public static int foo ( long x, char y) { return 2; public static int foo ( int x, int y) { return 3; public static int foo ( char x, double y) { return 4; public static int foo ( double x, int y) { return 5; public static int foo ( int... x ) { return 6; public static int foo ( short x ) { return 7; public static int foo ( long x ) { return 8; public static void main ( String [] args ) { long x1 = ( long ) 1; short x2 = ( short ) 2; float x3 = ( float ) 3; System. out. println ( foo (1.0, x2 )); // a) OUT : System. out. println ( foo ( 'x ', x3 )); // b) OUT : System. out. println ( foo (x2, x2 )); // c) OUT : System. out. println ( foo (x2, 1)); // d) OUT : System. out. println ( foo (x1, 1)); // e) OUT : System. out. println ( foo ( x1 )); // f) OUT : System. out. println ( foo (( byte ) x2 )); // g) OUT : System. out. println ( foo (1 )); // h) OUT : Geben Sie für die acht mit OUT: markierten Aufrufe von foo jeweils an, welche Ausgabe erzeugt wird. Begründen Sie Ihre Antwort. Hinweise: Beachten Sie die Übersicht über implizite Datentypanpassung auf Folie 5 in Abschnitt II.1.2. Tutoraufgabe 3 (Rechtecke): In dieser Aufgabe soll eine Klasse erstellt werden, mit der sich Rechtecke repräsentieren lassen. Ein solches Rechteck lässt sich mit den Koordinaten x und y für die linke obere Ecke, der Breite width und der Höhe height beschreiben, wobei x, y, width und height positive rationale Zahlen (einschlieÿlich 0) sind. Sie können für die entsprechenden Attribute den Typ double verwenden. Ihre Implementierung sollte mindestens die folgenden Methoden und Konstruktoren beinhalten. Sie sollten dabei die Konzepte der Datenkapselung berücksichtigen. In dieser Aufgabe dürfen Sie die Methoden double Math.max(double x, double y) und double Math.min(double x, double y) einsetzen, um das Maximum bzw. das Minimum von zwei double-werten zu bestimmen. Ansonsten dürfen aber keine Bibliotheksfunktionen verwendet werden. Konzentrieren Sie sich im Tutorium zuerst auf die Dokumentation mit Javadoc (Aufgabenteil e), die Konstruktoren (Teil a) und die anschlieÿend die Methoden getx(), setx (Teil b) und intersection, unity (Teil d). 2

3 a) Erstellen Sie die folgenden Konstruktoren, um Objekte des Typs Rectangle erzeugen zu können: public Rectangle ( double x, double y, double width, double height ) public Rectangle ( Rectangle rectangle ) public Rectangle () Beachten Sie dabei folgende Punkte: Der Konstruktor mit vier Parametern soll ein Rechteck erzeugen, dessen Attribute jeweils die von den entsprechenden Parametern angegebenen Werte haben. Hier muss der Aufrufer (und nicht Sie als Implementierer der Klasse Rectangle) sicherstellen, dass die Parameter keine Werte kleiner als 0.0 haben. Der Konstruktor mit einem Parameter soll ein Rechteck erzeugen, dessen Attribute die gleichen Werte haben wie die Attribute von rectangle. Hier muss der Aufrufer (und nicht Sie als Implementierer der Klasse Rectangle) sicherstellen, dass der Parameter rectangle nicht den Wert null hat. Der Konstruktor, der ohne Argumente aufgerufen wird, erstellt ein Rechteck mit Breite und Höhe 0.0 an den Koordinaten 0.0 und 0.0. b) Erstellen Sie die folgenden Selektoren, um die Koordinaten, die Breite und die Höhe eines Rechtecks setzen und auslesen zu können: public double getx () public void setx ( double x) public double gety () public void sety ( double y) public double getwidth () public void setwidth ( double width ) public double getheight () public void setheight ( double height ) c) Erstellen Sie die folgenden Methoden, mit denen man Rechtecke bearbeiten kann: public static Rectangle unity () public void move ( double x, double y) public boolean contains ( double x, double y) public void stretch ( double factor ) public double size () public Rectangle union ( Rectangle rectangle ) public Rectangle intersection ( Rectangle rectangle ) Bei den in diesem Aufgabenteil geforderten Methoden muss der Aufrufer (und nicht Sie als Implementierer der Klasse Rectangle) sicherstellen, dass die Parameter, mit denen die Methoden aufgerufen werden, nicht den Wert null haben oder negative Zahlen sind. Diejenigen Methoden, die den Rückgabetyp void haben, sollen als Seiteneekt das Objekt entsprechend ändern, für das sie aufgerufen werden. Beachten Sie dabei folgende Punkte: Ein Aufruf von unity() soll einen neues Rechteck zurückgeben, das genau 1.0 breit und hoch ist und die Koordinaten 0.0 und 0.0 hat. Die Methode move(double x, double y) soll das aktuelle Rechteck an die Koordinaten x und y verschieben. Die Methode contains(double x, double y) prüft, ob der Punkt mit den Koordinaten x und y in dem aktuellen Rechteck liegt. Die Methode stretch(double factor) soll das aktuelle Rechteck um den Faktor factor strecken. Das heiÿt, die Höhe und die Breite werden mit dem Faktor factor multipliziert. Die Methode size() gibt die Fläche des aktuellen Rechtecks zurück. 3

4 Die Methode union(rectangle rectangle) soll ein neues Rechteck zurückgeben, das durch die Vereinigung des aktuellen Rechtecks mit dem Rechteck rectangle entsteht. Hinweis: Die Vereinigung zweier Rechtecke ist das kleinste Rechteck, das die beiden anderen vollständig abdeckt. Die Methode intersection(rectangle rectangle) soll ein neues Rechteck zurückgeben, das durch den Schnitt des aktuellen Rechtecks mit dem Rechteck rectangle entsteht. Wenn die Rechtecke sich nicht überlappen, soll null zurückgeliefert werden. Hinweis: Der Schnitt zweier Rechtecke ist das gröÿte Rechteck, welches in beiden enthalten ist. d) Erstellen Sie ebenfalls Implementierungen für die folgenden Methoden: public boolean isequalto ( Rectangle rectangle ) public String tostring () public Rectangle copy () Dabei soll die Methode isequalto(rectangle rectangle) zurückgeben, ob das aktuelle Rechteck die gleich Form wie das Rechteck rectangle hat. Dabei kann rectangle auch den Wert null haben. (Zwei Rechtecke haben dieselbe Form, wenn Sie an denselben Koordinaten liegen und die Breite und die Höhe jeweils gleich sind.) Die Methode tostring() erstellt eine textuelle Repräsentation des aktuellen Rechtecks, aus der die Koordinaten, die Breite und die Höhe hervorgehen. Zum Beispiel stellt der String ( ),12.0,13.0 das Rechteck mit den Koordinaten 10.0 und 11.0 und der Breite 12.0 und Höhe 13.0 dar. Die Methode copy() erzeugt ein neues Rechteck, das eine Kopie des aktuellen Rechtecks ist. e) Dokumentieren Sie die alle ihre Methoden die als public markiert sind, indem Sie die Implementierung mit Javadoc-Kommentaren ergänzen. Diese Kommentare sollten einen allgemeine Erklärung der Methode sowie weitere Erklärungen jedes Parameters und des return-wertes enthalten. Verwenden Sie innerhalb des Kommentars dafür die Benutzen Sie das Programm javadoc, um Ihre Javadoc-Kommentare in das HTML-Format zu übersetzen. Überprüfen Sie mit einem Browser, ob das gewünschte Ergebnis generiert wurde und senden Sie die HTML-Dateien an ihren Tutor bzw. Tutorin. Bitte drucken Sie die generierten Dateien, der Umwelt zuliebe, nicht aus. Aufgabe 4 (Serveranbieter): ( = 18 Punkte) Wir beschäftigen uns in dieser Aufgabe mit Anbietern von Servern (ein Server ist ein für den Dauer-Einsatz gebauter Computer). Jeder solche Anbieter hat eine Server-Halle, in der die verschiedenen Server untergebracht sind. Diese Server werden an Kunden vermietet. Wir verwenden hierfür die Klassen Kunde, Anbieter, Server und Main, welche teilweise schon als.java-dateien existieren und auf der Homepage zur Veranstaltung zur Verfügung stehen. In der Klasse Anbieter existiert bereits ein Array vom Typ Server[], in dem die Server des Anbieters gespeichert sind. Weiterhin existiert bereits ein Attribut kontostand, in dem gespeichert ist, wieviel Geld der Anbieter eingenommen hat. Beachten Sie bei der Bearbeitung der folgenden Aufgabenteile die Prinzipien der Datenkapselung. Verwenden Sie also das Schlüsselwort public nur für die Teile der Implementierung, auf die von anderen Klassen aus zugegrien werden soll. Verwenden Sie private für die Methoden und Attribute, die nur innerhalb der jeweiligen Klasse direkt verwendet werden. a) Vervollständigen Sie die Klasse Anbieter so, dass der Standard-Konstruktor Anbieter() jedem damit erzeugten Anbieter-Objekt eine eindeutige Zahl zuordnet und speichern Sie diese Zahl in einem Attribut namens id. Das erste damit erzeugte Anbieter-Objekt soll die ID 1 bekommen, das zweite erzeugte entsprechend Objekt die ID 2,... Hinweis: Verwenden Sie ein statisches Attribut, um mitzuzählen, wie viele bzw. welche IDs bereits vergeben wurden. Sie können davon ausgehen, dass es nicht mehr als Anbieter gibt. 4

5 b) Ergänzen Sie in der Klasse Anbieter die tostring-methode an der mit TODO markierten Stelle. Der zurückgegebene String soll in der ersten Zeile einen String der folgenden Form ausgeben: (ANBIETER 5) Kontostand: Die Ausgabe enthält also in der ersten Zeile die ID des Anbieters sowie den Kontostand. c) Schreiben Sie die Klasse Main und darin die main-methode. Erzeugen Sie in dieser Methode zwei Anbieter-Objekte und geben Sie die String-Darstellung dieser Objekte auf der Konsole aus. (ANBIETER 1) Kontostand: 0.0 (ANBIETER 2) Kontostand: 0.0 d) Schreiben Sie die Klasse Kunde. Jeder Kunde soll, analog zu jedem Anbieter, einen Kontostand haben. Dieser ist anfangs immer Schreiben Sie in der Klasse Kunde eine Methode getkontostand, die den Kontostand des Kunden zurückgibt. Um ein Kunde-Objekt für den aktuellen Anbieter zu erhalten, verwenden wir die Methode neuerkunde in der Klasse Anbieter. Diese liefert ein neues Kunde-Objekt zurück, wobei im Kunde-Objekt zusätzlich zum Kontostand auch in einem weiteren Attribut gespeichert ist, wer der Anbieter des Kunden ist. Schreiben Sie diese Methode neuerkunde in der Klasse Anbieter und vervollständigen Sie auch die Klasse Kunde entsprechend (Die Klasse Kunde benötigt ein weiteres Attribut und einen geeigneten Konstruktor). e) Schreiben Sie in der Klasse Kunde eine tostring-methode. Der zurückgegebene String soll einen String der folgenden Form ausgeben: (KUNDE) Kontostand: (ANBIETER 5) Kontostand: Die erste Zeile enthält also den Kontostand, die zweite Zeile ist die String-Darstellung des Anbieters, der dem Kunden zugeordnet ist. f) Passen Sie die main-methode so an, dass drei Kunde-Objekte angelegt werden. Die ersten beiden Kunden sollen dabei zu dem ersten Anbieter gehören, der dritte Kunde zum zweiten Anbieter. Geben Sie die String-Darstellung dieser drei Objekte auf der Konsole aus. (KUNDE) Kontostand: (ANBIETER 1) Kontostand: 0.0 (KUNDE) Kontostand: (ANBIETER 1) Kontostand: 0.0 (KUNDE) Kontostand: (ANBIETER 2) Kontostand: 0.0 g) Fügen Sie in der Klasse Kunde eine Methode bezahle hinzu. Diese bekommt einen double-wert übergeben und subtrahiert diesen Betrag vom Kontostand des Kunden. Anschlieÿend ist der Kontostand des Kunden also um exakt diesen Betrag geringer. h) Damit ein Kunde einen Server bei seinem Anbieter anmieten kann, schreiben wir die Methode neuerserver in der Klasse Kunde. Diese bekommt zwei Argumente vom Typ int übergeben, wobei der erste Wert für den RAM-Ausbau des Servers (in GByte) steht. Der zweite Wert steht für den Festplattenplatz des Servers (in TByte). Implementieren Sie die Methode so, dass diese eine Methode neuerserver in der Klasse Anbieter aufruft. Diese bekommt zusätzlich zu den beiden int-argumenten auch noch das jeweilige Kunde-Objekt 5

6 übergeben und gibt als int-wert den Stellplatz des Servers beim Anbieter des Kunden zurück. Speichern Sie diesen Stellplatz in einem neuen Attribut stellplatz des Kunden, das mit 1 initialisiert ist. Das Attribut stellplatz des Kunden gibt jeweils an, welchen Server er bei seinem Anbieter angemietet hat. Implementieren Sie nun die Methode neuerserver in der Klasse Anbieter. Diese soll zuerst überprüfen, ob Platz für einen neuen Server ist (was der Fall ist, wenn ein null-eintrag im Server[]-Array existiert). Wenn dies der Fall ist, soll der Mietpreis vom Kunden bezahlt werden. Der Preis setzt sich aus 5 r + 2 p zusammen, wenn r angibt wie viele GByte RAM der Server haben soll und p angibt, wie viele TByte Festplattenplatz der Server haben soll. Falls Platz für einen neuen Server ist, muss der Kunde den entsprechenden Preis bezahlen. Schreiben Sie hierzu eine Hilfsmethode bezahle in der Klasse Anbieter, die überprüft, ob der Kunde genügend Geld auf seinem Konto hat. In diesem Fall wird das Geld beim Kunden vom Konto entfernt, beim Anbieter dem Konto hinzugefügt und die Methode bezahle liefert true zurück. Ansonsten liefert sie false. Wenn der Kunde bezahlt hat, soll das neue Server-Objekt angelegt werden und an einem freien Platz im serverhalle-array hinzugefügt werden. Implementieren Sie hierfür einen passenden Konstruktor in der Klasse Server. Bei Erfolg ist die Rückgabe der Methode der Array-Index, an dem der Server zu nden ist (was den Stellplatz in der Halle repräsentiert). Ansonsten ist die Rückgabe 1. Passen Sie in der Klasse Kunde die tostring-methode so an, dass in der zweiten Zeile der Stellplatz des angemieteten Servers mit ausgegeben wird, sofern das entsprechende Attribut nicht 1 ist. Erweitern Sie anschlieÿend die main-methode in der Klasse Main so, dass der erste Kunde einen Server mit 8 GByte RAM und 2 TByte Festplattenplatz bekommt. Der zweite Kunde soll einen Server mit 16 GByte RAM und 10 TByte Festplattenplatz bekommen, der dritte Kunde einen Server mit 192 GByte RAM und 15 TByte Festplattenspeicher. Geben Sie unmittelbar nach jedem der drei neuerserver-aufrufe auf der Konsole die String-Darstellung des jeweiligen Kunden aus. (KUNDE) Kontostand: Stellplatz: 0 (ANBIETER 1) Kontostand: 44.0 Stellplatz 0 :(SERVER) RAM: 8 GByte, Festplattenplatz: 2 TByte (KUNDE) Kontostand: Stellplatz: 1 (ANBIETER 1) Kontostand: Stellplatz 0 :(SERVER) RAM: 8 GByte, Festplattenplatz: 2 TByte Stellplatz 1 :(SERVER) RAM: 16 GByte, Festplattenplatz: 10 TByte (KUNDE) Kontostand: 10.0 Stellplatz: 0 (ANBIETER 2) Kontostand: Stellplatz 0 :(SERVER) RAM: 192 GByte, Festplattenplatz: 15 TByte i) Schreiben Sie eine Methode mehrram in der Klasse Kunde. Diese soll ein int-argument übergeben bekommen und dafür sorgen, dass nach Ausführung der Methode der Server des Kunden so viel RAM mehr hat, wie dieses Argument (in GByte) angibt. Um dies zu erreichen, schreiben und verwenden Sie die Methode mehrram in der Klasse Anbieter, welche zusätzlich ein weiteres int-argument bekommt, das den Stellplatz des Servers angibt. Zusätzlich wird ein Kunde-Objekt übergeben. In dieser Methode soll, sofern der Server an der angegebenen Stelle im serverhalle-array existiert, dem Kunden Geld für den Einbau berechnet werden. Wenn der Kunde bezahlt hat, soll die Methode mehrram in der Klasse Server aufgerufen werden, die das ram-attribut des jeweiligen Servers entsprechend erhöht. Der Betrag, den der Kunde bezahlen muss, ist 5 r, wenn r angibt, wieviele GByte RAM zusätzlich eingebaut werden sollen. Implementieren Sie für diese Teilaufgabe also in den drei Klassen Kunde, Anbieter und Server jeweils eine Methode mehrram (mit unterschiedlicher Signatur). 6

7 Erweitern Sie anschlieÿend die main-methode in der Klasse Main so, dass der erste Kunde 8 GByte zusätzlichen RAM einbauen lässt und geben Sie anschlieÿend auf der Konsole die String-Darstellung dieses Kunden aus. (KUNDE) Kontostand: Stellplatz: 0 (ANBIETER 1) Kontostand: Stellplatz 0 :(SERVER) RAM: 16 GByte, Festplattenplatz: 2 TByte Stellplatz 1 :(SERVER) RAM: 16 GByte, Festplattenplatz: 10 TByte j) Dokumentieren Sie alle ihre Klassen, Attribute und Methoden die als public markiert und nicht bereits dokumentiert sind, indem Sie die Implementierung mit Javadoc-Kommentaren ergänzen. Diese Kommentare sollten einen allgemeine Erklärung der Methode sowie weitere Erklärungen jedes Parameters und des return-wertes enthalten. Verwenden Sie innerhalb des Kommentars dafür die In der Klasse Main müssen Sie keine Dokumentation ergänzen. Benutzen Sie das Programm javadoc, um Ihre Javadoc-Kommentare in das HTML-Format zu übersetzen. Überprüfen Sie mit einem Browser, ob das gewünschte Ergebnis generiert wurde und senden Sie die HTML-Dateien an ihren Tutor bzw. Tutorin. Bitte drucken Sie die generierten Dateien, der Umwelt zuliebe, nicht aus. 7

Tutoraufgabe 1 (Überladen von Methoden):

Tutoraufgabe 1 (Überladen von Methoden): Prof. aa Dr. J. Giesl Programmierung WS12/13 M. Brockschmidt, F. Emmes, C. Otto, T. Ströder Tutoraufgabe 1 (Überladen von Methoden): Lösen Sie die folgende Aufgabe ohne Einsatz eines Computers. Bedenken

Mehr

Tutoraufgabe 1 (Programmanalyse):

Tutoraufgabe 1 (Programmanalyse): Prof. aa Dr. M. Müller Programmierung WS15/16 C. Aschermann, J. Hensel, J. Protze, P. Reble Allgemeine Hinweise: Die Hausaufgaben sollen in Gruppen von je 3 Studierenden aus der gleichen Kleingruppenübung

Mehr

Tutoraufgabe 1 (Programmanalyse):

Tutoraufgabe 1 (Programmanalyse): 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

Tutoraufgabe 1 (2 3 4 Bäume):

Tutoraufgabe 1 (2 3 4 Bäume): Prof. aa Dr. E. Ábrahám Datenstrukturen und Algorithmen SS Übungsblatt (Abgabe.0.0) F. Corzilius, S. Schupp, T. Ströder Allgemeine Hinweise: Die Hausaufgaben sollen in Gruppen von je bis Studierenden aus

Mehr

Tutoraufgabe 1 (Vollständige Induktion): Tutoraufgabe 2 (Rotationen): Datenstrukturen und Algorithmen SS15 Übungsblatt 5 (Abgabe 3.6.

Tutoraufgabe 1 (Vollständige Induktion): Tutoraufgabe 2 (Rotationen): Datenstrukturen und Algorithmen SS15 Übungsblatt 5 (Abgabe 3.6. Prof. aa Dr. Ir. Joost-Pieter Katoen Allgemeine Hinweise: Christian Dehnert, Friedrich Gretz, Benjamin Kaminski, Thomas Ströder Die Hausaufgaben sollen in Gruppen von je - Studierenden aus der gleichen

Mehr

5.4 Klassen und Objekte

5.4 Klassen und Objekte 5.4 Klassen und Objekte Zusammenfassung: Projekt Figuren und Zeichner Figuren stellt Basisklassen für geometrische Figuren zur Verfügung Zeichner bietet eine übergeordnete Klasse Zeichner, welche die Dienstleistungen

Mehr

PIWIN 1 Übung Blatt 5

PIWIN 1 Übung Blatt 5 Fakultät für Informatik Wintersemester 2008 André Gronemeier, LS 2, OH 14 Raum 307, andre.gronemeier@cs.uni-dortmund.de PIWIN 1 Übung Blatt 5 Ausgabedatum: 19.12.2008 Übungen: 12.1.2009-22.1.2009 Abgabe:

Mehr

Repetitorium Informatik (Java)

Repetitorium Informatik (Java) Repetitorium Informatik (Java) Tag 6 Lehrstuhl für Informatik 2 (Programmiersysteme) Übersicht 1 Klassen und Objekte Objektorientierung Begrifflichkeiten Deklaration von Klassen Instanzmethoden/-variablen

Mehr

Programmierung WS12/13 Lösung - Übung 1 M. Brockschmidt, F. Emmes, C. Otto, T. Ströder

Programmierung WS12/13 Lösung - Übung 1 M. Brockschmidt, F. Emmes, C. Otto, T. Ströder Prof. aa Dr. J. Giesl Programmierung WS12/13 M. Brockschmidt, F. Emmes, C. Otto, T. Ströder Tutoraufgabe 1 (Syntax und Semantik): 1. Was ist Syntax? Was ist Semantik? Erläutern Sie den Unterschied. 2.

Mehr

AuD-Tafelübung T-B5b

AuD-Tafelübung T-B5b 6. Übung Sichtbarkeiten, Rekursion, Javadoc Di, 29.11.2011 1 Blatt 5 2 OOP Klassen Static vs. Instanzen Sichtbarkeit 3 Stack und Heap Stack Heap 4 Blatt 6 1 Blatt 5 2 OOP Klassen Static vs. Instanzen Sichtbarkeit

Mehr

Einführung in die Java- Programmierung

Einführung in die Java- Programmierung Einführung in die Java- Programmierung Dr. Volker Riediger Tassilo Horn riediger horn@uni-koblenz.de WiSe 2012/13 1 Wichtig... Mittags keine Pommes... Praktikum A 230 C 207 (Madeleine + Esma) F 112 F 113

Mehr

Distributed Computing Group

Distributed Computing Group JAVA TUTORIAL Distributed Computing Group Vernetzte Systeme - SS 06 Übersicht Warum Java? Interoperabilität grosse und gut dokumentierte Library weit verbreitet Syntax sehr nahe an C Erfahrung: Java wird

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java Vorlesung vom 18.4.07, Grundlagen Übersicht 1 Kommentare 2 Bezeichner für Klassen, Methoden, Variablen 3 White Space Zeichen 4 Wortsymbole 5 Interpunktionszeichen 6 Operatoren 7 import Anweisungen 8 Form

Mehr

Fakultät Angewandte Informatik Programmierung verteilter Systeme 28.11.2011. Übungen zur Vorlesung Informatik II, Blatt 6

Fakultät Angewandte Informatik Programmierung verteilter Systeme 28.11.2011. Übungen zur Vorlesung Informatik II, Blatt 6 WS 2011/12 Fakultät Angewandte Informatik Programmierung verteilter Systeme 28.11.2011 Prof. Dr. Bernhard Bauer Übungen zur Vorlesung Informatik II, Blatt 6 Abgabe: Montag, 05.12.2011, 12.00 Uhr, Informatik

Mehr

188.154 Einführung in die Programmierung für Wirtschaftsinformatik

188.154 Einführung in die Programmierung für Wirtschaftsinformatik Beispiel 1 Vererbung (Liste) Gegeben sind die beiden Klassen ListNode und PersonNode. 188.154 Einführung in die Programmierung für Wirtschaftsinformatik Wiederholung, Prüfungsvorbereitung Monika Lanzenberger

Mehr

Einführung in die Programmierung 1

Einführung in die Programmierung 1 Einführung in die Programmierung 1 Einführung (S.2) Einrichten von Eclipse (S.4) Mein Erstes Programm (S.5) Hallo Welt!? Programm Der Mensch (S.11) Klassen (S.12) Einführung Wie Funktioniert Code? Geschriebener

Mehr

1. Typen und Literale (6 Punkte) 2. Zuweisungen (6 = Punkte)

1. Typen und Literale (6 Punkte) 2. Zuweisungen (6 = Punkte) Praktische Informatik (Software) Vorlesung Softwareentwicklung 1 Prof. Dr. A. Ferscha Hauptklausur am 01. 02. 2001 Zuname Vorname Matr. Nr. Stud. Kennz. Sitzplatz HS / / / Punkte Note korr. Fügen Sie fehlende

Mehr

Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung

Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung Ludwig-Maximilians-Universität München WS 2013/14 Institut für Informatik Übungsblatt 10 Prof. Dr. R. Hennicker, A. Klarl Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung

Mehr

Einführung Datentypen Verzweigung Schleifen Funktionen Dynamische Datenstrukturen. Java Crashkurs. Kim-Manuel Klein (kmk@informatik.uni-kiel.

Einführung Datentypen Verzweigung Schleifen Funktionen Dynamische Datenstrukturen. Java Crashkurs. Kim-Manuel Klein (kmk@informatik.uni-kiel. Java Crashkurs Kim-Manuel Klein (kmk@informatik.uni-kiel.de) May 7, 2015 Quellen und Editoren Internet Tutorial: z.b. http://www.java-tutorial.org Editoren Normaler Texteditor (Gedit, Scite oder ähnliche)

Mehr

Programmierkurs Java

Programmierkurs Java Programmierkurs Java Dr. Dietrich Boles Aufgaben zu UE16-Rekursion (Stand 09.12.2011) Aufgabe 1: Implementieren Sie in Java ein Programm, das solange einzelne Zeichen vom Terminal einliest, bis ein #-Zeichen

Mehr

Aufgabe 1. »Programmieren«, WS 2006/2007. Nino Simunic M.A.

Aufgabe 1. »Programmieren«, WS 2006/2007. Nino Simunic M.A. »Programmieren«, WS 006/007 Nino Simunic (nino.simunic@uni-due.de) Übungsblatt 4 Aufgabe 1 OOP In dieser Aufgabe sollen Sie Autos als Klasse Car modellieren. Die Eigenschaften auf attributiver Ebene sind:

Mehr

Javakurs für Anfänger

Javakurs für Anfänger Javakurs für Anfänger Einheit 09: Vererbung Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda 1. Teil Einführung in die Vererbung Motivation Das Schlüsselwort extends Einführendes

Mehr

Computeranwendung und Programmierung (CuP)

Computeranwendung und Programmierung (CuP) Computeranwendung und Programmierung (CuP) VO: Peter Auer (Informationstechnologie) UE: Norbert Seifter (Angewandet Mathematik) Organisatorisches (Vorlesung) Vorlesungszeiten Montag 11:15 12:45 Freitag

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java Vorlesung vom 18.4.07, Vordefinierte Datentypen Übersicht 1 Ganzzahlige Typen 2 Boolscher Typ 3 Gleitkommatypen 4 Referenztypen 5 void Typ 6 Implizite und explizite Typumwandlungen Ganzzahlige Typen Die

Mehr

Sichtbarkeit & statische Methoden. Einsatz von Sichtbarkeit Einsatz statischer Methoden programmatische Realisierung 2 Beispielaufgaben

Sichtbarkeit & statische Methoden. Einsatz von Sichtbarkeit Einsatz statischer Methoden programmatische Realisierung 2 Beispielaufgaben Sichtbarkeit & statische Methoden Einsatz von Sichtbarkeit Einsatz statischer Methoden programmatische Realisierung 2 Beispielaufgaben Nicht sichtbare Methoden Wollen Eltern bestimmte Methoden vor den

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

Fachgebiet Informationssysteme Prof. Dr.-Ing. N. Fuhr. Programmierung Prof. Dr.-Ing. Nobert Fuhr. Übungsblatt Nr. 10

Fachgebiet Informationssysteme Prof. Dr.-Ing. N. Fuhr. Programmierung Prof. Dr.-Ing. Nobert Fuhr. Übungsblatt Nr. 10 Gudrun Fischer Sascha Kriewel programmierung@is.informatik.uni-duisburg.de Übungsblatt Nr. 10 Aufgabe 20: Code Verständnis Löse diese Aufgabe selbständig als Vorbereitung zur Übung auf dem Papier. a) Gib

Mehr

Übersicht. Informatik 2 Teil 3 Anwendungsbeispiel für objektorientierte Programmierung

Übersicht. Informatik 2 Teil 3 Anwendungsbeispiel für objektorientierte Programmierung Übersicht 3.1 Modell Konto 3.2 Modell Konto - Erläuterungen 3.3 Benutzer Ein- und Ausgabe mit Dialogfenster I 3.4 Benutzer Ein- und Ausgabe mit Dialogfenster II 3.5 Klassen- und Objekteigenschaften des

Mehr

Einfache Arrays. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung

Einfache Arrays. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung Annabelle Klarl Zentralübung zur Vorlesung Einführung in die Informatik: http://www.pst.ifi.lmu.de/lehre/wise-13-14/infoeinf WS13/14 Action required now 1. Smartphone: installiere die App "socrative student"

Mehr

Einführung Datentypen Verzweigung Schleifen. Java Crashkurs. Kim-Manuel Klein May 4, 2015

Einführung Datentypen Verzweigung Schleifen. Java Crashkurs. Kim-Manuel Klein May 4, 2015 Java Crashkurs Kim-Manuel Klein (kmk@informatik.uni-kiel.de) May 4, 2015 Quellen und Editoren Internet Tutorial: z.b. http://www.java-tutorial.org Editoren Normaler Texteditor (Gedit, Scite oder ähnliche)

Mehr

Grundlagen Programmierung

Grundlagen Programmierung 1. Aufgabe (Spielen mit Objekten) Gegeben sei der auch von der Veranstaltungsseite erhältliche Programmcode auf der rechten Seite, der im Detail zuerst nicht verstanden werden muss. a) Erzeugen Sie sich

Mehr

Klassen und Objekte. Einführung in Java. Folie 1 von Mai Ivo Kronenberg

Klassen und Objekte. Einführung in Java. Folie 1 von Mai Ivo Kronenberg Klassen und Objekte Einführung in Java Folie 1 von 28 12. Mai 2011 Ivo Kronenberg Inhalt Objekte Klassendefinitionen Datenelemente (Klassenattribute) Instanzieren von Objekten Konstruktoren Vergleich primitive

Mehr

Algorithmen und Datenstrukturen 07

Algorithmen und Datenstrukturen 07 5. Dezember 2011 1 Besprechung Blatt 6 Fragen 2 Vererbung Allgemein abstract Interfaces 3 Unified Modeling Language (UML) Ablaufdiagramme Klassendiagramme Anwendungsfalldiagramme 4 Vorbereitung Blatt 7

Mehr

Javakurs für Anfänger

Javakurs für Anfänger Javakurs für Anfänger Einheit 02: Klassen & Objekte Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda 1. Teil: Klassen Grundstruktur einer Java-Klasse Eigenschaften (Attribute) Variablen

Mehr

Sie müssen den Test bis 20:00 Uhr am Abgabetag dieses Übungszettels absolviert haben.

Sie müssen den Test bis 20:00 Uhr am Abgabetag dieses Übungszettels absolviert haben. Informatik I Wintersemester 2013/14 Prof. Dr. Carsten Damm Georg-August-Universität Göttingen Dr. Henrik Brosenne Institut für Informatik Übung 6 Abgabe bis Dienstag, 10.12., 18:00 Uhr. Werfen Sie Ihre

Mehr

1.2 Attribute und Methoden Aufbau einer Java-Klasse:

1.2 Attribute und Methoden Aufbau einer Java-Klasse: Aufbau einer Java-Klasse: public class Quadrat { int groesse; int xposition; String farbe; boolean istsichtbar; public void sichtbarmachen() { istsichtbar = true; public void horizontalbewegen(int distance){

Mehr

Klausur zur Vorlesung: Einführung in die objektorientierte Programmierung mit Java WS1415

Klausur zur Vorlesung: Einführung in die objektorientierte Programmierung mit Java WS1415 Klausur zur Vorlesung: Einführung in die objektorientierte Programmierung mit Java WS1415 Alexander Bazo 19. Februar 2015 Allgemeine Hinweise 1. Die Bearbeitungszeit beträgt 60 Minuten. Sie könne 50 Punkte

Mehr

Nachholklausur (6 ECTS) Einführung in die Informatik: Programmierung und Software-Entwicklung. Nachname... Vorname... Matrikelnummer... Studienfach...

Nachholklausur (6 ECTS) Einführung in die Informatik: Programmierung und Software-Entwicklung. Nachname... Vorname... Matrikelnummer... Studienfach... Ludwig-Maximilians-Universität München WS 2012/13 Institut für Informatik 19.04.2013, 12:00 14:00 Uhr Prof. Dr. R. Hennicker, A. Klarl Nachholklausur (6 ECTS) Einführung in die Informatik: Programmierung

Mehr

Tutorium Java Ein Überblick. Helge Janicke

Tutorium Java Ein Überblick. Helge Janicke Tutorium Java Ein Überblick Helge Janicke 26. Oktober 2000 1 VORRAUSSETZUNGEN ZUM PROGRAMMIEREN MIT JAVA. 1 1 Vorraussetzungen zum Programmieren mit Java. Was braucht man, wenn man mit Java programmieren

Mehr

Teilprüfung Software- und Internettechnologie Programmierkurs 1 Wintersemester 2005/2006

Teilprüfung Software- und Internettechnologie Programmierkurs 1 Wintersemester 2005/2006 Universität Mannheim Fakultät für Mathematik und Informatik Dr. Heinz Kredel Teilprüfung Software- und Internettechnologie Programmierkurs 1 Wintersemester 2005/2006 Name:.................................

Mehr

Hochschule Augsburg, Fakultät für Informatik Name:... Prüfung "Programmieren 1", IN1bac, WS 10/11 Seite 1 von 6

Hochschule Augsburg, Fakultät für Informatik Name:... Prüfung Programmieren 1, IN1bac, WS 10/11 Seite 1 von 6 Prüfung "Programmieren 1", IN1bac, WS 10/11 Seite 1 von 6 Datum, Uhrzeit: 24. 01. 2011, 10.30 Uhr Semester: IN1 Note:... Prüfer: Prof. Meixner Dauer: 60 Min. Hilfsmittel: keine Punkte:... Diese Prüfung

Mehr

Übungen zur Vorlesung EidP (WS 2015/16) Blatt 6

Übungen zur Vorlesung EidP (WS 2015/16) Blatt 6 Andre Droschinsky Ingo Schulz Dortmund, den 0. Dezember 2015 Übungen zur Vorlesung EidP (WS 2015/16) Blatt 6 Block rot Es können 4 + 1 Punkte erreicht werden. Abgabedatum: 10. Dezember 2015 2:59 Uhr Hinweise

Mehr

Universität Augsburg, Institut für Informatik Sommersemester 2005 Prof. Dr. Werner Kießling 15. Oktober 2005 Dr. Alfons Huhn, Timotheus Preisinger

Universität Augsburg, Institut für Informatik Sommersemester 2005 Prof. Dr. Werner Kießling 15. Oktober 2005 Dr. Alfons Huhn, Timotheus Preisinger Universität Augsburg, Institut für Informatik Sommersemester 2005 Prof. Dr. Werner Kießling 15. Oktober 2005 Dr. Alfons Huhn, Timotheus Preisinger Informatik II Hinweise: Die Bearbeitungszeit beträgt 90

Mehr

Kapitel 6. Vererbung

Kapitel 6. Vererbung Kapitel 6 Vererbung Vererbung 1 Ziele Das Vererbungsprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen

Mehr

5. Tutorium zu Programmieren

5. Tutorium zu Programmieren 5. Tutorium zu Programmieren Dennis Ewert Gruppe 6 Universität Karlsruhe Institut für Programmstrukturen und Datenorganisation (IPD) Lehrstuhl Programmierparadigmen WS 2008/2009 c 2008 by IPD Snelting

Mehr

Vorkurs C++ Programmierung

Vorkurs C++ Programmierung Vorkurs C++ Programmierung Klassen Letzte Stunde Speicherverwaltung automatische Speicherverwaltung auf dem Stack dynamische Speicherverwaltung auf dem Heap new/new[] und delete/delete[] Speicherklassen:

Mehr

Software Engineering Klassendiagramme Einführung

Software Engineering Klassendiagramme Einführung Software Engineering Klassendiagramme Einführung Prof. Adrian A. Müller, PMP, PSM 1, CSM Fachbereich Informatik und Mikrosystemtechnik 1 Aufgabe Erstellen Sie eine Klasse Person in Java. Jede Person verfügt

Mehr

II. Grundlagen der Programmierung. 9. Datenstrukturen. Daten zusammenfassen. In Java (Forts.): In Java:

II. Grundlagen der Programmierung. 9. Datenstrukturen. Daten zusammenfassen. In Java (Forts.): In Java: Technische Informatik für Ingenieure (TIfI) WS 2005/2006, Vorlesung 9 II. Grundlagen der Programmierung Ekkart Kindler Funktionen und Prozeduren Datenstrukturen 9. Datenstrukturen Daten zusammenfassen

Mehr

Klassen mit Instanzmethoden

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

Mehr

Objektorientierte Programmierung

Objektorientierte Programmierung Stefan Brass: OOP (Java), 15. Überladene Methoden 1/22 Objektorientierte Programmierung Kapitel 15: Überladene Methoden Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester 2013/14 http://www.informatik.uni-halle.de/

Mehr

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12. Kapitel 8. Arrays. Arrays

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12. Kapitel 8. Arrays. Arrays 1 Kapitel 8 Ziele 2 Die Datenstruktur der kennenlernen Grundlegende Algorithmen auf in Java implementieren können Mit von Objekten arbeiten können 3 Erweiterungen zur Behandlung von : Überblick Bisher

Mehr

Arrays Fortgeschrittene Verwendung

Arrays Fortgeschrittene Verwendung Arrays Fortgeschrittene Verwendung Gilbert Beyer und Annabelle Klarl Zentralübung zur Vorlesung Einführung in die Informatik http://www.pst.ifi.lmu.de/lehre/wise-11-12/infoeinf WS11/12 Arrays: Wiederholung

Mehr

Fakultät Angewandte Informatik Lehrprofessur für Informatik 23.01.2012

Fakultät Angewandte Informatik Lehrprofessur für Informatik 23.01.2012 WS 2011/2012 Fakultät Angewandte Informatik Lehrprofessur für Informatik 23.01.2012 Prof. Dr. Robert Lorenz Musterlösung zur Vorlesung Informatik I, Extrablatt zu komplexen Datenstrukturen Aufgabe 45 **

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

Programmieren I. Strategie zum Entwurf von Klassen. Beispiele. Design von Klassen. Dr. Klaus Höppner. Beispiel: Bibliothek

Programmieren I. Strategie zum Entwurf von Klassen. Beispiele. Design von Klassen. Dr. Klaus Höppner. Beispiel: Bibliothek Programmieren I Dr. Klaus Höppner Hochschule Darmstadt Wintersemester 2008/2009 1 / 22 2 / 22 Strategie zum Entwurf von Klassen Beispiele Objektorientierte Sichtweise: Mit welchen Objekten habe ich es

Mehr

Javakurs 2013 Objektorientierung

Javakurs 2013 Objektorientierung Javakurs 2013 Objektorientierung Objektorientierte Programmierung I Armelle Vérité 7 März 2013 Technische Universität Berlin This work is licensed under the Creative Commons Attribution-ShareAlike 3.0

Mehr

Tutoraufgabe 1 (Datenstrukturen in Haskell):

Tutoraufgabe 1 (Datenstrukturen in Haskell): Prof. aa Dr. J. Giesl Programmierung WS12/13 M. Brockschmidt, F. Emmes, C. Otto, T. Ströder Allgemeine Die Hausaufgaben sollen in Gruppen von je 2 Studierenden aus der gleichen Kleingruppenübung (Tutorium)

Mehr

Institut für Informatik

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

Mehr

Java Einführung Methoden. Kapitel 6

Java Einführung Methoden. Kapitel 6 Java Einführung Methoden Kapitel 6 Inhalt Deklaration und Aufruf von Methoden Lokale und globale Namen (Bezeichner) Sichtbarkeit und Lebensdauer von Variablen in Methoden Überladen von Methoden 2 Methoden

Mehr

Ein erstes Java-Programm

Ein erstes Java-Programm Ein erstes Java-Programm public class Rechnung { public static void main (String [] arguments) { int x, y; x = 10; y = -1 + 23 * 33 + 3 * 7 * (5 + 6); System.out.print ("Das Resultat ist "); System.out.println

Mehr

Primitive Datentypen

Primitive Datentypen Primitive Datentypen 2 Arten von Datentypen: primitive Datentypen (heute) Objekte (später) Java ist streng typisiert, d.h. für jede Variable muß angegeben werden was für eine Art von Wert sie aufnimmt.

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

Einführung in die objektorientierte Programmierung mit Java. Klausur am 19. Oktober 2005

Einführung in die objektorientierte Programmierung mit Java. Klausur am 19. Oktober 2005 Einführung in die objektorientierte Programmierung mit Java Klausur am 19. Oktober 2005 Matrikelnummer: Nachname: Vorname: Semesteranzahl: Die Klausur besteht aus drei Frageblöcken zu den Inhalten der

Mehr

Fachgebiet Informationssysteme Prof. Dr.-Ing. N. Fuhr. Programmierung Prof. Dr.-Ing. Nobert Fuhr. Übungsblatt Nr. 6

Fachgebiet Informationssysteme Prof. Dr.-Ing. N. Fuhr. Programmierung Prof. Dr.-Ing. Nobert Fuhr. Übungsblatt Nr. 6 Gudrun Fischer Sascha Kriewel programmierung@is.informatik.uni-duisburg.de Anmeldung zur Klausur! Übungsblatt Nr. 6 Um an der Klausur teilzunehmen, müssen sich Studierende der angewandten Informatik in

Mehr

Institut fu r Informatik

Institut fu r Informatik Technische Universita t Mu nchen Institut fu r Informatik Lehrstuhl fu r Bioinformatik Einfu hrung in die Programmierung fu r Bioinformatiker Prof. B. Rost, L. Richter Java, Objektorientierung 5.1 (U )

Mehr

Übungsblatt 3: Algorithmen in Java & Grammatiken

Übungsblatt 3: Algorithmen in Java & Grammatiken Humboldt-Universität zu Berlin Grundlagen der Programmierung (Vorlesung von Prof. Bothe) Institut für Informatik WS 15/16 Übungsblatt 3: Algorithmen in Java & Grammatiken Abgabe: bis 9:00 Uhr am 30.11.2015

Mehr

Praktikum zu Einführung in die Informatik für LogWiIngs und WiMas Wintersemester 2015/16. Vorbereitende Aufgaben

Praktikum zu Einführung in die Informatik für LogWiIngs und WiMas Wintersemester 2015/16. Vorbereitende Aufgaben Praktikum zu Einführung in die Informatik für LogWiIngs und WiMas Wintersemester 2015/16 Fakultät für Informatik Lehrstuhl 14 Lars Hildebrand, Marcel Preuß, Iman Kamehkhosh, Marc Bury, Diana Howey Übungsblatt

Mehr

Betreutes Programmieren Vorlesung Informatik II, Blatt 7 Musterlösung

Betreutes Programmieren Vorlesung Informatik II, Blatt 7 Musterlösung SS 2011 Fakultät für Angewandte Informatik Lehrprofessur für Informatik 15.06.2011 Prof. Dr. Robert Lorenz Betreutes Programmieren Vorlesung Informatik II, Blatt 7 Musterlösung Programmieraufwand für geübte

Mehr

Wiederholung Wozu Methoden? Methoden Schreiben Methoden Benutzen Rekursion?! Methoden. Javakurs 2012, 3. Vorlesung

Wiederholung Wozu Methoden? Methoden Schreiben Methoden Benutzen Rekursion?! Methoden. Javakurs 2012, 3. Vorlesung Wiederholung Wozu? Schreiben Benutzen Rekursion?! Javakurs 2012, 3. Vorlesung maggyrz@freitagsrunde.org 5. März 2013 Wiederholung Wozu? Schreiben Benutzen Rekursion?! 1 Wiederholung 2 Wozu? 3 Schreiben

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Tafelübung 04 Referenzen, Overloading, Klassen(hierarchien) Clemens Lang T2 18. Mai 2010 14:00 16:00, 00.152 Tafelübung zu AuD 1/13 Organisatorisches Nächster Übungstermin

Mehr

Java: Vererbung. Teil 3: super() www.informatikzentrale.de

Java: Vererbung. Teil 3: super() www.informatikzentrale.de Java: Vererbung Teil 3: super() Konstruktor und Vererbung Kindklasse ruft SELBSTSTÄNDIG und IMMER zuerst den Konstruktor der Elternklasse auf! Konstruktor und Vererbung Kindklasse ruft SELBSTSTÄNDIG und

Mehr

Institut für Programmierung und Reaktive Systeme 26. April 2013. Programmieren II. 10. Übungsblatt

Institut für Programmierung und Reaktive Systeme 26. April 2013. Programmieren II. 10. Übungsblatt Technische Universität Braunschweig Dr. Werner Struckmann Institut für Programmierung und Reaktive Systeme 26. April 2013 Programmieren II 10. Übungsblatt Hinweis: Insgesamt werden in diesem Semester fünf

Mehr

Vorlesung Informatik II

Vorlesung Informatik II Vorlesung Informatik II Universität Augsburg Wintersemester 2011/2012 Prof. Dr. Bernhard Bauer Folien von: Prof. Dr. Robert Lorenz Lehrprofessur für Informatik 02. JAVA: Erstes Programm 1 Das erste Java-Programm

Mehr

Programmierung für Mathematik HS12 Übung 3

Programmierung für Mathematik HS12 Übung 3 Programmierung für Mathematik HS12 Übung 3 14. Oktober 2012 1 Aufgabe: Code verstehen 1.1 Ziele Präzedenz verstehen. If else kennen lernen. 1.2 Aufgabenstellung 1.2.1 Präzedenz Lesen Sie folgende Codeaussschnitte.

Mehr

Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung: Lösungsvorschlag

Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung: Lösungsvorschlag Ludwig-Maximilians-Universität München WS 2015/16 Institut für Informatik Übungsblatt 9 Prof. Dr. R. Hennicker, A. Klarl Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung:

Mehr

6 Speicherorganisation

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

Mehr

Kapitel 6. Vererbung

Kapitel 6. Vererbung 1 Kapitel 6 2 Ziele Das sprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen Subtyping Überschreiben

Mehr

Programmieren I + II Regeln der Code-Formatierung

Programmieren I + II Regeln der Code-Formatierung Technische Universität Braunschweig Dr. Werner Struckmann Institut für Programmierung und Reaktive Systeme WS 2016/2017, SS 2017 Programmieren I + II Regeln der Code-Formatierung In diesem Dokument finden

Mehr

5.5.8 Öffentliche und private Eigenschaften

5.5.8 Öffentliche und private Eigenschaften 5.5.8 Öffentliche und private Eigenschaften Schnittstellen vs. Implementierungen: Schnittstelle einer Klasse beschreibt, was eine Klasse leistet und wie sie benutzt werden kann, ohne dass ihre Implementierung

Mehr

Institut fu r Informatik

Institut fu r Informatik Technische Universita t Mu nchen Institut fu r Informatik Lehrstuhl fu r Bioinformatik Einfu hrung in die Programmierung fu r Bioinformatiker Prof. B. Rost, L. Richter WS 2013 Aufgabenblatt 3 18. November

Mehr

Probeklausur: Einführung in die objektorientierte Programmierung mit Java 15WS

Probeklausur: Einführung in die objektorientierte Programmierung mit Java 15WS Probeklausur: Einführung in die objektorientierte Programmierung mit Java 15WS Alexander Bazo 26. Januar bis 2. Februar 2016 Allgemeine Hinweise 1. Die Bearbeitungszeit beträgt 60 Minuten. Sie könne 50

Mehr

Objektorientierte Programmierung

Objektorientierte Programmierung Universität der Bundeswehr Fakultät für Informatik Institut 2 Priv.-Doz. Dr. Lothar Schmitz FT 2006 Übungsblatt 5 Lösungsvorschlag Objektorientierte Programmierung 22. 05. 2006 Lösung 9 (SMS-Eingabe am

Mehr

Kapitel 6. Vererbung

Kapitel 6. Vererbung 1 Kapitel 6 2 Ziele Das sprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen Subtyping Überschreiben

Mehr

Welche Informatik-Kenntnisse bringen Sie mit?

Welche Informatik-Kenntnisse bringen Sie mit? Welche Informatik-Kenntnisse bringen Sie mit? So gehen Sie vor! Lösen Sie die Aufgaben der Reihe nach von 1 bis 20, ohne das Lösungsblatt zur Hilfe zu nehmen. Der Schwierigkeitsgrad der Aufgaben nimmt

Mehr

Arrays von Objekten. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung

Arrays von Objekten. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung Annabelle Klarl Zentralübung zur Vorlesung Einführung in die Informatik: http://www.pst.ifi.lmu.de/lehre/wise-12-13/infoeinf WS12/13 Arrays: Wiederholung Ein Array ist ein Tupel von Elementen gleichen

Mehr

Testklausur 1 zur Vorlesung. Modellierung und Programmierung I. Dr. Monika Meiler Zeit: 60 Minuten

Testklausur 1 zur Vorlesung. Modellierung und Programmierung I. Dr. Monika Meiler Zeit: 60 Minuten Matrikelnummer: Punkte: Testklausur 1 zur Vorlesung Modellierung und Programmierung I Dr. Monika Meiler Zeit: 60 Minuten Bemerkungen: Jedes Blatt ist mit der Matrikelnummer zu versehen. Jede Aufgabe ist

Mehr

Überschreiben von Methoden

Überschreiben von Methoden Vergleich der DoME Realisierungen: Methode ausgeben Version 1 (ohne Vererbung): Anzeigen aller Informationen CD: A Swingin Affair (64 Min)* Frank Sinatra Titelanzahl: 16 Mein Lieblingsalbum von Sinatra

Mehr

Übung Programmierung WS 2007/08 - Blatt 5

Übung Programmierung WS 2007/08 - Blatt 5 RHEINISCH- WESTFÄLISCHE TECHNISCHE HOCHSCHULE AACHEN LEHR- UND FORSCHUNGSGEBIET INFORMATIK 2 RWTH Aachen D-52056 Aachen GERMANY http://programmierung.informatik.rwth-aachen.de LuFG Informatik II Prof.

Mehr

Prof. W. Henrich Seite 1

Prof. W. Henrich Seite 1 Klasse - ist ein benutzerdefinierter Datentyp (Referenztyp) - hat Datenelemente - hat Methoden - Konstruktor ist spezielle Methode zum Erstellen eines Objektes vom Typ der Klasse (Instanz) - jede Klasse

Mehr

Programmieren in C++ Überladen von Methoden und Operatoren

Programmieren in C++ Überladen von Methoden und Operatoren Programmieren in C++ Überladen von Methoden und Operatoren Inhalt Überladen von Methoden Überladen von Operatoren Implizite und explizite Konvertierungsoperatoren 7-2 Überladen von Methoden Signatur einer

Mehr

Programmieren Tutorium

Programmieren Tutorium Programmieren Tutorium Tom Schildhauer Tutorium 12 Universität Karlsruhe (TH) Institut für Programmstrukturen und Datenorganisation (IPD) Lehrstuhl Programmierparadigmen WS 2008/2009 c 2008 by Tom Schildhauer,

Mehr

Java Kurs für Anfänger Einheit 5 Methoden

Java Kurs für Anfänger Einheit 5 Methoden Java Kurs für Anfänger Einheit 5 Methoden Ludwig-Maximilians-Universität München (Institut für Informatik: Programmierung und Softwaretechnik von Prof.Wirsing) 22. Juni 2009 Inhaltsverzeichnis Methoden

Mehr

620.900 Propädeutikum zur Programmierung

620.900 Propädeutikum zur Programmierung 620.900 Propädeutikum zur Programmierung Andreas Bollin Institute für Informatik Systeme Universität Klagenfurt Andreas.Bollin@uni-klu.ac.at Tel: 0463 / 2700-3516 Arrays Wiederholung (1/5) Array = GEORDNETE

Mehr

1 Polymorphie (Vielgestaltigkeit)

1 Polymorphie (Vielgestaltigkeit) 1 Polymorphie (Vielgestaltigkeit) Problem: Unsere Datenstrukturen List, Stack und Queue können einzig und allein int-werte aufnehmen. Wollen wir String-Objekte, andere Arten von Zahlen oder andere Objekttypen

Mehr

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

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

Mehr

Java Einführung VARIABLEN und DATENTYPEN Kapitel 2

Java Einführung VARIABLEN und DATENTYPEN Kapitel 2 Java Einführung VARIABLEN und DATENTYPEN Kapitel 2 Inhalt dieser Einheit Variablen (Sinn und Aufgabe) Bezeichner Datentypen, Deklaration und Operationen Typenumwandlung (implizit/explizit) 2 Variablen

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

Objekte und Klassen. Objekte, Klassen, Felder und Methoden, Ergebnistyp, Parameter, Signatur, Kommentare, Javadoc

Objekte und Klassen. Objekte, Klassen, Felder und Methoden, Ergebnistyp, Parameter, Signatur, Kommentare, Javadoc Objekte und Klassen Objekte, Klassen, Felder und Methoden, Ergebnistyp, Parameter, Signatur, Kommentare, Javadoc Algorithmen Algorithmen sind Handlungsanweisungen beispielsweise um ein Essen zu kochen

Mehr

13. Tutorium zu Programmieren

13. Tutorium zu Programmieren 13. Tutorium zu Programmieren Dennis Ewert Gruppe 6 Universität Karlsruhe Institut für Programmstrukturen und Datenorganisation (IPD) Lehrstuhl Programmierparadigmen WS 2008/2009 c 2009 by IPD Snelting

Mehr

Übung 1: Object Inspector

Übung 1: Object Inspector Übung 1: Object Inspector Es ist ein System zu entwickeln, mit dem man Objektstrukturen bezüglich ihrer Properties analysieren und dann in einem Tree Viewer (JTree) anzeigen und bearbeiten kann. Properties

Mehr