Tag 5. Repetitorium Informatik (Java) Dozent: Marius Kamp Lehrstuhl für Informatik 2 (Programmiersysteme)

Größe: px
Ab Seite anzeigen:

Download "Tag 5. Repetitorium Informatik (Java) Dozent: Marius Kamp Lehrstuhl für Informatik 2 (Programmiersysteme)"

Transkript

1 Tag 5 Repetitorium Informatik (Java) Dozent: Marius Kamp Lehrstuhl für Informatik 2 (Programmiersysteme) Friedrich-Alexander-Universität Erlangen-Nürnberg Wintersemester 2017/2018

2 Übersicht Methoden Deklaration von Methoden Methodenaufruf Parameterübergabe Gültigkeitsbereich von Variablen Wertrückgabe: return Ausblick: Rekursion Informatik-Repetitorium Tag 5 WS 2017/2018 Lehrstuhl für Informatik 2 (Programmiersysteme) 2 / 37

3 Methoden

4 Methoden: Motivation bisher: gesamter Code innerhalb der main-methode in Ordnung für kleine Anwendungen oder um Dinge auszuprobieren aber: undenkbar für größere Programme schwer verständlich und schwer überschaubar schwer wartbar Was tun, wenn man dieselbe Funktionalität an mehreren Stellen braucht? Informatiker sind faul und programmieren ungern mehrmals dasselbe Lösung: Programm modularisieren Programm in kleinere Einheiten aufteilen, die sich gegenseitig verwenden heute: Modularisierung mit Hilfe von Methoden später: Modularisierung mit Hilfe von Klassen Informatik-Repetitorium Tag 5 WS 2017/2018 Lehrstuhl für Informatik 2 (Programmiersysteme) 4 / 37

5 Kleiner Ausflug: Funktionen in der Mathematik Funktionen in der Mathematik: bilden einen oder mehrere Eingabewerte auf einen Ausgabewert ab zur Bestimmung des Ausgabewertes werden Eingabewerte eingesetzt Funktionsnamen können als Platzhalter verwendet werden Funktionen können sich gegenseitig verwenden Beispiele f (x) = 13x 2 + 3x + 21 g(x) = f (x 1) + f (x 2) h(x, y) = (x + y) 2 In vielen Programmiersprachen gibt es ein sehr ähnliches Konzept. Informatik-Repetitorium Tag 5 WS 2017/2018 Lehrstuhl für Informatik 2 (Programmiersysteme) 5 / 37

6 Funktionen in Java eine Funktion heißt in Java Methode kann (muss aber nicht) Eingabewerte annehmen Parameter kann (muss aber nicht) Ausgabewert zurückgeben jede Methode hat einen Namen kann an anderer Stelle als Platzhalter dienen Methodenaufruf Modularisierung des Programms Bereits bekannte Beispiele System. out. println ("Hallo, Welt "); // Ausgabe int a = Integer. parseint ( args [0]); // Konvertierung Informatik-Repetitorium Tag 5 WS 2017/2018 Lehrstuhl für Informatik 2 (Programmiersysteme) 6 / 37

7 Deklaration von Methoden (I) Methodendeklaration: Syntax Modifizierer R ü ckgabetyp Methodenname ( Parameterliste ) { Anweisungen ; // Methodenrumpf Hinweise Modifizierer: legen Eigenschaften der Methode fest für den Anfang immer public static, später mehr dazu... Rückgabetyp: Datentyp des Ausgabewertes void, falls die Methode keinen Ausgabewert zurückgibt Parameterliste: durch Kommata getrennte Liste von Parametern, jeweils mit Typ und Name (Datentyp1 Name1, Datentyp2 Name2,...) Informatik-Repetitorium Tag 5 WS 2017/2018 Lehrstuhl für Informatik 2 (Programmiersysteme) 7 / 37

8 Deklaration von Methoden (II) Methodendeklaration: Syntax Modifizierer R ü ckgabetyp Methodenname ( Parameterliste ) { Anweisungen ; // Methodenrumpf Hinweise Methodenname und Parameterliste bilden zusammen die Methoden-Signatur (anhand ihr wird entschieden, welche Methode bei einem Aufruf aufgerufen wird) Methodenrumpf: Anweisungen, die beim Aufruf der Methode ausgeführt werden sollen Deklaration von (lokalen) Variablen Anweisungen mit lesendem/schreibendem Zugriff auf Variablen oder Parameter Aufrufe weiterer Methoden unter Umständen Anweisungen zur Rückgabe eines Ausgabewertes (s.u.) Informatik-Repetitorium Tag 5 WS 2017/2018 Lehrstuhl für Informatik 2 (Programmiersysteme) 8 / 37

9 Beispiel: main-methode Modifizierer Rückgabetyp Methodenname public static void main(string[] args) { System.out.println("Hallo, Welt"); Parameterliste Informatik-Repetitorium Tag 5 WS 2017/2018 Lehrstuhl für Informatik 2 (Programmiersysteme) 9 / 37

10 Beispiel: Methode zur Ausgabe Aufgabe Methode gebesummeaus, die die Summe zweier übergebener Ganzzahlen ausgibt. Überlegungen Modifizierer: public static weil wir noch nichts anderes kennen... Rückgabetyp: void die Methode gibt zwar etwas aus, aber keinen Wert zurück Parameterliste: zwei Parameter vom Typ int Mögliche Lösung // Deklaration von gebesummeaus : public static void gebesummeaus ( int a, int b) { System. out. println (a + b); // <- Methodenaufruf von println Informatik-Repetitorium Tag 5 WS 2017/2018 Lehrstuhl für Informatik 2 (Programmiersysteme) 10 / 37

11 Deklaration von Methoden (III) Anmerkungen zu Deklarationen eine Methode wird immer innerhalb einer Klasse deklariert Methode kann nicht innerhalb einer anderen Methode deklariert werden es können beliebig viele Methoden in beliebiger Reihenfolge deklariert werden Beispiele public class Beispiel { public static void main ( String [] args ) { //... public static void gebesummeaus ( int a, int b) { //... public static int berechnesumme ( int a, int b, int c) { //... Informatik-Repetitorium Tag 5 WS 2017/2018 Lehrstuhl für Informatik 2 (Programmiersysteme) 11 / 37

12 Methodenaufruf Methodenaufruf: Syntax Methodenname ( Argument1, Argument2,...) Hinweise Aufruf erfolgt durch Angabe des Methodennamens und der Argumentliste Argumente werden in die Parameter der aufgerufenen Methode eingesetzt Zuordnung durch Position: erstes Argument erster Parameter,... Klammern-Paar auch dann, wenn die Methode keine Parameter benötigt! aufrufende Methode wird auch als Aufrufer bezeichnet Merken Nur die main-methode wird beim Programmstart automatisch aufgerufen. Alle anderen Methoden müssen direkt oder indirekt von der main-methode aufgerufen werden, damit sie ausgeführt werden. Informatik-Repetitorium Tag 5 WS 2017/2018 Lehrstuhl für Informatik 2 (Programmiersysteme) 12 / 37

13 Methodenaufruf Beispiele public static void gebesummeaus ( int a, int b) { System.out. println (a + b); public static void main ( String [] args ) { int x = 11; gebesummeaus (47, x); System.out. println (" Ende "); Ausgabe Informatik-Repetitorium Tag 5 WS 2017/2018 Lehrstuhl für Informatik 2 (Programmiersysteme) 13 / 37

14 Methodenaufruf Beispiele public static void gebesummeaus ( int a, int b) { System.out. println (a + b); public static void main ( String [] args ) { int x = 11; gebesummeaus (47, x); System.out. println (" Ende "); Ausgabe Informatik-Repetitorium Tag 5 WS 2017/2018 Lehrstuhl für Informatik 2 (Programmiersysteme) 13 / 37

15 Methodenaufruf Beispiele public static void gebesummeaus ( int a, int b) { System.out. println (a + b); public static void main ( String [] args ) { int x = 11; gebesummeaus (47, x); System.out. println (" Ende "); Ausgabe Informatik-Repetitorium Tag 5 WS 2017/2018 Lehrstuhl für Informatik 2 (Programmiersysteme) 13 / 37

16 Methodenaufruf Beispiele public static void gebesummeaus ( int a, int b) { System.out. println (a + b); public static void main ( String [] args ) { int x = 11; gebesummeaus (47, x); System.out. println (" Ende "); a = 47 b = 11 Ausgabe Informatik-Repetitorium Tag 5 WS 2017/2018 Lehrstuhl für Informatik 2 (Programmiersysteme) 13 / 37

17 Methodenaufruf Beispiele public static void gebesummeaus ( int a, int b) { System.out. println (a + b); public static void main ( String [] args ) { int x = 11; gebesummeaus (47, x); System.out. println (" Ende "); Ausgabe 58 Informatik-Repetitorium Tag 5 WS 2017/2018 Lehrstuhl für Informatik 2 (Programmiersysteme) 13 / 37

18 Methodenaufruf Beispiele public static void gebesummeaus ( int a, int b) { System.out. println (a + b); public static void main ( String [] args ) { int x = 11; gebesummeaus (47, x); System.out. println (" Ende "); Ausgabe 58 Informatik-Repetitorium Tag 5 WS 2017/2018 Lehrstuhl für Informatik 2 (Programmiersysteme) 13 / 37

19 Methodenaufruf Beispiele public static void gebesummeaus ( int a, int b) { System.out. println (a + b); public static void main ( String [] args ) { int x = 11; gebesummeaus (47, x); System.out. println (" Ende "); Ausgabe 58 Ende Informatik-Repetitorium Tag 5 WS 2017/2018 Lehrstuhl für Informatik 2 (Programmiersysteme) 13 / 37

20 Verwendung des Rückgabewerts falls Rückgabetyp = void: Methode gibt Rückgabewert zurück ( Ergebnis ) kann wie jeder andere Wert des entsprechenden Typs verwendet werden Zuweisung zu Variable eines passenden Typs Verwendung in einer Berechnung Argument für weiteren Methodenaufruf... Beachte den Unterschied: Eine Methode gibt etwas aus Ausgabe am Bildschirm (mit println) Eine Methode gibt etwas zurück Berechnung und dann return (später). Beispiele int ergebnis = summe (23, 72); // entspricht : ergebnis = 95; int dreimaleingabe = 3 * Integer. parseint ( args [0]); gebesummeaus ( Integer. parseint ( args [0]), Integer. parseint ( args [1])); Informatik-Repetitorium Tag 5 WS 2017/2018 Lehrstuhl für Informatik 2 (Programmiersysteme) 14 / 37

21 Übergabe von Argumenten Methodenaufruf: Syntax Methodenname ( Argument1, Argument2,...) Hinweise Aufruf muss zur Methoden-Signatur einer deklarierten Methode passen Methode mit demselben Methodennamen muss deklariert worden sein die Anzahl der Parameter und Argumente muss übereinstimmen die Typen der Parameter und Argumente müssen übereinstimmen genauer: die Typen müssen jeweils durch Typumwandlung kompatibel sein So nicht... gebeproduktaus (1, 2); // nicht deklariert gebesummeaus (1); // zu wenige Argumente gebesummeaus (13.03, 0); // falscher Datentyp des ersten Arguments Informatik-Repetitorium Tag 5 WS 2017/2018 Lehrstuhl für Informatik 2 (Programmiersysteme) 15 / 37

22 Wertparameter-Semantik Java: Parameterübergabe stets nach Wertparameter-Semantik (call by value) als Argumente an eine Methode übergebene Werte sind nur Kopien eine Änderung in der Methode hat keine Auswirkungen beim Aufrufer Hinweis Für Arrays (und andere Objekte) ist die Sache etwas komplizierter. Trotzdem gilt, dass diese nach Wertparameter-Semantik übergeben werden (s. u.). Informatik-Repetitorium Tag 5 WS 2017/2018 Lehrstuhl für Informatik 2 (Programmiersysteme) 16 / 37

23 Wertparameter-Semantik: Beispiel Beispiel zur Wertparameter-Semantik public class Programm { public static void main ( String [] args ) { int a = 13; einemethode (a); System. out. println (a); public static void einemethode ( int parameter ) { parameter = 3; Ausgabe benutzer@faui06a: /ordner$ java Programm 13 Informatik-Repetitorium Tag 5 WS 2017/2018 Lehrstuhl für Informatik 2 (Programmiersysteme) 17 / 37

24 Wertparameter-Semantik bei Arrays Falls das Folgende unklar ist: Keine Sorge, Details zu Referenzen gibt es in den kommenden Tagen, inklusive einer genaueren Erklärung auch Arrays werden nach Wertparameter-Semantik übergeben allerdings: Arrays sind Objekte in einer Array-Variable steht lediglich eine Referenz auf das Array es wird die Referenz auf das Array kopiert, nicht das Array selbst wenn innerhalb der Methode der Inhalt des Arrays verändert wird und kein neues Array erzeugt wird, sind die Änderungen beim Aufrufer sichtbar Informatik-Repetitorium Tag 5 WS 2017/2018 Lehrstuhl für Informatik 2 (Programmiersysteme) 18 / 37

25 Wertparameter-Semantik bei Arrays: Beispiel Beispiel zur Wertparameter-Semantik public class Programm { public static void main ( String [] args ) { int [] a = {13, 3, 42; einemethode (a); System. out. println ( java. util. Arrays. tostring (a )); public static void einemethode ( int [] parameter ) { parameter [2] = 19; Ausgabe benutzer@faui06a: /ordner$ java Programm [13, 3, 19] Informatik-Repetitorium Tag 5 WS 2017/2018 Lehrstuhl für Informatik 2 (Programmiersysteme) 19 / 37

26 Gültigkeitsbereich von Variablen (I) Variablen sind nur in dem Block, in dem sie deklariert wurden, gültig dies schließt auch die in diesem Block enthaltenen Blöcke mit ein Gültigkeitsbereich von Variablen definiert, an welchen Stellen welche Variablen verwendet werden können Beispiel zum Gültigkeitsbereich von Variablen public static void main ( String [] args ) { int a = 3; while (a > 0) { int b = 3* a; // in jeder Iteration eine " neue " Variable! a = a -1; // hier sind a und b g ü ltig // hier ist nur a g ü ltig Informatik-Repetitorium Tag 5 WS 2017/2018 Lehrstuhl für Informatik 2 (Programmiersysteme) 20 / 37

27 Gültigkeitsbereich von Variablen (II) in einer Methode deklarierte Variablen sind in anderen Methoden nicht gültig sog. lokale Variablen Beispiel zum Gültigkeitsbereich von lokalen Variablen public static void einemethode () { int a; anderemethode (); public static void anderemethode () { // hier existiert keine Variable a Informatik-Repetitorium Tag 5 WS 2017/2018 Lehrstuhl für Informatik 2 (Programmiersysteme) 21 / 37

28 Gültigkeitsbereich von Variablen (III) Variablen-Bezeichner aus übergeordneten Blöcken dürfen in Java nicht wiederverwendet werden (Ausnahme: bei Instanz-/Klassen-Variablen) So nicht! public static void methode ( int a) { if (a > 0) { int b = a * 3; So schon! public static void methode ( int a) { if (a > 0) { int b = a * 3; while (a > 0) { int b = a * 5; // Redefinition! while (a > 0) { int c = a * 5; // frischer Name Informatik-Repetitorium Tag 5 WS 2017/2018 Lehrstuhl für Informatik 2 (Programmiersysteme) 22 / 37

29 Gültigkeitsbereich von Variablen (IV) Variablen-Bezeichner aus anderen Blöcken können wiederverwendet werden unterschiedliche Variablen mit demselben Namen Beispiel 1 public static void einemethode () { int a; anderemethode (); public static void anderemethode () { int a; // " neue " Variable Beispiel 2 public static void methode ( int a) { if (a > 0) { int b = a * 3; else { int b = a * 5; // " neue " Variable Informatik-Repetitorium Tag 5 WS 2017/2018 Lehrstuhl für Informatik 2 (Programmiersysteme) 23 / 37

30 Wertrückgabe return bisher: Methoden ohne Ergebnis mit Rückgabetyp void jetzt: Methoden mit Wertrückgabe, die Ergebnis an den Aufrufer zurückgeben return-anweisung, um zurückzugebenden Wert zu setzen return-anweisung: Syntax return R ü ckgabewert ; Hinweise der Typ des Rückgabewerts muss zum Rückgabetyp der Methode passen genauer: durch (implizite) Typumwandlung kompatibel sein die aktuelle Methode wird nach einem return sofort beendet Informatik-Repetitorium Tag 5 WS 2017/2018 Lehrstuhl für Informatik 2 (Programmiersysteme) 24 / 37

31 Beispiel: Berechnung der n-ten Potenz Aufgabe Methode, die die Potenz x n für beliebige (ganzzahlige) x und n berechnet. Mögliche Lösung public static int potenz ( int x, int n) { int potenz = 1; for ( int i = 0; i < n; ++i) { potenz = potenz * x; return potenz ; Aufruf int potenz = potenz (13, 3); Informatik-Repetitorium Tag 5 WS 2017/2018 Lehrstuhl für Informatik 2 (Programmiersysteme) 25 / 37

32 Notwendigkeit von return-anweisungen falls Rückgabetyp = void: Methode muss in jedem Fall Wert zurückgeben return-anweisung auf allen möglichen Pfaden (Verzweigungen,...)! andernfalls meldet der Compiler: missing return statement auch im Fehlerfall muss die Methode einen Rückgabewert bereitstellen Sonderfall: Eine sogenannte Exception (Ausnahme) kann eine return-anweisung im Fehlerfall ersetzen ( AuD-Vorlesung). So nicht... public static int foo ( int a) { if (a == 13) { return 3; // fehlende return - Anweisung! Informatik-Repetitorium Tag 5 WS 2017/2018 Lehrstuhl für Informatik 2 (Programmiersysteme) 26 / 37

33 Beispiel: zifferalsstring() Beispiel: zifferalsstring() public static String zifferalsstring ( int ziffer ) { if ( ziffer == 0) return " null "; else if ( ziffer == 1) return " eins "; else if ( ziffer == 2) return " zwei "; else if ( ziffer == 3) return " drei "; else if ( ziffer == 4) return " vier "; else if ( ziffer == 5) return "fünf"; else if ( ziffer == 6) return " sechs "; else if ( ziffer == 7) return " sieben "; else if ( ziffer == 8) return " acht "; else if ( ziffer == 9) return " neun "; else { return ""; // Fehlerfall Informatik-Repetitorium Tag 5 WS 2017/2018 Lehrstuhl für Informatik 2 (Programmiersysteme) 27 / 37

34 Beispiel: zifferalsstring(), Alternative mit Array Beispiel: zifferalsstring() public static String zifferalsstring ( int ziffer ) { String [] ziffern = {" null ", " eins ", " zwei ", " drei ", " vier ", "fünf", " sechs ", " sieben ", " acht ", " neun "; if (( ziffer < 0) ( ziffer >= ziffern. length )) { return ""; // Fehlerfall return ziffern [ ziffer ]; Informatik-Repetitorium Tag 5 WS 2017/2018 Lehrstuhl für Informatik 2 (Programmiersysteme) 28 / 37

35 Beispiel: Verzweigung (I) public static boolean einemethode ( int a) { if (a < 5) { return false ; else if (a >= 5) { return true ; benutzer@faui06a: /ordner$ javac Programm.java Programm.java:8: missing return statement ˆ 1 error Was ist passiert? Für uns ist klar, dass immer ein return erreicht wird, für den Compiler jedoch nicht! Informatik-Repetitorium Tag 5 WS 2017/2018 Lehrstuhl für Informatik 2 (Programmiersysteme) 29 / 37

36 Beispiel: Verzweigung (II) So geht s! public static boolean einemethode ( int a) { if (a < 5) { return false ; else { // hier wird kein if mehr ben ö tigt return true ; Geht sogar noch besser! public static boolean einemethode ( int a) { return (a >= 5); Informatik-Repetitorium Tag 5 WS 2017/2018 Lehrstuhl für Informatik 2 (Programmiersysteme) 30 / 37

37 Rekursion (I) Vorneweg: Nicht entmutigen lassen! Hier sollen nur die absoluten Grundlagen der Rekursion vermittelt werden. Viel mehr Details und Erklärungen dazu gibt es in der AuD-Vorlesung und -Übung. Rekursive Funktionen in der Mathematik Eine rekursive Funktion ist eine durch sich selbst definierte Funktion. Beispiel: Fakultät Fakultät n! einer Zahl n N: n! := 1 2 n { 1 falls n = 0 rekursive Definition: n! := n (n 1)! sonst Rekursion in der Programmierung Eine rekursive Methode ruft sich (unter gewissen Bedingungen) selbst auf. Informatik-Repetitorium Tag 5 WS 2017/2018 Lehrstuhl für Informatik 2 (Programmiersysteme) 31 / 37

38 Rekursion (II) Von der rekursiven Definition... n! := { 1 falls n = 0 n (n 1)! sonst...zur (möglichen) Umsetzung in Java public static int fak( int n) { if (n == 0) { return 1; else { return n * fak (n -1); // rekursiver Aufruf Informatik-Repetitorium Tag 5 WS 2017/2018 Lehrstuhl für Informatik 2 (Programmiersysteme) 32 / 37

39 Rekursion (III) rekursiver Aufruf: Aufruf einer Methode von sich selbst dabei werden (fast) immer von Aufruf zu Aufruf die Argumente verändert rekursiver Aufruf bearbeitet anderes (meist: kleineres ) Problem Intention: komplexes Problem in kleinere Probleme aufteilen Ziel: kleinere Probleme einfacher zu lösen als ursprüngliches Problem Beispiel: Fakultät n! := { 1 falls n = 0 n (n 1)! sonst Die Berechnung von n! wird auf das kleinere, einfachere Problem der Berechnung von (n 1)! zurückgeführt. Für n = 0 ist das Problem trivial lösbar. Informatik-Repetitorium Tag 5 WS 2017/2018 Lehrstuhl für Informatik 2 (Programmiersysteme) 33 / 37

40 Basisfall Rekursionsfall (I) bei der Ausführung einer rekursiven Methode unterscheidet man zwei Fälle: Rekursionsfall: Funktion ruft sich tatsächlich selbst auf Basisfall: Funktion ruft sich nicht (mehr) selbst auf Basisfall und Rekursionsfall im Beispiel public static int fak( int n) { if (n == 0) { return 1; // Basisfall else { return n * fak (n -1); // Rekursionsfall Informatik-Repetitorium Tag 5 WS 2017/2018 Lehrstuhl für Informatik 2 (Programmiersysteme) 34 / 37

41 Basisfall Rekursionsfall (II) Basisfall Der Basisfall stellt die Abbruchbedingung dar und sorgt dafür, dass die Rekursion irgendwann abbricht. Es muss sichergestellt werden, dass der Basisfall immer nach endlich vielen Schritten erreicht wird, andernfalls entsteht eine Endlos-Rekursion. Unsere Implementierung public static int fak ( int n) { if (n == 0) { return 1; else { return n * fak (n -1); Geht kaputt... Wird die Methode initial mit einem negativen Wert für n aufgerufen, wird der Basisfall nie erreicht. Informatik-Repetitorium Tag 5 WS 2017/2018 Lehrstuhl für Informatik 2 (Programmiersysteme) 35 / 37

42 Beispiel: Summe von 0 bis n Ziel Rekursive Methode, die die Summe von 0 bis n berechnet. Idee Problem auf einfacheres Problem reduzieren: Um die Summe von 0 bis n zu berechnen, berechnet man zunächst die Summe von 0 bis (n 1) und addiert anschließend n. Mögliche Lösung public static int summe ( int n) { if ( n == 0) { // Basisfall : Die Summe 0 bis 0 ist trivial.. return 0; //... und wir wissen, dass es 0 ist return n + summe (n -1); Informatik-Repetitorium Tag 5 WS 2017/2018 Lehrstuhl für Informatik 2 (Programmiersysteme) 36 / 37

43 Fragen? Fragen! (hilft auch den anderen)

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

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

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

JAVA - Methoden - Rekursion

JAVA - Methoden - Rekursion Übungen Informatik I JAVA - Methoden - Rekursion http://www.fbi-lkt.fh-karlsruhe.de/lab/info01/tutorial Übungen Informatik 1 1 Methoden Methoden sind eine Zusammenfassung von Deklarationen und Anweisungen

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

Grundlagen der Programmierung Prof. H. Mössenböck. 6. Methoden

Grundlagen der Programmierung Prof. H. Mössenböck. 6. Methoden Grundlagen der Programmierung Prof. H. Mössenböck 6. Methoden Parameterlose Methoden Beispiel: Ausgabe einer Überschrift class Sample { static void printheader() { // Methodenkopf Out.println("Artikelliste");

Mehr

Einführung in den Einsatz von Objekt-Orientierung mit C++ I

Einführung in den Einsatz von Objekt-Orientierung mit C++ I Einführung in den Einsatz von Objekt-Orientierung mit C++ I ADV-Seminar Leiter: Mag. Michael Hahsler Syntax von C++ Grundlagen Übersetzung Formale Syntaxüberprüfung Ausgabe/Eingabe Funktion main() Variablen

Mehr

Java Einführung Methoden. Kapitel 6

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

Mehr

JAVA - Methoden

JAVA - Methoden Übungen Informatik I JAVA - http://www.fbi-lkt.fh-karlsruhe.de/lab/info01/tutorial Übungen Informatik 1 Folie 1 sind eine Zusammenfassung von Deklarationen und Anweisungen haben einen Namen und können

Mehr

Einführung in Java. Arne Hüffmeier. Angelehnt an Java-Vorkurs der Freitagsrunde. Methoden implementieren. Michelle Liebers, Dennis Hoffmann

Einführung in Java. Arne Hüffmeier. Angelehnt an Java-Vorkurs der Freitagsrunde. Methoden implementieren. Michelle Liebers, Dennis Hoffmann Einführung in Java Arne Hüffmeier Michelle Liebers, Dennis Hoffmann Tilman Lüttje, Jean Wiele Angelehnt an Java-Vorkurs der Freitagsrunde 1 / 44 1 Methoden implementieren Motivation Aufbau einer Methode

Mehr

Klassen mit Instanzmethoden

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

Mehr

Programmiertechnik Klassenmethoden

Programmiertechnik Klassenmethoden Programmiertechnik Klassenmethoden Prof. Dr. Oliver Haase Oliver Haase Hochschule Konstanz 1 Motivation Programm zur Berechung von public class Eval1 { public static void main(string[] args) { java.util.scanner

Mehr

Prof. Dr. Oliver Haase Karl Martin Kern Achim Bitzer. Programmiertechnik Klassenmethoden

Prof. Dr. Oliver Haase Karl Martin Kern Achim Bitzer. Programmiertechnik Klassenmethoden Prof. Dr. Oliver Haase Karl Martin Kern Achim Bitzer Programmiertechnik Klassenmethoden Motivation Programm zur Berechnung von public class Eval1 { public static void main(string[] args) { java.util.scanner

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

Speicher und Adressraum

Speicher und Adressraum Linearer Speicher (Adressraum) Technische Universität München Speicher und Adressraum Freie Speicherhalde (Heap) Freier Speicherstapel (Stack) Globale Variablen Bibliotheksfunktionen Laufzeitsystem Programmcode

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

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

Programmierkurs. Manfred Jackel

Programmierkurs. Manfred Jackel Java für Anfänger Teil 7: Methoden Programmierkurs 06.-10.10.2008 Manfred Jackel 1 Methoden In der imperativen Programmierung sind Funktionen ein wichtiges Mittel zur Modularisierung. [Oft benötigter]

Mehr

Vorkurs Informatik WiSe 16/17

Vorkurs Informatik WiSe 16/17 Java Rekursion Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe, 11.10.2016 Technische Universität Braunschweig, IPS Überblick Einleitung Beispiele 11.10.2016 Dr. Werner Struckmann / Stephan Mielke,

Mehr

Programmiersprache 1 (C++) Prof. Dr. Stefan Enderle NTA Isny

Programmiersprache 1 (C++) Prof. Dr. Stefan Enderle NTA Isny Programmiersprache 1 (C++) Prof. Dr. Stefan Enderle NTA Isny 7. Funktionen Einleitung Nach dem Prinzip Divide and Conquer bietet es sich an, größere Aufgaben in kleinere Teile zu unterteilen. Anweisungsblöcke,

Mehr

Java Vererbung. Inhalt

Java Vererbung. Inhalt Java Vererbung Inhalt 1 Zielsetzung... 2 1.1 Bewertung... 2 2 Grundlagen der Vererbung... 2 2.1 Super und Subklassen... 2 3 Überladen von Methoden... 4 3.1 Unterschiedliche Parameter... 4 3.2 Gleiche Parameter

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

Kapitel 8. Programmierkurs. Methoden. 8.1 Methoden

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

Mehr

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

Javaprogrammierung mit NetBeans. Variablen, Datentypen, Methoden

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

Mehr

Java I Vorlesung Objektorientiertes Programmieren

Java I Vorlesung Objektorientiertes Programmieren Java I Vorlesung 3 Objektorientiertes Programmieren 10.5.2004 Die restlichen Kontrollstrukturen Grundlagen des OOP Klassen und Objekte switch Syntax: switch ( expr ) { case const 1 : case const 2 :...

Mehr

Arrays und Methoden. Programmiervorkurs WS 2010 / 11

Arrays und Methoden. Programmiervorkurs WS 2010 / 11 Arrays und Methoden Programmiervorkurs WS 2010 / 11 Einleitung Bisher sind einfach Programme möglich Nun wollen wir Organisation und Stil verbessern Gesamter Code sollte nicht an einer Stelle stehen Nicht

Mehr

Javakurs für Anfänger

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

Mehr

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

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

Welche Informatik-Kenntnisse bringen Sie mit?

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

Mehr

Algorithmen und Programmierung II

Algorithmen und Programmierung II Algorithmen und Programmierung II Vererbung Prof. Dr. Margarita Esponda SS 2012 1 Imperative Grundbestandteile Parameterübergabe String-Klasse Array-Klasse Konzepte objektorientierter Programmierung Vererbung

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

Rekursive Funktionen

Rekursive Funktionen Um Rekursion zu verstehen, muss man vor allem Rekursion verstehen. http://www2.norwalk-city.k12.oh.us/wordpress/precalc/files/2009/05/mona-lisa-jmc.jpg Rekursive Funktionen OOPM, Ralf Lämmel Was ist Rekursion?

Mehr

Vorlesung Programmieren

Vorlesung Programmieren Vorlesung Programmieren Programmierparadigmen Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer Programmiersprachen-Paradigmen Eine Programmiersprache

Mehr

Grundlagen der Programmierung in C Funktionen

Grundlagen der Programmierung in C Funktionen Der erste Mechanismus für Code-Reuse! Grundlagen der Programmierung in C Funktionen Wintersemester 2005/2006 G. Zachmann Clausthal University, Germany zach@in.tu-clausthal.de Ältester Mechanismus für Code-Reuse:

Mehr

Vorlesung Programmieren

Vorlesung Programmieren Vorlesung Programmieren 3. Kontrollstrukturen 04.11.2015 Prof. Dr. Ralf H. Reussner Version 1.1 LEHRSTUHL FÜR SOFTWARE-DESIGN UND QUALITÄT (SDQ) INSTITUT FÜR PROGRAMMSTRUKTUREN UND DATENORGANISATION (IPD),

Mehr

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

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

Mehr

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

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

Mehr

Prozeduren und Funktionen

Prozeduren und Funktionen OSZ Handel I - Gymnasiale Oberstufe (Abt. V) In Anlehnung an: Duden Informatik (3.Auflage, Dudenverlag, 2001, S. 477). Prozeduren und Funktionen Fach: Informatik Parameter sind Platzhalter in einer Prozedur

Mehr

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

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

Mehr

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

Programmieren I. Kapitel 5. Kontrollfluss

Programmieren I. Kapitel 5. Kontrollfluss Programmieren I Kapitel 5. Kontrollfluss Kapitel 5: Kontrollfluss Ziel: Komplexere Berechnungen im Methodenrumpf Ausdrücke und Anweisungen Fallunterscheidungen (if, switch) Wiederholte Ausführung (for,

Mehr

Silke Trißl, Prof. Ulf Leser Wissensmanagement in der Bioinformatik. Jede Applikation braucht eine Klasse mit einer main-methode

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

Mehr

JavaScript. Dies ist normales HTML. Hallo Welt! Dies ist JavaScript. Wieder normales HTML.

JavaScript. Dies ist normales HTML. Hallo Welt! Dies ist JavaScript. Wieder normales HTML. JavaScript JavaScript wird direkt in HTML-Dokumente eingebunden. Gib folgende Zeilen mit einem Texteditor (Notepad) ein: (Falls der Editor nicht gefunden wird, öffne im Browser eine Datei mit der Endung

Mehr

Java Einführung Methoden in Klassen

Java Einführung Methoden in Klassen Java Einführung Methoden in Klassen Lehrziel der Einheit Methoden Signatur (=Deklaration) einer Methode Zugriff/Sichtbarkeit Rückgabewerte Parameter Aufruf von Methoden (Nachrichten) Information Hiding

Mehr

Prof. W. Henrich Seite 1

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

Mehr

Methoden und Funktionen in Scala

Methoden und Funktionen in Scala Methoden und Funktionen in Scala Kapitel 11 und 12 des Buches 1 Jede Methode hat einen Typ Für die folgende Methode def square(v: Int) = v*v erhalten wir von der Scala-Shell die Rückmeldung square: (Int)Int

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

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

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

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

Software Engineering Klassendiagramme Einführung

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

Mehr

Methoden (fortgeschritten) in C# - 1

Methoden (fortgeschritten) in C# - 1 Methoden (fortgeschritten) in C# - 1 Marc Satkowski 20. November 2016 C# Kurs Gliederung 1. Opertatoren Überladung 2. delegate 3. Anonyme Methoden delegate Lamda Ausdruck-Lamdas Anweisung-Lamdas Variablenbereich

Mehr

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

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

Mehr

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

Präzedenz von Operatoren

Präzedenz von Operatoren Präzedenz von Operatoren SWE-30 Die Präzedenz von Operatoren bestimmt die Struktur von Ausdrücken. Ein Operator höherer Präzedenz bindet die Operanden stärker als ein Operator geringerer Präzedenz. Mit

Mehr

Eine Einführung in C-Funktionen

Eine Einführung in C-Funktionen Eine Einführung in C-Funktionen CGK-Proseminar 2014 Philip Gawehn 04.07.2014, Hamburg Inhaltsverzeichnis 1 Einleitung 2 2 Grundlagen 2 2.1 Der Aufbau einer Funktion....................... 2 2.2 Schlüsselwörter.............................

Mehr

C.3 Funktionen und Prozeduren

C.3 Funktionen und Prozeduren C3 - Funktionen und Prozeduren Funktionsdeklarationen in Pascal auch in Pascal kann man selbstdefinierte Funktionen einführen: Funktionen und Prozeduren THEN sign:= 0 Funktion zur Bestimmung des Vorzeichens

Mehr

Programmierung mit C Zeiger

Programmierung mit C Zeiger Programmierung mit C Zeiger Zeiger (Pointer)... ist eine Variable, die die Adresse eines Speicherbereichs enthält. Der Speicherbereich kann... kann den Wert einer Variablen enthalten oder... dynamisch

Mehr

Repetitorium Informatik (Java)

Repetitorium Informatik (Java) Repetitorium Informatik (Java) Tag 8 Lehrstuhl für Informatik 2 (Programmiersysteme) Übersicht 1 Vererbung Vererbung Statischer Typ Dynamischer Typ 2 Polymorphie Overloading: Methoden überladen Overriding:

Mehr

Objektorientierte Programmierung

Objektorientierte Programmierung Objektorientierte Programmierung Eine Einführung mit anschaulichen Beispielen aus der Java-Welt apl. Prof. Dr. Achim Ebert Inhalt Kapitel 3: Kontrollstrukturen Einfache Anweisungen Anweisungsblöcke Steuerung

Mehr

Grundlagen der Programmierung WS 15/16 (Vorlesung von Prof. Bothe)

Grundlagen der Programmierung WS 15/16 (Vorlesung von Prof. Bothe) Humboldt-Universität zu Berlin Institut für Informatik Grundlagen der Programmierung WS 15/16 (Vorlesung von Prof. Bothe) Übungsblatt 4: Felder und Rekursion Abgabe: bis 9:00 Uhr am 14.12.2015 über Goya

Mehr

AuD-Tafelübung T-B5b

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

Mehr

Einführung in die Programmierung 1

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

Mehr

Java Einführung ABLAUFSTEUERUNG Kapitel 3 und 4

Java Einführung ABLAUFSTEUERUNG Kapitel 3 und 4 Java Einführung ABLAUFSTEUERUNG Kapitel 3 und 4 Inhalt dieser Einheit Merkmale und Syntax der verschiedenen Kontrollstrukturen: if else switch while do while for break, continue EXKURS: Rekursion 2 Kontrollstrukturen

Mehr

Einstieg in die Informatik mit Java

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

Mehr

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

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

Objektorientierte Programmierung

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

Mehr

Programmierkonventionen - 1 -

Programmierkonventionen - 1 - Die wichtigsten Bestandteile der Programmierkonventionen für Java werden hier erläutert. Dies sind: Schreibweise von Bezeichnern Einrückkonventionen Kommentare Programmierkonventionen - 1 - Einleitung

Mehr

Modul Entscheidungsunterstützung in der Logistik. Einführung in die Programmierung mit C++ Übung 4

Modul Entscheidungsunterstützung in der Logistik. Einführung in die Programmierung mit C++ Übung 4 Fakultät Verkehrswissenschaften Friedrich List, Professur für Verkehrsbetriebslehre und Logistik Modul Entscheidungsunterstützung in der Logistik Einführung in die Programmierung mit C++ Übung 4 SS 2016

Mehr

Programmieren I + II Regeln der Code-Formatierung

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

Mehr

Modul Entscheidungsunterstützung in der Logistik. Einführung in die Programmierung mit C++ Übung 2

Modul Entscheidungsunterstützung in der Logistik. Einführung in die Programmierung mit C++ Übung 2 Fakultät Verkehrswissenschaften Friedrich List, Professur für Verkehrsbetriebslehre und Logistik Modul Entscheidungsunterstützung in der Logistik Einführung in die Programmierung mit C++ Übung 2 SS 2016

Mehr

6. Iteration (Schleifenanweisungen)

6. Iteration (Schleifenanweisungen) 6. Iteration (Schleifenanweisungen) Java-Beispiel: TemperatureTable.java K. Bothe, Institut für Informatik, HU Berlin, GdP, WS 2015/16 Version: 9. Nov. 2015 2 Schwerpunkte While-Anweisung: "abweisende"

Mehr

Programmiertechnik Methoden, Teil 2

Programmiertechnik Methoden, Teil 2 Programmiertechnik Methoden, Teil 2 Prof. Dr. Oliver Haase Oliver Haase Hochschule Konstanz 1 Rekursion Oliver Haase Hochschule Konstanz 2 Definition Was ist Rekursion? Allgemein: Rekursion ist die Definition

Mehr

C++ - Einführung in die Programmiersprache Funktionen. Leibniz Universität IT Services Anja Aue

C++ - Einführung in die Programmiersprache Funktionen. Leibniz Universität IT Services Anja Aue C++ - Einführung in die Programmiersprache Funktionen Leibniz Universität IT Services Anja Aue Subroutine (Unterprogramm) Lösung von Teilen einer Gesamtaufgabe. Kapselung von Anweisungen, die zu einer

Mehr

3 Objektorientierte Konzepte in Java

3 Objektorientierte Konzepte in Java 3 Objektorientierte Konzepte in Java 3.1 Klassendeklarationen Fragen an die Klassendeklaration: Wie heißt die Klasse? Wer darf auf die Klasse und ihre Attribute/Methoden zugreifen? Ist die Klasse eine

Mehr

3. Anweisungen und Kontrollstrukturen

3. Anweisungen und Kontrollstrukturen 3. Kontrollstrukturen Anweisungen und Blöcke 3. Anweisungen und Kontrollstrukturen Mit Kontrollstrukturen können wir den Ablauf eines Programmes beeinflussen, z.b. ob oder in welcher Reihenfolge Anweisungen

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

Vorkurs C++ Programmierung

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

Mehr

Vererbung. Martin Wirsing. Ziele. Vererbung

Vererbung. Martin Wirsing. Ziele. Vererbung 2 Ziele Martin Wirsing en Begriff der einfachen verstehen und Redefinition von Oberklassenmethoden verstehen spolymorphie verstehen ie Klasse Object kennenlernen in Zusammenarbeit mit Michael Barth, Philipp

Mehr

Android will doch nur spielen. Java Übung

Android will doch nur spielen. Java Übung Android will doch nur spielen Java Übung Vorbereitung: Erstellen Sie mit Eclipse zunächst ein neues Java Projekt JavaUebungen. Lassen Sie die restlichen Einstellungen unverändert. Erzeugen Sie das Projekt

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

Selbsteinstufungstest Vorkurs Programmieren

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

Mehr

Java I Vorlesung 6 Referenz-Datentypen

Java I Vorlesung 6 Referenz-Datentypen Java I Vorlesung 6 Referenz-Datentypen 7.6.2004 Referenzen this, super und null Typkonvertierung von Referenztypen Finale Methoden und Klassen Datentypen in Java In Java gibt es zwei Arten von Datentypen:

Mehr

Programmieren in C / C++ Grundlagen C 4

Programmieren in C / C++ Grundlagen C 4 Programmieren in C / C++ Grundlagen C 4 Hochschule Fulda FB AI Wintersemester 2016/17 http://c.rz.hs-fulda.de Peter Klingebiel, HS Fulda, FB AI Anweisungen Anweisung im allgemeinsten Sinn: Programmieren

Mehr

2. Programmierung in C

2. Programmierung in C 2. Programmierung in C Inhalt: Überblick über Programmiersprachen, Allgemeines zur Sprache C C: Basisdatentypen, Variablen, Konstanten, Operatoren und Ausdrücke Anweisungen und Kontrollstrukturen (Steuerfluss)

Mehr

Überschreiben von Methoden

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

Mehr

To know recursion, you must first know recursion. Borchers: Programmierung für Alle (Java), WS 06/07 Kapitel 17 1

To know recursion, you must first know recursion. Borchers: Programmierung für Alle (Java), WS 06/07 Kapitel 17 1 To know recursion, you must first know recursion. Borchers: Programmierung für Alle (Java), WS 06/07 Kapitel 17 1 Rekursion: Beispiele Bier trinken 8-Damen-Problem ipod Shuffle für alle Mitarbeiter Karten

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

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

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

Vorlesung Informatik II

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

Mehr

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

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

Mehr

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

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

Algorithmen & Programmierung. Rekursive Funktionen (1)

Algorithmen & Programmierung. Rekursive Funktionen (1) Algorithmen & Programmierung Rekursive Funktionen (1) Berechnung der Fakultät Fakultät Die Fakultät N! einer nichtnegativen ganzen Zahl N kann folgendermaßen definiert werden: d.h. zur Berechnung werden

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

Übungen zur Vorlesung Einführung in die Informatik Wintersemester 2010/11

Übungen zur Vorlesung Einführung in die Informatik Wintersemester 2010/11 Übungen zur Vorlesung Einführung in die Informatik Wintersemester 2010/11 Fakultät für Informatik Lehrstuhl 1 Dr. Lars Hildebrand Carla Delgado-Battenfeld Fatih Gedikli Tobias Marschall Benjamin Schowe

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