Abgabe: (vor 24 Uhr)

Größe: px
Ab Seite anzeigen:

Download "Abgabe: (vor 24 Uhr)"

Transkript

1 TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK Lehrstuhl für Sprachen und Beschreibungsstrukturen WS 11/12 Einführung in die Informatik I Übungsblatt 8 Prof. Dr. Helmut Seidl, M. Schwarz, A. Herz, Dr. M. Petter Abgabe: (vor 24 Uhr) Aufgabe 8.1 (P) Rationale Zahlen Implementieren Sie die Klasse Rational zur Repräsentation rationaler Zahlen aus der Vorlesung. Definieren Sie neben einem geeigneten Konstruktor für die Klasse auch Objekt- Methoden für folgende Operationen: Anmerkung: Die Bruchzahl soll stets in gekürzter Form gespeichert werden. a) Addition: Rational add(rational r) b) Subtraktion: Rational sub(rational r) c) Multiplikation: Rational mul(rational r) d) Division: Rational div(rational r) e) Dezimalwert: double decimal() Der Aufruf r.decimal() soll den dezimalen Wert von r berechnen und zurückliefern. f) Vergleich: int compareto(rational r) Der Aufruf r1.compareto(r2) soll 1 zurückliefern falls x 1 < x 2, 0 falls x 1 = x 2 und schließlich 1 falls x 1 > x 2. Dabei sollen x 1 und x 2 die Werte sein, die durch die Objekte r1 und r2 repräsentiert werden. g) Duplizieren: Rational clone() Der Aufruf r.clone() soll eine Kopie von r erstellen und zurückliefern. Lösungsvorschlag 8.1 public class Rational { // D eklaration der Komponenten e i n e r r a t i o n a l e n Zahl private int z a e h l e r, nenner ; / Bestimmung des g r o e s s t e n gemeinsamen T e i l e r s von n und m mit dem e u k l i d s c h e n Algorithmus / private static int ggt ( int n, int m) { i f ( ( n == 0) (m == 0) ) { // Abbruch b e i Eingabe ( mindestens ) e i n e r 0 => t e i l e r f r e i return 0 ; else { while ( n!= m) { // annaehern des ggt durch s u k z e s s i v e s abziehen i f ( n > m) { n = n m; else { m = m n ; // rueckgabe des ggt durch n return n ;

2 2 // E r s t e l l e n e i n e r r a t i o n a l e n z a h l aus zwei ganzen Zahlen public Rational ( int z, int n ) { i f ( n == 0) // Eingabe ueberpruefung throw new IllegalArgumentException ( Division by zero ) ; // zuweisen der Parameter z a e h l e r = z ; nenner = n ; // Entfernen u n n o e t i g e r Vorzeichen und p o s i t i v e n nenner s i c h e r s t e l l e n int s i g n = I n t e g e r. signum ( nenner ) ; z a e h l e r = s i g n z a e h l e r ; nenner = s i g n nenner ; kuerzen ( ) ; // s i c h e r s t e l l e n, dass d i e Zahl g e k u e r z t g e s p e i c h e r t i s t // E r s t e l l e n e i n e r r a t i o n a l e n z a h l aus e i n e r ganzen Zahlen public Rational ( int z ) { this ( z, 1 ) ; // Aufruf des obigen Konstruktors mit Zaehler 1 // addiern von r zur a k t u e l l e n Zahl public Rational add ( Rational r ) { return new Rational ( // rueckgabe des E r g e b n i s s e s a l s neue r a t i o n a l e z a h l z a e h l e r r. nenner + r. z a e h l e r nenner, nenner r. nenner ) ; // e r w e i t e r n und addieren // kuerzen f i n d e t im k o n s t r u c t o r s t a t t // m u l t i p l i z i e r e n von r mit der a k t u e l l e n Zahl public Rational mul ( Rational r ) { return new Rational ( z a e h l e r r. z a e h l e r, nenner r. nenner ) ; // s u b t r a h i e r e n von r von der a k t u e l l e n Zahl durch Addition von r public Rational sub ( Rational r ) { return add ( r. mul (new Rational ( 1) ) ) ; // H i l f s f u n k t i o n f u e r D i v i s i o n. bestimmt Kehrwert der a k t u e l l e n Zahl public Rational r e c i p r o c a l ( ) { return new Rational ( nenner, z a e h l e r ) ; // D i v i s i o n der a k t u e l l e n Zahl durch r durch Mult. mit Kehrwert von r public Rational div ( Rational r ) { return mul ( r. r e c i p r o c a l ( ) ) ; // Umwandlung von z a e h l e r und nenner in eine Gleitkommazahl public double decimal ( ) { return ( double ) z a e h l e r /( double ) nenner ; public int compareto ( Rational r ) { // Voraussetzung : Nenner sind p o s i t i v

3 3 int z1 = z a e h l e r r. nenner ; // i m p l i z i t e s e r w e i t e r n der a k t u e l l e n z a h l int z2 = r. z a e h l e r nenner ; // i m p l i z i t e s e r w e i t e r n von r i f ( z1 < z2 ) {// v e r g l e i c h der e r w e i t e r t e n Zaehler return 1; else i f ( z1 > z2 ) { return 1 ; return 0 ; // weder k l e i n e r noch g r o e s s e r // G l e i c h h e i t s t e s t m i t t e l s compareto public boolean e q u a l s ( Rational r ) { return compareto ( r ) == 0 ; // erzeugen e i n e r neuen r a t i o n a l e n z a h l mit dem z a e h l e r und nenner der a k t u e l l e n z a h l public Rational c l o n e ( ) { return new Rational ( z a e h l e r, nenner ) ; // kuerzen der a k t u e l l e n Zahl durch D i v i s i o n durch den ggt von Zaehler und Nenner public void kuerzen ( ) { // ggt a u f r u f mit dem Betrag des z a e h l e r s und dem ( ohnehin p o s i t i v e n ) Nenner int ggt = ggt ( I n t e g e r. signum ( z a e h l e r ) z a e h l e r, nenner ) ; i f ( ggt > 1) { // kuerzen f a l l s n i c h t t r i v i a l e r ggt vorhanden z a e h l e r = z a e h l e r / ggt ; nenner = nenner / ggt ; // Umwandlung der Zahl in einen ( f o r m a t i e r t e ) S t r i n g d a r s t e l l u n g public S t r i n g t o S t r i n g ( ) { i f ( nenner == 1) return + z a e h l e r ; return z a e h l e r + / + nenner ; Aufgabe 8.2 (P) String-Mengen Ziel dieser Aufgabe ist es, eine Klasse ImmutableSet zur Repräsentation von unveränderbaren Mengen von Strings zu entwickeln. Implementieren Sie die Klasse ImmutableSet mit Hilfe eines Arrays, in dem jedes Element der repräsentierten Menge genau einmal vorkommt. Die Klasse ImmutableSet soll folgende Methoden bereitstellen: a) Einen Konstruktor zur Erzeugung einer leeren Menge. b) Eine Methode boolean istelement(string s), die überprüft, ob der durch s repräsentierte String in der Menge enthalten ist. c) Eine Methode boolean obermengevon(immutableset teilmenge), die überprüft, ob die Menge teilmenge in der Menge enthalten ist, die die Methode bereitstellt. d) Eine Methode boolean equals(immutableset other), die überprüft, ob die Menge

4 4 other die gleichen Elemente enthält, wie die Menge, die die Methode bereitstellt. e) Eine Methode ImmutableSet add(string s), die eine um den String s erweiterte Menge zurückgibt. Das heißt, der Aufruf m1.add(s) gibt eine Menge m2 zurück, die s und alle Elemente von m1 enthält. Falls der String s bereits in der alten Menge enthalten ist, können Sie die alte Menge zurückgeben. Für den anderen Fall erstellen Sie einen zweiten Konstruktor, diesmal einen privaten Konstruktor, der einen String s und eine Menge alt bekommt und daraus eine neue Menge erstellt, die beides enthält. Erinnern Sie sich daran, was Sie über Kopien von Arrays gelernt haben. f) Eine Methode String tostring(), die eine String-Darstellung der Menge erzeugt und zurückliefert. Hinweis: Testen Sie Ihre Klasse mit einer sinnvollen main-methode. Diese sollte alle Methoden testen und auch mögliche Interaktionen zwischen den einzelnen Methoden berücksichtigen. Lösungsvorschlag 8.2 public class ImmutableSet { // E n t h a e l t d i e Elemente des Immutable S e t s. private S t r i n g [ ] s e t ; // Konstruktor l e g t ein l e e r e s Array ( der Länge 0) an. public ImmutableSet ( ) { s e t = new S t r i n g [ 0 ] ; // Konstruktor l e g t ein neues Array an, das d i e Elemente des // S e t s o l d und den neuen S t r i n g s enth ä l t. Es wird damit // ein neues ImmutableSet erzeugt, o l d b l e i b t unver ä ndert. private ImmutableSet ( S t r i n g s, ImmutableSet old ) { s e t = new S t r i n g [ old. s e t. length + 1 ] ; System. arraycopy ( old. set, 0, set, 0, old. s e t. length ) ; s e t [ s e t. l e n g t h 1 ] = s ; // add g i b t ein ImmutableSet zur ück, dass a l l e Elemente // des S e t s enth ä l t, auf dem d i e Funktion a u s g e f ü h r t wird und // den neuen S t r i n g s. public ImmutableSet add ( S t r i n g s ) { i f ( istelement ( s ) ) {// wenn s schon e n t h a l t e n i s t,... return this ; // kann das Set zur ü ckgegeben werden, // auf dem add a u f g e r u f e n wurde else { return new ImmutableSet ( s, this ) ; // a n d e r n f a l l s wird ein // neues passendes ImmutableSet a n g e l e g t und zur ü ckgegeben // T e s t e t ob s in diesem ImmutableSet e n t h a l t e n i s t. public boolean istelement ( S t r i n g s ) {

5 5 // Dafür wird das Array einmal d u r c h l a u f e n for ( int i = 0 ; i < s e t. length ; i ++) { i f ( s e t [ i ]. e q u a l s ( s ) ) { return true ; return f a l s e ; // T e s t e t ob d i e s e s ImmutableSet eine Obermenge von t e i l m e n g e i s t. public boolean obermengevon ( ImmutableSet teilmenge ) { boolean r e t = true ; // Dafür wird geguckt, ob j e d e s Element von Teilmenge in diesem // Set e n t h a l t e n i s t. for ( int i = 0 ; i < teilmenge. s e t. length ; i++) { r e t &= istelement ( teilmenge. s e t [ i ] ) ; return r e t ; // T e s t e t ob o t h e r und d i e s e s ImmutableSet d i e g l e i c h e n Elemente e n t h a l t e n public boolean e q u a l s ( ImmutableSet other ) { // Sie sind j e w e i l s Obermengen von einander. return obermengevon ( other ) && other. obermengevon ( this ) ; // Zur sch önen Ausgabe des S e t s public S t r i n g t o S t r i n g ( ) { S t r i n g r e t = [ ; i f ( s e t. l e n g t h > 0) { r e t += s e t [ 0 ] ; for ( int i = 1 ; i < s e t. length ; i ++) { r e t +=, + s e t [ i ] ; r e t += ] ; return r e t ; Aufgabe 8.3 [10 Punkte] (H) Waschsalon Implementieren Sie mit Java geeignete Datenstrukturen zur Simulation eines Waschsalons. In unserem Szenario finden Sie: den Waschsalon, der drei Waschmaschinen (der Marken Gründlich, Mühle und Busch) beherbergt Pfennig-Münzen in den Werteinheiten 1, 5, 10, 50, 100. Jede Münze hat eine Methode, die sie in ein entsprechendes Array von Münzen der nächst kleineren Einheit umwandelt, sofern möglich, sowie eine Methode, die Auskunft über den Wert der Münze als Zahl zurückgibt. Socken mit der Sockengröße als Ganzzahl, und einer Gleitkommazahl, die den Grauwert als Farbe der Socke darstellt. 0 entspricht dabei Weiß und 1 entspricht dabei Schwarz.

6 6 Waschmaschinen mit einer maximalen Kapazität und einem Preis pro Waschgang. Waschmaschinen geben bei Überzahlung passend zurück in Form eines Münzenarrays. Implementieren Sie die Marken: Mühle mit Platz für bis zu 8 Socken zum Preis von 79 Pfennig pro Waschgang Busch mit Platz für bis zu 9 Socken zum Preis von 11 Pfennig pro Socke Gründlich mit Platz für bis zu 10 Socken zum Preis 87 Pfennig pro Waschgang. Gründlich-Waschmaschinen tendieren mit einer Warscheinlichkeit von 10% dazu, eine Socke aus dem Waschgang zu fressen. Diese Socken werden aus dem Waschgang entfernt, und bleiben statt dessen in der Maschine, um zukünftige Waschgänge durch ihre Farbe zu beeinflussen, so lange bis ihre Größe unter den Wert 2 fällt, d.h. sie klein genug sind, um durch den Abfluß zu entkommen, d.h. sie verschwinden aus der Maschine. Waschen von Socken lässt Socken um eine Nummer einlaufen, und ändert den Farbwert der Socke auf den Durchschnitt aller gewaschenen Socken. Implementieren Sie diesen Waschsalon mit allen notwendigen Methoden. Beachten Sie dabei, die Interna der beteiligten Objekte vor unvorgesehenem Zugriff durch andere Objekte zu schützen. Testen Sie Ihre Simulation mit einem geeigneten main()-programm. Lösungsvorschlag 8.3 public class Busch { public Muenze [ ] waschen ( Muenze m, Socke [ ] waschgang ) { i f ( waschgang. length >9 m. getwert ( ) <100) return new Muenze [ ] { m ; double d u r c h s c h n i t t =0; int nsocken =0; d u r c h s c h n i t t+=s. getfarbe ( ) ; nsocken++; d u r c h s c h n i t t/=nsocken ; s. waschen ( d u r c h s c h n i t t ) ; int p r e i s = 11 nsocken ; return wechsleauf (new Muenze [ ] {m, p r e i s ) ; public static Muenze [ ] wechsleauf ( Muenze [ ] m, int p r e i s ) { int i =0; while (m. length >i && p r e i s >m[ i ]. getwert ( ) ) p r e i s =m[ i ++]. getwert ( ) ; i f ( p r e i s!=m[ i ]. getwert ( ) ) { Muenze [ ] restgeld = wechsleauf (m[ i ]. wechsleklein ( ), p r e i s ) ; Muenze [ ] rueckgabe = new Muenze [ restgeld. length+m. length i 1]; for ( int j =0; j<restgeld. l ength ; j++) rueckgabe [ j ]= restgeld [ j ] ; for ( int j =0; j<m. length i 1; j++) rueckgabe [ j+restgeld. l e n g t h ]=m[ j+i ] ;

7 7 return rueckgabe ; else { Muenze [ ] rueckgabe = new Muenze [m. length i 1]; for ( int j=i +1; j<m. length ; j++) rueckgabe [ j i 1]=m[ j ] ; return rueckgabe ; public static void main ( S t r i n g [ ] args ) { System. out. p r i n t l n ( java. u t i l. Arrays. deeptostring ( wechsleauf (new Muenze [ ] {Muenze. hundertpfennig ( ),77) ) ) ; public class Muehle { public Muenze [ ] waschen ( Muenze m, Socke [ ] waschgang ) { i f ( waschgang. length >8 m. getwert ( ) <100) return new Muenze [ ] { m ; double d u r c h s c h n i t t =0; int nsocken =0; d u r c h s c h n i t t+=s. getfarbe ( ) ; nsocken++; d u r c h s c h n i t t/=nsocken ; s. waschen ( d u r c h s c h n i t t ) ; return new Muenze [ ] { Muenze. pfennig ( ), Muenze. zehnpfennig ( ), Muenze. zehnpfennig ( ) ; public class Gruendlich { // aus der Resize Array Hausaufgabe private static Socke [ ] r e s i z e A r r a y ( Socke [ ] source, int newsize ) { Socke [ ] r e s u l t = new Socke [ newsize ] ; System. arraycopy ( source, 0, r e s u l t, 0, Math. min ( newsize, source. l e n g t h ) ) ; return r e s u l t ; private static boolean f r e s s e ( ) { return Math. random ( ) >0.9; private Socke [ ] r e s e r v o i r = new Socke [ 0 ] ; public Muenze [ ] waschen ( Muenze m, Socke [ ] waschgang ) { i f ( waschgang. length >10 m. getwert ( ) <100) return new Muenze [ ] { m ; double d u r c h s c h n i t t =0; int nsocken =0; // Waschgang untersuchen

8 8 d u r c h s c h n i t t+=s. getfarbe ( ) ; nsocken++; // Sockenspeicher durchsuchen for ( Socke s : r e s e r v o i r ) { d u r c h s c h n i t t+=s. getfarbe ( ) ; d u r c h s c h n i t t/=nsocken+r e s e r v o i r. length ; // Waschgang f a e r b e n s. waschen ( d u r c h s c h n i t t ) ; // Reservoir f a e r b e n & a u s s o r t i e r e n int r e s e r v o i r g r o e s s e = r e s e r v o i r. length ; for ( int i = 0 ; i < r e s e r v o i r g r o e s s e ; i ++){ r e s e r v o i r [ i ]. waschen ( d u r c h s c h n i t t ) ; i f ( r e s e r v o i r [ i ]. getgroesse ( ) <3){ r e s e r v o i r [ i ]= r e s e r v o i r [ r e s e r v o i r g r o e s s e ] ; r e s e r v o i r [ r e s e r v o i r g r o e s s e 1]=null ; r e s e r v o i r=r e s i z e A r r a y ( r e s e r v o i r, r e s e r v o i r g r o e s s e ) ; // b e i 10% Reservoir f u e l l e n i f ( f r e s s e ( ) && nsocken >0) { Socke socke ; do{ int pos = ( int ) (Math. random ( ) waschgang. length ) ; socke=waschgang [ pos ] ; waschgang [ pos ]= null ; while ( socke==null ) ; r e s e r v o i r=r e s i z e A r r a y ( r e s e r v o i r, r e s e r v o i r. length +1) ; r e s e r v o i r [ r e s e r v o i r. length 1]= socke ; return new Muenze [ ] { Muenze. zehnpfennig ( ), Muenze. pfennig ( ), Muenze. p f e n n i g ( ), Muenze. pfennig ( ) ; public class Muenze { private int wert ; private Muenze ( int i n i t i a l w e r t ) { wert = i n i t i a l w e r t ; public static Muenze p f e n nig ( ) { return new Muenze ( 1 ) ; public static Muenze zehnpfennig ( ) { return new Muenze (10) ; public static Muenze hundertpfennig ( ) { return new Muenze (100) ; public static Muenze f u e n f P f e n n i g ( ) { return new Muenze ( 5 ) ;

9 9 public static Muenze f u e n f z i g P f e n n i g ( ) { return new Muenze (50) ; public int getwert ( ) { return wert ; public Muenze [ ] wechsleklein ( ) { i f ( wert==1) return new Muenze [ ] { this ; i f ( wert==100 wert == 1 0) return new Muenze [ ] { new Muenze ( wert /2), new Muenze ( wert /2) ; else { Muenze [ ] m = new Muenze [ 5 ] ; for ( int i =0; i <5; i++) m[ i ]=new Muenze ( wert /5) ; return m; public S t r i n g t o S t r i n g ( ) { return Muenze mit Wert +wert ; public class Socke { private int g r o e s s e ; private double f a r b e ; public Socke ( int i n i t g r o e s s e, double i n i t f a r b e ) { g r o e s s e=i n i t g r o e s s e ; f a r b e=i n i t f a r b e ; public double getfarbe ( ) { return f a r b e ; public int getgroesse ( ) { return g r o e s s e ; private void eingehen ( ) { g r o e s s e ; public void waschen ( double neufaerbung ) { f a r b e=neufaerbung ; eingehen ( ) ; public S t r i n g t o S t r i n g ( ) { return Socke der Groesse +g r o e s s e+ und Grauwert +f a r b e ;

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

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

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

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

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

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

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

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

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

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

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 Rückblick Datentypen (int, long, double, boolean, String) Variablen und Variablendeklarationen

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

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

Tutoraufgabe 1 (Zweierkomplement): Lösung: Programmierung WS16/17 Lösung - Übung 2

Tutoraufgabe 1 (Zweierkomplement): Lösung: Programmierung WS16/17 Lösung - Übung 2 Prof. aa Dr. J. Giesl Programmierung WS16/17 F. Frohn, J. Hensel, D. Korzeniewski Tutoraufgabe 1 (Zweierkomplement): a) Sei x eine ganze Zahl. Wie unterscheiden sich die Zweierkomplement-Darstellungen

Mehr

Java Einführung Klassendefinitionen

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

Mehr

Objektorientierte Programmierung

Objektorientierte Programmierung Objektorientierte Programmierung 1 Geschichte Dahl, Nygaard: Simula 67 (Algol 60 + Objektorientierung) Kay et al.: Smalltalk (erste rein-objektorientierte Sprache) Object Pascal, Objective C, C++ (wiederum

Mehr

Semestralklausur Einführung in die Programmierung, WS 2005/06, Seite 1/6 Name, Vorname, Matrikelnummer: Gruppe A

Semestralklausur Einführung in die Programmierung, WS 2005/06, Seite 1/6 Name, Vorname, Matrikelnummer: Gruppe A Semestralklausur Einführung in die Programmierung, WS 2005/06, 6.2.2006 Seite 1/6 Name, Vorname, Matrikelnummer: Unterschrift: 1 Grundlagen (5+5 Punkte) Gruppe A a) Schreiben Sie eine Klassenmethode mit

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

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

TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK Lehrstuhl für Sprachen und Beschreibungsstrukturen WS 2006/2007 Praktikum Grundlagen der Programmierung Lösungsvorschläge zu Blatt 4 F. Forster, M.

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

Allgemeine Hinweise:

Allgemeine Hinweise: TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK Lehrstuhl für Sprachen und Beschreibungsstrukturen SS 2011 Einführung in die Informatik I Endtermklausur Prof. Dr. Helmut Seidl, A. Lehmann, A. Herz,

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

Java Cheatsheet. Mehrzeiliger Kommentar (beginnt mit /* und endet mit */)

Java Cheatsheet. Mehrzeiliger Kommentar (beginnt mit /* und endet mit */) Good code is its own best documentation. (Steve McConnell) Java Cheatsheet Java Grundlagen Aufbau einer Klasse Name der Klasse public class MeineKlasse { Textdatei MeineKlasse.java (muss dem Namen der

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

1. Grundlegende Konzepte in Java (6 Punkte)

1. Grundlegende Konzepte in Java (6 Punkte) 1. Grundlegende Konzepte in Java (6 Punkte) a) Welches der folgenden Literale ist korrekt und wenn ja, von welchem Typ ist es? "true" nicht korrekt X korrekt vom Typ String 'true' X nicht korrekt korrekt

Mehr

! 1. Unterklassen und Vererbung! 2. Abstrakte Klassen und Interfaces! 3. Modularität und Pakete! 4. Ausnahmen (Exceptions) II.4.

! 1. Unterklassen und Vererbung! 2. Abstrakte Klassen und Interfaces! 3. Modularität und Pakete! 4. Ausnahmen (Exceptions) II.4. ! 1. Unterklassen und Vererbung! 2. Abstrakte Klassen und Interfaces! 3. Modularität und Pakete! 4. Ausnahmen (Exceptions) II.4.4 Exceptions - 1 - Ausnahmen (Exceptions( Exceptions) Treten auf, wenn zur

Mehr

13 Java 4 - Entwurfsmuster am Beispiel des Rucksackproblems

13 Java 4 - Entwurfsmuster am Beispiel des Rucksackproblems 13 Java 4 - Entwurfsmuster am Beispiel des Rucksackproblems 13.1 Modellierung des Rucksackproblems 13.2 Lösung mit Greedy-Algorithmus 13.3 Lösung mit Backtracking 13.4 Lösung mit Dynamischer Programmierung

Mehr

Grundzüge der Wirtschaftsinformatik WS 2002/03. Wiederholung Java. Programmierzyklus. Heiko Rossnagel Problem

Grundzüge der Wirtschaftsinformatik WS 2002/03. Wiederholung Java. Programmierzyklus. Heiko Rossnagel  Problem Grundzüge der Wirtschaftsinformatik WS 2002/03 Wiederholung Java Heiko Rossnagel www.m-lehrstuhl.de accelerate.com Grundzüge der Wirtschaftsinformatik WS 2002/03 1 Programmierzyklus Problem Formulierung

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

Abgabe: (vor 12 Uhr) Aufgabe 3.1 (P) Kontrollflussgraph. Zeichnen Sie für das folgende MiniJava-Programm den Kontrollflussgraphen.

Abgabe: (vor 12 Uhr) Aufgabe 3.1 (P) Kontrollflussgraph. Zeichnen Sie für das folgende MiniJava-Programm den Kontrollflussgraphen. TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK Lehrstuhl für Sprachen und Beschreibungsstrukturen SS 2011 Einführung in die Informatik I Übungsblatt 3 Prof. Dr. Helmut Seidl, A. Lehmann, A. Herz,

Mehr

Praktikum Informatik II Prof. Dr. Martin Trauth, Dr. Michael Männel

Praktikum Informatik II Prof. Dr. Martin Trauth, Dr. Michael Männel Praktikum Informatik II Prof. Dr. Martin Trauth, Dr. Michael Männel FB Physikalische Technik Musterlösungen Teil 4 Aufgabe 1 package teil4; import javax.swing.*; public class Ei { int haltung, ident; String

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

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

Rekursion. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung Rekursion Annabelle Klarl Zentralübung zur Vorlesung Einführung in die Informatik: http://www.pst.ifi.lmu.de/lehre/wise-12-13/infoeinf WS12/13 Aufgabe 1: Potenzfunktion Schreiben Sie eine Methode, die

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

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

Ü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

Institut für Programmierung und Reaktive Systeme 8. Januar Programmieren I. 6. Übungsblatt

Institut für Programmierung und Reaktive Systeme 8. Januar Programmieren I. 6. Übungsblatt Technische Universität Braunschweig Dr. Werner Struckmann Institut für Programmierung und Reaktive Systeme 8. Januar 2015 Programmieren I 6. Übungsblatt Hinweis: Ihre Lösung der Pflichtaufgabe dieses Übungsblatts

Mehr

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 14/15. Kapitel 11. Fehler und Ausnahmen 1

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 14/15. Kapitel 11. Fehler und Ausnahmen 1 Kapitel 11 Fehler und Ausnahmen Fehler und Ausnahmen 1 Ziele Fehlerquellen in Programmen und bei der Programmausführung verstehen Das Java-Konzept der Ausnahmen als Objekte kennenlernen Ausnahmen auslösen

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 Testklausur Einführung in die Programmierung Probeklausur Java (Lösungsvorschlag) 1 Die Klasse ArrayList In

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

Bearbeitungszeit: 120 Minuten. Kommentare kosten Zeit; kommentieren Sie ihr Programm nur da, wo der Code alleine nicht verständlich wäre.

Bearbeitungszeit: 120 Minuten. Kommentare kosten Zeit; kommentieren Sie ihr Programm nur da, wo der Code alleine nicht verständlich wäre. Fakultät IV Elektrotechnik/Informatik Klausur Einführung in die Informatik I für Elektrotechniker Name:... Matr.-Nr.... Bearbeitungszeit: 120 Minuten Bewertung (bitte offenlassen : ) Aufgabe Punkte Erreichte

Mehr

II.3.1 Rekursive Algorithmen - 1 -

II.3.1 Rekursive Algorithmen - 1 - 1. Grundelemente der Programmierung 2. Objekte, Klassen und Methoden 3. Rekursion und dynamische Datenstrukturen 4. Erweiterung von Klassen und fortgeschrittene Konzepte II.3.1 Rekursive Algorithmen -

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

Abgabe: (vor der Vorlesung) Aufgabe 2.1 (P) O-Notation Beweisen Sie die folgenden Aussagen für positive Funktionen f und g:

Abgabe: (vor der Vorlesung) Aufgabe 2.1 (P) O-Notation Beweisen Sie die folgenden Aussagen für positive Funktionen f und g: TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK Lehrstuhl für Sprachen und Beschreibungsstrukturen SS 2009 Grundlagen: Algorithmen und Datenstrukturen Übungsblatt 2 Prof. Dr. Helmut Seidl, S. Pott,

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

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

Stapel (Stack, Keller)

Stapel (Stack, Keller) Stapel (Stack, Keller) Eine wichtige Datenstruktur ist der Stapel. Das Prinzip, dass das zuletzt eingefügte Element als erstes wieder entfernt werden muss, bezeichnet man als LIFO-Prinzip (last-in, first-out).

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

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

Dr. Monika Meiler. Inhalt

Dr. Monika Meiler. Inhalt Inhalt 4 Einführung in die Programmiersprache Java (Teil II)... 4-2 4.4 Strukturierte Programmierung... 4-2 4.4.1 Strukturierung im Kleinen... 4-2 4.4.2 Addierer (do-schleife)... 4-3 4.4.3 Ein- Mal- Eins

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

Nachname: Vorname: Matr.-Nr.: Punkte: 1. Aufgabe: ( / 25 Pkt.) Gegeben ist das folgende Struktogramm zur Berechnung von sin(x) mit Hilfe einer Reihe.

Nachname: Vorname: Matr.-Nr.: Punkte: 1. Aufgabe: ( / 25 Pkt.) Gegeben ist das folgende Struktogramm zur Berechnung von sin(x) mit Hilfe einer Reihe. Hiermit bestätige ich, dass ich die Übungsleistungen als Voraussetzung für diese Klausur in folgender Übung erfüllt habe. Jahr: Übungsleiter: Unterschrift: 1. Aufgabe: ( / 25 Pkt.) Gegeben ist das folgende

Mehr

Modul 122 VBA Scribt.docx

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

Mehr

Informatik B von Adrian Neumann

Informatik B von Adrian Neumann Musterlösung zum 7. Aufgabenblatt vom Montag, den 25. Mai 2009 zur Vorlesung Informatik B von Adrian Neumann 1. Java I Schreiben Sie ein Java Programm, das alle positiven ganzen Zahlen 0 < a < b < 1000

Mehr

188.154 Einführung in die Programmierung Vorlesungsprüfung

188.154 Einführung in die Programmierung Vorlesungsprüfung Matrikelnummer Studienkennzahl Name Vorname 188.154 Einführung in die Programmierung Vorlesungsprüfung Donnerstag, 27.1.2005, 18:15 Uhr EI 7 Arbeitszeit: 60 min - max. 50 Punkte erreichbar - Unterlagen

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

C# 2000 Expression Beispielcodes für Konsolen- und Formularanwendung

C# 2000 Expression Beispielcodes für Konsolen- und Formularanwendung C# 2000 Expression Beispielcodes für Konsolen- und Formularanwendung 1. "Hai!" [Konsolenanwendung] Console.WriteLine("Hai, wie geht's?"); 2. Muktiplikation mit sich selbst [Konsolenanwendung] // Ausgabe

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

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

Javakurs zu Informatik I. Henning Heitkötter

Javakurs zu Informatik I. Henning Heitkötter Javakurs zu Informatik I Arrays vergleichen Implementieren Sie folgende Methode, die prüft, ob die Elemente der beiden Arrays an jeder Position übereinstimmen: public static boolean identisch(int[] a,

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

EINI WiMa/LW. Einführung in die Informatik für Naturwissenschaftler und Ingenieure. Vorlesung 2 SWS WS 11/12

EINI WiMa/LW. Einführung in die Informatik für Naturwissenschaftler und Ingenieure. Vorlesung 2 SWS WS 11/12 EINI WiMa/LW Einführung in die Informatik für Naturwissenschaftler und Ingenieure Vorlesung 2 SWS WS 11/12 Fakultät für Informatik Technische Universität Dortmund lars.hildebrand@udo.edu http://ls1-www.cs.uni-dortmund.de

Mehr

Einführung in die Informatik für Hörer aller Fakultäten II. Andreas Podelski Stephan Diehl Uwe Waldmann

Einführung in die Informatik für Hörer aller Fakultäten II. Andreas Podelski Stephan Diehl Uwe Waldmann Einführung in die Informatik für Hörer aller Fakultäten II Andreas Podelski Stephan Diehl Uwe Waldmann 1 Einführung in die Informatik für Hörer aller Fakultäten II Andreas Podelski Stephan Diehl Uwe Waldmann

Mehr

1 Hashing und die Klasse String

1 Hashing und die Klasse String 1 Hashing und die Klasse String Die Klasse String stellt Wörter von (Unicode-) Zeichen dar. Objekte dieser Klasse sind stets konstant, d.h. können nicht verändert werden (immutable). Die Zeichenkette ist

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 Pommes... Praktikum A 230 C 207 (Madeleine) F 112 F 113 (Kevin) E

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

2. Methoden. n Generelles zum Aufruf von Methoden. n Parameterübergabemechanismen (call by value, call by reference)

2. Methoden. n Generelles zum Aufruf von Methoden. n Parameterübergabemechanismen (call by value, call by reference) 2. Methoden n Generelles zum Aufruf von Methoden n Parameterübergabemechanismen (call by value, call by reference) n Speicherorganisation bei Methodenaufruf und Parameterübergabe (Laufzeitkeller) n vararg

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

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

VIII: Vererbung. Unterklassen einer Klasse. Vererbung von Methoden und Instanzvariablen. Überschreiben von Methoden

VIII: Vererbung. Unterklassen einer Klasse. Vererbung von Methoden und Instanzvariablen. Überschreiben von Methoden VIII: Vererbung Unterklassen einer Klasse Vererbung von Methoden und Instanzvariablen Überschreiben von Methoden Vererbung als Realisierung einer is-a Beziehung. Informatik I VIII: Vererbung 259 Beispiel:

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 26 Einstieg in die Informatik mit Java Felder Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 26 1 Was sind Felder? 2 Vereinbarung von Feldern 3 Erzeugen von Feldern

Mehr

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

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12. Kapitel 13. Bäume. Bäume 1 Kapitel 13 Ziele 2 Den Begriff des Baums in der Informatik kennenlernen als verkettete Datenstruktur repräsentieren können Rekursive Funktionen auf n verstehen und schreiben können Verschiedene Möglichkeiten

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

Javakurs FSS Lehrstuhl Stuckenschmidt. Tag 3 - Objektorientierung

Javakurs FSS Lehrstuhl Stuckenschmidt. Tag 3 - Objektorientierung Javakurs FSS 2012 Lehrstuhl Stuckenschmidt Tag 3 - Objektorientierung Warum Objektorientierung Daten und Funktionen möglichst eng koppeln und nach außen kapseln Komplexität der Software besser modellieren

Mehr

Lösungsvorschläge. zu den Aufgaben im Kapitel 4

Lösungsvorschläge. zu den Aufgaben im Kapitel 4 Lösungsvorschläge zu den Aufgaben im Kapitel 4 Aufgabe 4.1: Der KNP-Algorithmus kann verbessert werden, wenn in der Funktion nexttabelle die Zuweisung next[tabindex] = ruecksprung; auf die etwas differenziertere

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

Übung Datenstrukturen. Objektorientierung in C++

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

Mehr

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

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

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

TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK Lehrstuhl für Sprachen und Beschreibungsstrukturen SS 2011 Einführung in die Informatik I Übungsblatt 5 Prof. Dr. Helmut Seidl, A. Lehmann, A. Herz,

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

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

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java Vorlesung vom 07.01.2008 Übersicht 1 Warm-Up zum Jahresbeginn 2 Anfangswertprobleme 3 Polygonzüge 4 Das Eulersche Polygonzugverfahren Warm-Up zum Jahresbeginn 1 Warm-Up zum Jahresbeginn 2 Anfangswertprobleme

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

UNIVERSITÄT ULM Fakultät für Ingenieurswissenschaften und Informatik Institut für Datenbanken und Informationssysteme

UNIVERSITÄT ULM Fakultät für Ingenieurswissenschaften und Informatik Institut für Datenbanken und Informationssysteme UNIVERSITÄT ULM Fakultät für Ingenieurswissenschaften und Informatik Institut für Datenbanken und Informationssysteme 8. Übung zur Vorlesung Datenbanksysteme WS 08/09 Musterlösung Aufgabe 8-1: SQLJ //

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

Die Programmiersprache C Eine Einführung

Die Programmiersprache C Eine Einführung Die Programmiersprache C Eine Einführung Christian Gentsch Fakutltät IV Technische Universität Berlin Projektlabor 2. Mai 2014 Inhaltsverzeichnis 1 Einführung Entstehungsgeschichte Verwendung 2 Objektorientiert

Mehr

PIWIN I. Praktische Informatik für Wirtschaftsmathematiker, Ingenieure und Naturwissenschaftler I. Vorlesung 3 SWS WS 2007/2008

PIWIN I. Praktische Informatik für Wirtschaftsmathematiker, Ingenieure und Naturwissenschaftler I. Vorlesung 3 SWS WS 2007/2008 PIWIN I Kap. 7 Objektorientierte Programmierung - Einführung 1 PIWIN I Praktische Informatik für Wirtschaftsmathematiker, Ingenieure und Naturwissenschaftler I Vorlesung 3 SWS WS 2007/2008 FB Informatik

Mehr

Vererbung. Vererbung von Methoden und Instanzvariablen. Vererbung als Realisierung einer is-a Beziehung.

Vererbung. Vererbung von Methoden und Instanzvariablen. Vererbung als Realisierung einer is-a Beziehung. Vererbung Unterklassen einer Klasse Vererbung von Methoden und Instanzvariablen Überschreiben von Methoden Vererbung als Realisierung einer is-a Beziehung. Informatik II: Objektorientierte SW-Entwicklung,

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

Einführung in die Programmierung WS 2009/10. Übungsblatt 9: Objekt-Orientierung

Einführung in die Programmierung WS 2009/10. Übungsblatt 9: Objekt-Orientierung Ludwig-Maximilians-Universität München München, 18.12.2009 Institut für Informatik Prof. Dr. Christian Böhm Annahita Oswald, Bianca Wackersreuther Einführung in die Programmierung WS 2009/10 Übungsblatt

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

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

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

Objektorientierte Programmierung

Objektorientierte Programmierung Universität der Bundeswehr Fakultät für Informatik Institut 2 Priv.-Doz. Dr. Lothar Schmitz FT 2006 Zusatzaufgaben Lösungsvorschlag Objektorientierte Programmierung Lösung 22 (Java und UML-Klassendiagramm)

Mehr

Einführung in Java. PING e.v. Weiterbildung Andreas Rossbacher 24. März 2005

Einführung in Java. PING e.v. Weiterbildung Andreas Rossbacher 24. März 2005 Einführung in Java PING e.v. Weiterbildung Andreas Rossbacher 24. März 2005 Gliederung 1. Was ist Java / Geschichte von Java 2. Prinzip der Plattformunabhängigkeit 3. Wie kommt man vom Quellcode zum Programm

Mehr

Dr. Monika Meiler. Inhalt

Dr. Monika Meiler. Inhalt Inhalt 5 Referenzdatentypen - Felder... 5-2 5.1 Eindimensionale Felder - Vektoren... 5-3 5.1.1 Vereinbarung... 5-3 5.1.2 Referenzen sind keine Felder... 5-4 5.1.3 Kopieren eindimensionaler Felder... 5-6

Mehr