Übungsstunde 2

Werbung
Übungsstunde 2
Einführung in die Programmierung I
Probleme bei Übung 1
Lösung Übung 1, Aufgabe 5
Interpretation:
…X…YY…
…YY…X…
g <=
[ g X g YY g | g YY g X g ]
x2ygemischt <= g
n×X und n×YY
(auch n=0)
Nachbesprechung Übung 2
printLine()
printEmptyPart()
printNarrowPart()
printWidePart()
printNarrowPart()
printEmptyPart()
printLine()
Aufgabe 3: Fehlerbehebung
auch java.util.*
Kommentare nicht vergessen!
Variablen werden oft alle am Anfang deklariert
Erstellt den Scanner
print vs. println
Leerzeichen um Operatoren
erhöht Leserlichkeit
Vorbesprechung Übung 3
Aufgabe 1: Folgen und Reihen
Potenzieren
Schreiben Sie ein Programm, das zwei ganze Zahlen n, k > 0 einliest und n^k
berechnet und ausgibt.
public static void main(String[] args) {
int n, k;
Scanner console = new Scanner(System.in);
System.out.print("Geben Sie Zahl 1 und 2 ein: ");
n = console.nextInt();
k = console.nextInt();
int pot = 1;
for (int i = 1; i <= k; i++) {
pot = pot * n;
}
System.out.println(n + " hoch " + k + " = " + pot);
}
Aufgabe 2: Binärdarstellung
While-Schleife
Welche Werte haben m und n nach Ausführung des folgenden Codes?
int m = 0;
int n = 123456789;
while (n != 0) {
m = (10 * m) + (n % 10);
n = n / 10;
}
m
n
0
123456789
9
12345678
98
1234567
987
123456
…
…
987654321
0
Aufgabe 3: Sieb des Eratosthenes
Sieb des Eratosthenes
1.
2.
3.
Erstelle array sieb von boolean, Länge limit+1
Setze alle Elemente auf true
Für i > 2, setze sieb[i] auf false wenn i ein ganzzahliges Vielfaches
einer Zahl z >= 2 ist
index i
sieb[i]
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
t
t
t
t
t
t
t
t
t
t
t
t
t
t
t
t
f
t
f
t
f
f
f
t
f
t
f
f
Aufgabe 4: Grösster gemeinsamer Teiler
Zusatzübungen
Arithmetische Ausdrücke
Was wird berechnet?
●
●
4 / 3 + 16 % 8 + 20 / 6 + 3.0 / 2 * 5 / 2
19 % 16 * 9 / 5 * 2.0
Arrays und Schleifen
Welche Werte hat vector am Ende dieser Anweisungen?
int limit = 10;
int [] vector = new int[limit];
vector[0] = 1;
vector[1] = 1;
for (int i = 2; i < limit; i++) {
vector[i] = vector[i-1] + vector[i-2];
}
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
i-2 i-1 i
1
1
0
0
0
0
0
0
0
0
1
1
2
0
0
0
0
0
0
0
1
1
2
3
0
0
0
0
0
0
8
13
21
34
55
…
1
1
2
3
5
Schleifen
Was gibt diese Methode aus?
public static void main (String[] args) {
int f = 0; int g = 1;
for (int i = 0; i < 15; i++ ) {
System.out.print(" " + f);
f = f + g;
g = f - g;
}
System.out.println();
}
i
f
g
0
1
0
0
1
0
0
1
0
1
1
0
1
0
1
1
0
…
…
…
Binäre Darstellung
Gegeben sei ein int array ‘bits’ der Länge 8 (int [] bits = new int[8]).
Jedes Element von bits ist entweder 0 oder 1. bits ist die Binärdarstellung
einer Zahl z, die wie folgt definiert ist:
for (int j = 0; j <= 7; j++) { … }
Schreiben Sie ein Programm, das 8 Ziffern (0 oder 1) von der Input Console liest
und die entsprechende Zahl z ausgibt. (Achtung: Sie müssen die 8 Binärziffern
einzeln eingeben, also z.B. 0 0 0 1 0 0 0 1 (17) und nicht 00010001
Sortieren
Schreiben Sie ein Programm, das drei int Zahlen a, b, c von der Konsole liest
und der Grösse nach druckt, angefangen mit der kleinsten Zahl.
a)
b)
Mithilfe verschiedener Entscheidungsbäume
Unterteilung in Teilprobleme
Fragen?
Herunterladen