From 39ff53651ebc648e952f281f2d73a37fcf2bc803 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20J=C3=A4schke?= <jaeschke@l3s.de> Date: Wed, 13 Dec 2017 13:34:55 +0000 Subject: [PATCH] =?UTF-8?q?Hinweise=20zur=20Aufgabe=20hinzugef=C3=BCgt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- notebooks/seminar05.ipynb | 25 ++++++++++++++++++++++--- notebooks/seminar06.ipynb | 2 +- 2 files changed, 23 insertions(+), 4 deletions(-) diff --git a/notebooks/seminar05.ipynb b/notebooks/seminar05.ipynb index 3ca5f10..951a86a 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 3a221e4..26e0b6d 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." ] }, { -- GitLab