Institut für Kartographie und Geoinformation Dr. Gerhard Gröger, Dipl.-Ing. Dirk Dörschlag Einführung in die Programmierung mit Java 4. Vorlesung WS 2004/2005.

Slides:



Advertisements
Ähnliche Präsentationen
ALP II: Objektorientierte Programmierung Sommersemester 2006
Advertisements

der Universität Oldenburg
Imperative Programmierung
Forschungszentrum caesar
Variablen und Datentypen
Zusammenfassung der Vorwoche
der Universität Oldenburg
Java: Grundlagen der Sprache
SWITCH - Anweisung.
Robotik mit LEGO Mindstorms
Imperative Programmierung
Einführung in die Programmierung mit Java
Boolesche Ausdrücke Ist der Rückgabewert eines Ausdrucks vom Typ boolean, so wird dieser als Boolescher Ausdruck bezeichnet (nach dem Mathematiker George.
Diskrete Mathematik I Vorlesung Arrays-
Java-Kurs - 2. Übung Entwicklungsumgebung Struktur von Programmen
PKJ 2005/1 Stefan Dissmann Zusammenfassung der Vorwoche Variable stehen für (einen) Wert, der sich im Programmablauf ändern kann. Variablen besitzen einen.
Zusammenfassung Vorwoche
Grundkonzepte Java - Klassendefinition
Java programmieren mit JavaKara
Informatik 1 Übung 2.
Kontrollstrukturen Verwendung: Steuerung des Ablaufs.
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich.
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich.
Einführung in die Programmierung
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt
Abteilung für Telekooperation Übung Softwareentwicklung 1 für Wirtschaftsinformatik Dr. Wieland Schwinger
Variablenkonzept Klassisch, in Java Basistyp
CuP - Java Vierte Vorlesung Entspricht ungefähr Kapitel 2.1 des Skriptums Montag, 14. Oktober 2002.
CuP - Java Sechste Vorlesung Entspricht ungefähr Kapitel 3. 1 – 3
PHP: Operatoren und Kontrollstrukturen
Programmiervorkurs WS 2014/15 Schleifen
Programmiervorkurs WS 2014 Referenzdatentypen
Java Syntaxdiagramme Buchstabe A B Z a z ... Ziffer
Übersicht Nachtrag zu Ausdrücken
Java-Kurs - 3. Übung Hausaufgabe Arrays For-Schleifen.
Java-Kurs - 4. Übung Hausaufgabe Weitere Kontrollstrukturen
Diskrete Mathematik I Vorlesung 2 Arrays.
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Thomas H. Kolbe Einführung in die Programmierung mit Java 4. Vorlesung WS 2001/2002.
Java-Kurs - 4. Übung Hausaufgabe Weitere Kontrollstrukturen
Einführung in die Programmierung mit Java
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Gerhard Gröger Einführung in die Programmierung mit Java 8. Vorlesung WS 2002/2003.
Einführung in die Programmierung mit Java
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Gerhard Gröger Einführung in die Programmierung mit Java 3. Vorlesung WS 2002/2003.
Einführung in die Programmierung mit Java
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Gerhard Gröger Einführung in die Programmierung mit Java 5. Vorlesung WS 2002/2003.
G. Gröger - Einführung in die Programmierung mit Java - 1. Semester - WS 02/ Übungsaufgabe vom Logische Ausdrücke 1.true & false | true 2.(10>2)
Institut für Kartographie und Geoinformation Prof. Dr. L. Plümer, Dipl.-Ing. D. Dörschlag, Dr. G. Gröger Einführung in die Programmierung mit Java 13.
Einführung in die Programmierung mit Java
Einführung in die Programmierung mit Java 5. Vorlesung WS 2002/2003 Institut für Kartographie und Geoinformation Prof.-Dr. Lutz Plümer, Dr. Gerhard Gröger,
Java-Kurs - 3. Übung Boolesche Operatoren vom Problem zum Programm
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Thomas H. Kolbe Einführung in die Programmierung mit Java 7. Vorlesung WS 2002/2003.
Institut für Kartographie und Geoinformation Dr. Gerhard Gröger, Dipl.-Ing. Dirk Dörschlag Einführung in die Programmierung mit Java 3. Vorlesung WS 2004/2005.
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Gerhard Gröger, Dipl.-Ing. Dirk Dörschlag Einführung in die Programmierung mit.
Institut für Kartographie und Geoinformation Dr. Gerhard Gröger, Dipl.-Ing. Dirk Dörschlag Einführung in die Programmierung mit Java 3. Vorlesung WS 2003/2004.
Einführung in die Programmierung mit Java
Einführung in die Programmiersprache C 2
Java-Kurs - 4. Übung Hausaufgabe Weitere Kontrollstrukturen
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Gerhard Gröger Einführung in die Programmierung mit Java 3. Vorlesung WS 2002/2003.
Struktur-Funktions-Modelle von Pflanzen - Sommersemester Winfried Kurth Universität Göttingen, Lehrstuhl Computergrafik und Ökologische Informatik.
Variablen und Datentypen
TRUE und FALSE in C Der Wert 0 steht für FALSE Jeder von 0 verschiedene Wert steht für TRUE FALSE wird als 0 dargestellt TRUE wird als 1 dargestellt.
Variablen und Operatoren. C++ Teil 2: Grundstrukturen Variablen Operatoren Kontrollstrukturen Funktionen Header-Dateien Pointer und Referenzen.
Java Programme nur ein bisschen objektorientiert.
Pointer. * und &  Bei der Definition int var1; ○ // „normale“ Variable int *var2; ○ // Zeiger auf einen Integer int *var2 = NULL; ○ // … incl. Initialisierung.
Einführung in die Programmierung mit Java
Java-Kurs - 4. Übung weitere Kontrollstrukturen
Java-Kurs - 2. Übung primitive Datentypen, Konstanten
Einführung in die Programmierung mit Java
Schleifen Datenfelder (Arrays) Verzweigungen
 Präsentation transkript:

Institut für Kartographie und Geoinformation Dr. Gerhard Gröger, Dipl.-Ing. Dirk Dörschlag Einführung in die Programmierung mit Java 4. Vorlesung WS 2004/2005

G. Gröger - Einführung in die Programmierung mit Java - 1. Semester - WS 04/052 Hausaufgabe: Erzeugt 4 zufällige double-Werte und gebt das Minimum, das Maximum sowie den Durchschnitt aller Werte aus. Hinweis: Das Minimum (Maximum) der Werte ist der kleinste (größte) aller Werte.

G. Gröger - Einführung in die Programmierung mit Java - 1. Semester - WS 04/053 Hausaufgabe: Lösung public class MinMaxDurchschnitt{ public static void main(String[] args) { double min, max; double a1 = Math.random(); double a2 = Math.random(); double a3 = Math.random(); double a4 = Math.random(); max = Math.max(a1,a2); max = Math.max(max,a3); max = Math.max(max,a4); min = Math.min(a1,a2); min = Math.min(min,a3); min = Math.min(min,a4); double durchschnitt = (a1 + a2 + a3 + a4)/4; System.out.println(...); }

G. Gröger - Einführung in die Programmierung mit Java - 1. Semester - WS 04/054 Übersicht Boolesche Ausdrücke (Werte wahr/falsch) –Relationale Operatoren (==, >,<,..) –boolesche Operatoren (und, oder, nicht) Kontrollstrukturen –while –do - while –switch –break Arrays

G. Gröger - Einführung in die Programmierung mit Java - 1. Semester - WS 04/055 Boolesche Ausdrücke Bedingungen in if oder for: Boolesche Ausdrücke Boolesche Ausdrücke liefern als Rückgabewert nur einen der zwei (Wahrheits-)Werte true oder false Beispiele: –if(i == 0)... –for(int i = 0 ; i < 1000 ; i = i + 1)...

G. Gröger - Einführung in die Programmierung mit Java - 1. Semester - WS 04/056 Relationale Operatoren Relationale Operatoren bilden spezielle Boolesche Ausdrücke Relationale Operatoren setzen ihre Operanden zueinander in Beziehung und liefern den Wahrheitswert der Beziehung zurück. –Beispiele: 5 < 3 ergibt false (4-2)=2ergibt true Mathem. NotationJavaErläuterung ===Identität (Gleichheit)  !=Ungleichheit <<kleiner als  <=kleiner oder gleich als >>größer als  >=größer oder gleich als

G. Gröger - Einführung in die Programmierung mit Java - 1. Semester - WS 04/057 Arithmetische und Boolesche Ausdrücke Die Operanden von Relationalen Operatoren können arithmetische Ausdrücke sein Beispiel: Math.min(5,9) == 5 * * Math.sin(Math.Pi/2) Arithmetischer Ausdruck 5 Arithmetischer Ausdruck 5 Boolescher Ausdruck wahr

G. Gröger - Einführung in die Programmierung mit Java - 1. Semester - WS 04/058 Komplexe Boolesche Ausdrücke Bildung komplexer Boolescher Ausdrücke mit aussagenlogischen Operatoren (nicht, und, oder): Nicht / Negation: ¬ true = false in Java: ! Wert ¬ false = true Und-Verknüpfung:false  false = false in Java: Wert 1 & Wert 2 false  true = false true  false = false true  true = true Oder-Verknüpfung:false  false = false in Java: Wert 1 | Wert 2 false  true = true true  false = true true  true = true Beispiel: ((x < 7) | (y == 6)) & !(z < 5) Wert bei x = 2 ; y = 6 ; z = 1?

G. Gröger - Einführung in die Programmierung mit Java - 1. Semester - WS 04/059 Operatorenreihenfolge (Priorität) PrioritätOperatorenAssoziativität 1 + -Vorzeichen (unär)rechts 1 !logische Negationrechts 1 (Typ)Typkonversionrechts 2 * / %Multiplikation, Division, Restlinks 3 + -Addition, Subtraktionlinks 4 < <=kleiner, kleiner gleichlinks 4 > >=größer, größer alslinks 5 ==Gleichheitlinks 5 !=Ungleichheitlinks 6 &logisches Undlinks 7 |logisches Oderlinks 8 =Wertzuweisungrechts

G. Gröger - Einführung in die Programmierung mit Java - 1. Semester - WS 04/0510 Beispiel: For-Schleife mit komplexer Bedingung Es sollen die Zahlen von 1 bis 100 addiert werden, jedoch soll vorher abgebrochen werden,wenn die Summe die Zahl 2000 erreicht hat. int Summe =0; for(int i = 1; (i <= 100 & Summe < 2000); i = i+1) { Summe = Summe + i; }

G. Gröger - Einführung in die Programmierung mit Java - 1. Semester - WS 04/0511 Übung im GIS-Labor Schreibt ein Programm, das die Zahlen von 1 bis 50 aufzählt, wobei anstelle der durch drei oder durch sieben, aber nicht durch 5 teilbaren Zahlen „autsch“ ausgegeben werden soll. Tip: Verwendet die Operation % (Rest der ganzzahligen Division): z.B. 11 % 3 = 2 (11 geteilt durch 3 ist 9 mit Rest 2) z.B. 33 % 9 = 6 (33 geteilt durch 9 ist 27 mit Rest 6)

G. Gröger - Einführung in die Programmierung mit Java - 1. Semester - WS 04/0512 Kontrollstrukturen: while- und do-while-Schleife while-Schleife: Syntax: while ( boolean-Ausdruck ) Anweisung; Schleife mit Eintrittsbedingung –Anweisung wird 0 bis x-mal ausgeführt do-while-Schleife: Syntax: do Anweisung; while ( boolean-Ausdruck ); Schleife mit Wiederholungsbedingung –Anweisung wird mindestens einmal ausgeführt Hinweis: Sollen mehrere Anweisungen im Schleifenrumpf aus- geführt werden, so müssen diese durch geschweifte Klammern zu einem Block zusammengefasst werden.

G. Gröger - Einführung in die Programmierung mit Java - 1. Semester - WS 04/0513 Übung im GIS-Labor Schreibt ein Programm, das die natürlichen Zahlen solange summiert, bis die Summe die Zahl 3000 erstmals überschreitet. Gebt die Summe und die Anzahl der natürlichen Zahlen aus. Tip: Verwendet while-Schleifen: –while ( boolean-Ausdruck ) Anweisung; –do Anweisung; while ( boolean-Ausdruck );

G. Gröger - Einführung in die Programmierung mit Java - 1. Semester - WS 04/0514 Kontrollstrukturen: switch-Anweisung dient zur Realisierung von Fallunterscheidungen Syntax: switch (Ausdruck ) { case Wert1 : Anweisung1; // 1. Fall Ausdruck=Wert1 case Wert2 : Anweisung2; // 2. Fall Ausdruck=Wert2... default: Ansonsten-Anweisung; // ansonsten } es werden alle Anweisungen ab der ersten erfüllten case- Bedingung ausgeführt (inkl. der Ansonsten-Anweisung ) Ausdruck muss vom Typ byte, short, int oder char sein Wert i muss eine Konstante vom gleichen Typ wie Ausdruck sein

G. Gröger - Einführung in die Programmierung mit Java - 1. Semester - WS 04/0515 Beispiel 1 zur switch-Anweisung Programm: class Switch1 { public static void main (String args[]) { int i; for (i=0; i < 10; i=i+1) switch(i) { case 1: System.out.println("eins"); case 2: System.out.println("zwei"); case 5: System.out.println("fünf"); default: System.out.println(i); } Ausgabe: 0 eins zwei fünf 1 zwei fünf fünf Problem: fehlerhafte Ausgabe, da jeweils nach der ersten passenden case-Bedingung alle anderen Anweisungen ohne weitere Überprüfung ausgeführt werden!

G. Gröger - Einführung in die Programmierung mit Java - 1. Semester - WS 04/0516 Die break-Anweisung (1) dient zum Abbruch von switch-Fallunterscheidungen Syntax: switch ( Ausdruck ) { case Wert1 : { Anweisung1; break; } case Wert2 : { Anweisung2; break; }... default: Ansonsten-Anweisung; } Der Programmablauf wird bei Ausführung eines break- Befehls hinter der switch-Anweisung fortgesetzt!

G. Gröger - Einführung in die Programmierung mit Java - 1. Semester - WS 04/0517 Beispiel 2 zur switch-Anweisung Programm: class Switch2 { public static void main (String args[]) { int i; for (i=0; i < 10; i=i+1) switch(i) { case 1: {System.out.println("eins"); break;} case 2: {System.out.println("zwei"); break;} case 5: {System.out.println("fünf"); break;} default: System.out.println(i); } Ausgabe: 0 eins zwei 3 4 fünf Die Ausgabe ist nun korrekt, da die switch-Anweisung jeweils nach der Ausführung der passenden case-Bedingung mittels break verlassen wird.

G. Gröger - Einführung in die Programmierung mit Java - 1. Semester - WS 04/0518 Die break-Anweisung (2) kann auch zum Abbruch von Schleifen (for, while, do- while) eingesetzt werden Beispiel while-Schleife: while ( boolean-Ausdruck1 ) {... if ( boolean-Ausdruck2 ) break; // Abbruch... } Der Programmablauf wird hinter der Schleifenanweisung fortgesetzt

G. Gröger - Einführung in die Programmierung mit Java - 1. Semester - WS 04/0519 Arrays Bisher: primitive Datentypen (int, double,...) Arrays als erster nicht-primitiver Datentyp Alle Werte haben denselben Typ (z.B. int) Zugriff über Index: my_array[2] = 12; Indizes fangen mit 0 an Integer-Array mit fünf Elementen

G. Gröger - Einführung in die Programmierung mit Java - 1. Semester - WS 04/0520 Arbeiten mit Array-Variablen (I) 3 Schritte: (nur Schritt 2 ist wirklich neu) 1. Deklaration int[] my_array; // Array von Integerzahlen 2. Instantiierung my_array = new int[3]; // Erschafft Array mit 3 Elem. 3. Initialisierung my_array[0] = 17; my_array[1] = 0; my_array[2] = -4*my_array[0];

G. Gröger - Einführung in die Programmierung mit Java - 1. Semester - WS 04/0521 Arbeiten mit Array-Variablen (II) Alternative: alle drei Schritte auf einmal Deklaration mit impliziter Erschaffung und Initialisierung: int[] my_array = {45, -117, 12, 0, 999}; erschafft ein 5-elementiges Array und initialisiert es mit den aufgezählten Werten (angefangen bei Index 0).

G. Gröger - Einführung in die Programmierung mit Java - 1. Semester - WS 04/0522 Hinweise zu Arrays (I) Größe eines Arrays kann erst zur Laufzeit feststehen: int[] my_array; int i =...; //zur Laufzeit berechnet my_array = new int[i]; Die Größe eines einmal instantiierten Arrays kann nicht verändert werden. Größe eines Arrays kann mittels arrayname.length abgefragt werden: int laenge = my_array.length;

G. Gröger - Einführung in die Programmierung mit Java - 1. Semester - WS 04/0523 Beispiel zu Arrays Programm: // Bestimmung der kleinsten Zahl eines ganzzahligen Arrays class Minimum { public static void main (String args[]) { int[] my_array = {45,12,1,13,-4,0,-23,1001}; int minimum, i; minimum=my_array[0]; for (i=0; i<my_array.length; i=i+1) if (my_array[i]<minimum) minimum=my_array[i]; System.out.print("Die kleinste Zahl ist "); System.out.println(minimum); } Ausgabe: Die kleinste Zahl ist -23

G. Gröger - Einführung in die Programmierung mit Java - 1. Semester - WS 04/0524 Mehrdimensionale Arrays Anwendungen –zweidimensional: Repräsentation von Matrizen –zwei- und mehrdimensional: Speicherung von Wertetabellen Mehrdimensionale Arrays werden durch Arrays von Arrays dargestellt Syntax zur Deklaration und Instantiierung eines n-dimensionalen Arrays: Typ [ ][ ]...[ ] Arrayname = new Typ [d 1 ][d 2 ]...[d n ]; Beispiel: int[][] matrix = new int[6][3]; erschafft eine zweidimensionale Matrix mit 6 Zeilen und 3 Spalten

G. Gröger - Einführung in die Programmierung mit Java - 1. Semester - WS 04/0525 Hinweise zu Arrays (I) Arrays sind keine primitiven Datentypen –Array-Variablen enthalten nicht selbst das Array, sondern verweisen auf ein Array, das durch new irgendwo im Hauptspeicher angelegt wird (Array-Variablen sind Referenzen). Beispiel: int[] myArray=new int[3]; myArray Wert 1 Wert 2 Wert 3  kein simpler Vergleich zweier Arrays möglich: int[] a = {7,12,13,0};int i = 3; int[] b = {7,12,13,0};int j = 3; System.out.println(a = = b);System.out.println(i = = j); ergibt die Ausgabe false ergibt die Ausgabe true

G. Gröger - Einführung in die Programmierung mit Java - 1. Semester - WS 04/0526 Hinweise zu Arrays (II) Arrayvariablen sind Referenzen –Wertzuweisung zweier Arrayvariablen kopiert nicht das Array, sondern setzt beide auf denselben Speicherbereich: –Bsp: int[] a = {1,2,3}; int[] b = {4,5,6}; a = b; a[0] = 77; System.out.println(b[0]); a b vor Wertzuweisung a = b a b nach Wertzuweisung a = b

G. Gröger - Einführung in die Programmierung mit Java - 1. Semester - WS 04/0527 Hausaufgabe Schreibt ein Programm, das den Wert einer ganzzahligen Variablen w im Bereich von 20 bis 99 so als Text ausgibt, wie er ausgesprochen wird. Gebt dabei alle Werte von 20 bis 99 entsprechend aus. Ausgabe: w = 20 Ausgabe: "zwanzig" w = 98 Ausgabe: „achtundneunzig" w = 99 Ausgabe: "neunundneunzig"