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",
     "![Mandelbrot Detail](https://upload.wikimedia.org/wikipedia/commons/thumb/b/b3/Mandel_zoom_07_satellite.jpg/800px-Mandel_zoom_07_satellite.jpg)\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