13
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 (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/031 2. Übungsaufgabe vom 31. 10. Logische Ausdrücke 1.true & false | true 2.(10>2)

Embed Size (px)

Citation preview

Page 1: G. Gröger - Einführung in die Programmierung mit Java - 1. Semester - WS 02/031 2. Übungsaufgabe vom 31. 10. Logische Ausdrücke 1.true & false | true 2.(10>2)

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)

Page 2: G. Gröger - Einführung in die Programmierung mit Java - 1. Semester - WS 02/031 2. Übungsaufgabe vom 31. 10. Logische Ausdrücke 1.true & false | true 2.(10>2)

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

Page 3: G. Gröger - Einführung in die Programmierung mit Java - 1. Semester - WS 02/031 2. Übungsaufgabe vom 31. 10. Logische Ausdrücke 1.true & false | true 2.(10>2)

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

Page 4: G. Gröger - Einführung in die Programmierung mit Java - 1. Semester - WS 02/031 2. Übungsaufgabe vom 31. 10. Logische Ausdrücke 1.true & false | true 2.(10>2)

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

Page 5: G. Gröger - Einführung in die Programmierung mit Java - 1. Semester - WS 02/031 2. Übungsaufgabe vom 31. 10. Logische Ausdrücke 1.true & false | true 2.(10>2)

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

Page 6: G. Gröger - Einführung in die Programmierung mit Java - 1. Semester - WS 02/031 2. Übungsaufgabe vom 31. 10. Logische Ausdrücke 1.true & false | true 2.(10>2)

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

Page 7: G. Gröger - Einführung in die Programmierung mit Java - 1. Semester - WS 02/031 2. Übungsaufgabe vom 31. 10. Logische Ausdrücke 1.true & false | true 2.(10>2)

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

Page 8: G. Gröger - Einführung in die Programmierung mit Java - 1. Semester - WS 02/031 2. Übungsaufgabe vom 31. 10. Logische Ausdrücke 1.true & false | true 2.(10>2)

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?

Page 9: G. Gröger - Einführung in die Programmierung mit Java - 1. Semester - WS 02/031 2. Übungsaufgabe vom 31. 10. Logische Ausdrücke 1.true & false | true 2.(10>2)

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

Page 10: G. Gröger - Einführung in die Programmierung mit Java - 1. Semester - WS 02/031 2. Übungsaufgabe vom 31. 10. Logische Ausdrücke 1.true & false | true 2.(10>2)

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!

Page 11: G. Gröger - Einführung in die Programmierung mit Java - 1. Semester - WS 02/031 2. Übungsaufgabe vom 31. 10. Logische Ausdrücke 1.true & false | true 2.(10>2)

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

Page 12: G. Gröger - Einführung in die Programmierung mit Java - 1. Semester - WS 02/031 2. Übungsaufgabe vom 31. 10. Logische Ausdrücke 1.true & false | true 2.(10>2)

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

Page 13: G. Gröger - Einführung in die Programmierung mit Java - 1. Semester - WS 02/031 2. Übungsaufgabe vom 31. 10. Logische Ausdrücke 1.true & false | true 2.(10>2)

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