{"id":516,"date":"2019-01-03T10:28:13","date_gmt":"2019-01-03T10:28:13","guid":{"rendered":"http:\/\/iludis.de\/?page_id=516"},"modified":"2019-01-03T11:15:55","modified_gmt":"2019-01-03T11:15:55","slug":"inf2stuender-j2","status":"publish","type":"page","link":"https:\/\/iludis.de\/?page_id=516","title":{"rendered":"Inf2Stuender"},"content":{"rendered":"<h4>J1: Turtle-Grafik f\u00fcr Kontrollstrukturen<\/h4>\n<pre class=\"brush: python; gutter: true\">import turtle\r\nimport random\r\nimport time\r\nscreenbreite = turtle.Screen().window_width()\r\nscreenhoehe = turtle.Screen().window_height()\r\n\r\n\r\n# A1: Lasse die Turtle ein Dreieck zeichnen\r\nturtle.speed(100)\r\n# ----------------------------------\r\nturtle.forward(100)\r\nturtle.write(&quot;geradeaus&quot;, False, align=&quot;center&quot;)\r\nturtle.forward(100)\r\nturtle.left(120)\r\nturtle.write(&quot;links&quot;, False, align=&quot;center&quot;)\r\nturtle.forward(100)\r\nturtle.write(&quot;geradeaus&quot;, False, align=&quot;center&quot;)\r\nturtle.forward(100)\r\nturtle.left(120)\r\nturtle.write(&quot;links&quot;, False, align=&quot;center&quot;)\r\nturtle.forward(100)\r\nturtle.write(&quot;geradeaus&quot;, False, align=&quot;center&quot;)\r\nturtle.forward(100)\r\nturtle.left(120)\r\nturtle.write(&quot;links&quot;, False, align=&quot;center&quot;)\r\n# ----------------------------------\r\nturtle.clearscreen()\r\n\r\n\r\n# A2: Lasse die Turtle ein n-Eck zeichnen\r\n\r\nturtle.speed(100)\r\n# ----------------------------------\r\nanzahlEcken = 20\r\nfor aktuelleEcke in range(0, anzahlEcken):\r\n    laenge = 200\/anzahlEcken\r\n    turtle.forward(laenge)\r\n    #turtle.write(&quot;gerade&quot;, False, align=&quot;center&quot;)\r\n    turtle.forward(laenge)\r\n    turtle.left(360\/anzahlEcken)\r\n\r\n# ----------------------------------\r\nturtle.clearscreen()\r\n\r\n\r\n# A3: Lasse die Turtle ein Rechteckmuster zeichnen, bei dem jede zweite Abbiegung nach rechts, bzw. links geht\r\nturtle.speed(100)\r\n# ----------------------------------\r\nfor i in range(30):\r\n    turtle.forward(15)\r\n    if i%4 == 0:\r\n        turtle.left(90)\r\n    if i%4 == 1:\r\n        turtle.left(90)\r\n    if i%4 == 2:\r\n        turtle.right(90)\r\n    if i%4 == 3:\r\n        turtle.right(90)\r\n# ----------------------------------\r\nturtle.clearscreen()\r\n\r\n\r\n# A3: Lasse die Turtle ein Zahnrad zeichnen.\r\nturtle.speed(100)\r\n# ----------------------------------\r\nwinkel = 15\r\nfor i in range(24):\r\n    turtle.forward(10)\r\n    if i%2 == 0:\r\n        turtle.left(90 + winkel)\r\n    if i%2 == 1:\r\n        turtle.right(90 - winkel)\r\n# ----------------------------------\r\nturtle.clearscreen()\r\n\r\n\r\n# A4: Lasse die Turtle ein Zufallsmuster zeichnen, bei dem zu jeder Zufallszahl anders abgebogen wird\r\nturtle.speed(100)\r\n# ----------------------------------\r\nturtle.speed(100)\r\ngesamtweglaenge = 0\r\nfor i in range(0,100):\r\n    zufallszahl = random.randint(10,100)\r\n    richtung = random.randint(1,2)\r\n    zufallsweglaenge = random.randint(5,12)\r\n\r\n    gesamtweglaenge = gesamtweglaenge + zufallsweglaenge\r\n\r\n    turtle.forward(zufallsweglaenge)\r\n    if richtung%2 == 0:\r\n        turtle.left(zufallszahl)\r\n    else:\r\n        turtle.right(zufallszahl)\r\n\r\nprint(&quot;gesamte wegl\u00e4nge: &quot;, gesamtweglaenge)\r\nprint(&quot;durchschnittliche wegl\u00e4nge pro h\u00fcpfer: &quot;, gesamtweglaenge\/100)\r\n# ----------------------------------\r\nturtle.clearscreen()\r\n\r\n#  A5: Zeitmessung: wer programmiert die schnellste Turtle: solange 10 Sekunden nicht abgelaufen sind,\r\n# # A6: soll die Turtle einen Stern malen\r\nturtle.speed(100)\r\n# ----------------------------------\r\nstartzeit = time.monotonic_ns()\r\naktuellezeit = startzeit\r\nzeitunterschied = 0\r\ngesamtlaenge = 0\r\nlaenge = 3\r\nturtle.speed(20)\r\nwhile zeitunterschied &lt; 1:\r\n    winkel = 2\r\n    turtle.forward(laenge)\r\n    gesamtweglaenge = gesamtweglaenge + laenge\r\n    turtle.left(90 + winkel)\r\n    turtle.forward(laenge)\r\n    gesamtweglaenge = gesamtweglaenge + laenge\r\n    turtle.right(90 - winkel)\r\n    aktuellezeit = time.monotonic_ns()\r\n    zeitunterschied = (aktuellezeit - startzeit) \/ 1000000000\r\n    print(zeitunterschied, laenge)\r\n# ----------------------------------\r\nturtle.clearscreen()\r\n\r\n\r\n# A7: Fasse das Programm f\u00fcr das Zahnrad in eine Funktion und lasse drei Zahnr\u00e4der malen\r\nturtle.speed(100)\r\n# ----------------------------------\r\ndef macheZahnrad():\r\n    winkel = 15\r\n    for i in range(24):\r\n        turtle.forward(10)\r\n        if i % 2 == 0:\r\n            turtle.left(90 + winkel)\r\n        if i % 2 == 1:\r\n            turtle.right(90 - winkel)\r\n\r\nfor i in range(10):\r\n    turtle.penup()\r\n    x = random.randint(0, screenbreite)\r\n    y = random.randint(0, screenhoehe)\r\n    turtle.setpos(x - screenbreite\/2, y - screenhoehe\/2)\r\n    turtle.pendown()\r\n    macheZahnrad()\r\n# ----------------------------------\r\nturtle.clearscreen()\r\n\r\n\r\n# A8: Baue eine Funktion, in der man die Anzahl an Z\u00e4hnen \u00fcbergibt ....\r\nturtle.speed(100)\r\n# ----------------------------------\r\ndef macheZahnrad2(winkel):\r\n    anzahl = 360\/\/winkel\r\n    laenge = 300\/anzahl\r\n    for i in range(anzahl):\r\n        turtle.forward(laenge)\r\n        if i % 2 == 0:\r\n            turtle.left(90 + winkel)\r\n        if i % 2 == 1:\r\n            turtle.right(90 - winkel)\r\n\r\nfor i in range(2):\r\n    turtle.penup()\r\n    x = random.randint(0, screenbreite)\r\n    y = random.randint(0, screenhoehe)\r\n    randwinkel = random.randint(3,45)\r\n\r\n    turtle.setpos(x - screenbreite\/2, y - screenhoehe\/2)\r\n    turtle.pendown()\r\n    macheZahnrad2(randwinkel)\r\n# ----------------------------------\r\nturtle.clearscreen()\r\n\r\n\r\n# A9: male eine Parabel und seine Ableitung\r\n\r\nunterteilungen = 40\r\n\r\ndef quadrat(xwert):\r\n    y = xwert*xwert\r\n    return y\r\n\r\ndef meineFunktion(xwert):\r\n    y = 2*xwert*xwert*xwert - 2*xwert*xwert + 2*xwert\r\n    return y\r\n\r\ndef steigung(y1, y2, x1, x2):\r\n    steigung = (y1-y2)\/(x1-x2)\r\n    return steigung\r\n\r\ndef macheKoordinaten():\r\n    turtle.speed(100)\r\n    global unterteilungen\r\n    turtle.penup()\r\n    turtle.setpos(-200,0)\r\n    turtle.pendown()\r\n    for i in range(2*unterteilungen):\r\n        turtle.forward(200\/unterteilungen)\r\n        turtle.left(90)\r\n        turtle.forward(2)\r\n        turtle.backward(2)\r\n        turtle.right(90)\r\n    turtle.penup()\r\n    turtle.setpos(0, -200)\r\n    turtle.pendown()\r\n    turtle.left(90)\r\n    for i in range(2 * unterteilungen):\r\n        turtle.forward(200\/unterteilungen)\r\n        turtle.left(90)\r\n        turtle.forward(2)\r\n        turtle.backward(2)\r\n        turtle.right(90)\r\n\r\n\r\nxAlt = xNeu = yAlt = yNeu = 0\r\nmacheKoordinaten()\r\nturtle.penup()\r\nfor i in range (-200,200,1):\r\n    xNeu = i\/unterteilungen\r\n    yNeu = meineFunktion(xNeu)\r\n    turtle.setpos(i, yNeu)\r\n    turtle.pendown()\r\n    xAlt = xNeu\r\n    yAlt = yNeu\r\n\r\nturtle.penup()\r\nfor i in range (-200,200,1):\r\n    xNeu = i\/unterteilungen\r\n    yNeu = meineFunktion(xNeu)\r\n    turtle.setpos(i, steigung(yNeu, yAlt, xNeu, xAlt))\r\n    turtle.pendown()\r\n    xAlt = xNeu\r\n    yAlt = yNeu\r\n\r\n\r\n\r\nturtle.exitonclick()<\/pre>\n<hr \/>\n<h4>J1: Bubblesort<\/h4>\n<pre class=\"brush: python; gutter: true\">import random\r\nimport time\r\n\r\nmL = []\r\nlistenlaenge = 1000\r\nfor i in range(listenlaenge):\r\n    meineVar = random.randint(1,1000)\r\n    mL.append(meineVar)\r\nprint(mL)\r\n\r\nstartzeit = time.monotonic_ns()\r\nfor j in range(0,listenlaenge-1): # Anzahl an Durchl\u00e4ufen\r\n    for index in range(0,listenlaenge-1-j): #Schleife f\u00fcr Durchlauf\r\n        if mL[0+index] &gt; mL[1+index]:   #Pr\u00fcfen, ob man tauschen muss\r\n            tempVar = mL[0+index]       # Ringtausch\r\n            mL[0+index] = mL[1+index]   # Ringtausch\r\n            mL[1+index] = tempVar       # Ringtausch\r\nendzeit = time.monotonic_ns()\r\nzeitdifferenz = (endzeit - startzeit)\/1000000\r\nprint(&quot;Millisekunden:&quot;, zeitdifferenz)\r\nprint(mL)<\/pre>\n<hr \/>\n<h4>J1: Selectionsort<\/h4>\n<pre class=\"brush: python; gutter: true\">import random\r\n\r\nmL = []\r\nlistenlaenge = 10\r\nfor i in range(10):\r\n    meineVar = random.randint(1,100)\r\n    mL.append(meineVar)\r\nprint(mL)\r\n\r\nfor durchlaeufe in range(0,10):\r\n# finde das gr\u00f6\u00dfte element der liste\r\n    meinaktuellerindex = 0\r\n    meineaktuellgroesstezahl = mL[meinaktuellerindex]\r\n    for index in range(0,10-durchlaeufe):\r\n        if meineaktuellgroesstezahl &lt; mL[index]:\r\n            meineaktuellgroesstezahl = mL[index]\r\n            meinaktuellerindex = index\r\n    # ringtausch\r\n    temp = mL[meinaktuellerindex] # gr\u00f6sster wert zwischenspeichern\r\n    mL[meinaktuellerindex]= mL[10-1-durchlaeufe] #letzte zahl in der liste hinkopieren\r\n    mL[10 - 1-durchlaeufe] = temp\r\n\r\nprint(mL)<\/pre>\n<hr \/>\n<h4>J2: Kryptographie mit Python<\/h4>\n<h5>Caesar-Verschluesselung eines Strings:<\/h5>\n<pre class=\"brush: python; gutter: true\">meinString = &quot;hAlLo WeLt abcdefghijklmnopqrstuvwxyz&quot;\r\nmeinString = meinString.upper()\r\n\r\n# ASCII-ausgabe des unverschl\u00fcsselten strings\r\nfor x in range(0,len(meinString)):\r\n    print(&quot;Code(&quot;,meinString[0+x], &quot;):&quot;, ord(meinString[0+x]), end=&quot;, &quot;)\r\nprint()\r\nprint(&quot;String vorher: &quot;, meinString)\r\n# offset des ASCII-codes\r\noffset = 10\r\n\r\nverschluesselterString = &quot;&quot;\r\nfor x in range(0,len(meinString)):\r\n    asciitemp = ord(meinString[0+x])\r\n    if asciitemp != 32:\r\n        asciitemp = asciitemp +offset\r\n        if asciitemp&gt;90:\r\n            asciitemp = asciitemp -26\r\n    verschluesselterString = verschluesselterString + chr(asciitemp)\r\nprint(&quot;Verschluesselt:&quot;, verschluesselterString)\r\n\r\nentschluesselterString = &quot;&quot;\r\nfor x in range(0,len(verschluesselterString)):\r\n    asciitemp = ord(verschluesselterString[0+x])\r\n    if asciitemp != 32:\r\n        asciitemp = asciitemp -offset\r\n        if asciitemp&lt;65:\r\n            asciitemp = asciitemp +26\r\n    entschluesselterString = entschluesselterString + chr(asciitemp)\r\nprint(&quot;Entschluesselt:&quot;, entschluesselterString)<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>J1: Turtle-Grafik f\u00fcr Kontrollstrukturen import turtle import random import time screenbreite = turtle.Screen().window_width() screenhoehe = turtle.Screen().window_height() # A1: Lasse die Turtle ein Dreieck zeichnen turtle.speed(100) # &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;- turtle.forward(100) turtle.write(&quot;geradeaus&quot;, False, align=&quot;center&quot;) turtle.forward(100) turtle.left(120) turtle.write(&quot;links&quot;, False, align=&quot;center&quot;) turtle.forward(100) turtle.write(&quot;geradeaus&quot;, False, align=&quot;center&quot;) turtle.forward(100) turtle.left(120) turtle.write(&quot;links&quot;, False, align=&quot;center&quot;) turtle.forward(100) turtle.write(&quot;geradeaus&quot;, False, align=&quot;center&quot;) turtle.forward(100) turtle.left(120) turtle.write(&quot;links&quot;, False, align=&quot;center&quot;) #&hellip; <\/p>\n<p class=\"toivo-read-more\"><a href=\"https:\/\/iludis.de\/?page_id=516\" class=\"more-link\">Read more <span class=\"screen-reader-text\">Inf2Stuender<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":{"0":"post-516","1":"page","2":"type-page","3":"status-publish","5":"entry"},"_links":{"self":[{"href":"https:\/\/iludis.de\/index.php?rest_route=\/wp\/v2\/pages\/516","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/iludis.de\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/iludis.de\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/iludis.de\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/iludis.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=516"}],"version-history":[{"count":0,"href":"https:\/\/iludis.de\/index.php?rest_route=\/wp\/v2\/pages\/516\/revisions"}],"wp:attachment":[{"href":"https:\/\/iludis.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=516"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}