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.

Slides:



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

der Universität Oldenburg
der Universität Oldenburg
Forschungszentrum caesar
Einführung in die Programmierung Zusammenfassung
(kleine!) Java Einführung Mittwoch, Heute Ziel: erstes Java-Programm erstellen Von der Aufgabenstellung bis zur Lösung Grundlagen Einfache.
Java: Objektorientierte Programmierung
SWITCH - Anweisung.
SWITCH - Anweisung.
WHILE - Anweisung. Aufgabe : Ausgabe aller ganzen Zahlen von 0 bis 100 auf dem Bildschirm.
FOR Anweisung. Aufgabe : Ausgabe aller ganzen Zahlen von 0 bis 100 auf dem Bildschirm.
DO...WHILE Anweisung.
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Prof. Dr. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Tobias Lauer.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Prof. Dr. Th. Ottmann.
Algorithmen und Datenstrukturen
Informatik II, SS 2008 Algorithmen und Datenstrukturen Vorlesung 2 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für Informatik Fakultät.
Imperative Programmierung Funktionen und Parameter
Einführung in die Programmierung mit Java
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
DVG Ablaufsteuerung
DVG Methoden 1 Methoden. 2 int dezi = Integer.parseInt(args[0]); boolean vz = (dezi>=0); dezi = Math.abs(dezi); String Bin = ""; do { } while.
Verzweigung.
Einführung in die Programmiersprache C 3.Tag Institut für Mathematische Optimierung - Technische Universität Braunschweig.
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
Einführung in die Programmierung
Abteilung für Telekooperation Übung Softwareentwicklung 1 für Wirtschaftsinformatik Dr. Wieland Schwinger
2.4 Rekursion Klassifikation und Beispiele
Unterprogramme in JAVA
CuP - Java Sechste Vorlesung Entspricht ungefähr Kapitel 3. 1 – 3
PHP: Operatoren und Kontrollstrukturen
Programmierung von Agenten in Java: Implementierung einer Supply-Chain
Programmiervorkurs WS 2014/15 Methoden
Programmiervorkurs WS 2014/15 Schleifen
Java-Kurs - 8. Übung Besprechung der Hausaufgabe.
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
Mag. Thomas Hilpold, Universität Linz, Institut für Wirtschaftsinformatik – Software Engineering 1 Algorithmen und Datenstrukturen 1 SS 2002 Mag.Thomas.
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. Thomas H. Kolbe Einführung in die Programmierung mit Java 5. Vorlesung WS 2001/2002.
Lösung der Hausaufgaben von Vorlesung 10 Universität Bonn Institut für Kartografie und Geoinformation Dipl.-Ing. Dörschlag, Dr. Gröger, Prof. Dr. Plümer.
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
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.
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. Thomas H. Kolbe Einführung in die Programmierung mit Java 9. Vorlesung WS 2001/2002.
Einführung in die Programmierung mit Java
Einführung in die Programmiersprache C 2
Java-Kurs - 4. Übung Hausaufgabe Weitere Kontrollstrukturen
Java Programme nur ein bisschen objektorientiert.
Java-Kurs - 4. Übung weitere Kontrollstrukturen
Java-Kurs - 2. Übung primitive Datentypen, Konstanten
Einführung in die Programmierung mit Java
Arrays in Java Ein Array ist eine Variable, die aus einer An-zahl von Elementen des gleichen Datentyps besteht, die aufeinanderfolgend im Speicher liegen.
Schleifen mit der Turtle
Schleifen Datenfelder (Arrays) Verzweigungen
 Präsentation transkript:

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

T. H. Kolbe - Einführung in die Programmierung mit Java - 1. Semester - WS 01/022 Übersicht Besprechung der Übungsaufgaben Besondere Zuweisungsbefehle –Prä-/Post-Inkrement bzw. Dekrement Kontrollstrukturen –Fallunterscheidungen –break-Anweisung Programmentwicklung für einfache Probleme –Entwicklungs- und Programmierrichtlinien –Namenskonventionen

T. H. Kolbe - Einführung in die Programmierung mit Java - 1. Semester - WS 01/ Übungsaufgabe vom Erzeugen Sie ein Array mit 1000 zufälligen double- Werten und geben Sie das Minimum, das Maximum sowie den Durchschnitt aller Werte aus.

T. H. Kolbe - Einführung in die Programmierung mit Java - 1. Semester - WS 01/024 Lösung zu Aufgabe 1)Teil 1/3 public class Statistik extends java.lang.Object { public static void main (String args[]) { // Variablendeklaration double min, max, summe, mittelwert; int i; // Erzeugen eines Arrays mit 1000 Double-Werten // und füllen des Arrays mit Zufallszahlen double[] werte = new double[1000]; for (i=0; i<werte.length; i=i+1) werte[i]=Math.random();... Fortsetzung auf der nächsten Seite

T. H. Kolbe - Einführung in die Programmierung mit Java - 1. Semester - WS 01/025 Lösung zu Aufgabe 1)Teil 2/3 // Bestimmung des Minimums, des Maximums, // der Summe und des Mittelwertes min = werte[0]; // min, max und summe werden max = werte[0]; // mit dem ersten Wert des summe = werte[0]; // Arrays initialisiert. for (i=1; i<werte.length; i=i+1) { // Schleife beginnt summe = summe+werte[i]; // mit 2. Element if (werte[i]<min) min=werte[i]; else if (werte[i]>max) max=werte[i]; } mittelwert = summe / werte.length;... Fortsetzung auf der nächsten Seite

T. H. Kolbe - Einführung in die Programmierung mit Java - 1. Semester - WS 01/026 Lösung zu Aufgabe 1)Teil 3/3 // Ausgabe des Ergebnisses System.out.print("Minimum: "); System.out.print(min); System.out.print(" Maximum: "); System.out.print(max); System.out.print(" Mittelwert: "); System.out.println(mittelwert); }

T. H. Kolbe - Einführung in die Programmierung mit Java - 1. Semester - WS 01/ Übungsaufgabe vom Drehen Sie die Reihenfolge der Elemente eines Arrays mit Integerzahlen um und geben Sie das Ergebnis aus. Beispiel:gegeben: {4,12,67,90,-10,39,0,1} Ausgabe: {1,0,39,-10,90,67,12,4} a) unter Verwendung eines zweiten Arrays (Zielarray) b) innerhalb des selben Arrays Lösung: a)trivial

T. H. Kolbe - Einführung in die Programmierung mit Java - 1. Semester - WS 01/028 Lösung zu Aufgabe 2) a) public class Array1 extends Object { public static void main (String args[]) { int i; int[] anfangsarray = {4,12,67,90,-10,39,0,1}; int[] zielarray = new int[anfangsarray.length]; for (i=0; i<anfangsarray.length; i=i+1) zielarray [anfangsarray.length-1-i]=anfangsarray [i]; // Ausgabe des Zielarrays for (i=0; i<anfangsarray.length; i=i+1) { System.out.print(zielarray[i]); System.out.print(" "); }

T. H. Kolbe - Einführung in die Programmierung mit Java - 1. Semester - WS 01/ Übungsaufgabe vom Drehen Sie die Reihenfolge der Elemente eines Arrays mit Integerzahlen um und geben Sie das Ergebnis aus. Beispiel:gegeben: {4,12,67,90,-10,39,0,1} Ausgabe: {1,0,39,-10,90,67,12,4} a) unter Verwendung eines zweiten Arrays (Zielarray) b) innerhalb des selben Arrays Lösung: a)trivial b)1.Tauschen der Werte mittels Hilfsvariable 2.Vorsicht Falle: Schleife darf nur bis Arraygröße / 2 laufen, sonst wird der Array-Inhalt zweimal umgedreht!!

T. H. Kolbe - Einführung in die Programmierung mit Java - 1. Semester - WS 01/0210 Lösung zu Aufgabe 2) b) public class Array2 extends Object { public static void main (String args[]) { int i, tausch; // tausch ist Hilfsvariable int[] array = {4,12,67,90,-10,39,0,1}; for (i=0; i < array.length/2; i=i+1) { tausch=array[i]; // "Dreieckstausch" array[i]=array[array.length-1-i]; array[array.length-1-i]=tausch; } // Ausgabe des Arrays for (i=0; i<array.length; i=i+1) { System.out.print(array[i]); System.out.print(" "); }

T. H. Kolbe - Einführung in die Programmierung mit Java - 1. Semester - WS 01/0211 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

T. H. Kolbe - Einführung in die Programmierung mit Java - 1. Semester - WS 01/0212 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!

T. H. Kolbe - Einführung in die Programmierung mit Java - 1. Semester - WS 01/0213 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!

T. H. Kolbe - Einführung in die Programmierung mit Java - 1. Semester - WS 01/0214 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.

T. H. Kolbe - Einführung in die Programmierung mit Java - 1. Semester - WS 01/0215 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

T. H. Kolbe - Einführung in die Programmierung mit Java - 1. Semester - WS 01/ Testen 3. Implementierung 2. Programmentwurf 1. Problemanalyse Entwicklung einfacher Programme Software-Entwicklung für einfache Probleme

T. H. Kolbe - Einführung in die Programmierung mit Java - 1. Semester - WS 01/0217 Software-Entwicklung: Problemanalyse Problemanalyse Software-Entwicklung für einfache Probleme Ein- und Ausgabe Was sind die Eingangsdaten? Was soll ausgegeben werden? Zerlegung in Teilprobleme Formalisierung Randbedingungen Komplexität Wie werden aus den Eingabedaten die Ausgabedaten hergeleitet?

T. H. Kolbe - Einführung in die Programmierung mit Java - 1. Semester - WS 01/0218 Software-Entwicklung: Programmentwurf Programmentwurf Software-Entwicklung für einfache Probleme Zerlegung in Einzelschritte Notation in Pseudo-Code als Ablaufdiagramm direkt in der Zielprogrammiersprache Auswahl geeigneter Datenstrukturen Algorithmen für viele Teilprobleme gibt es bereits fertige Alg. + DS (siehe Vorlesung Diskrete Mathe) Roter Faden = Hauptprogramm

T. H. Kolbe - Einführung in die Programmierung mit Java - 1. Semester - WS 01/0219 Software-Entwicklung: Implementierung Implementierung Software-Entwicklung für einfache Probleme Realisierung in einer konkreten Programmiersprache Auswahl geeigneter Datentypen Berücksichtigung vorhandener Funktionsbibliotheken Schrittweise Umsetzung des Pseudo-Codes in der Ziel-Programmiersprache Dokumentation des Quelltextes nicht vergessen!

T. H. Kolbe - Einführung in die Programmierung mit Java - 1. Semester - WS 01/0220 Software-Entwicklung: Testen Testen Software-Entwicklung für einfache Probleme Sicherung der Programm- eigenschaften Korrektheit Terminierung typische Fehler Falsche Ergebnisse Absturz (z.B. Durch Fehleingaben) Endlossschleifen Testszenarien definieren Programm mit repräsentativen Eingabedaten starten und Ergebnisse überprüfen

T. H. Kolbe - Einführung in die Programmierung mit Java - 1. Semester - WS 01/0221  Problemanalyse  Implementierung „ Testen ‚ Programmentwurf Software-Entwicklung für einfache Probleme Ein- und Ausgabe Was sind die Eingangsdaten? Was soll ausgegeben werden? Wie werden aus den Eingabedaten die Ausgabedaten hergeleitet? Zerlegung in Teilprobleme Formalisierung Randbedingungen Komplexität Realisierung in einer konkreten Programmiersprache Auswahl geeigneter Datentypen Berücksichtigung vorhandener Funktionsbibliotheken Schrittweise Umsetzung des Pseudo-Codes in der Ziel-Programmiersprache erst ab hier erfolgt die Eingabe am Rechner Dokumentation des Quelltextes nicht vergessen Sicherung der Programm- eigenschaften Korrektheit Terminierung typische Fehler falsche Ergebnisse Absturz (z.B. durch Fehleingaben) Endlossschleifen Testszenarien definieren Programm mit repräsentativen Eingabedaten starten und Ergebnisse überprüfen Zerlegung in Einzelschritte Notation in Pseudo-Code als Ablaufdiagramm direkt in der Zielprogrammiersprache Auswahl geeigneter Datenstrukturen Algorithmen für viele Teilprobleme gibt es bereits fertige Alg.+DS (siehe Vorlesung Diskrete Mathe) Roter Faden = Hauptprogramm

T. H. Kolbe - Einführung in die Programmierung mit Java - 1. Semester - WS 01/0222 Übung im GIS-Labor Schreiben Sie ein Programm, das die Summe der Zahlen von 1 bis n (n ist ein ganzzahliger Wert) berechnet. Hacker-Lösung: Schleife von 1 bis n und Aufsummieren der Zahlen Einfache und elegantere Lösung: Formalisierung:

T. H. Kolbe - Einführung in die Programmierung mit Java - 1. Semester - WS 01/0223 Übungsaufgabe Schreiben Sie ein Programm, das den Wert einer ganzzahligen Variablen w (0 bis 999) so als Text ausgibt, wie er ausgesprochen wird. Beispiele: w = 285 Ausgabe: "zweihundertfünfundachtzig" w = 513 Ausgabe: "fünfhundertdreizehn"