From 991bbe13b503e5e06175ec92fb63f422b8b01eb3 Mon Sep 17 00:00:00 2001
From: schwabmi <michel.j.schwab@gmail.com>
Date: Mon, 17 Jan 2022 09:54:53 +0100
Subject: [PATCH] added help functions directly into the notebooks instead of
 the need of copying from other notebooks

---
 notebooks/hausaufgabe3.ipynb | 10 +++++++---
 notebooks/seminar07.ipynb    | 15 +++++++++++++++
 2 files changed, 22 insertions(+), 3 deletions(-)

diff --git a/notebooks/hausaufgabe3.ipynb b/notebooks/hausaufgabe3.ipynb
index 2ae8b96..9bf4c8f 100644
--- a/notebooks/hausaufgabe3.ipynb
+++ b/notebooks/hausaufgabe3.ipynb
@@ -191,9 +191,9 @@
     "70 p   71 q   72 r   73 s   74 t   75 u   76 v   77 w   78 x   79 y   7a z   7b {   7c |   7d }   7e ~   \n",
     "```\n",
     "\n",
-    "Lesen Sie sich den Exkurs am Anfang des [5. Kapitels](https://scm.cms.hu-berlin.de/ibi/python/blob/master/notebooks/seminar05.ipynb) durch und versuchen Sie zu verstehen, wie die Funktion `dez_zu_allem` funktioniert. Dazu sollte es reichen, die Funktion mit verschiedenen Eingaben aufzurufen und zu verstehen, wie die jeweilige Ausgabe mit der Eingabe zusammenhängt. (Der Parameter `s` stellt das Alphabet für ein Positionssystem dar, wobei alle Zeichen einfach hintereinander als Zeichenkette erwartet werden.) \n",
+    "Lesen Sie sich den Exkurs am Anfang des [7. Kapitels](https://scm.cms.hu-berlin.de/ibi/python/blob/master/notebooks/seminar07.ipynb) durch und **versuchen Sie zu verstehen, wie die Funktion `dez_zu_allem` funktioniert**. Dazu sollte es reichen, die Funktion mit verschiedenen Eingaben aufzurufen und zu verstehen, wie die jeweilige Ausgabe mit der Eingabe zusammenhängt. (Der Parameter `s` stellt das Alphabet für ein Positionssystem dar, wobei alle Zeichen einfach hintereinander als Zeichenkette erwartet werden.) \n",
     "\n",
-    "Kopieren Sie sich die Funktion `dez_zu_allem` hierher und rufen Sie sie mit dem Dezimalcode für das Zeichen 'B' auf (diesen finden Sie in der ASCII-Tabelle aus der Vorlesung), so dass der Wert als Hexadezimalzahl zurückgegeben wird. Geben Sie diese Hexadezimalzahl mit `print` aus. (Es sollte '42' ausgegeben werden.)"
+    "Rufen Sie die Funktion mit dem Dezimalcode für das Zeichen 'B' auf (diesen finden Sie in der ASCII-Tabelle aus der Vorlesung), so dass der Wert als Hexadezimalzahl zurückgegeben wird. Geben Sie diese Hexadezimalzahl mit `print` aus. (Es sollte '42' ausgegeben werden.)"
    ]
   },
   {
@@ -202,7 +202,11 @@
    "metadata": {},
    "outputs": [],
    "source": [
-    "# Fügen Sie hier die Funktion `dez_zu_allem` ein und rufen Sie die Funktion testweise auf"
+    "# Hilfsfunktion aus Kapitel 7\n",
+    "def dez_zu_allem(n, s):\n",
+    "    if n == 0:\n",
+    "        return \"\"\n",
+    "    return dez_zu_allem(n // len(s), s) + s[n % len(s)]"
    ]
   },
   {
diff --git a/notebooks/seminar07.ipynb b/notebooks/seminar07.ipynb
index f5a98f4..de8528e 100644
--- a/notebooks/seminar07.ipynb
+++ b/notebooks/seminar07.ipynb
@@ -302,7 +302,22 @@
    "metadata": {},
    "outputs": [],
    "source": [
+    "# rekursive Variante aus seminar05.ipynb\n",
     "def print_n(s, n):\n",
+    "    if n <= 0: # Abbruchbedingung\n",
+    "        return\n",
+    "    print(s)\n",
+    "    print_n(s, n-1) # rekursiver Aufruf"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "def print_n(s, n):\n",
+    "    pass\n",
     "    # Implementieren Sie hier die Funktion mit Hilfe einer Schleife und ohne Rekursion\n",
     "    \n",
     "\n",
-- 
GitLab