2. Übungsaufgabe vom 7. 11.

Werbung
2. Übungsaufgabe vom 31. 10.
Logische Ausdrücke
1. true & false | true
2. (10>2) & (!true==false)
3. true==(4!=3) & !(3<=3)
a) Notieren Sie die Ausdrücke 1.-3. in mathematischer
Schreibweise; z.B.: ¬ true  (32  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)  ¬(33)
G. Gröger - Einführung in die Programmierung mit Java - 1. Semester - WS 02/03
1
2. Übungsaufgabe vom 31. 10.
Logische Ausdrücke
1. true & false | true
2. (10>2) & (!true==false)
3. true==(4!=3) & !(3<=3)
a) Notieren Sie die Ausdrücke 1.-3. in mathematischer
Schreibweise; z.B.: ¬ true  (32  true)
b) Wie lauten die Wahrheitswerte der Ausdrücke 1.-3. ?
Lösung
zu a)
zu b)
1. true  false  true
 true
2. (10>2)  (¬true=false)
 true
3. true=(4  3)  ¬(33)
 false
G. Gröger - Einführung in die Programmierung mit Java - 1. Semester - WS 02/03
2
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
3
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
4
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!!
G. Gröger - Einführung in die Programmierung mit Java - 1. Semester - WS 02/03
5
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
6
Entwicklung einfacher Programme
2. Programmentwurf
1. Problemanalyse
Software-Entwicklung
für einfache Probleme
4. Testen
3. Implementierung
G. Gröger - Einführung in die Programmierung mit Java - 1. Semester - WS 02/03
7
Software-Entwicklung: Problemanalyse
Was sind die
Eingangsdaten?
Was soll
ausgegeben
werden?
Ein- und Ausgabe
Wie werden aus
den Eingabedaten
die Ausgabedaten
hergeleitet?
Zerlegung in
Teilprobleme
Problemanalyse
Formalisierung
Randbedingungen
Komplexität
Software-Entwicklung
für einfache Probleme
G. Gröger - Einführung in die Programmierung mit Java - 1. Semester - WS 02/03
8
Software-Entwicklung: Programmentwurf
Zerlegung in
Einzelschritte
Notation
in Pseudo-Code
als Ablaufdiagramm
direkt in der
Zielprogrammiersprache
Datenstrukturen
Programmentwurf
Algorithmen
Auswahl
geeigneter
Software-Entwicklung
für einfache Probleme
Roter Faden
=
Hauptprogramm
für viele Teilprobleme
gibt es bereits fertige
Alg. + DS
(siehe Vorlesung
Diskrete Mathe)
G. Gröger - Einführung in die Programmierung mit Java - 1. Semester - WS 02/03
9
Software-Entwicklung: Implementierung
Software-Entwicklung
für einfache Probleme
Realisierung
in einer konkreten
Programmiersprache
Auswahl geeigneter
Datentypen
Implementierung
Berücksichtigung
vorhandener
Funktionsbibliotheken
Schrittweise Umsetzung
des Pseudo-Codes
in der Ziel-Programmiersprache
Dokumentation des
Quelltextes nicht vergessen!
G. Gröger - Einführung in die Programmierung mit Java - 1. Semester - WS 02/03
10
Software-Entwicklung: Testen
Software-Entwicklung
für einfache Probleme
Korrektheit
Terminierung
Sicherung der
Programmeigenschaften
Falsche
Ergebnisse
Absturz (z.B.
Durch Fehleingaben)
typische Fehler
Testen
Endlossschleifen
Testszenarien
definieren
Programm mit repräsentativen
Eingabedaten starten und
Ergebnisse überprüfen
G. Gröger - Einführung in die Programmierung mit Java - 1. Semester - WS 02/03
11
Zerlegung in
Einzelschritte
in Pseudo-Code
Was sind die
Eingangsdaten?
Was soll
ausgegeben
werden?
Zerlegung in Teilprobleme
Formalisierung
Notation
als Ablaufdiagramm
direkt in der
Zielprogrammiersprache
Ein- und Ausgabe
Datenstrukturen
 Programmentwurf
Wie werden aus
den Eingabedaten
die Ausgabedaten
hergeleitet?
 Problemanalyse
Auswahl geeigneter
Algorithmen
für viele Teilprobleme
gibt es bereits
fertige Alg.+DS
(siehe Vorlesung
Diskrete Mathe)
Roter Faden
=
Hauptprogramm
Randbedingungen
Komplexität
Software-Entwicklung
für einfache Probleme
Korrektheit
Terminierung
falsche
Ergebnisse
Absturz
(z.B. durch
Fehleingaben)
Endlossschleifen
Sicherung der
Programmeigenschaften
typische Fehler
 Testen
Testszenarien
definieren
Programm mit
repräsentativen
Eingabedaten
starten und
Ergebnisse überprüfen
 Implementierung
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
G. Gröger - Einführung in die Programmierung mit Java - 1. Semester - WS 02/03
12
Übung im GIS-Labor
• Schreiben Sie ein Programm, das die Summe der
Zahlen von 1 bis n (n nist ein n
ganzzahliger
Wert)
( n  1)
i
berechnet.

2
i 1
• Hacker-Lösung:
Schleife von 1 bis n und Aufsummieren der Zahlen
• Einfache und elegantere Lösung:
n
Formalisierung:
Wert   i
i 1
G. Gröger - Einführung in die Programmierung mit Java - 1. Semester - WS 02/03
13
Herunterladen