View
213
Download
0
Category
Preview:
Citation preview
G. Gröger - Einführung in die Programmierung mit Java - 1. Semester - WS 02/03 1
2. Übungsaufgabe vom 31. 10.
Logische Ausdrücke1. true & false | true2. (10>2) & (!true==false)3. true==(4!=3) & !(3<=3)
a) Notieren Sie die Ausdrücke 1.-3. in mathematischer Schreibweise; z.B.: ¬ true (32 true)
b) Wie lauten die Wahrheitswerte der Ausdrücke 1.-3. ?
Lösung zu a)
1. true false true
2. (10>2) (¬true=false)
3. true=(4 3) ¬(33)
G. Gröger - Einführung in die Programmierung mit Java - 1. Semester - WS 02/03 2
2. Übungsaufgabe vom 31. 10.
Logische Ausdrücke1. true & false | true2. (10>2) & (!true==false)3. true==(4!=3) & !(3<=3)
a) Notieren Sie die Ausdrücke 1.-3. in mathematischer Schreibweise; z.B.: ¬ true (32 true)
b) Wie lauten die Wahrheitswerte der Ausdrücke 1.-3. ?
Lösung zu a)
1. true false true
2. (10>2) (¬true=false)
3. true=(4 3) ¬(33)
zu b)
true
true
false
G. Gröger - Einführung in die Programmierung mit Java - 1. Semester - WS 02/03 3
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
G. Gröger - Einführung in die Programmierung mit Java - 1. Semester - WS 02/03 4
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(" "); } }}
G. Gröger - Einführung in die Programmierung mit Java - 1. Semester - WS 02/03 5
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) trivialb) 1. Tauschen der Werte mittels Hilfsvariable
2. Vorsicht Falle: Schleife darf nur bis Arraygröße / 2 laufen,sonst wird der Array-Inhalt zweimal umgedreht!!
G. Gröger - Einführung in die Programmierung mit Java - 1. Semester - WS 02/03 6
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(" "); } }}
G. Gröger - Einführung in die Programmierung mit Java - 1. Semester - WS 02/03 7
4. Testen 3. Implementierung
2. Programmentwurf1. Problemanalyse
Entwicklung einfacher Programme
Software-Entwicklungfür einfache Probleme
G. Gröger - Einführung in die Programmierung mit Java - 1. Semester - WS 02/03 8
Software-Entwicklung: Problemanalyse
Problemanalyse
Software-Entwicklungfür einfache Probleme
Ein- und Ausgabe
Was sind dieEingangsdaten?
Was soll ausgegebenwerden?
Zerlegung in Teilprobleme
Formalisierung
Randbedingungen
Komplexität
Wie werden ausden Eingabedatendie Ausgabedatenhergeleitet?
G. Gröger - Einführung in die Programmierung mit Java - 1. Semester - WS 02/03 9
Software-Entwicklung: Programmentwurf
Programmentwurf
Software-Entwicklungfür einfache Probleme
Zerlegung inEinzelschritte Notation
in Pseudo-Code
als Ablaufdiagramm
direkt in derZielprogrammiersprache
Auswahl geeigneter
Datenstrukturen
Algorithmen
für viele Teilproblemegibt es bereits fertigeAlg. + DS(siehe VorlesungDiskrete Mathe)Roter Faden
=Hauptprogramm
G. Gröger - Einführung in die Programmierung mit Java - 1. Semester - WS 02/03 10
Software-Entwicklung: Implementierung
Implementierung
Software-Entwicklungfür einfache Probleme Realisierung
in einer konkretenProgrammiersprache
Auswahl geeigneterDatentypen
BerücksichtigungvorhandenerFunktionsbibliotheken
Schrittweise Umsetzungdes Pseudo-Codesin der Ziel-Programmiersprache
Dokumentation desQuelltextes nicht vergessen!
G. Gröger - Einführung in die Programmierung mit Java - 1. Semester - WS 02/03 11
Software-Entwicklung: Testen
Testen
Software-Entwicklungfür einfache Probleme
Sicherung derProgramm-eigenschaften Korrektheit
Terminierung
typische Fehler
FalscheErgebnisse
Absturz (z.B. Durch Fehleingaben)
EndlossschleifenTestszenariendefinieren
Programm mit repräsentativenEingabedaten starten undErgebnisse überprüfen
G. Gröger - Einführung in die Programmierung mit Java - 1. Semester - WS 02/03 12
Problemanalyse
ƒ Implementierung„ Testen
‚ Programmentwurf
Software-Entwicklungfür einfache Probleme
Ein- und Ausgabe
Was sind dieEingangsdaten?
Was soll ausgegebenwerden?
Wie werden ausden Eingabedatendie Ausgabedatenhergeleitet?
Zerlegung in TeilproblemeFormalisierung
RandbedingungenKomplexität
Realisierungin einer konkretenProgrammierspracheAuswahl geeigneterDatentypenBerücksichtigungvorhandenerFunktionsbibliothekenSchrittweise Umsetzungdes Pseudo-Codesin der Ziel-Programmiersprache
erst ab hiererfolgt dieEingabe amRechner
Dokumentation desQuelltextes nicht vergessen
Sicherung der Programm-eigenschaften
KorrektheitTerminierung
typische Fehler
falsche Ergebnisse
Absturz(z.B. durchFehleingaben)
Endlossschleifen
Testszenariendefinieren
Programm mit repräsentativenEingabedaten starten undErgebnisse überprüfen
Zerlegung in Einzelschritte
Notation
in Pseudo-Codeals Ablaufdiagrammdirekt in derZielprogrammiersprache
Auswahl geeigneter
DatenstrukturenAlgorithmenfür viele Teilproblemegibt es bereits fertige Alg.+DS(siehe VorlesungDiskrete Mathe)
Roter Faden =Hauptprogramm
G. Gröger - Einführung in die Programmierung mit Java - 1. Semester - WS 02/03 13
Ü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:
n
i
iWert1
2)1(
1
nnin
i
Recommended