Aufgaben

Hausaufgabe: Definition und Analyse rekursiver Prozeduren

Definieren Sie, ohne Schleifen zu verwenden, eine Prozedur print_twice(), die eine Liste als Parameter erwartet und dessen Elemente auf dem Bildschirm ausgibt. Die Elemente sollen einmal der Reihe nach und dann in umgekehrter Reihenfolge ausgegeben werden, wie der folgenden Beispielaufruf veranschaulicht:

>>> print_twice(["A","B","C"])
A
B
C
C
B
A

Betrachten Sie die folgende Prozedurdefinition:

def put_wave(n):
  if n > 0:
    put_wave(n-1)
    print("~~^" * n)
    put_wave(n-1)

Beschreiben Sie die Ausgabe von put_wave(n) für beliebige natürliche Zahlen n und erklären Sie, wie sie zustande kommt.