Erkundung Rekursion
Wenn wir in der Informatik vor einem Problem stehen, gibt es mehrere verschiedene Herangehensweisen, das Problem zu lösen. Nehmen wir als Beispiel das Berechnen der Quersumme einer Zahl. Die Quersumme ist definiert als die Summe aller Ziffern einer Zahl. Beispielsweise ist die Quersumme von 8
gleich 8
, die von 81
gleich 8 + 1 = 9
und die von 815
gleich 8 + 1 + 5 = 14
.
Ein weiteres Beispiel die Funktion sum_list
, deren Aufgabe es ist, alle Elemente einer Liste aufzusummieren. Wenn wir ihr also die Liste [4,7,1,1]
übergeben, soll die Funktion uns 4 + 7 + 1 + 1 = 13
zurückgeben. Das Ergbenis des Aufrufs sum_list([7,1,1])
soll 7 + 1 + 1 = 9
sein und so weiter.
Aufgabe 1
- Nenne Unterschiedene und Gemeinsamkeiten, die die beiden Probleme haben. Denke dabei vor allem an die Art und Weise, wie sich das Ergebnis zusammensetzt.
- Überlege und beschreibe für beide Probleme je eine Strategie, wie du dieses Problem als Funktion implementieren würdest.
Aufgabe 2
Schaue dir nun die Gemeinsamkeiten, die du in Aufgabe 1 gefunden hast, nochmal an.
- Entscheide für die folgenden Probleme jeweils, ob du sie genauso lösen könntest oder nicht:
- Alle natürlichen Zahlen von 1 bis n aufsummieren.
- Die größte Zahl in einer Liste von Zahlen herausfinden.
- Test, ob eine Zahl n gerade ist.
- Fallen dir noch andere Beispiele für Funktionen ein, die du auf eine ähnliche Weise lösen kannst?