diff --git a/notebooks/seminar05.ipynb b/notebooks/seminar05.ipynb index 3ca5f10afd90bc4f355a476e2085ad8d1acdc765..951a86aeb99ff067b1fa97622c6a18e3a9e937ab 100644 --- a/notebooks/seminar05.ipynb +++ b/notebooks/seminar05.ipynb @@ -629,7 +629,26 @@ "\n", "Die vier Blöcke für `countdown` haben unterschiedliche Werte für den Parameter `n`. Der Block am Boden des Stapels, wo `n=0` ist, wird **Basisfall** genannt. In diesem gibt es keinen rekursiven Aufruf, daher gibt es keine weiteren Blöcke. Dies ist gleichzeitig die **Abbruchbedingung** für die Rekursion.\n", "\n", - "Zeichnen Sie als Übung ein Stapeldiagramm für `print_n`, wenn es mit `s = 'Hallo'` und `n = 2` aufgerufen wird. Schreiben Sie dann eine Funktion `do_n`, die ein Funktionsobjekt und eine ganze Zahl `n` als Parameter erwartet und dann die übergebene Funktion `n`-mal aufruft. \n" + "Zeichnen Sie als Übung ein Stapeldiagramm für `print_n`, wenn es mit `s = 'Hallo'` und `n = 2` aufgerufen wird. \n", + "Schreiben Sie dann eine Funktion `do_n`, die ein Funktionsobjekt und eine ganze Zahl `n` als Parameter erwartet und dann die übergebene Funktion `n`-mal aufruft. *(Funktionsobjekte wurden im [3. Kapitel](seminar03.ipynb) erklärt und dort beispielsweise in [Aufgabe 2](seminar03.ipynb#Aufgabe-2) verwendet.)* \n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# implementieren Sie hier die Funktion do_n\n", + "def do_n(f):\n", + " f()\n", + " f()\n", + "\n", + "# eine Testfunktion\n", + "def testfunktion():\n", + " print(\"Ich wurde aufgerufen!\")\n", + "\n", + "# rufen Sie hier die Funktion auf, indem Sie ihr die Funktion" ] }, { @@ -675,7 +694,7 @@ "\n", "\n", "\n", - "([Wolfgang Beyer ](https://commons.wikimedia.org/wiki/File:Mandel_zoom_07_satellite.jpg))" + "([Wolfgang Beyer](https://commons.wikimedia.org/wiki/File:Mandel_zoom_07_satellite.jpg))" ] }, { @@ -763,7 +782,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### 4.12 Debugging\n", + "### 5.12 Debugging\n", "\n", "Wenn ein Syntax- oder Laufzeitfehler auftritt, enthält die Fehlermeldung oft eine überwältigende Menge an Information. Die hilfreichsten Teile davon sind üblicherweise:\n", "- Welcher Art von Fehler aufgetreten ist und\n", diff --git a/notebooks/seminar06.ipynb b/notebooks/seminar06.ipynb index 3a221e4846aa8d435d89a64d58bfde556a397e90..26e0b6d83704ad4208cba6bd1ffb2b69777cf782 100644 --- a/notebooks/seminar06.ipynb +++ b/notebooks/seminar06.ipynb @@ -644,7 +644,7 @@ "\n", "Das Diagramm zeigt, wie die Rückgabewerte im Stapel weiter nach oben durchgereicht werden. In jedem Block ist der Rückgabewert der Wert von `ergebnis`, was das Produkt von `n` und `rekursion` ist.\n", "\n", - "Im letzten Block" + "Im untersten (letzten) Block existieren die lokalen Variablen `rekursion` und `ergebnis` nicht, denn derjenige Zweig, welcher diese erzeugt, wird nicht ausgeführt." ] }, {