Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

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.

Ähnliche Präsentationen


Präsentation zum Thema: "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."—  Präsentation transkript:

1 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

2 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

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

4 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

5 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

6 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); }

7 T. H. Kolbe - Einführung in die Programmierung mit Java - 1. Semester - WS 01/027 2. Übungsaufgabe vom 7. 11. 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

8 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(" "); }

9 T. H. Kolbe - Einführung in die Programmierung mit Java - 1. Semester - WS 01/029 2. Übungsaufgabe vom 7. 11. 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!!

10 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(" "); }

11 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

12 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 2 3 4 fünf 5 6 7 8 9 Problem: fehlerhafte Ausgabe, da jeweils nach der ersten passenden case-Bedingung alle anderen Anweisungen ohne weitere Überprüfung ausgeführt werden!

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

14 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 6 7 8 9 Die Ausgabe ist nun korrekt, da die switch-Anweisung jeweils nach der Ausführung der passenden case-Bedingung mittels break verlassen wird.

15 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

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

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

18 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

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

20 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

21 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

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

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


Herunterladen ppt "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."

Ähnliche Präsentationen


Google-Anzeigen