• Keine Ergebnisse gefunden

Übungsstunde 5

N/A
N/A
Protected

Academic year: 2022

Aktie "Übungsstunde 5"

Copied!
25
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Übungsstunde 5

Einführung in die Programmierung

(2)

Probleme bei Übung 4

[TODO Assistent]

(3)

Nachbesprechung Übung 5

(4)

Aufgabe 1: Testen mit JUnit

(5)

Aufgabe 2: Wörter Raten

String hinweis;

do {

hinweis = hinweis(wort, tipp);

} while(!hinweis.equals("ist"));

String hinweis = "dummy";

while(!hinweis.equals("ist")) {

hinweis = hinweis(wort, tipp);

};

do-while benötigt keinen Dummy-Wert für

hinweis

(6)

Aufgabe 3: Datenanalyse

[140,143) [143,146) [146,149) | [149,152) ||||

[152,155) |||||||||||

[155,158) ||||||||||||||||||||

[158,161) ||||||||||||||||||||||||||||||||||||||||||

[161,164) ||||||||||||||||||||||||||||||||||||||||||||||||||

[164,167) ||||||||||||||||||||||||||||||||||||||||||

[167,170) |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||

[170,173) |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||

[173,176) |||||||||||||||||||||||||||||||||||||||||||||||||||||||||

[176,179) |||||||||||||||||||||||||||||||||||||||||||||||||||||||

[179,182) |||||||||||||||||||||||||||||||||||||

[182,185) ||||||||||||||||||||||||||

[185,188) ||||||||||||||

[188,191) ||||||||||||||||||||

[191,194) ||||||

[194,197) [197,200) ||

(7)

Aufgabe 4: Random Sort (Bonus!)

Feedback nach der Korrektur direkt per SVN

(8)

Aufgabe 5: Analoge Uhr

double seconds = System.currentTimeMillis() / 1000.0;

double minutes = seconds / 60;

double hours = minutes / 60 + HOUR_OFFSET;

double hourAngle = hours/12 * 2*Math. PI;

double minuteAngle = minutes/60 * 2*Math. PI;

double secondAngle = seconds/60 * 2*Math. PI;

UTC, Greenwich-Zeit

(9)

Aufgabe 5: Analoge Uhr

double x = SIZE/2 + Math.sin(hourAngle)*120;

double y = SIZE/2 - Math.cos(hourAngle)*120;

window.drawLine(SIZE/2, SIZE/2, x, y);

x = SIZE/2 + Math.sin(minuteAngle)*200;

y = SIZE/2 - Math.cos(minuteAngle)*200;

window.drawLine(SIZE/2, SIZE/2, x, y);

x = SIZE/2 + Math.sin(secondAngle)*180;

y = SIZE/2 - Math.cos(secondAngle)*180;

window.setStrokeWidth(5);

window.drawLine(SIZE/2, SIZE/2, x, y);

(10)

Vorbesprechung Übung 6

(11)

Aufgabe 1: Gipfel (Bonus!)

Höhenserie {2, 1, 2, 5, 3, 6, 5, 6}

Wo liegt die grösste Erhebung?

(12)

506

42.9 17.7 28.0 21 65.6 174.0 1 43.7 16.9 30.8 23 71.8 175.3 1 40.1 20.9 31.7 28 80.7 193.5 1 44.3 18.4 28.2 23 72.6 186.5 1 42.5 21.5 29.4 22 78.8 187.2 1

body.dat.txt

scanner.nextInt() scanner.nextDouble() Einlesen mit:

(13)

public class Person {

/**

* Erstellt eine neue Person mit den gegebenen Werten * für die Eigenschaften. */

Person(int alter, double gewicht, double groesse, boolean istMaennlich, double schulterBreite, double brustTiefe, double brustBreite) {

} }

(14)
(15)
(16)

Aufgabe 3: Black-Box Testing

BlackBox.rotateArray(values, 2);

1 2 3 4 5 6 7

6 7 1 2 3 4 5

(17)

Aufgabe 3: Black-Box Testing

Negative bedeutet nach links

(18)

Aufgabe 4: EBNF Wiederholung

<LHS> <= RHS

LHS: Name der EBNF Regel

RHS: Beschreibung der EBNF Regel

- Namen anderer EBNF Regeln - Buchstaben

- Aufreihung a b

- Entscheidung / Auswahl a | b

- Option [ a ]

- Wiederholung { a }

- Rekursion

Weitere Informationen in den Slides der Vorlesung oder der Übung 1

(19)

Aufgabe 5: Rekursion

int main(String[] args){

Window w = new Window("Tree", SIZE, SIZE);

w.open();

drawTree(w, SIZE/2, SIZE, 100, Math.PI/2);

w.refresh();

w.waitUntilClosed();

}

public static void drawTree(Window w, int x, int y, double l, double angle){

if (...) { ...

} else { ...

drawTree(...);

drawTree(...);

} }

Bezüglich Animation, siehe Lösung der Aufgabe

5 (Uhr) der Übung 5

(20)

Zusatzübungen

(21)

Close Enough

Schreiben Sie eine Methode closeEnough() die zwei Arrays a, b des Typs int und einen int Wert eps als Parameter übernimmt. Die Methode liefert true wenn für alle Elemente von a und b gilt:

Wenn das nicht der Fall ist, dann ist der Return-Wert false.

(22)

Sorted Int

Schreiben Sie eine Methode sortedInt, die zwei int Parameter a, b entgegen nimmt und sie der Grösse nach sortiert (aufsteigend) zurück gibt. Also:

? ← sortedInt(a, b);

● Kann sortedInt a und b modifizieren?

● Was muss der Return-Wert sein?

(23)

Rechenübungen

(24)

s

2D-Array

Java hat auch 2-dimensionale Arrays. Ein 2D-Array mit Elementen des Typs type wird so deklariert:

type [] [] array2d;

Der Array muss natürlich mit new erschaffen werden, z.B.:

int [] [] x = new int [zeilen] [spalten];

Ein 2D-Array ist ein lineares Array von Zeilen. Der new Operator initialisiert die Elemente der Zeilen mit dem Nullwert des Typs, z.B. 0 für int.

0 0 0 0

0 0 0 0

0 0 0 0

array2d[z][s] selektiert Zeile z und darin das s-te Element (die s-te Spalte)

z

(25)

s

2D-Array

Schreiben Sie ein Programm, das einen int N einliest und dann einen N * N int-Array erschafft und die Elemente entlang der Diagonale auf 1 setzt.

● Wie geben Sie das Array aus?

1 0 0 0

0 1 0 0

0 0 1 0

z

Referenzen

ÄHNLICHE DOKUMENTE

Schreiben Sie eine Methode sortedInt, die zwei int Parameter a, b entgegen nimmt und sie der Grösse nach sortiert (aufsteigend) zurück

Schreiben Sie eine Methode sortedInt, die zwei int Parameter a, b entgegen nimmt und sie der Grösse nach sortiert (aufsteigend) zurück

Schreiben Sie eine Methode sortedInt, die zwei int Parameter a, b entgegen nimmt und sie der Grösse nach sortiert (aufsteigend) zurück

er sich noch nicht sicher ist, ob das Wunschinstrument auch das richtige ist oder wer einfach ein bestimmtes Instrument ausprobieren möchte, kann gerne eine kostenlose

Die Firma war nach eigenen Angaben aufgrund einer Sondererlaubnis des Gesundheitsministeriums in der Lage, kurzfristig diese Produkte an ihrem Standort Maudach

Beigeordneter Dieter Feid, zuständig für das Dezernat Finanzen, Ordnung,  Feuerwehr, Immobilien und Bürgerdienste, und Stefan Bruck, Leiter der Gefahrenabwehr sowie

Durch &#34;grüne Wellen&#34;, wie beispielsweise auf der Rheinallee, werden Anfahrvorgänge minimiert und dadurch wird eine Lärmentlastung erreicht.. Die &#34;grünen Wellen&#34; sind

Februar 2019, nur vormittags von 9 bis 12 Uhr Sicherheitsleistungen für Personen aus dem außereuropäischen Ausland annehmen. Nachmittags ist die Hinterlegung solcher Kautionen