From 7cfa1770ff6c45c3a472b2e35b3bdf8df505b544 Mon Sep 17 00:00:00 2001 From: schwabmi <michel.j.schwab@gmail.com> Date: Mon, 10 Jan 2022 10:59:52 +0100 Subject: [PATCH] upadted ha3 --- notebooks/hausaufgabe3.ipynb | 50 ++++++++++++++++++++++++++---------- 1 file changed, 37 insertions(+), 13 deletions(-) diff --git a/notebooks/hausaufgabe3.ipynb b/notebooks/hausaufgabe3.ipynb index 249581e..2ae8b96 100644 --- a/notebooks/hausaufgabe3.ipynb +++ b/notebooks/hausaufgabe3.ipynb @@ -56,6 +56,7 @@ "outputs": [], "source": [ " # Implementieren Sie hier die Funktionen\n", + "def schere_stein_papier(spieler_1, spieler_2):\n", " " ] }, @@ -76,7 +77,31 @@ "\n", "*(Dies ist [Aufgabe 4 im 5. Kapitel](https://scm.cms.hu-berlin.de/ibi/python/blob/master/notebooks/seminar05.ipynb#aufgabe-4).)*\n", "\n", - "Was gibt das folgende Programm aus? Zeichnen Sie (entweder mit Stift und Papier oder in einem Markdown Feld, siehe ein Beispiel unten) ein Stapeldiagramm (siehe [Abschnitt 3.9](https://scm.cms.hu-berlin.de/ibi/python/blob/master/notebooks/seminar03.ipynb#3-9-stapel-diagramme)), das den Zustand des Programms ausgibt, wenn `recurse(3, 0)` aufgerufen wird: " + "Was gibt das folgende Programm aus? Zeichnen Sie (entweder mit Stift und Papier oder in einem Markdown Feld, siehe ein Beispiel unten) ein Stapeldiagramm (siehe [Abschnitt 3.9](https://scm.cms.hu-berlin.de/ibi/python/blob/master/notebooks/seminar03.ipynb#3-9-stapel-diagramme)), das den Zustand des Programms ausgibt, wenn `recurse(3, 0)` aufgerufen wird: \n", + "\n", + "*Hinweis: Laden Sie das digitalisierte Stapeldiagramm zusammen mit diesem Notebook in Moodle hoch. Wenn Sie wollen, können Sie auch ASCII-Textboxen direkt hier einfügen, ungefähr so:*\n", + "\n", + "\n", + "*Beispiel eines Stapeldiagramms:*\n", + "```\n", + " +------------------------------------+\n", + "function_1 | parameter_1 -> argument_1 |\n", + " | parameter_2 -> argument_2 |\n", + " +------------------------------------+\n", + "\n", + "```\n", + "\n", + "**Lösung:**\n", + "\n", + "```\n", + " +------------------------------------+\n", + "recurse | -> |\n", + " | -> |\n", + " +------------------------------------+\n", + " \n", + "...\n", + "\n", + "```" ] }, { @@ -86,6 +111,8 @@ "outputs": [], "source": [ "def recurse(n, s):\n", + " '''\n", + " '''\n", " if n == 0:\n", " print(s)\n", " else:\n", @@ -98,19 +125,16 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "1. Was würde passieren, wenn wir diese Funktion so aufrufen würden: `recurse(-1, 0)`?\n", + "## 2a\n", + "Was würde passieren, wenn wir diese Funktion so aufrufen würden: `recurse(-1, 0)`?\n", "\n", - "2. Fügen Sie einen Docstring zur Funktion hinzu, der alles erklärt, was man wissen sollte, um diese Funktion nutzen zu können (und nicht mehr!).\n", + "**Lösung**:\n", "\n", - "*Hinweis: Laden Sie das digitalisierte Stapeldiagramm zusammen mit diesem Notebook in Moodle hoch. Wenn Sie wollen, können Sie auch ASCII-Textboxen direkt hier einfügen, ungefähr so:*\n", + "## 2b\n", + "Fügen Sie einen Docstring zur Funktion hinzu, der alles erklärt, was man wissen sollte, um diese Funktion nutzen zu können (und nicht mehr!).\n", "\n", - "```\n", - " +----------------------------------------+\n", - "__main__ | teil1 -> 'Holleri du dödel di ' |\n", - " | teil2 -> 'diri diri dudel dö' |\n", - " +----------------------------------------+\n", "\n", - "```" + "\n" ] }, { @@ -123,13 +147,13 @@ "\n", "Eine ganze Zahl `a` ist eine Potenz von `b`, wenn `a` durch `b` teilbar ist und `a/b` eine Potenz von `b` ist. (Beispielsweise ist 27 eine Potenz von 3, denn 27 ist durch 3 teilbar und 9 ist eine Potenz von 3.) Schreiben Sie eine Funktion `is_power` die Parameter `a` und `b` erwartet und `True` zurückgibt, wenn `a` eine Potenz von `b` ist (ansonsten `False`). \n", "\n", - "Sie dürfen die Code aus der Kapitel 6 übernehmen. Beantworten Sie dazu folgende Fragen: \n", + "Sie dürfen die Code aus Kapitel 6 übernehmen. Beantworten Sie dazu folgende Fragen: \n", "- Was ist die Abbruchbedingung/ der Basisfall?\n", - " - Lösung:\n", + " - **Lösung**:\n", "- Markieren Sie im Code, an welchen Stellen der Basisfall definiert wird\n", "- Markieren Sie im Code, an welcher Stelle der rekursive Aufruf stattfindet\n", "- Wieviele unterschiedliche Rückgabewerte sind möglich? Welche Rückgabewerte gibt es?\n", - " - Lösung:\n", + " - **Lösung**:\n", "- Rufen Sie die Funktion `ist_potenz` mit verschiedenen Argumenten so auf, dass die verschiedenen Abbruchbedingungen mindestens einmal durchlaufen werden. Rufen Sie die Funktion außerdem so auf, dass jeder Rückgabewert mindestens einmal herauskommt. \n" ] }, -- GitLab