Musterlösung zum 8. Aufgabenblatt vom Dienstag, den 02. Juni 2009 zur Vorlesung. Informatik B. von Jacob Krause

Größe: px
Ab Seite anzeigen:

Download "Musterlösung zum 8. Aufgabenblatt vom Dienstag, den 02. Juni 2009 zur Vorlesung. Informatik B. von Jacob Krause"

Transkript

1 Musterlösung zum 8. Aufgabenblatt vom Dienstag, den 02. Juni 2009 zur Vorlesung Informatik B von Jacob Krause 1. Rückgeldstückelung Schreiben Sie Pseudocode und ein Java Programm zur Bestimmung des Wechselgeldes bei einem Kaufvorgang. Eingabe sind zwei Zahlen: der Kaufbetrag und der vom Kunden dem Kassierer gegebene Betrag. Das Programm soll das Wechselgeld berechnen und dabei eine Zerlegung desselben in möglichst wenig Banknoten und Münzen ausgeben. Gehen Sie von der Euro-Stückelung aus. Lösung von Nils Krane, Christian Krumnow Pseudocode: 1 Sei geg der gegebene Betrag, z der zu zahlende 2 3 i f ( geg mod 0. 01!= 0) or ( z mod 0. 01!= 0) 4 then Abbruch und Hinweise : ungültige Eingabe 5 diff = geg - z 6 i f ( diff < 0) then Abbruch und Hinweis : zu wenig gezahlt 7 ausgabe (" Wechselgeld =" diff ) 8 noten < -[500,200,100,50,20,10,5,2,1,0.50,0.2,0.1,0.05,0.02,0.01] 9 Ausgabe (" Ideale Zerlegung :") 10 hilf < for i = 1 to 15 do 12 hilf <- ( diff div noten [i]) 13 i f hilf!= 0 14 i f i < 8 15 Ausgabe ( hilf noten [i]"-euro Scheine ") 16 e l s e 17 Ausgabe ( hilf noten [i]"-euro Münzen ") 18 diff <- ( diff mod noten [i]) Umsetzung: 1 import java.io.*; 2 public c l a s s Wechselgeld { 3 public s t a t i c void main ( String [] args ){ 4 System. out. println (" ******************************* "); 5 System. out. println (" *** Aufgabe 1"); 6 System. out. println (" ******************************* "); 7 System. out. println (); 8 BufferedReader buffer = new BufferedReader (new InputStreamReader ( System.in)); 9 // B a n k n o t e n b e t r ä g e 100 um I n t e g e r D i v i s i o n zu n u t z e n 10 int [] banknoten = {50000,20000,10000,5000,2000,1000,500,200,100,50,20,10,5,2,1}; 11 try {

2 12 // E i n l e s e n d e r B e t r ä g e 13 System. out. println ("Zu zahlender Betrag :"); 14 String zuzahlenstring = buffer. readline (); 15 double zuzahlendouble = Double. parsedouble ( zuzahlenstring ); 16 int zuzahlen = ( int ) ( zuzahlendouble *100) ; 17 System. out. println (" Gegbener Betrag "); 18 String gegebenstring = buffer. readline (); 19 double gegebendouble = Double. parsedouble ( gegebenstring ); 20 int gegeben = ( int ) ( gegebendouble *100) ; 21 // P r ü f e ob g e g e b e n e Werte G e l d b e t r ä g e n e n t s p r e c h e n können 22 i f (( gegeben!= gegebendouble * 100) ( zuzahlen!= zuzahlendouble * 100) ) { 23 System. out. println (" Ungueltige Eingabe!"); 24 return ; 25 } 26 // B e r e c h n u n g d e s R ü c k g e l d e s 27 i n t differenz = gegeben - zuzahlen ; 28 // P r ü f e ob genug g e z a h l t 29 i f ( differenz < 0) { 30 System. out. println (" Gegebener Betrag zu gering!"); 31 return ; 32 } 33 // B e g i n n e Ausgabe 34 System. out. println (" Das Rueckgeld betraegt "+( differenz /100.0) +" Euro "); 35 System. out. println (""); 36 System. out. println (" Zerlegung :"); 37 int hilf = 0; // S p e i c h e r t A n z a h l d e r momentan b e n ö t i g t e n S c h e i n e / Münzen 38 for ( int i =0; i< banknoten. length ; i ++) { 39 // I n t e g e r D i v i s i o n e n t s p r i c h t dem d i v O p e r a t o r 40 hilf = differenz / banknoten [ i]; 41 i f ( hilf!= 0){ 42 i f (i <7) 43 System. out. println ( hilf +" "+( banknoten [i ]/100) +"-Euro Schein (e)"); 44 e l s e i f (i <9) 45 System. out. println ( hilf +" "+( banknoten [i ]/100) +"-Euro Muenzen "); 46 e l s e 47 System. out. println ( hilf +" "+( banknoten [i])+"-cent Muenzen "); 48 } 49 // Abzug d e s b e r e i t s g e l i s t e t e n R ü c k g e l d e s 50 differenz = differenz % banknoten [ i]; 51 } 52 } 53 catch ( IOException eio ) { 54 System. out. println (" Fehler "+ eio +" ist aufgetreten."); 55 } 56 } 57 }

3 2. Klassenhierarchie Definieren Sie eine Klasse Geom3D und eine Hierarchie, in der als Unterklassen von Geom3D geeignet definierte Klassen Wuerfel, Quader, Kugel und Tetraeder vorkommen. Definieren Sie für die einzelnen Klassen sinnvolle Attribute, Konstruktoren sowie Instanzmethoden volume() und surfacearea(), die das Volumen bzw. den Umfang bestimmen. Schreiben Sie dann ein Programm, das für ein Array von verschiedenen solchen geometrischen Körpern das Gesamtvolumen bzw. die Gesamtoberfläche berechnet. Mit einer Klasse Geom3Demo soll das Ganze dann getestet werden. Klassenübersicht mit definierenden Atributen und Methoden und Vererbung (Pfeile) class Geom3D abstract double volume() abstract double surfacearea() class Quader extends Geom3D double height, length, width; double volume() {...} double surfacearea() {...} class Kugel extends Geom3D double radius; double volume() {...} double surfacearea() {...} class Tetdaeder extends Geom3D double length; double volume() {...} double surfacearea() {...} class Wuerfel extends Quader double length; class Geom3Demo public static void main(string[] args){...} double sumvolume(geom3d[] koerper){...} double sumsurface(geom3d[] koerper){...} Umsetzung von Jasmin Kam 1 public abstract c l a s s Geom3D 2 { 3 public abstract double surfacearea (); 4 public abstract double volume (); 5 } SurfaceArea() und volume() sind abstrakte Methodendefinitionen. Das heißt, sie müssen von allen (nicht abstrakten) erbenden Klassen überschrieben und damit implementiert werden. 6 public c l a s s Quader extends Geom3D 7 { 8 public double x, y, z; // A t t r i b u t e : 3 S e i t e n

4 9 public Quader (double xwert, double ywert, double zwert ) 10 { 11 x = xwert ; 12 y = ywert ; 13 z = zwert ; 14 } //... und K o n s t r u k t o r public double surfacearea () 17 { 18 return ((x*y + y*z + x*z) * 2); // b e r e c h n e t d i e O b e r f l ä c h e 19 } public double volume () 22 { 23 return (x*y*z); // b e r e c h n e t d a s Volumen 24 } 25 } public c l a s s Wuerfel extends Quader 28 { 29 public double seite ; // A t t r i b u t : a l l e 3 S e i t e n s i n d g l e i c h 30 public Wuerfel (double einwert ) 31 { 32 super( einwert, einwert, einwert ); 33 } // r u f t den K o n s t r u k t o r a u s Quader mit d r e i m a l d e r g l e i c h e n S e i t e a u f // p u b l i c d o u b l e s u r f a c e A r e a ( ).. w i r d g e e r b t 36 // p u b l i c d o u b l e volume ( ) w i r d g e e r b t 37 } public c l a s s Kugel extends Geom3D 40 { 41 public double radius ; // n u r e i n A t t r i b u t 42 public Kugel (double einwert ) 43 { 44 radius = einwert ; 45 } //... und K o n s t r u k t o r public double surfacearea () 48 { 49 return ( 4 * ( Math.PI) * Math. pow ( radius,2) ); 50 } \\ berechnet die Oberfläche der Kugel public double volume () 53 { 54 return 4 / 3 * Math.PI * Math. pow ( radius,3) ; 55 } \\ berechnet das Volumen der Kugel 56 } public c l a s s Tetraeder extends Geom3D 59 { 60 public double seite ; // T e t r a e d e r b e s t e h t a u s 4

5 g l e i c h e n 61 public Tetraeder (double einwert ) // s e i t i g e n D r e i e c k e n => n u r e i n e A t t r i b u t 62 { 63 seite = einwert ; 64 } //... und K o n s t r u k t o r public double surfacearea () 67 { 68 return ( Math. sqrt (3) * Math. pow ( seite,2) ); 69 } // b e r e c h n e t O b e r f l ä c h e d e s T e t r a e d e r s public double volume () 72 { 73 return ( Math. sqrt (2) * Math. pow ( seite,3) / 12) ; 74 } // b e r e c h n e t Volumen d e s T e t r a e d e r s 75 } public c l a s s Zylinder extends Geom3D 78 { 79 public double radius, hoehe ; // z w e i A t t r i b u t e 80 public Zylinder (double wierund, double wiehoch ) 81 { 82 radius = wierund ; 83 hoehe = wiehoch ; 84 } //... und K o n s t r u k t o r public double surfacearea () 87 { // x K r e i s f l a e c h e und Mantel (= Umfang x Hoehe ) 88 return (2*( Math.PI * Math. pow ( radius,2) ) + ((2* Math.PI* radius ) * hoehe )); 89 } // b e r e c h n e t O b e r f l ä c h e d e s Z y l i n d e r s public double volume () 92 { // K r e i s f l a e c h e x Hoehe 93 return ( ( Math.PI * Math. pow ( radius,2) ) * hoehe ); 94 } // b e r e c h n e t Volumen d e s Z y l i n d e r s 95 } Kurze Atempause. Die Klasse Zylinder war in der Aufgabe nicht gefragt aber Eigeninitiative ist immer toll. Das Demo-Program von Jasmin ist etwas ausführlicher mit Kommandozeileneingabe. Wenn man nur ein Atribut eingibt, werden nur Wuerfel, Kugel und Tetraeder (alle mit dem gleichen Wert erzeugt). Bei mehr Atributen kommen dann entsprechend noch Quader und Zylinder hinzu. 96 import java.io.*; public c l a s s Geom3Demo 99 { 100 public s t a t i c void main ( String [] args ) throws Exception

6 101 { / 102 / Programm i s t e i n e w h i l e S c h l e i f e mit 103 / f o r S c h l e i f e, i n d e r E i n g a b e gesammelt 104 / werden. E i n e 0 b e e n d e t d i e f o r, z w e i / d i e w h i l e S c h l e i f e = E x i t. 106 / 107 String eingabestring ; // z u r P r u e f : 00 = Prog. ende 108 int eingabeint ; // wenn e i n e Z a h l 109 int zahlen [] = new int [3]; // dann i n d i e s e s A r r a y 110 do 111 { // H i n w e i s t e x t, i n s b. w i e zu b e e n d e n. 112 System. out. println (); 113 System. out. println (" Bitte eine Zahlen eingeben, dann ENTER druecken."); 114 System. out. println (" wenn keine weitere Zahl erwünscht, dann eine 0."); 115 System. out. println (" Programmende mit 00"); 116 System. out. println (); BufferedReader b = new BufferedReader 119 (new InputStreamReader ( System. in)); 120 f o r ( i n t maximal = 0; maximal < 3; maximal ++) 121 { // Z a h l e n e i n g a b e, max. 3 Z a h l e n 122 zahlen [ maximal ] = 0; // e n t s p. Array Pos. Wert N u l l. 123 i f ( maximal == 0) System. out. print (" Bitte max. 3 Zahlen : "); 124 i f ( maximal == 1) System. out. print (" Jetzt noch zwei.. : "); 125 i f ( maximal == 2) System. out. print (" Nur noch eine bitte : "); eingabestring = b. readline (); 128 eingabeint = Integer. parseint ( eingabestring ); 129 i f ( eingabeint == 0) // N u l l e n werden a u s g e w e r t e t. 130 { // w e n i g e r a l s d r e i A t t r i b u t e 131 i f ( eingabestring. length () == 1) break; // e r w u e n s c h t 132 e l s e System. exit (1) ; // 00 => E x i t 133 } e l s e zahlen [ maximal ] = eingabeint ; 134 } // f o r 135 i f ( zahlen. length > 0) geomarray ( zahlen ); // Z a h l e n werden

7 a l s A r r a y 136 } while ( true ); // u e b e r g e b e n. 137 } // main 138 / 139 I n GeomArray w i r d d i e A n z a h l d e r i n einem A r r a y u e b e r g e b e n e n A t t r i b u t e, d i e 140 gesammelt wurden, a u s g e l e s e n ; 5 K o e r p e r s i n d m o e g l i c h, davon werden dann p r o 141 f e h l e n d e m A t t r. e i n e r a b g e z o g e n. D i e s g e s c h i e h t mit d e r V a r i a b l e w e l c h e, mit 142 d e r auch d a s Geom3D A r r a y k o e r p e r e r s t e l l t w i r d. A r r a y w i r d e b e n f a l l s i n 143 A b h a e n i g k e i t von w e l c h e mit den Geom3D O b j e k t e n b e s t u e c k t. 144 Zum S c h l u s s e r f o l g t d i e Ausgabe a u f den B i l d s c h i r m ( n i c h t s o schoen, l e i d e r ). 145 / 146 public s t a t i c void geomarray ( int [] maxdrei ) 147 { 148 String [] genau = {" Wuerfel "," Tetraeder "," Kugel "," Zylinder "," Quader "}; 149 int welche = 5; // K r e i s, W u e r f e l, T e t r a e d e r 150 i f ( maxdrei [2] == 0) welche - -; // k e i n Quader 151 i f ( maxdrei [1] == 0) welche - -; // k e i n e Z y l i n d e r Geom3D koerper [] = new Geom3D [ welche ]; // Geom3D A r r a y 154 koerper [0] = new Wuerfel3D ( maxdrei [0]) ; // mit e n t s p r. O b j e k t e n 155 koerper [1] = new Tetraeder3D ( maxdrei [ 0]) ; 156 koerper [2] = new Kugel3D ( maxdrei [ 0]) ; 157 i f ( welche > 3) koerper [3] = new Zylinder3D ( maxdrei [0], maxdrei [1]) ; 158 i f ( welche > 4) koerper [4] = new Quader3D ( maxdrei [0], maxdrei [1], maxdrei [2]) ; f o r ( i n t geomareav = 0; geomareav < koerper. length ; geomareav ++) 161 { // Ausgabe 162 System. out. println (); 163 System. out. print ( genau [ geomareav ] + "/ Oberflaeche : "); 164 System. out. print ( koerper [ geomareav ]. surfacearea () + "/ Volumen :"); 165 System. out. println ( koerper [ geomareav ]. volume ()); 166 } // f o r 167 System. out. print (" Gesamtvolumen : "+ sumvolume ( koerper )+", Gesamtoberfläche : "+ sumsurface ( koerper )); 168 } 169

8 170 public s t a t i c double sumvolume ( Geom3D [] koerper ){ 171 double vol =0; // v a r i a b l e zum S p e i c h e r n d e s Gesamtvolumens 172 for ( Geom3D k: koerper ){ // f ü r a l l e K ö r p e r im A r r a y w i r d d a s 173 vol +=k. volume (); // Volumen a u f s u m m i e r t 174 } 175 return vol ; 176 } public s t a t i c double sumsurface ( Geom3D [] koerper ){ 179 double surf =0; // v a r i a b l e zum S p e i c h e r n d e r G e s a m t o b e r f l ä c h e 180 for ( Geom3D k: koerper ){ // f ü r a l l e K ö r p e r im A r r a y w i r d d i e O b e r f l ä c h e 181 surf +=k. surfacearea (); // a u f s u m m i e r t 182 } 183 return surf ; 184 } 185 } Wichtig waren in der Demo-Klasse vor allem die beiden Methoden zum Aufsummieren.

9 3. Größte Teilsumme Schreiben Sie zunächst einen Algorithmus in Pseudocode und dann eine Java Methode, die für eine Liste von ganzen Zahlen die maximale Summe der Einträge einer zusammenhängenden Teilliste berechnen. Sind alle Werte negativ, so sei das Ergebnis 0, bei { 3, 11, 4, 13, 5, 2} wäre es 20. Begründen Sie die Korrektheit Ihres Verfahrens und was ist die Laufzeit in O Notation? Lösung von Nils Krane, Christian Krumnow Pseudocode: 1 Sei array das gegebene Array 2 len <- length ( array ) 3 max <- 0 4 hilf <- 0 5 f o r jeden integer i in array 6 i f i+ hilf > 0 7 then hilf <- i + hilf 8 i f hilf > max 9 then max <- hilf 10 e l s e 11 hilf < return max Zur Korrektheit: Es lassen sich folgende Beobachtungen aufstellen: Eine maximale Summe beginnt nie mit einem negativen Element dies entspricht dem dritten Fall der Fallunterscheidung oben: falls ein negativer Anfang einer Summe gefunden wird wird dieser übergangen (auf 0 gesetzt). Falls ein positives Anfangsstück einer Summe gefunden wird, das größer als alle anderen bisherigen Anfangsstücken war so ist dies die momentan maximale Teillistensumme. Obiger Algorithmus summiert die Glieder des Arrays zu Anfangsstücken wird eine negative Zahl erreicht so wird das in hilf gespeicherte Anfangsstück auf 0 gesetzt, wird eine größere Teillistensumme als bisher bekannt entdeckt so wird diese unter max gespeichert. Zur Laufzeit: Das Array der Länge n wird stets einmal vollständig durchlaufen, wobei die Komplexität der Operationen bei jedem Schleifendurchlauf eine konstante obere Schranke besitzen. Somit ist die Komplexität mit Theta(n) anzugeben. Umsetzung: 1 public c l a s s Sum { 2 public s t a t i c void main ( String [] args ){ 3 int [] array1 ={ -3,11, -4,13, -5,2}; 4 System. out. println ( sum ( array1 )); 5 int [] array2 ={2, -2, -5,3,7,2, -9,13, -10,2,1, -8,3, -5,6, -9,2, -1,5}; 6 System. out. println ( sum ( array2 )); 7 }

10 8 9 public s t a t i c int sum ( int [] arr ){ 10 int max = 0; 11 int hilf = 0; 12 for ( int i =0; i<arr. length ; i ++) { 13 i f ( arr [i]+ hilf >0) { 14 hilf += arr [i]; 15 i f ( hilf > max ){ 16 max = hilf ; 17 } 18 } 19 e l s e { 20 hilf =0; 21 } 22 } 23 return max ; 24 } 25 }

11 4. Eine Java Methode Betrachten Sie die folgenden Java Klassen. Was ist der Output eines Aufrufes der main-methode in der Klasse Maryland, begründen Sie jeweils Ihre Antwort! 1 public c l a s s Place extends Object { 2 Place () { / n u l l c o n s t r u c t o r / } 3 public void printme () { System. out. println (" Buy it."); } 4 } 5 public c l a s s Region extends Place { 6 Region () { / n u l l c o n s t r u c t o r / } 7 public void printme () { System. out. println (" Box it."); } 8 } 9 public c l a s s State extends Region { 10 State () { / n u l l c o n s t r u c t o r / } 11 public void printme () { System. out. println (" Ship it."); } 12 } 13 public c l a s s Maryland extends State { 14 Maryland () { / n u l l c o n s t r u c t o r / } 15 public void printme () { System. out. println (" Read it."); } 16 public s t a t i c void main ( String [] args ) { 17 Region mid = new State (); 18 State md = new Maryland (); 19 Object obj = new Place (); 20 Place usa = new Region (); 21 md. printme (); 22 mid. printme (); 23 (( Place ) obj ). printme (); 24 obj = md; 25 (( Maryland ) obj ). printme (); 26 obj = usa ; 27 (( Place ) obj ). printme (); 28 } 29 } md.printme() md ist eine Referenz auf State und zeigt auf ein Objekt aus Klasse Maryland. Diese Unterklasse Maryland erbt von der Oberklasse State zwar die printme Methode, diese wird aber überschrieben. Ausgabe: Read it. mid.printme() Das ist analog. mid ist Referenz auf Klasse Region, weist auf ein Objekt der Unterklasse State, die aber die printme Methode überschreibt. Ausgabe: Ship it. ((Place) obj.printme() Jetzt ist obj Referenz auf Object, wird aber mit dem Konstruktor der abgeleiteten Klasse Place erzeugt. Die printme Methode wurde bei der Erweiterung

12 hinzugefügt, eine solche Methode gibt es in der Oberklasse nicht.durch das explizite Casting erkennt der Compiler, dass es sich um ein Objekt aus Place handelt und wendet die entsprechende Methode an. Ausgabe:Buy it. ((Maryland) obj).printme Durch das explizite Casting nach Maryland wird die dortige printme Methode ausgeführt. Ausgabe: Read it. ((Place) obj).printme() obj zeigt jetzt wie usa auf ein in Region konstruiertes Objekt. Trotz des Castings nach Place bleibt obj in der spezialisierten Unterklasse Region, insbesondere was die darin überschriebene printme Methode betrifft. Ausgabe: Box it.

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

Abgabe: keine Pflichtabgabe (vor 12 Uhr) Aufgabe 10.1 (P) Vererbung Gegeben seien folgende Java-Klassen:

Abgabe: keine Pflichtabgabe (vor 12 Uhr) Aufgabe 10.1 (P) Vererbung Gegeben seien folgende Java-Klassen: 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 10 Prof. Dr. Helmut Seidl, A. Lehmann, A. Herz,

Mehr

Informatik 1 - Translation Studies in Information Technology. Musterlösung zum Aufgabenblatt der ersten Pflichtübung im Wintersemester 18/19

Informatik 1 - Translation Studies in Information Technology. Musterlösung zum Aufgabenblatt der ersten Pflichtübung im Wintersemester 18/19 Informatik 1 - Translation Studies in Information Technology INF1 TSIT MUSTERLÖSUNG: PFLICHTÜBUNG 1 Musterlösung zum Aufgabenblatt der ersten Pflichtübung im Wintersemester 18/19 Praktikum zur Vorlesung

Mehr

6. Globalübung (zu Übungsblatt 8)

6. Globalübung (zu Übungsblatt 8) 6. Globalübung (zu Übungsblatt 8) Inhalt: Klassenhierarchien Verdecken von Attributen Überschreiben von Methoden Codeanalyse Analyse von JAVA-Programmen Semestralklausur Klausurtermin: Mittwoch 11.01.2006

Mehr

1 Klassen anlegen und Objekte erzeugen

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

Mehr

1 Klassen anlegen und Objekte erzeugen

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

Mehr

Ausnahmen. Dr. Philipp Wendler. Zentralübung zur Vorlesung Einführung in die Informatik: Programmierung und Softwareentwicklung

Ausnahmen. Dr. Philipp Wendler. Zentralübung zur Vorlesung Einführung in die Informatik: Programmierung und Softwareentwicklung Dr. Philipp Wendler Zentralübung zur Vorlesung Einführung in die Informatik: Programmierung und Softwareentwicklung WS18/19 https://www.sosy-lab.org/teaching/2018-ws-infoeinf/ Fehlerarten Bei der Programmierung

Mehr

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

Übungsblatt 13. Abgabe / Besprechung in Absprache mit dem Tutor Albert-Ludwigs-Universität Freiburg Institut für Informatik Einführung in die Informatik Sommersemester 2013 PD Dr. Cyrill Stachniss Dr. Rainer Kümmerle Übungsblatt 13 Abgabe / Besprechung in Absprache

Mehr

Handbuch konsultieren!

Handbuch konsultieren! Zeichenketten Klasse String Enthält zahlreiche Methoden z.b.: int length(): Anzahl der Zeichen in Zeichenkette String substring(int start): Unterzeichenkette ab Position start boolean equalsignorecase(string

Mehr

Ausnahmen. Philipp Wendler. Zentralübung zur Vorlesung Einführung in die Informatik: Programmierung und Softwareentwicklung

Ausnahmen. Philipp Wendler. Zentralübung zur Vorlesung Einführung in die Informatik: Programmierung und Softwareentwicklung Philipp Wendler Zentralübung zur Vorlesung Einführung in die Informatik: Programmierung und Softwareentwicklung https://www.sosy-lab.org/teaching/2017-ws-infoeinf/ WS17/18 Fehlerarten Bei der Programmierung

Mehr

Objektorientierung II & die Java Klassenbibliothek. Kristian Bergmann und Arthur Lochstampfer

Objektorientierung II & die Java Klassenbibliothek. Kristian Bergmann und Arthur Lochstampfer Java Kurs Objektorientierung II & die Java Klassenbibliothek Kristian Bergmann und Arthur Lochstampfer Vergleich class Apfel { String farbe; int gewicht; String geerntetin; class Erdbeere { String farbe;

Mehr

FAKULTÄT FÜR INFORMATIK

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

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

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

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

Mehr

Algorithmen und Programmierung III

Algorithmen und Programmierung III Musterlösung zum 4. Aufgabenblatt zur Vorlesung WS 2006 Algorithmen und Programmierung III von Christian Grümme Aufgabe 1 Amortisierte Analyse 10 Punkte Zu erst betrachte ich wie oft die letzte Ziffer

Mehr

Programmierung WS12/13 Lösung - Präsenzübung M. Brockschmidt, F. Emmes, C. Otto, T. Ströder

Programmierung WS12/13 Lösung - Präsenzübung M. Brockschmidt, F. Emmes, C. Otto, T. Ströder Prof. aa Dr. J. Giesl M. Brockschmidt, F. Emmes, C. Otto, T. Ströder Aufgabe 1 (Programmanalyse): (9 + 1 = 10 Punkte) a) Geben Sie die Ausgabe des Programms für den Aufruf java M an. Tragen Sie hierzu

Mehr

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

Ausnahmen. Dr. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung Dr. Annabelle Klarl Zentralübung zur Vorlesung Einführung in die Informatik: http://www.pst.ifi.lmu.de/lehre/wise-16-17/infoeinf WS16/17 Action required now 1. Smartphone: installiere die App "socrative

Mehr

Neben der Verwendung von Klassen ist Vererbung ein wichtiges Merkmal objektorientierter

Neben der Verwendung von Klassen ist Vererbung ein wichtiges Merkmal objektorientierter Kapitel 1 Der vierte Tag 1.1 Vererbung Neben der Verwendung von Klassen ist Vererbung ein wichtiges Merkmal objektorientierter Sprachen. Unter Vererbung versteht man die Möglichkeit, Eigenschaften vorhandener

Mehr

Probeklausur zur Vorlesung

Probeklausur zur Vorlesung Dr. Jochen Hoenicke Alexander Nutz Probeklausur zur Vorlesung Einführung in die Informatik Sommersemester 2014 Die Klausur besteht aus diesem Deckblatt und elf Blättern mit den Aufgaben, sowie einem Blatt

Mehr

UNIVERSITÄT SIEGEN Fachbereich 12, Elektrotechnik und Informatik Fachgruppe Betriebssysteme / verteilte Systeme

UNIVERSITÄT SIEGEN Fachbereich 12, Elektrotechnik und Informatik Fachgruppe Betriebssysteme / verteilte Systeme UNIVERSITÄT SIEGEN Fachbereich 12, Elektrotechnik und Informatik Fachgruppe Betriebssysteme / verteilte Systeme Musterklausur zur Einführung in die Informatik II 1. Teilklausur, 23.06.2006 Bitte lesen

Mehr

Name: Matrikelnr : Aufgabe 1: (ca. 8 Punkte )

Name: Matrikelnr : Aufgabe 1: (ca. 8 Punkte ) Name: Aufgabe 1: (ca. 8 Punkte ) Matrikelnr : In einem Array int a = new int[1000] ; befinden sich 1000 verschiedene Zahlen. Schreiben Sie eine Funktion, die das Array als Parameter übergeben bekommt und

Mehr

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

Ausnahmen. 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 Fehlerarten Bei der Programmierung können viele Arten von Fehlern auftreten:

Mehr

Eingabe und Ausgabe in Java. Dr. Horst Treiblmaier Abteilung für Wirtschaftsinformatik WU Wien

Eingabe und Ausgabe in Java. Dr. Horst Treiblmaier Abteilung für Wirtschaftsinformatik WU Wien Eingabe und Ausgabe in Java Dr. Horst Treiblmaier Abteilung für Wirtschaftsinformatik WU Wien Eingabe Beispiel1 public class Input1 { public static void main(string[] args) { for (int i = 0; i < args.length;

Mehr

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

Ausnahmen. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung Annabelle Klarl Zentralübung zur Vorlesung : http://www.pst.ifi.lmu.de/lehre/wise-12-13/infoeinf WS12/13 Fehlerarten Bei der Programmierung können viele Arten von Fehlern auftreten: Syntaktische Fehler

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

Informatik 1 - Translation Studies in Information Technology. Musterlösung zum Aufgabenblatt der ersten Pflichtübung im Wintersemester 16/17

Informatik 1 - Translation Studies in Information Technology. Musterlösung zum Aufgabenblatt der ersten Pflichtübung im Wintersemester 16/17 Informatik 1 - Translation Studies in Information Technology INF1 TSIT MUSTERLÖSUNG: PFLICHTÜBUNG 1 Musterlösung zum Aufgabenblatt der ersten Pflichtübung im Wintersemester 16/17 Praktikum zur Vorlesung

Mehr

16. Dezember 2004 Dr. M. Schneider, P. Ziewer

16. Dezember 2004 Dr. M. Schneider, P. Ziewer Technische Universität München WS 2004/2005 Fakultät für Informatik Lösungsvorschläge zu Blatt 8 A. Berlea, M. Petter, 16. Dezember 2004 Dr. M. Schneider, P. Ziewer Übungen zu Einführung in die Informatik

Mehr

12 Abstrakte Klassen, finale Klassen und Interfaces

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

Mehr

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

Übungsblatt 13. Abgabe / Besprechung in Absprache mit dem Tutor Albert-Ludwigs-Universität Freiburg Institut für Informatik Einführung in die Informatik Sommersemester 2018 Prof. Dr. Wolfram Burgard Andreas Kuhner Daniel Büscher Übungsblatt 13 Abgabe / Besprechung

Mehr

Fragenkatalog ESOP WS 16/17

Fragenkatalog ESOP WS 16/17 Fragenkatalog ESOP WS 16/17 1. Einleitung 1.1 Was ist Programmieren? 1.2 Was ist ein Programm? 1.3 Welche Schritte werden bei der Programmerstellung benötigt? 1.4 Was ist ein Algorithmus? 1.5 Was sind

Mehr

Ausnahmen. Gilbert Beyer und Annabelle Klarl. Einführung in die Informatik. Zentralübung zur Vorlesung Einführung in die Informatik

Ausnahmen. Gilbert Beyer und Annabelle Klarl. Einführung in die Informatik. Zentralübung zur Vorlesung Einführung in die Informatik Ausnahmen Zentralübung zur Vorlesung http://www.pst.ifi.lmu.de/lehre/wise-11-12/infoeinf WS11/12 Inhalte der heutigen Vorlesung: Arten von Fehlern Auslösen von Ausnahmen Vermeiden von Ausnahmen Ausnahmeklassen

Mehr

Institut für Informatik. Endterm Klausur zu Informatik I 20. Februar 2010

Institut für Informatik. Endterm Klausur zu Informatik I 20. Februar 2010 Technische Universität München Institut für Informatik Lehrstuhl für Computer Graphik & Visualisierung Prof. R. Westermann Endterm Klausur zu Informatik I 20. Februar 2010 ˆ Die Arbeitszeit beträgt 120

Mehr

Programmierung für Mathematik HS11

Programmierung für Mathematik HS11 software evolution & architecture lab Programmierung für Mathematik HS11 Übung 8 1 Aufgabe: Codeverständnis (Repetition) 1.1 Lernziele 1. Code verstehen können. 2. Fehler im Code finden und korrigieren

Mehr

Übung Informatik I - Programmierung - Blatt 6

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

Mehr

Algorithmen und Datenstrukturen 07

Algorithmen und Datenstrukturen 07 (7. Juni 2012) 1 Besprechung Blatt 6 Fragen 2 Referenzen Referenzsemantik 3 Vererbung Allgemein abstract Interfaces Vererbung in UML 4 Vorbereitung Blatt 7 Anmerkungen Fragen Fragen zu Blatt 6? Referenzsemantik

Mehr

Prof. Dr. Wolfgang Schramm. Vorlesung. Techniken der Programmentwicklung. Exkurs: Anonyme Klassen

Prof. Dr. Wolfgang Schramm. Vorlesung. Techniken der Programmentwicklung. Exkurs: Anonyme Klassen Prof. Dr. Wolfgang Schramm Vorlesung Exkurs: Anonyme Klassen Techniken der Programmentwicklung Prof. Dr. Wolfgang Schramm Vorlesung Exkurs: Anonyme Klassen Techniken der Programmentwicklung Anonyme Klassen

Mehr

Tag 4 Repetitorium Informatik (Java)

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

Mehr

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

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

Mehr

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

Institut für Programmierung und Reaktive Systeme. Java 7. Markus Reschke Institut für Programmierung und Reaktive Systeme Java 7 Markus Reschke 14.10.2014 Vererbung in Java Vererbung ermöglicht es, Klassen zu spezialisieren Wiederverwendung vorhandener Klassen Kindsklasse erhält

Mehr

II.4.4 Exceptions - 1 -

II.4.4 Exceptions - 1 - n 1. Unterklassen und Vererbung n 2. Abstrakte Klassen und Interfaces n 3. Modularität und Pakete n 4. Ausnahmen (Exceptions) n 5. Generische Datentypen n 6. Collections II.4.4 Exceptions - 1 - Ausnahmen

Mehr

9. Ausnahmebehandlung

9. Ausnahmebehandlung Schwerpunkte Ausnahmen und Laufzeitfehler 9. Ausnahmebehandlung Java-Beispiele: Ausnahme.java TryCatch.java TryCatchAll.java Finally.java TryInTry.java KeyboardTry.java Oeffnungszeit.java Stack-Trace Java-Ausnahmeklassen-Hierarchie

Mehr

Algorithmen und Datenstrukturen

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

Mehr

Programmieren in Java

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

Mehr

1 Abstrakte Klassen, finale Klassen und Interfaces

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

Mehr

II.4.4 Exceptions - 1 -

II.4.4 Exceptions - 1 - 1. Unterklassen und Vererbung 2. Abstrakte Klassen und Interfaces 3. Modularität und Pakete 4. Ausnahmen (Exceptions) 5. Generische Datentypen 6. Collections II.4.4 Exceptions - 1 - Ausnahmen (Exceptions)

Mehr

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

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

Mehr

Programmierung für Mathematik HS10 Übung 8

Programmierung für Mathematik HS10 Übung 8 Department of Informatics software evolution & architecture lab Programmierung für Mathematik HS10 Übung 8 1 Aufgabe: Codeverständnis (Repetition) 1.1 Lernziele 1. Code verstehen können. 2. Fehler im Code

Mehr

Programmiermethodik 1. Klausur

Programmiermethodik 1. Klausur Programmiermethodik 1. Klausur 27. 6. 2013 Name Matrikelnummer Aufgabe mögliche Punkte erreichte Punkte 1 21 2 20 3 19 4 19 5 21 6 20 Gesamt 120 1 Seite 2 von 18 Aufgabe 1) Objekt-Orientierung und Vererbung

Mehr

Tag 8 Repetitorium Informatik (Java)

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

Mehr

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

Schlussendlich geben wir die Listen aus. Es kommt zu folgender Ausgabe: Musterlösung Übung 7 Aufgabe 1 Sehen wir uns zu allererst das gegebene Forth Programm an: 0 3 new - list constant list1 list1 5 new - list constant list2 list1 6 new - list constant list3 list2 2 new -

Mehr

Die abstrakte Klasse Expression:

Die abstrakte Klasse Expression: Die abstrakte Klasse Expression: Expression abstract evaluate() Add Neg Const 501 Die abstrakte Klasse Expression: Expression abstract evaluate() Add Neg Const Leider (zum Glück?) lässt sich nicht die

Mehr

Beispielprüfung CuP WS 2015/2016

Beispielprüfung CuP WS 2015/2016 Beispielprüfung CuP WS 2015/2016 Univ.-Prof. Dr. Peter Auer 23. Dezember 2015 Informationen zur Prüfung Die Prüfung wird als Multiple-Choice-Test mit 10 Fragen am Computer abgehalten. (Bei manchen Fragen

Mehr

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

Einführung in das Programmieren Probeklausur Lösungen

Einführung in das Programmieren Probeklausur Lösungen Einführung in das Programmieren Probeklausur Lösungen Frederik Kanning 01.07.2013 Aufgabe 1 b/c) void definiert Methode ohne Rückgabewert return beendet aktuellen Methodenaufruf wenn Rückgabetyp nicht

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

Programmieren in Java

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

Mehr

Universität zu Lübeck Institut für Telematik. Prof. Dr. Stefan Fischer

Universität zu Lübeck Institut für Telematik. Prof. Dr. Stefan Fischer Universität zu Lübeck Institut für Telematik Prof. Dr. Stefan Fischer Probeklausur im Fach Programmieren Hinweise zur Bearbeitung: Es sind keinerlei Hilfsmittel zugelassen. Diese Klausur umfasst 18 Seiten.

Mehr

Programmierung WS14/15 Lösung - Präsenzübung C. Aschermann, F. Frohn, J. Hensel, T. Ströder

Programmierung WS14/15 Lösung - Präsenzübung C. Aschermann, F. Frohn, J. Hensel, T. Ströder Prof. aa Dr. J. Giesl C. Aschermann, F. Frohn, J. Hensel, T. Ströder Aufgabe 1 (Programmanalyse): (14 + 6 = 20 Punkte) a) Geben Sie die Ausgabe des Programms für den Aufruf java M an. Tragen Sie hierzu

Mehr

Teil 5 - Java. Programmstruktur Operatoren Schlüsselwörter Datentypen

Teil 5 - Java. Programmstruktur Operatoren Schlüsselwörter Datentypen Teil 5 - Java Programmstruktur Operatoren Schlüsselwörter Datentypen 1 Kommentare in Java In Java gibt es drei Möglichkeiten zur Kommentierung: // Kommentar Alle Zeichen nach dem // werden ignoriert. für

Mehr

Software Entwicklung 1. Subtyping revisited. Subtypbildung in Java: Klassen I. Subtyping und Vererbung I. Annette Bieniusa / Arnd Poetzsch-Heffter

Software Entwicklung 1. Subtyping revisited. Subtypbildung in Java: Klassen I. Subtyping und Vererbung I. Annette Bieniusa / Arnd Poetzsch-Heffter Software Entwicklung 1 Annette Bieniusa / Arnd Poetzsch-Heffter Subtyping revisited AG Softech FB Informatik TU Kaiserslautern Bieniusa/Poetzsch-Heffter Software Entwicklung 1 2/ 40 Subtyping und Vererbung

Mehr

Programmierung Nachklausurtutorium

Programmierung Nachklausurtutorium Programmierung Nachklausurtutorium Laryssa Horn, Tim Engelhardt 20 März 2018 Klassen Wofür wir Klassen brauchen: Definieren ein Bauplan eines Objektes Bauplan enthält Attribute und Methoden Klasse Beispiel

Mehr

Aufgabe 1 (Programmanalyse, Punkte)

Aufgabe 1 (Programmanalyse, Punkte) 2 Aufgabe 1 (Programmanalyse, 8 + 6 Punkte) a) Geben Sie die Ausgabe des Programms für den Aufruf java M an. Schreiben Sie hierzu jeweils die ausgegebenen Zeichen hinter den Kommentar OUT:. public class

Mehr

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

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

Mehr

Vorkurs Informatik WiSe 15/16

Vorkurs Informatik WiSe 15/16 Java 7 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe, 21.10.2015 Technische Universität Braunschweig, IPS Überblick OO in Java Vererbung Abstrakte Klassen und Interfaces 21.10.2015 Dr. Werner Struckmann

Mehr

Kapitel 4: Klassen und Unterklassen

Kapitel 4: Klassen und Unterklassen Liste P: Programmieren mit Java WS 2001/2002 Prof. Dr. V. Turau FH Wiesbaden Kapitel 4: Klassen und Unterklassen Folie 54 : Unterklassen Die Bildung von Unterklassen und das Konzept der Vererbung sind

Mehr

Einfache Arrays. Dr. Philipp Wendler. Zentralübung zur Vorlesung Einführung in die Informatik: Programmierung und Softwareentwicklung

Einfache Arrays. Dr. Philipp Wendler. Zentralübung zur Vorlesung Einführung in die Informatik: Programmierung und Softwareentwicklung Dr. Philipp Wendler Zentralübung zur Vorlesung Einführung in die Informatik: Programmierung und Softwareentwicklung WS18/19 https://www.sosy-lab.org/teaching/2018-ws-infoeinf/ Arrays: Wiederholung Ein

Mehr

Tafelübung 07 Algorithmen und Datenstrukturen

Tafelübung 07 Algorithmen und Datenstrukturen Tafelübung 07 Algorithmen und Datenstrukturen Lehrstuhl für Informatik 2 (Programmiersysteme) Friedrich-Alexander-Universität Erlangen-Nürnberg Wintersemester 2017/2018 Übersicht Vererbung Grundlagen Abstrakte

Mehr

Theorie zu Übung 8 Implementierung in Java

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

Mehr

Software Entwicklung 1

Software Entwicklung 1 Software Entwicklung 1 Annette Bieniusa / Arnd Poetzsch-Heffter AG Softech FB Informatik TU Kaiserslautern Subtyping revisited Bieniusa/Poetzsch-Heffter Software Entwicklung 1 2/ 40 Subtyping und Vererbung

Mehr

Ausnahmebehandlung. Ausnahmen werfen (auslösen) Eigene Ausnahmen definieren. Ausnahmen abfangen. Ausnahmen definieren

Ausnahmebehandlung. Ausnahmen werfen (auslösen) Eigene Ausnahmen definieren. Ausnahmen abfangen. Ausnahmen definieren Ausnahmebehandlung Ausnahmen werfen (auslösen) Eigene Ausnahmen definieren Ausnahmen abfangen Ausnahmen definieren Sinnvolle Verwendung von Ausnahmen Informatik II: Objektorientierte SW-Entwicklung, Algorithmik,

Mehr

Statische Methoden, Vererbung, Benutzereingabe

Statische Methoden, Vererbung, Benutzereingabe Statische Methoden, Vererbung, Benutzereingabe Dr. Philipp Wendler Zentralübung zur Vorlesung Einführung in die Informatik: Programmierung und Softwareentwicklung WS18/19 https://www.sosy-lab.org/teaching/2018-ws-infoeinf/

Mehr

Abschnitt 7: Weitere Konzepte der oo Programmierung in Java

Abschnitt 7: Weitere Konzepte der oo Programmierung in Java Abschnitt 7: Weitere Konzepte der oo Programmierung in Java 7. Weitere Konzepte der oo Programmierung in Java 7.1 Peer Kröger (LMU München) Einführung in die Programmierung WS 14/15 596 / 627 Überblick

Mehr

14 Abstrakte Klassen, finale Klassen, Interfaces

14 Abstrakte Klassen, finale Klassen, Interfaces Eine abstrakte Objekt-Methode ist eine Methode, für die keine Implementierung bereit gestellt wird. Eine Klasse, die abstrakte Objekt-Methoden enthält, heißt ebenfalls abstrakt. Für eine abstrakte Klasse

Mehr

Präsenzübung Programmierung WS 2016/2017

Präsenzübung Programmierung WS 2016/2017 Prof. aa Dr. J. Giesl F. Frohn, J. Hensel, D. Korzeniewski Vorname: Präsenzübung Programmierung WS 2016/2017 Nachname: Studiengang (bitte genau einen markieren): Informatik Bachelor Informatik Lehramt

Mehr

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

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

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 41 Einstieg in die Informatik mit Java Vererbung Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 41 1 Überblick: Vererbung 2 Grundidee Vererbung 3 Verdeckte Variablen

Mehr

Objektorientierung (OO)

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

Mehr

14 Abstrakte Klassen, finale Klassen, Interfaces. Auswertung von Ausdrücken. Beispiel. Abstrakte Methoden und Klassen

14 Abstrakte Klassen, finale Klassen, Interfaces. Auswertung von Ausdrücken. Beispiel. Abstrakte Methoden und Klassen Auswertung von Ausdrücken Eine abstrakte Objekt-Methode ist eine Methode, für die keine Implementierung bereit gestellt wird. Eine Klasse, die abstrakte Objekt-Methoden enthält, heißt ebenfalls abstrakt.

Mehr

Exkurs: ANONYME KLASSEN. Techniken der Programmentwicklung Prof. Dr. Wolfgang Schramm

Exkurs: ANONYME KLASSEN. Techniken der Programmentwicklung Prof. Dr. Wolfgang Schramm Exkurs: ANONYME KLASSEN Techniken der Programmentwicklung Prof. Dr. Wolfgang Schramm Anonyme Klassen Eigenschaften 1 Häufigste Anwendung lokaler Klassen: anonyme Definition. Klasse erhält keinen eigenen

Mehr

Java - Programmierung - Objektorientierte Programmierung 1

Java - Programmierung - Objektorientierte Programmierung 1 Java - Programmierung - Objektorientierte Programmierung 1 // Klassen und Objekte public class KlaObj public static void main(string args []) Klasse1 a; a = new Klasse1("heute", 47); Klasse1 b = new Klasse1

Mehr

14 Abstrakte Klassen, finale Klassen, Interfaces

14 Abstrakte Klassen, finale Klassen, Interfaces Eine abstrakte Objekt-Methode ist eine Methode, für die keine Implementierung bereit gestellt wird. Eine Klasse, die abstrakte Objekt-Methoden enthält, heißt ebenfalls abstrakt. Für eine abstrakte Klasse

Mehr

Javakurs für Anfänger

Javakurs für Anfänger Javakurs für Anfänger Einheit 10: Mehr zur Vererbung und abstrakte Klassen Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda 1. Teil: Mehr zur Vererbung Methoden vererben und überschreiben

Mehr

Lösungsvorschläge zur Nachklausur zum Kurs 1618 Sommersemester 2001 am

Lösungsvorschläge zur Nachklausur zum Kurs 1618 Sommersemester 2001 am Aufgabe 1 Lösungsvorschläge zur Nachklausur zum Kurs 1618 Sommersemester 2001 am 16.3.2002 Folgende Implementierung löst die gestellte Aufgabe : public interface Figur { public void anzeigen (); public

Mehr

int x = 3; int y = 11; public A () { this.x = z; y *= z;

int x = 3; int y = 11; public A () { this.x = z; y *= z; Prof. aa Dr. J. Giesl Programmierung WS16/17 F. Frohn, J. Hensel, D. Korzeniewski Aufgabe 1 (Programmanalyse): (13 + 6 = 19 Punkte) a) Geben Sie die Ausgabe des Programms für den Aufruf java M an. Tragen

Mehr

Wiederholungsblatt Einführung in die Programmierung Lösungen

Wiederholungsblatt Einführung in die Programmierung Lösungen Ludwig-Maximilians-Universität München Institut für Informatik Prof. Dr. Peer Kröger Michael Fromm, Florian Richter WiSe 2018/2019 09.02.2019 Wiederholungsblatt Einführung in die Programmierung Lösungen

Mehr

Java Einführung Exception Handling. Kapitel 17

Java Einführung Exception Handling. Kapitel 17 Java Einführung Exception Handling Kapitel 17 Inhalt Was sind Exceptoins? Wie werden sie ausgelöst? Wie kann man Exceptions behandeln? Erweiterung von Exceptions Spezialfall IO 2 Ausnahmezustände Im Ablauf

Mehr

2 Eine einfache Programmiersprache

2 Eine einfache Programmiersprache 2 Eine einfache Programmiersprache Eine Programmiersprache soll Datenstrukturen anbieten Operationen auf Daten erlauben Kontrollstrukturen zur Ablaufsteuerung bereitstellen Als Beispiel betrachten wir

Mehr

Methoden und Klassen. Silke Trißl Wissensmanagement in der Bioinformatik

Methoden und Klassen. Silke Trißl Wissensmanagement in der Bioinformatik Methoden und Klassen Silke Trißl Wissensmanagement in der Bioinformatik Wiederholung Jede Applikation braucht eine Klasse mit einer main-methode Eintrittspunkt in das Programm Die main-methode wird public

Mehr

Komponenten-basierte Entwicklung Teil 4: Exceptions

Komponenten-basierte Entwicklung Teil 4: Exceptions Komponenten-basierte Entwicklung Teil 4: Exceptions 31.10.14 1 Definitionen I Exception = Ausnahme = Situation, in der während einer Operation eine der Bedingungen des Typs bzw. der Klasse verletzt wird

Mehr

Silke Trißl Wissensmanagement in der Bioinformatik. Objektorientierte Programmierung (OOP) Vorstellung wie in der realen Welt: Farbe Hubraum Tank...

Silke Trißl Wissensmanagement in der Bioinformatik. Objektorientierte Programmierung (OOP) Vorstellung wie in der realen Welt: Farbe Hubraum Tank... Methoden und Klassen Silke Trißl Wissensmanagement in der Bioinformatik Objektorientierte Programmierung (OOP) Vorstellung wie in der realen Welt: hat Farbe Hubraum Tank kann man Gas geben Bremsen Hoch

Mehr

Statische Methoden, Vererbung, Benutzereingabe

Statische Methoden, Vererbung, Benutzereingabe Statische Methoden, Vererbung, Benutzereingabe Philipp Wendler Zentralübung zur Vorlesung Einführung in die Informatik: Programmierung und Softwareentwicklung https://www.sosy-lab.org/teaching/2017-ws-infoeinf/

Mehr

java.io Ziel Ressourcen Page 1 Verstehen der unterschiedlichen I / O Möglichkeiten Anwenden der Java I/ O Klassen Java Tutorial Java API Dokumentation

java.io Ziel Ressourcen Page 1 Verstehen der unterschiedlichen I / O Möglichkeiten Anwenden der Java I/ O Klassen Java Tutorial Java API Dokumentation java.io Ziel Verstehen der unterschiedlichen I / O Möglichkeiten Anwenden der Java I/ O Klassen Ressourcen Java Tutorial Java API Dokumentation Page 1 Java API Prinzip Java IO-API ist für eine allgemeine

Mehr

2.13 Vererbung. Rainer Feldmann Universität Paderborn Technische Informatik für Ingenieure (TIFI) WS 09/ Article

2.13 Vererbung. Rainer Feldmann Universität Paderborn Technische Informatik für Ingenieure (TIFI) WS 09/ Article 2.13 Vererbung Klassen modellieren Objekte der realen Welt. Diese sind oft hierarchisch gegliedert. Beispiel: Ein Verlag bietet Bücher und CDs an. Beide Medien sind Artikel des Verlages. Book author: String

Mehr

FAKULTÄT FÜR INFORMATIK

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 11 F. Forster,

Mehr