Theorie Icon

Lernziele
Du kannst...
  • den Zusammenhang wischen iterativen und rekursiven Lösungen erkennen,
  • einfache Algorithmen iterativ und rekursiv implementieren und
  • Probleme imperativ und funktional lösen.

Link: Materialien CodingDoJo week12


Übungsaufgaben

Löse folgende Übungsaufgaben. Die mit dem * gekennzeichnete Aufgaben sind zusätzliche Übungsaufgaben, die zur Wiederholung gedacht sind.

Einfache Rekursion

Thonny Icon

A01 Schleifen gegenüber Rekursion
Implementiere ein Programm, dass die Zahlen der 2er-Reihe bis 20 ausgibt. Löse dies einmal iterativ durch eine Schleife und einmal rekursiv.

Die Zahlen der Zweierreihe iterativ ausgegeben:
2
4
6
8
10
12
14
16
18
20
Die Zahlen der Zweierreihe rekursiv ausgegeben:
2
4
6
8
10
12
14
16
18
20

Thonny Icon

A02 Binärzahlen
Implementiere ein Programm, dass die Binärzahlen bis 1024 ausgibt. Löse dies einmal iterativ durch eine Schleife und einmal rekursiv.

Ausgabe:
0
1
2
4
8
16
32
64
128
256
512
1024

Thonny Icon

A03 Ausgabe einer Liste
Implementiere ein Programm, dass die Zahlen der übergebenen Liste [2,5,7,86,1,0] nacheinander ausgibt. Die Funktion bekommt als ersten Parameter eine 0 und als zweiten Parameter die Liste übergeben. Löse dies rekursiv.

Ausgabe:
2
5
7
86
1
0

Eingabefunktionen

Thonny Icon

B01 Eingabefunktion erweitern
Implementiere nach dem Vorbild aus dem Praxisteil eine Eingabefunktion für den ersten Vornamen einer Person. Dabei soll überprüft werden, ob der eingegebene erste Vorname nur aus Buchstaben, maximal einem Bindestrich (für Doppelnamen), einem Großbuchstaben zu Anfang und danach nur Kleinbuchstaben besteht. Falls nicht, soll eine Fehlermeldung ausgegeben werden und die Eingabe wieder erneut gestartet werden. Löse dies rekursiv.

Bitte gib deinen Vornamen ein: Ada1815
Dies ist kein gültiger Vorname.
Bitte gib deinen Vornamen ein: Augusta-Ada
Hallo Augusta-Ada!

Thonny Icon

B02 *Modifikation der Eingabefunkton
Die Funktion soll nun nicht den Namen ausgeben, sondern zurückgeben. Der zurückgegebene Name soll dann ausgegeben werden. Teste die Lösung und beginne mit einer falschen Eingabe. Danach gib eine richtige Eingabe ein. Was wird ausgegeben und warum? Wie könnten man das beheben? Modifiziere das Programm so, dass es auch bei falscher ersten Eingabe den eingelesenen Namen zurückgibt.