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