Sie sind auf Seite 1von 4

Tutorium

Programmierung I

Stephan Gramüller (gramueller@fim.uni-passau.de),


Julian Harrer (harrerj@fim.uni-passau.de)

Aufgabe 8: Countdown

Schreibe ein Programm, welches eine Methode countdown(int n) hat. Diese Methode
soll rekursiv von n bis 1 herunterzählen und dabei jede Zahl ausgeben.
Hinweis : Eine rekursive Funktion ruft sich selbst auf. Fehlt eine Abbruchbedingung, läuft
sie ewig weiter.
Beispielausgabe:
n
n-1
..
.
3
2
1

1
Aufgabe 9: Fibonacci

Leonardo Fibonacci hat im Jahr 1202 die Fibonacci-Folge entwickelt, um das Wachstum
einer Kaninchenpopulation zu beschreiben. Die Folge sieht wie folgt aus:

0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, . . .

Dabei ist jede Zahl die Summe der beiden vorangehenden Zahlen. Die formale Denition
lautet:

f ib(0) = 0
f ib(1) = 1
f ib(n) = f ib(n − 1) + f ib(n − 2)

So zum Beispiel:

f ib(2) = f ib(0) + f ib(1) = 0 + 1 = 1


f ib(3) = f ib(2) +f ib(1) = 2
| {z }
=f ib(1)+f ib(0)=1

(a) Schreibe ein Programm, welches die Fibonacci-Folge bis zu f ib(30) berechnet und
dabei jede Fibonacci-Zahl in einer Zeile ausgibt.
Beispielausgabe:

Die Fibonacci-Zahl von 0 lautet 0.


Die Fibonacci-Zahl von 1 lautet 1.
.. .
.
. .
Die Fibonacci-Zahl von 30 lautet <?>.

(b) Schreibe eine weitere Methode, welche die erste Fibonacci-Zahl ≥ 1000 ndet und
ausgibt.

Die erste Fibonacci-Zahl über 1000 ist die Fibonacci-Zahl von <?> und lautet <?>.

2
Aufgabe 10: Arrays

(a) Schreibe ein Programm, welches ein boolean-Array der Gröÿe 5 auf der Konsole
ausgibt. Der Wert true soll dabei als X dargestellt werden, der Wert false als 0.
Das Array kann dabei beliebig hardcodiert initialisiert werden.
Beispielausgabe:

0 X 0 X 0

(b) Modiziere das Programm nun so, dass es ein zweidimensionales boolean-Array
der Gröÿe 5 × 5 anstelle eines eindimensionalen Array auf der Konsole ausgibt.
(c) Modiziere das Programm nun so, dass es das Array so belegt, dass die fallende
Diagonale (von links oben nach rechts unten) den Wert true und alle anderen
Elemente den Wert false haben.
Beispielausgabe:

X 0 0 0 0
0 X 0 0 0
0 0 X 0 0
0 0 0 X 0
0 0 0 0 X

(d) Modiziere das Programm nun so, dass es das Array so belegt, dass beide Diago-
nalen (von links oben nach rechts unten und von rechts oben nach links unten)
den Wert true und alle anderen Elemente den Wert false haben.
Beispielausgabe:

X 0 0 0 X
0 X 0 X 0
0 0 X 0 0
0 X 0 X 0
X 0 0 0 X

(e) Führe eine Variable size ein und modiziere das Programm, sodass beliebig groÿe
Arrays abhängig von size) belegt und ausgegeben werden können.

3
Aufgabe 11: Strukturierter Code

Schreibe eine Methode printArray(boolean[][] array), welche ein zwei-


dimensionales boolean-Array ausgibt. Schreibe anschlieÿend die Methoden
addDiagFalling(boolean[][] array) und addDiagRising(boolean[][] array),
welche das übergebene Array auf der fallende Diagonale (von links oben nach rechts
unten) bzw. der steigenden Diagonale (von links unten nach rechts oben) mit true
belegt (vgl. Aufgabe 10).

Aufgabe 12: Array-Summe

Schreibe ein Programm, welches die Summe des gröÿten Zahlenwertes aller Spalten eines
zweidimensionalen Arrays berechnet. Das Array kann mehrere Zeilen haben (≥ 1) Das
Array kann dabei beliebig hardcodiert initialisiert werden.
Zusätzlich kann davon ausgegangen werden, dass das Array rechtecking ist und alle Zah-
len ganzzahlig positiv sind.
Beispiel 1 mit einem int[2][4] Array:
4 6 7 8
ergibt 29, da 8 + 6 + 7 + 8 = 29.
8 3 1 6
Beispiel 2 mit einem int[3][6] Array:
4 6 7 8 2 7
8 3 1 6 3 1 ergibt 42, da 8 + 6 + 9 + 8 + 4 + 7 = 42.
1 4 9 2 4 5
Beispielausgabe:
Die Summe des gröÿten Wertes aller Spalten des Arrays ist 29.

Noch Fragen zu Übungsblättern?

Das könnte Ihnen auch gefallen