Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.
| Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung Nächste Überarbeitung | Vorherige Überarbeitung | ||
| gf_informatik:karatutorial:verzweigungen [2026-08-28 06:46] – hof | gf_informatik:karatutorial:verzweigungen [2026-09-02 07:25] (aktuell) – hof | ||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| - | <nodisp 2> | ||
| - | ++++Unterrichtskonzeption| | ||
| - | * L1: | ||
| - | * Sequenz, Iteration (`while`) | ||
| - | * Einführung Bottom-Editor, | ||
| - | * L2: | ||
| - | * Vertiefung und Wiederholung Iteration | ||
| - | * Sequenz in Iteration | ||
| - | * Mehrere Iterationen | ||
| - | * Verschachtelte Iteration | ||
| - | * Selektion | ||
| - | * mit Blatt (`if kara.onLeaf()`) | ||
| - | * if-else (Blätter sammeln / legen) | ||
| - | * L3: | ||
| - | * Algorithmik | ||
| - | * Von der Idee zum Programm: | ||
| - | * Python lesen und beschreiben. | ||
| - | * Python-Programm in Natural Language (NL) beschreiben. | ||
| - | * NL Schritt-für-Schritt in Python übersetzen | ||
| - | * Selber ein NL-Programm aufschreiben | ||
| - | * Sequenz | ||
| - | * Iteration (was ist die Bedingung für `while`?) | ||
| - | * L4: | ||
| - | * Bool' | ||
| - | * L5: | ||
| - | * Variablen | ||
| - | * Schleifen mit Zähler | ||
| - | ++++ | ||
| - | </ | ||
| - | |||
| ## Selektion mit Verzweigungen | ## Selektion mit Verzweigungen | ||
| Zeile 40: | Zeile 10: | ||
| * Schlägt fehlt und beendet das Programm, wenn kein Blatt vorhanden ist. | * Schlägt fehlt und beendet das Programm, wenn kein Blatt vorhanden ist. | ||
| - | + | #### Aufgabe | |
| - | ### Aufgabe: Blätter sammeln | + | |
| Schreibe Code, um alle bestehenden Blätter aufzusammeln. Achtung, auf dem Startfeld hat es kein Blatt! | Schreibe Code, um alle bestehenden Blätter aufzusammeln. Achtung, auf dem Startfeld hat es kein Blatt! | ||
| - | < | + | < |
| < | < | ||
| | | ||
| Zeile 57: | Zeile 26: | ||
| </ | </ | ||
| < | < | ||
| - | assert world_leaves() == 0, "keine Blätter | + | assert world_leaves() == 0, f"Es hat noch {world_leaves()} |
| </ | </ | ||
| </ | </ | ||
| + | |||
| ### Verzweigungen | ### Verzweigungen | ||
| - | Wir können nur Blätter aufnehmen, wenn eines vorhanden ist. Um eine Anweisung nur dann auszuführen, | + | Wir können nur Blätter aufnehmen, wenn eines vorhanden ist. Um eine Anweisung nur dann auszuführen, |
| + | |||
| + | Der Fachbegriff für eine Verzweigung ist **Selektion** (Auswahl eines Ausführungspfades). | ||
| Beispiel: Der folgende Code sammelt nur dann ein Blatt, wenn `kara.onLeaf()` wahr ist. Beachte: Der bedingt ausgeführte Code-Block muss **eingerückt** sein. | Beispiel: Der folgende Code sammelt nur dann ein Blatt, wenn `kara.onLeaf()` wahr ist. Beachte: Der bedingt ausgeführte Code-Block muss **eingerückt** sein. | ||
| Zeile 81: | Zeile 53: | ||
| </ | </ | ||
| - | Der Fachbegriff für eine Verzweigung ist **Selektion** (Auswahl einer Anweisung). | + | #### Aufgabe |
| - | + | ||
| - | ### Aufgabe: Blätter verteilen | + | |
| Schreibe Code, der gerade umgekehrt funktioniert: | Schreibe Code, der gerade umgekehrt funktioniert: | ||
| Zeile 106: | Zeile 76: | ||
| - | ### Aufgabe Labyrinth-Gärtner | + | #### Aufgabe |
| Schreibe Code mit `while` und `if`, um alle Blätter aufzusammeln. Kara stoppt, wenn Sie einen Pilz erreicht. | Schreibe Code mit `while` und `if`, um alle Blätter aufzusammeln. Kara stoppt, wenn Sie einen Pilz erreicht. | ||
| - | < | + | < |
| < | < | ||
| | | ||
| Zeile 142: | Zeile 112: | ||
| Der folgende Code sammelt die bestehenden Blätter und legt ein neues Blatt hin, falls es keines hat (ausser im letzten Feld): | Der folgende Code sammelt die bestehenden Blätter und legt ein neues Blatt hin, falls es keines hat (ausser im letzten Feld): | ||
| - | < | + | < |
| < | < | ||
| | | ||
| Zeile 159: | Zeile 129: | ||
| </ | </ | ||
| - | ### Aufgabe: Blattwanderung | + | #### Aufgabe |
| Schreibe Python-Code mit folgenden Eigenschaften: | Schreibe Python-Code mit folgenden Eigenschaften: | ||
| Zeile 197: | Zeile 167: | ||
| </ | </ | ||
| </ | </ | ||
| - | ### Aufgabe: Pilzsuche | + | |
| + | #### Aufgabe | ||
| Lies das folgende Python-Programm für Kara und beschreibe es in natürlicher Sprache. Bestimme, auf welchem Feld Kara landen wird. | Lies das folgende Python-Programm für Kara und beschreibe es in natürlicher Sprache. Bestimme, auf welchem Feld Kara landen wird. | ||
| Zeile 217: | Zeile 188: | ||
| </ | </ | ||
| - | < | + | < |
| ++++Lösung| | ++++Lösung| | ||
| - | Kara landet auf dem Feld **B6**: | + | Kara landet auf dem Feld **B6**. |
| + | |||
| + | Eine Beschreibung könnte so aussehen: | ||
| + | * Solange Kara nicht vor einem Baum steht: | ||
| + | * Falls Kara auf einem Blatt steht: | ||
| + | * ... wendet sie nach links. | ||
| + | * Falls Kara vor einem Pilz steht: | ||
| + | * ... wendet sie nach rechts. | ||
| + | * So oder so geht Kara einen Schritt weiter. | ||
| < | < | ||
| Zeile 245: | Zeile 224: | ||
| </ | </ | ||
| - | ### Aufgabe Golfplatz (schwierig) | + | #### Aufgabe |
| Der Golf-Rasen ist voller Blätter - schreibe Code, um alle Blätter aufzusammeln! | Der Golf-Rasen ist voller Blätter - schreibe Code, um alle Blätter aufzusammeln! | ||
| Zeile 253: | Zeile 232: | ||
| ++++ | ++++ | ||
| - | < | + | < |
| < | < | ||
| | | ||
| - | T> | + | TeLLLLLLLLT |
| | | ||
| | | ||
| Zeile 269: | Zeile 248: | ||
| < | < | ||
| # Spirale laufen | # Spirale laufen | ||
| - | kara.move() | ||
| while kara.onLeaf(): | while kara.onLeaf(): | ||
| kara.removeLeaf() | kara.removeLeaf() | ||
| Zeile 288: | Zeile 266: | ||
| </ | </ | ||
| </ | </ | ||
| + | |||
| + | ### Weiter | ||
| + | Weiter gehts mit [[.: | ||