diff --git a/notebooks/hausaufgabe3.ipynb b/notebooks/hausaufgabe3.ipynb index c590e476ab9091c5bf5c62b7c4e804da0b797a69..249581ef25a53cd0e243f91c9a117901e9db89e5 100644 --- a/notebooks/hausaufgabe3.ipynb +++ b/notebooks/hausaufgabe3.ipynb @@ -121,9 +121,16 @@ "\n", "*(Das ist [Aufgabe 4 im 6. Kapitel](https://scm.cms.hu-berlin.de/ibi/python/blob/master/notebooks/seminar06.ipynb#aufgabe-4).)*\n", "\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`). Hinweis: Überlegen Sie sich, was der Basisfall ist und wie Sie diesen behandeln.\n", - "\n", - "*Falls Sie die Lösung aus der Übung übernehmen, schreiben Sie Kommentare, die zeigen, dass Sie den Code und die Rekursion verstanden haben. Ansonsten wird die Aufgabe nicht gewertet.*" + "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", + "- Was ist die Abbruchbedingung/ der Basisfall?\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", + "- 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" ] }, { @@ -132,8 +139,7 @@ "metadata": {}, "outputs": [], "source": [ - " # Implementieren Sie hier ihre Funktion\n", - "\n", + "def ist_potenz(a,b):\n", " " ] }, @@ -142,9 +148,7 @@ "execution_count": null, "metadata": {}, "outputs": [], - "source": [ - "# Rufen Sie hier ihre Funktionen auf, um sie zu testen" - ] + "source": [] }, { "cell_type": "markdown", @@ -174,7 +178,7 @@ "metadata": {}, "outputs": [], "source": [ - "# Fügen Sie hier dez_zu_allem sowie Ihren Testcode ein" + "# Fügen Sie hier die Funktion `dez_zu_allem` ein und rufen Sie die Funktion testweise auf" ] }, { @@ -190,7 +194,7 @@ "metadata": {}, "outputs": [], "source": [ - "# Fügen Sie hier Ihren Code ein\n" + "# Fügen Sie hier Ihren Code ein" ] }, { @@ -225,9 +229,8 @@ "metadata": {}, "outputs": [], "source": [ - "# Implementieren Sie hier die Funktion \n", "def zeichentabelle():\n", - " \"\"\"...\"\"\"\n", + " pass # löschen Sie diese Anweisung, wenn Sie anfangen, die Funktion zu implementieren\n", "\n", "\n" ] @@ -238,7 +241,6 @@ "metadata": {}, "outputs": [], "source": [ - "# Testaufruf, der die Tabelle oben erzeugen sollte\n", "zeichentabelle(32, 127, \" \", 16)" ] }, @@ -281,22 +283,6 @@ "print(chr(64000))" ] }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "*(Nicht alle Zahlenwerte funktionieren, nur diejenigen, die auch im Unicode definiert sind.)*\n", - "\n", - "Finden Sie den Dezimalwert (!) für das Zeichen `ä` im Unicode (nicht UTF-8) und geben Sie dieses mittels `chr` aus. Es kann sein, dass Sie nur den Hexadezimalwert finden - diesen müssten sie dann zunächst in einen Dezimalwert umrechnen, z.B. auf [dieser Webseite](http://www.binaryhexconverter.com/hex-to-decimal-converter)." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - }, { "cell_type": "markdown", "metadata": {}, @@ -311,19 +297,6 @@ "outputs": [], "source": [] }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Aufgabe 5 (Zusatz):\n", - "\n", - "Nutzen Sie Rekursion (falls nicht schon in Hausaufgabe2 benutzt), um Ihre Schildkröte ein Kunstwerk malen zu lassen. Schauen Sie in Notebook 5 nach, um sich inspirieren zu lassen.\n", - "\n", - "Diese Aufgabe ist freiwillig. \n", - "\n", - "Sie können gerne wieder kreativ werden." - ] - }, { "cell_type": "markdown", "metadata": {},