diff --git a/notebooks/FAQ.ipynb b/notebooks/FAQ.ipynb index 4aaa032294986d4b3dbdba59b64bca49299a7678..53c91c63294b48a14903518915835b0849a74895 100644 --- a/notebooks/FAQ.ipynb +++ b/notebooks/FAQ.ipynb @@ -68,6 +68,19 @@ "- **Pair-Programming** bitte einhalten: **\"nicht gleichzeitig\"** programmieren, sondern **abwechselnd aktiv** sein. Das ist für alle Beteiligten ein Vorteil!" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Rekursion\n", + "\n", + "Eine gute Hilfe ist die Webseite: http://www.pythontutor.com.\n", + "Dort könnt ihr euren Python Code hochladen und Schritt für Schritt durchführen. \n", + "Probiert es aus *(Achtung: Sie müssen die Funktion auch dort aufrufen)*. \n", + "\n", + "Das funktioniert nicht nur für Rekursion, sonder mit jedem Code, den ihr in Python geschrieben habt." + ] + }, { "cell_type": "markdown", "metadata": {}, diff --git a/notebooks/seminar05.ipynb b/notebooks/seminar05.ipynb index 1a4eb1931a48f085ff02f39fa57103448e228340..0f438783332518bdc959b8b53b27a896e6284a7b 100644 --- a/notebooks/seminar05.ipynb +++ b/notebooks/seminar05.ipynb @@ -545,7 +545,8 @@ " print(\"Abheben!\")\n", " else:\n", " print(n)\n", - " countdown(n-1)" + " countdown(n-1)\n", + " " ] }, { @@ -594,6 +595,10 @@ "\n", "**Es ist wichtig, dass Sie dieses Beispiel verstanden haben. Falls das nicht der Fall sein sollte, lassen Sie es sich von Ihrem Partner, Kommilitonen oder Übungsleiter erklären.**\n", "\n", + "Eine gute Hilfe ist außerdem diese Webseite: http://www.pythontutor.com.\n", + "Dort können Sie ihren Python Code hochladen und Schritt für Schritt durchführen. \n", + "Probieren Sie es mit der Funktion countdown() aus *(Achtung: Sie müssen die Funktion auch dort aufrufen)*.\n", + "\n", "Als weiteres Beispiel schreiben wir eine Funktion, die eine Zeichenkette `n` mal ausgibt:" ] }, @@ -650,11 +655,15 @@ "outputs": [], "source": [ "# implementieren Sie hier die Funktion do_n\n", - "\n", + "def do_n(f, n):\n", + " if n<=0:\n", + " return\n", + " f\n", + " do_n(f,n-1)\n", "# eine Testfunktion\n", "def testfunktion():\n", " print(\"Ich wurde aufgerufen!\")\n", - "\n", + "do_n(testfunktion(),5)\n", "# rufen Sie hier die Funktion do_n auf, indem Sie die Funktion testfunktion sowie den Wert 7 als Argument übergeben " ] }, @@ -897,7 +906,13 @@ "outputs": [], "source": [ "import time\n", - "time.time()" + "seconds=time.time()\n", + "minutes=seconds/60\n", + "hours=minutes/60\n", + "days=hours/24\n", + "weeks=days/7\n", + "years=days/365\n", + "print(seconds, minutes, hours, days, weeks, years, sep='\\t')\n" ] }, { @@ -916,7 +931,16 @@ "import time\n", "\n", "def print_time():\n", - " # Implementieren Sie hier die Funktion\n", + " seconds=time.time()\n", + " days=seconds/(60*60*24)\n", + " whole_days=seconds//(60*60*24)\n", + " hours=(days-whole_days)*24\n", + " whole_hours=int((days-whole_days)*24)\n", + " minutes= (hours-whole_hours)*60\n", + " whole_minutes=int((hours-whole_hours)*60)\n", + " seconds_left=(minutes-whole_minutes)*60\n", + " whole_seconds=int((minutes-whole_minutes)*60)\n", + " print('days passed since January 1st 1970: ',int(whole_days),'\\nthe time (GMT) is :' ,whole_hours, ' hh : ',whole_minutes,' mm : ',whole_seconds, ' ss')\n", " \n", "# Testaufruf\n", "print_time()" @@ -955,7 +979,31 @@ "metadata": {}, "outputs": [], "source": [ - "# Implementieren und testen Sie hier die beiden Funktionen" + "def check_fermat(a,b,c,n):\n", + " if n>2:\n", + " a_n=a\n", + " b_n=b\n", + " c_n=c\n", + " for i in range(1,n):\n", + " a_n=a_n*a\n", + " b_n=b_n*b\n", + " c_n=c_n*c\n", + " if a_n+b_n==c_n:\n", + " print('Unglaublich, Fermat lag falsch!')\n", + " else:\n", + " print('Nein, das funktioniert nicht.')\n", + " else: \n", + " print('n muss größer als 2 sein, um Fermats Satz zu überprüfen')\n", + "\n", + "\n", + "def check_fermat2(a,b,c,n):\n", + " a=int(a)\n", + " b=int(b)\n", + " c=int(c)\n", + " n=int(n)\n", + " check_fermat(a,b,c,n)\n", + "\n", + "check_fermat2(3,4,5,3) " ] }, { @@ -978,7 +1026,20 @@ "metadata": {}, "outputs": [], "source": [ - "# Implementieren und testen Sie hier die beiden Funktionen" + "def is_triangle(a,b,c):\n", + " total=a+b+c\n", + " k=0\n", + " for i in (a,b,c): \n", + " if(total-2*i)<0:\n", + " print('Nein nein nein!')\n", + " k=1\n", + " break\n", + " if k==0:\n", + " print('oh yes')\n", + "\n", + "\n", + "is_triangle(2,1,4)\n", + " " ] }, {