Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.

Link zu der Vergleichsansicht

Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung
Nächste Überarbeitung
Vorherige Überarbeitung
gf_informatik:programmieren_i [2024-09-05 15:12] – [Flächen füllen] hofgf_informatik:programmieren_i [2025-09-07 17:13] (aktuell) – [5. Lösungen] hof
Zeile 3: Zeile 3:
 ===== - Einführung ===== ===== - Einführung =====
  
-Ein Computer ist zunächst einfach mal eine Maschine, die wahnsinnig schnell arbeiten (rechnen) kann. Damit man zum Beispiel ein Spiel spielen können, muss irgend jemand dem Computer also sagen, was er denn genau zu tun hat. Jemand muss also ein **Computerprogramm**, oder **Code**, schreiben. Dieses besteht aus //Befehlen, die der Computer auszuführen// hat. Damit der Computer auch versteht, was er machen soll, müssen Programmierer und Computer 'die gleiche Sprache' sprechen. Es gibt sehr viele unterschiedliche solche Programmiersprachen mit unterschiedlichen Anwendungsbereiechen und Vor- und Nachteilen.+Ein Computer ist zunächst einfach mal eine Maschine, die wahnsinnig schnell arbeiten (rechnen) kann. Damit man zum Beispiel ein Spiel spielen können, muss irgend jemand dem Computer also sagen, was er denn genau zu tun hat. Jemand muss also ein **Computerprogramm**, oder **Code**, schreiben. Dieses besteht aus //Befehlen, die der Computer auszuführen// hat. Damit der Computer auch versteht, was er machen soll, müssen Programmierer und Computer 'die gleiche Sprache' sprechen. Es gibt sehr viele unterschiedliche solche Programmiersprachen mit unterschiedlichen Anwendungsbereichen und Vor- und Nachteilen.
  
-Wir wählen hier die Programmiersprache **Python**. Im Jahre 2020 ist diese Sprache sicher in der Top 3 der wichtigsten Programmiersprachen - wenn nicht sogar auf dem ersten Platz. Dazu kommt, dass Python im Vergleich zu anderen Sprachen, z.B. C\+\+ (C Plus Plus), Java oder C# (C Sharp) relativ einfach zu erlernen ist. +Wir wählen hier die Programmiersprache **Python**. Im Jahre 2025 ist diese Sprache sicher in der Top 3 der wichtigsten Programmiersprachen - wenn nicht sogar auf dem ersten Platz. Dazu kommt, dass Python im Vergleich zu anderen Sprachen, z.B. C\+\+ (C Plus Plus), Java oder C# (C Sharp) relativ einfach zu erlernen ist. 
  
-Wenn wir einen Satz mit vielen Schreibfelern und Grammatikfehler lesen, so sind wir meist trotzdem in der Lage, den Satz zu verstehen. Im Gegensatz zu uns hat ein Computer aber keine Intelligenz und ist deshalb nicht in der Lage, einen Text selbst zu interpretieren. Ein Computer kann ein Programm nur ausführen, wenn es gar keine Fehler, sogenannte **Bugs**, hat. Es ist deshalb ganz wichtig, dass man sich an die formalen Vorgaben der Programmiersprache hält.+Wenn wir einen Satz mit vielen Schreibfelern und Grammatikfehler lesen, so sind wir meist trotzdem in der Lage, den Satz zu verstehen. Im Gegensatz zu uns hat ein Computer aber keine Intelligenz und ist deshalb nicht in der Lage, einen Text selbst zu interpretieren. Ein Computer kann ein Programm nur ausführen, wenn es gar keine Fehler, sogenannte **Bugs**, hat. Es ist deshalb wichtig, dass man sich an die formalen Vorgaben der Programmiersprache hält.
  
-Wie gesagt werden wir in der Programmiersprache Python programmieren. Wir brauchen aber noch ein Programm, um unseren Code zu schreiben und auszuführen, eine sogenannte **IDE (Integrated Development Environment, auf Deutsch Entwicklungsumgebung)**. Dazu wählen wir die IDE **TigerJython**.+Wie gesagtwerden wir in der Programmiersprache Python programmieren. Wir brauchen aber noch ein Programm, um unseren Code zu schreiben und auszuführen, eine sogenannte **IDE (Integrated Development Environment, auf Deutsch Entwicklungsumgebung)**. Dazu wählen wir die IDE **TigerPython**.
  
  
 ==== Installation ====  ==== Installation ==== 
  
-=== Web Tiger Jython ===+=== Web Tiger Python ===
 Am einfachsten ist es, Programme direkt im Web zu schreiben: auf https://webtigerpython.ethz.ch/. Am einfachsten ist es, Programme direkt im Web zu schreiben: auf https://webtigerpython.ethz.ch/.
  
-Um ein Programm abzuspeichern, musst es heruntergeladen werden.+Um ein Programm abzuspeichern, musst es heruntergeladen werden:
  
 +{{ :gf_informatik:wtp_save_small.mp4 |}}
 +
 +Die heruntergeladene Datei muss noch in den richtigen Ordner verschoben werden, z.B. `1M/Informatik/Programmieren 1/`.
 +
 +Alternativ dazu kann ein Link kopiert werden und z.B. in einem Notiz-Dokument hinzugefügt werden.
 +
 +
 +<nodisp 2>
 +++++ Tiger Jython|
 === Tiger Jython === === Tiger Jython ===
  
-Alternativ steht ein installierbares Programm bereit, das auch _offline_ funktioniert. Gehe auf die Website [[https://www.tjgroup.ch/index.php?site=download|TigerJython]] und lade die passende Version von TigerJython für dein Betriebssystem hinunter und installiere diese.+Alternativ steht ein installierbares Programm bereit, das auch _offline_ funktioniert. Gehe auf die Website [[https://tigerjython.ch/de/products/download|TigerJython]] und lade die passende Version von TigerJython für dein Betriebssystem hinunter und installiere diese.
  
 *Tipp:* Wahrscheinlich benötigst du die 64-bit Version *Tipp:* Wahrscheinlich benötigst du die 64-bit Version
  
-*Achtung Mac User:* Mac User befolgen für die Installation die Schritte auf folgender Seite: [[https://www.tjgroup.ch/index.php?site=installMac]] +== Entwicklungsumgebung ===
- +
-==== Entwicklungsumgebung ==== +
  
 Das Menu in TigerJython oben links sieht aus wie folgt: Das Menu in TigerJython oben links sieht aus wie folgt:
Zeile 41: Zeile 48:
  
 Du solltest dir angewöhnen, möglichst wenig mit der Maus zu machen und anstelle die Tastatur benutzen. Besonders die Taste F5 (Programm ausführen) ist sehr praktisch. Du solltest dir angewöhnen, möglichst wenig mit der Maus zu machen und anstelle die Tastatur benutzen. Besonders die Taste F5 (Programm ausführen) ist sehr praktisch.
 +++++ 
 +</nodisp>
  
 ==== Aufgaben ==== ==== Aufgaben ====
Zeile 47: Zeile 55:
    * In jedem Kapitel gibt es ein **Set an Aufgaben**. Jedes Set ist mit einem Buchstaben gekennzeichnet.    * In jedem Kapitel gibt es ein **Set an Aufgaben**. Jedes Set ist mit einem Buchstaben gekennzeichnet.
    * Erstelle an einem Ort auf deinem Computer, der mit OneDrive synchronisiert wird, einen Ordner für die Informatik und darin einen Unterordner für dieses Thema, z.B.: `Informatik\Programmieren 1\`    * Erstelle an einem Ort auf deinem Computer, der mit OneDrive synchronisiert wird, einen Ordner für die Informatik und darin einen Unterordner für dieses Thema, z.B.: `Informatik\Programmieren 1\`
-   * Erstelle für **jede Aufgabe eine eigene Datei**. Benenne diese nach dem folgenden Schema: Aufgabe B2 in Datei `aufgabe_B_2`+   * Erstelle für **jede Aufgabe eine eigene Datei**. Benenne diese nach dem folgenden Schema: Aufgabe B2 in Datei `B2.py`
    * Für einige Aufgaben wird es **Musterlösungen** geben, aber nicht für alle. Falls du dir unsicher bist: Frage bei der Lehrperson nach.    * Für einige Aufgaben wird es **Musterlösungen** geben, aber nicht für alle. Falls du dir unsicher bist: Frage bei der Lehrperson nach.
    * Du bist **selbst verantwortlich**, dass du alle Aufgaben gelöst hast.    * Du bist **selbst verantwortlich**, dass du alle Aufgaben gelöst hast.
Zeile 55: Zeile 63:
    * Im Dossier gibt es viele kleine **Code-Beispiele**. Tippe diese jeweils //von Hand ab// und versuche, alles zu //verstehen//. Wenn du den Code per Copy-Paste kopierst, lernst du gar nichts!    * Im Dossier gibt es viele kleine **Code-Beispiele**. Tippe diese jeweils //von Hand ab// und versuche, alles zu //verstehen//. Wenn du den Code per Copy-Paste kopierst, lernst du gar nichts!
    * Verwende **Shortcuts**:    * Verwende **Shortcuts**:
-      * Ctrl+SSpeichern (mache dies regelmässig!)+      * Ctrl+EnterProgramm ausführen (statt auf den grünen Pfeil klicken).
       * Generell: Benutze die Maus so wenig wie möglich!       * Generell: Benutze die Maus so wenig wie möglich!
  
 ===== - Einfache Bewegungen ===== ===== - Einfache Bewegungen =====
  
-Kreiere ein neues Projekt und nenne es `turtle_01.py` und füge diesem folgenden Inhalt hinzu: +<html><iframe src="https://webtigerpython.ethz.ch/?layout=%5B%22Editor%22%2C%20%22Canvas%22%5D&lang=de&full_screen=false&dark_mode=false&device=-&code=NobwRAdghgtgpmAXGGUCWEB0AHAnmAGjABMoAXKJMAMwCcB7GAAjIFdayAbOJtGbehyYAqADoRxdNGQBeTALxMAKuy5wAFAEpxk2tJmZqggO5RaxdQEYADNc1gAvgF0gA%3D%3D%3D" allow="usb;clipboard-write" style="border: 1px solid lightgray; height: 10lh; width: 100%"> 
- +</iframe
-<code python> +</html>
-from turtle import * +
- +
-fritz Turtle() +
- +
-fritz.forward(100) +
-</code+
- +
-Verwende anstelle von *fritz* deinen Namen (keine Bindestriche im Namen!)+
  
 Erklärung der Zeilen: Erklärung der Zeilen:
   - Zuerst musst du das *Modul `turtle` importieren*, damit wir mit Turtlegrafik arbeiten können.   - Zuerst musst du das *Modul `turtle` importieren*, damit wir mit Turtlegrafik arbeiten können.
-  - Erzeuge einen neuen Turtle mit einem Namen. Man nennt dieses auch ein *Turtle-Objekt*. +  - Erzeuge eine neue Turtle mit einem Namen, hier `fritz`. Man nennt dieses auch ein *Turtle-Objekt*. 
-  - Gib deinem Turtle den Befehl, 100 Pixel vorwärts zu laufen.+  - Gib deiner Turtle den Befehl, 100 Pixel vorwärts zu laufen.
  
-Du kannst deinem Turtle nun auch sagen, er soll sich um einen gewissen Winkel drehen oder rückwärts laufen. Die wichtigsten Befehle sind die folgenden. Jedem Befehl muss der Name der Turtle (im Beispiel `fritz`) und ein Punkt vorangestellt werden. Viele weitere Befehle finden sich auf der  [[gf_informatik:programmieren_i:turtle_summary]].+Du kannst deiner Turtle nun auch sagen, er soll sich um einen gewissen Winkel drehen oder rückwärts laufen. Die wichtigsten Befehle sind die folgenden. Jedem Befehl muss der Name der Turtle (im Beispiel `fritz`) und ein Punkt vorangestellt werden. Viele weitere Befehle finden sich auf der  [[gf_informatik:programmieren_i:turtle_summary]].
  
 ^ Befehl ^ Beschreibung ^ ^ Befehl ^ Beschreibung ^
Zeile 84: Zeile 84:
 | `right(w)`   | um den Winkel `w` (in Grad) nach rechts drehen   | | `right(w)`   | um den Winkel `w` (in Grad) nach rechts drehen   |
 | `left(w)`    | um den Winkel `w` nach links drehen              | | `left(w)`    | um den Winkel `w` nach links drehen              |
-| `home()`     | setzt Turtle in die Mitte des Fensters mit Richtung nach oben +| `home()`     | setzt Turtle in die Mitte des Fensters mit Richtung nach rechts 
-| `hideturtle()`     | Turtle versteckt sich, darauf folgende Befehle werden ohne Animation ausgeführt |+| `hideturtle()`     | Turtle versteckt sich|
  
 Um die Turtle an eine andere Stelle zu bewegen, brauchst du die folgenden Befehle: Um die Turtle an eine andere Stelle zu bewegen, brauchst du die folgenden Befehle:
  
 ^ Befehl ^ Erklärung^ ^ Befehl ^ Erklärung^
-| `setpos(-100,50)` | Setzt Turtle an Position (-100,50) | +| `teleport(-100,50)` | Springt zu Position (-100,50), ohne eine Linie zu zeichnen. | 
-| `setx(30)`     | setzt x-Koordinate der Turtle (senkrechte Verschiebung) | +| `setpos(-100,50)` | Bewegt Turtle zu Position (-100,50), den Stift unten lassend. 
-| `sety(30)`     | setzt y-Koordinate der Turtle (horizontale Verschiebung) |+| `setx(30)`     | setzt x-Koordinate der Turtle (horizontale Verschiebung) | 
 +| `sety(30)`     | setzt y-Koordinate der Turtle (vertikale Verschiebung) |
 | `up()` | Hebt den Stift, es wird also **nicht gezeichnet** | | `up()` | Hebt den Stift, es wird also **nicht gezeichnet** |
 | `down()` | Setzt Stift wieder ab, es wird also wieder **gezeichnet** | | `down()` | Setzt Stift wieder ab, es wird also wieder **gezeichnet** |
- 
-Achtung: im WebTigerJython bleibt der Stift unten bei `setpos()`, für einen unsichtbaren Sprung musst du wie folgt vorgehen: 
- 
-<code python> 
-fritz.up()    # Stift hochheben 
-fritz.setpos(100, 200)  # Springen 
-fritz.down()  # Stift wieder auf die Leinwand senken 
-</code> 
  
 Du willst mehr machen? Dann findest du viele weitere Funktionen in der [[https://docs.python.org/3/library/turtle.html#turtle-methods|offiziellen Python-Turtle-Dokumentation]]. Du willst mehr machen? Dann findest du viele weitere Funktionen in der [[https://docs.python.org/3/library/turtle.html#turtle-methods|offiziellen Python-Turtle-Dokumentation]].
Zeile 121: Zeile 114:
 === Aufgabe A4 === === Aufgabe A4 ===
  
-Wahrscheinlich hast du die letzte Aufgabe (Quadrat ablaufen) so gelöst, dass dein Code aus 4x genau den gleichen vier Zeilen Code besteht. Dies ist zwar richtig, vom Programmierstyle her aber nicht sehr elegant. Mit `repeat` kannst du sagen, dass du einen Codeblock eine gewisse Anzahl mal hintereinander ausführen möchtest:+Wahrscheinlich hast du die Aufgabe (Quadrat ablaufen) so gelöst, dass dein Code aus 4x genau den gleichen vier Zeilen Code besteht. Dies ist zwar richtig, vom Programmierstyle her aber nicht sehr elegant. Mit `repeat` kannst du sagen, dass du einen Codeblock eine gewisse Anzahl mal hintereinander ausführen möchtest:
  
 <code python> <code python>
Zeile 196: Zeile 189:
  
 Just for fun: Just for fun:
-  * Kopiere den folgenden Code nach TigerPython (oder folge [[https://webtigerpython.ethz.ch/?code=NobwRAdghgtgpmAXGGUCWEB0AHAnmAGjABMoAXKJMAYgAIAVAVwCcyAbOWgdzWeNrQxsAe1Zo4rWowj84GThDiNOTVh1ow0ZADoQ6xODFoA5WHAi0A5ADNmWgF6XuvWcwDOZOGzZlMu28JGZCzsnIIikgBU_nZk9rQAvAwhHAAUAJS6unQAYrHxPHy00ADGABa0wgBG5lIytGwYANZutJ4cEWTirH4Qtg6YjNgZMQNucGQibqkAtACsAAwEtIuZffmYxMJcECMQ2bSYR7oAyiXMcOYZmFUA5iXCbKKp2mAXxK9r_XGYD0_MLzAXDKWjgnyy6wGNVuGAA-tY0N49hdsHByLQACyIXS0XG0FFosi0ADM2IseIp33smGsoi4UD4qQAjAsFmsKZSNnZbmUyKkAJxsnF4qmYDjWPlMgAcQshP3MxHhiLYGTAAF8ALpAA|diesem Link]])!+  * Kopiere den folgenden Code nach TigerPython (oder folge [[https://webtigerpython.ethz.ch/#?code=NobwRAdghgtgpmAXGGUCWEB0AHAnmAGjABMoAXKJMAYgAIAVAVwCcyAbOWgdzWeNrQxsAe1Zo4rWowj84GThDiNOTVh1ow0ZADoQ6xODFoA5WHAi0A5ADNmWgF6XuvWcwDOZOGzZlMuuvQA8gAigQJComS0EgDmACcQ9ua6tg60ALwMLOxwABQAlLr-tABidmT2zny00ADGABa0wgBG5lIytGwYANZutJ4cImISvinl9pgDcENkuQC0AKwADAS0y4UQxZjbugDKtcxw5gWYzTG1wmyiudpgh8S3G6kVmBdXzDdgXPVacI9FEGeE1aMQwAH1rGhvAVdIdsHByLQACyIXS0dG0OEIqIAZlRFgxhKBmGsoi4UD4uQAjEslhtCUTxpg7DF6rMAJx0tEY4kcayzKkADi5gKZ5mIEKhbAKYAAvgBdIA|diesem Link]]), aber führe ihn noch nicht aus!
   * Überlege dir bei jedem Codeblock, was dieser tut, und dokumentiere in einem Kommentar!   * Überlege dir bei jedem Codeblock, was dieser tut, und dokumentiere in einem Kommentar!
   * Vergleicht eure Voraussagen zu zweit.   * Vergleicht eure Voraussagen zu zweit.
Zeile 206: Zeile 199:
 # Turtle wird importiert und eine neue Turtle mit # Turtle wird importiert und eine neue Turtle mit
 # dem Namen 'fritz' wird erstellt. # dem Namen 'fritz' wird erstellt.
-from turtle import *+# TODO import
 fritz = Turtle() fritz = Turtle()
  
-# Fritz wird nach oben und links teleportiert. +# Fritz wird nach links und oben teleportiert. 
-fritz.up() +fritz.teleport(-50, 50)
-fritz.setpos(-50, 50+
-fritz.down()+
  
-...+Was passiert hier?
 Screen().bgcolor("red") Screen().bgcolor("red")
 fritz.color("white") fritz.color("white")
Zeile 235: Zeile 226:
 | `fillcolor('blue')` | Legt die **Farbe der Füllung** fest.| | `fillcolor('blue')` | Legt die **Farbe der Füllung** fest.|
 | `begin_fill()` / `end_fill()` | Füllt den ganzen zwischen `begin` und `end` gezeichneten Körper mit der Füllfarbe.| | `begin_fill()` / `end_fill()` | Füllt den ganzen zwischen `begin` und `end` gezeichneten Körper mit der Füllfarbe.|
-| `width(10)` | Legt die **Breite des Stiftes** fest (**nur WebTigerJython**).|+| `width(10)` | Legt die **Breite des Stiftes** fest.|
  
 ==== Aufgaben C ==== ==== Aufgaben C ====
Zeile 245: Zeile 236:
 Spieglein, Spieglein... Spieglein, Spieglein...
  
-{{:gf_informatik:pasted:20230905-083614.png?nolink&163}}+{{:gf_informatik:programmieren_i:pasted:20240906-095752.png?nolink&163}}
  
-<nodisp 2>+<nodisp 1>
 ++++Lösung| ++++Lösung|
-<code python c1.py> 
-from turtle import* 
-  
-t = Turtle() 
-t.hideturtle() 
  
-# Farbe und Stiftbreite +<html><iframe src="https://webtigerpython.ethz.ch/?code=NobwRAdghgtgpmAXGGUCWEB0AHAnmAGjABMoAXKJMAMwCcB7GAAjIFdayAbOJtGbehyYAqADoQm4skwC8TACrsucABQBKKZgAWaYnDYdu68ZIgBiJgDEotAEY9WEYkwDKZNNTK3acNGTiaAMb0nIIqomDY7NjcERoQZJgA7rpkWioArPGmFgDicNQAP5yc_rRMANI-aADOmvYA5hgA-tRoJcYJmIFotIFGGQAM8YlwTq3tnJ05TLm0HtSa8w1aZCoAnMOa1IJJNsQqAOxZ9VCBANZ7tAcALFtd3J4b94k7tFe3L5i2Z5f7KgAOYZgAC-AF0gA&layout=%5B%22Editor%22%2C%22Canvas%22%5Dallow="usb;clipboard-write" style="border: 1px solid lightgray; height: 30lh; width: 100%"> 
-t.color("purple"+</iframe> 
-t.width(5)+</html>
  
-# Gefüllter Kreis 
-t.begin_fill() 
-t.circle(50) 
-t.end_fill() 
- 
-# Griff 
-t.right(90) 
-t.forward(75) 
-t.backward(40) 
-t.left(90) 
-t.forward(40) 
-t.backward(80) 
-</code> 
 ++++ ++++
 </nodisp> </nodisp>
Zeile 278: Zeile 251:
 A star is born - don't forget to `repeat`: A star is born - don't forget to `repeat`:
  
-{{:gf_informatik:pasted:20230905-085320.png?nolink&175}}+{{:gf_informatik:programmieren_i:pasted:20240906-095842.png?nolink&175}}
  
-<nodisp 2>+<nodisp 1>
 ++++Lösung| ++++Lösung|
-<code python c2.py> +<html><iframe src="https://webtigerpython.ethz.ch/?code=NobwRAdghgtgpmAXGGUCWEB0AHAnmAGjABMoAXKJMAMwCcB7GAAjIFdayAbOJtGbehyYAqADoQm4skwC8TACrsucABQBKKZgAWaYnDYdu6pkwDETAGpxaAZzJwAxgGtpxND0WGerCMSaoHLVcoGyYALTg0QIg4CRtouE5OTHFxcwAJDHtaAHNaH2IAWgImADEAH6TCpgKmAGUyNGoyaihaACM4cTqHWjhY9Ux2nId6TkEVUTBONByg9s5WLrANCDJMajQk0fHaSbBcRPGAdynV9exYnYmp0lonPuIzzWPdMi0VABZVtPrHLVCAFFnLFNJ0chgAPqbJLqcR9S7kJgANkQ4hMJnW1EExzaxC-AAZVhiWJhaLMgioAIwAJiJ6IxWJxeMJxMZmG4zRUyPpa0wsWI0K2nDhEDAAF8ALpAA&layout=%5B%22Editor%22%2C%22Canvas%22%5D" allow="usb;clipboard-write" style="border: 1px solid lightgray; height: 30lh; width: 100%"> 
-from turtle import* +</iframe> 
-  +</html>
-Turtle() +
-t.hideturtle()  # Versteckt die Turtle und macht das Zeichnen schnell.+
  
-# Hintergrund-, Füll- und Stiftfarbe 
-Screen().bgcolor("lightblue") 
-t.fillcolor("yellow") 
-t.pencolor("darkred") 
-t.width(4) 
- 
-# Sechs Ecken 
-t.begin_fill() 
-repeat 6: 
-    t.forward(40) 
-    t.right(120) 
-    t.forward(40) 
-    t.left(60) 
-t.end_fill() 
-</code> 
 ++++ ++++
 </nodisp> </nodisp>
Zeile 311: Zeile 267:
 {{:gf_informatik:pasted:20230905-084624.png?nolink&200}} {{:gf_informatik:pasted:20230905-084624.png?nolink&200}}
  
-<nodisp 2>+<nodisp 1>
 ++++Lösung| ++++Lösung|
-<code python c3.py+<html><iframe src="https://webtigerpython.ethz.ch/?layout=%5B%22Editor%22%2C%20%22Canvas%22%5D&lang=de&full_screen=false&dark_mode=false&device=-&code=NobwRAdghgtgpmAXGGUCWEB0AHAnmAGjABMoAXKJMAMwCcB7GAAjIFdayAbOJtGbehwBUAHQhMxZJgF4mAFXZc4ACgCUkzAAs0xOGw7c1GgM7Y4cYsoAM68WIDKAY1rmIazACMA5o%2FqdByiJguHCc%2FgDuQbZkmL7%2BtIFgLsRRYhIQAMRM9hRkUl5QEABeTABuaKFwtEwAWlCOANZwEIhMADIYFeLE7I6aRRWazZgjGh5wXhgA%2BtRoYUYQLmbkTADMAGyIaUw7MdSC4VC0lgCMVjbbu5i0aF6aZMonqzY7WRtCT1a8xlJwGEwANQqnGo9SGxjK9HEGy%2BAHFaFBiJgNM1iDM5pw1GAAL4AXSAA" allow="usb;clipboard-write" style="border: 1px solid lightgray; height: 500px; width: 100%"
-from turtle import* +</iframe> 
-  +</html>
-t = Turtle() +
-t.hideturtle()+
  
-Screen().bgcolor("yellow") 
-t.color("red") 
- 
-# Statt ganz vieler Zacken: Linien durchziehen... 
-t.begin_fill() 
-repeat 36: 
-    t.forward(100) 
-    t.right(130)  # 36*130 ist ein Vielfaches von 360 Grad. 
-t.end_fill() 
-</code> 
 ++++ ++++
 </nodisp> </nodisp>
Zeile 336: Zeile 280:
  
 <nodisp 1> <nodisp 1>
-++++Lösungen|+++++Lösungen A|
 ==== Aufgaben A ==== ==== Aufgaben A ====
 +===== A2 =====
 +<html><iframe src="https://webtigerpython.ethz.ch/?code=NobwRAdghgtgpmAXGGUCWEB0AHAnmAGjABMoAXKJMAMwCcB7GAAjIFdayAbOJtGbehyYAqADoQm4umjIAvJgF4mAFXZc4ACgCU4qbRmzM1QQHcotYhoCMABhs6I0uZm7UyGgJz29Bo6fOWtt6O-s6u7l4OTobGtGYW1nZRoYbhnsHRfnEBiRkpLnBu6Q5gAL4AukA&layout=%5B%22Editor%22%2C%22Canvas%22%5D" allow="usb;clipboard-write" style="border: 1px solid lightgray; height: 20lh; width: 100%">
 +</iframe>
 +</html>
  
-<code python aufgabe_A2.py+===== A3 ===== 
-from turtle import * +<html><iframe src="https://webtigerpython.ethz.ch/?code=NobwRAdghgtgpmAXGGUCWEB0AHAnmAGjABMoAXKJMAMwCcB7GAAjIFdayAbOJtGbehyYAqADoQm4umjIAvJgF4mAFXZc4ACgCU48QGImAIVYBjABYBnCgCM4iJgGkptGbMzdqZDQE4ADDohpOUwyOG4BDg0AWgAmX18CJiiARniAoLdqQQB3KFpiDTj_Z1cQsLgIr1j4gmLAl2CXAHMzLwAWAFZ0hsycvILktuTu0tDwwSqi2pHGtBavPxne2lz8jUHh3QgDY3MrKFt7AGUS4LGKieiOhJS007cPdq77zCyV_vW7-tLHnzqM159Napf49dxwTx_JaA97Ar4A5qtKEvN6rAbwsGIhag0qoj4ggL6IymSw2OxMABKL3OlU-NwJL1-ixRQIKRWhWOR32CeLhONm8y5AN56P5bk5zO5yzRdOhv2SAGZnlKYTKNlowABfAC6QA&layout=%5B%22Editor%22%2C%22Canvas%22%5D" allow="usb;clipboard-write" style="border: 1px solid lightgray; height: 20lh; width: 100%"
-  +</iframe> 
-fritz = Turtle()+</html>
  
-fritz.forward(100) +===== A4 =====
-fritz.left(90) +
-fritz.forward(100) +
-fritz.left(90) +
-fritz.forward(100) +
-fritz.left(90) +
-fritz.forward(100) +
-fritz.left(90) +
-</code>+
  
 +<html><iframe src="https://webtigerpython.ethz.ch/?code=NobwRAdghgtgpmAXGGUCWEB0AHAnmAGjABMoAXKJMAMwCcB7GAAjIFdayAbOJtGbehyYAqADoRxdNGQBeTALxMAKuy5wAFAEpx42nGxxyTACyJxTC0ymzM1QQHcotYuoCMABnfaIlq7WkymNzUZOoAnF7iYAC-ALpAA&layout=%5B%22Editor%22%2C%22Canvas%22%5D" allow="usb;clipboard-write" style="border: 1px solid lightgray; height: 20lh; width: 100%">
 +</iframe>
 +</html>
 +++++
 +</nodisp>
  
-<code python aufgabe_A3.py+<nodisp 1
-from turtle import * +++++Lösungen B|
-  +
-fritz = Turtle() +
- +
-# Buchstabe: K +
-fritz.up() +
-fritz.setpos(-200,-100) +
-fritz.down() +
-fritz.forward(200) +
-fritz.up() +
-fritz.setpos(-200,0) +
-fritz.down() +
-fritz.right(45) +
-fritz.forward(141) +
-fritz.up() +
-fritz.setpos(-200,0) +
-fritz.down() +
-fritz.right(90) +
-fritz.forward(141) +
- +
-# Buchstabe: S +
-fritz.up() +
-fritz.setpos(-50,-100) +
-fritz.down() +
-fritz.left(45) +
-fritz.forward(100) +
-fritz.left(90) +
-fritz.forward(100) +
-fritz.left(90) +
-fritz.forward(100) +
-fritz.right(90) +
-fritz.forward(100) +
-fritz.right(90) +
-fritz.forward(100) +
- +
-# Buchstabe: R +
-fritz.up() +
-fritz.setpos(100,-100) +
-fritz.down() +
-fritz.left(90) +
-fritz.forward(200) +
-fritz.right(90) +
-fritz.forward(100) +
-fritz.right(90) +
-fritz.forward(100) +
-fritz.right(90) +
-fritz.forward(100) +
-fritz.left(135) +
-fritz.forward(141) +
-</code> +
- +
- +
-<code python aufgabe_A4.py> +
-from turtle import * +
- +
-fritz = Turtle() +
- +
-repeat 4: +
-    fritz.forward(100) +
-    fritz.left(90) +
-</code>+
  
 ==== Aufgaben B ==== ==== Aufgaben B ====
 +===== B1 =====
  
-<code python aufgabe_B1.py+<html><iframe src="https://webtigerpython.ethz.ch/?code=NobwRAdghgtgpmAXGGUCWEB0AHAnmAGjABMoAXKJMAMwCcB7GAAjIFdayAbOJtGbehyYAqADoRxqMmTj0mAXiYAVdlzgAKAJTjxtONjjkmAJkTimFplJn1MxemXXGADNoiWr5G5m7VHAFgBWNw9rWUxqQQB3KFpidQBGZ1dzSzDbe0cXELSvcNo0AHMAC0cAThT3XOlwyNoYuMTknIt0uwcnSo8AYmV2d18yJnoITlwmIIAGpigAZxZingg4AA8hhlYIYlSLXqi0Tk4mWYohfbJimaZBln7MHc8a20H1ILcwAF8AXSA&layout=%5B%22Editor%22%2C%22Canvas%22%5D" allow="usb;clipboard-write" style="border: 1px solid lightgray; height: 20lh; width: 100%"
-from turtle import*+</iframe> 
 +</html>
  
-matteo Turtle()+===== B2 =====
  
-repeat 2: +<html><iframe src="https://webtigerpython.ethz.ch/?code=NobwRAdghgtgpmAXGGUCWEB0AHAnmAGjABMoAXKJMAMwCcB7GAAjIFdayAbOJtGbehyYAqADoRxqMmTj0mAXiYAVdlzgAKAJSTyM-pm7Uy6gJwAGbRIhS9mGdwEd1AWgDMZswSYXxO6bMwAYzRaQO4Xd08mAEYADh9rXQDg0PDnaIBWKLiEm2SQsI1M7PjLMABfAF0gA&layout=%5B%22Editor%22%2C%22Canvas%22%5D" allow="usb;clipboard-write" style="border: 1px solid lightgray; height: 20lh; width: 100%"> 
-    matteo.dot(20) +</iframe> 
-    matteo.right(45) +</html>
-    matteo.forward(150) +
-    matteo.dot(20) +
-    matteo.right(90) +
-    matteo.forward(150) +
-    matteo.left(90+45) +
-    matteo.dot(20) +
-</code>+
  
 +===== B3 =====
  
-<code python aufgabe_B2.py+<html><iframe src="https://webtigerpython.ethz.ch/?code=NobwRAdghgtgpmAXGGUCWEB0AHAnmAGjABMoAXKJMAMwCcB7GAAjIFdayAbOJtGbehyYAqADoRxqMmTj0mAXiYAVdlzgAKAJSTyM-pm7Uy6gJwAGbRIhS9mAMZpad7uoC0ARjNmCTAMwA2Cx1pWXtHZw1XACYvHwCg611QhycXVwAWWKYAdgTg2xluAQ51byYEm1CAZzgyAAs4KGIMAHNTPMSQ_RSI9U8y-MtK7vCXGIHAoaSR1I1MstzLMABfAF0gA&layout=%5B%22Editor%22%2C%22Canvas%22%5D" allow="usb;clipboard-write" style="border: 1px solid lightgray; height: 20lh; width: 100%"
-from turtle import *+</iframe> 
 +</html>
  
-matteo = Turtle() 
  
-fritz.up() +===== B4 =====
-matteo.setX(-300) +
-fritz.down()+
  
-matteo.circle(-300, 180) +<html><iframe src="https://webtigerpython.ethz.ch/?code=NobwRAdghgtgpmAXGGUCWEB0AHAnmAGjABMoAXKJMAMwCcB7GAAjIFdayAbOJtGbehyYAqADoRxUCNCYBeJgBV2XOAAoAlJOlRMACzTE4bDtw3jxAYiYBGLdEzdqZVQE4ADJujbMZONwEcqgC0AMwArG4EQdZuHuYQtHDYcORMIYjiTFlMUvbUggDuULTEqgBMsZ7ZOd60aADmus7WFZ6WTGV2Or7-gs7RsVERbQlJKWRMAGwZENW5Ovm0RSWqMXGz2fOYdY3Ok-vtIV0-fkl9qxFDB6PJqWUzc96Ly6VrVZu1DU2u64m3E-lMh88oViq9KkCsltHM53OowABfAC6QA&layout=%5B%22Editor%22%2C%22Canvas%22%5D" allow="usb;clipboard-write" style="border: 1px solid lightgray; height: 20lh; width: 100%"> 
-matteo.circle(-150, 180) +</iframe> 
-matteo.circle(-150, 180) +</html>
-</code>+
  
 +===== B5 =====
  
-<code python aufgabe_B3.py+<html><iframe src="https://webtigerpython.ethz.ch/?code=NobwRAdghgtgpmAXGGUCWEB0AHAnmAGjABMoAXKJMAMwCcB7GAAjIFdayAbOJtGbehyYAqADoQm4gFb0AznGpMAvEwAq7LnAAUASnEBiGfOqYAFmmJw2HbrvHjmKgEwAGF-M7KmMYbICOHFpOehCyXjAA9P6BwfYQRgqY3NRkWgCMAMwArCEJJtSCAO5QtMRanCG0cNhw5ExOiOJMzUx5mLRoAOamqQCcLiEtrXKJBbTFpVqyuSMmHd19A9KzmGMTZRXLxu1dPenZM9trJWUwldW1ZEwZjRItbfN7_YP3K8eTZ2AAvgC6QA&layout=%5B%22Editor%22%2C%22Canvas%22%5D" allow="usb;clipboard-write" style="border: 1px solid lightgray; height: 20lh; width: 100%"
-from turtle import *+</iframe> 
 +</html>
  
-matteo = Turtle() 
- 
-matteo.circle(-100, 360) 
-matteo.circle(-200, 360) 
-matteo.circle(-400, 70) 
-matteo.home() 
-matteo.circle(100, 360) 
-matteo.circle(200, 360) 
-matteo.circle(400, 70) 
-</code> 
- 
-<code python aufgabe_B4.py> 
-from turtle import * 
- 
-anna = Turtle() 
-anna.hideturtle() 
- 
-# 1 
-fritz.up() 
-anna.setpos(-350,-100) 
-fritz.down() 
- 
-repeat 3: 
-    anna.forward(200) 
-    anna.right(120) 
- 
-# 2 
-fritz.up() 
-anna.setpos(-100,-50) 
-fritz.down() 
- 
-repeat 6: 
-    anna.forward(100) 
-    anna.right(60) 
- 
-# 3 
-fritz.up() 
-anna.setpos(150,-50) 
-fritz.down() 
- 
-repeat 2: 
-    anna.forward(100) 
-    anna.right(90) 
-repeat 3: 
-    anna.forward(100) 
-    anna.left(90) 
-</code> 
- 
-<code python aufgabe_B5.py> 
-from turtle import * 
-  
-josef = Turtle() 
-#josef.hideturtle() 
-fritz.up() 
-josef.setpos(350,-100) 
-fritz.down() 
- 
- 
-m = 200 
-l = m*sqrt(2) 
-s = m/sqrt(2) 
- 
-josef.left(45) 
-josef.forward(l) 
-repeat 2: 
-    josef.right(90) 
-    josef.forward(s) 
-josef.right(90) 
-josef.forward(l) 
-josef.right(135) 
-josef.forward(m) 
-repeat 3: 
-    josef.right(90) 
-    josef.forward(m) 
-</code> 
 ++++ ++++
 </nodisp> </nodisp>
  
  • gf_informatik/programmieren_i.1725549176.txt.gz
  • Zuletzt geändert: 2024-09-05 15:12
  • von hof