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:loops [2026-08-14 15:17] – [Aufgabe 4] hof | gf_informatik:karatutorial:loops [2026-08-29 07:59] (aktuell) – hof | ||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| - | ## Wiederholungen und Schleifen | + | ## Iteration mit Schleifen |
| Statt einen Befehl mehrere Male hintereinander hinzuschreiben, | Statt einen Befehl mehrere Male hintereinander hinzuschreiben, | ||
| Zeile 21: | Zeile 22: | ||
| **Beachte: | **Beachte: | ||
| * Nach der Bedingung von `while` muss ein Doppelpunkt `:` stehen. | * Nach der Bedingung von `while` muss ein Doppelpunkt `:` stehen. | ||
| - | * Die zu wiederholenden Anweisungen werden **gleichmässig eingerückt** (normalerweise mit vier Leerzeichen). | + | * Die zu wiederholenden Anweisungen werden **gleichmässig eingerückt** |
| - | * Sobald die Bedingung falsch wird, wird das Programm nach der Schleife | + | * Drücke < |
| + | * Die [[wpde> | ||
| + | * < | ||
| + | * Sobald die Bedingung falsch wird, wird das Programm nach dem eingerückten Block fortgesetzt. | ||
| + | Der Fachbegriff für eine Schleife ist **[[wpde> | ||
| - | ### Aufgabe | + | #### Aufgabe |
| Schau dir die untenstehende Kara-Welt gut an. Kannst du ein Kara-Programm schreiben, das **mit zwei Schleifen** zum Pilz kommt? Dafür kannst du mit `kara.treeFront()` herausfinden, | Schau dir die untenstehende Kara-Welt gut an. Kannst du ein Kara-Programm schreiben, das **mit zwei Schleifen** zum Pilz kommt? Dafür kannst du mit `kara.treeFront()` herausfinden, | ||
| - | <kara-editor | + | <kara-exercise |
| while not kara.treeFront(): | while not kara.treeFront(): | ||
| kara.move() | kara.move() | ||
| Zeile 43: | Zeile 48: | ||
| | | ||
| </ | </ | ||
| - | </kara-editor> | + | <kara-solution> |
| - | + | ||
| - | ++++Lösung 2| | + | |
| - | <code python> | + | |
| while not kara.treeFront(): | while not kara.treeFront(): | ||
| kara.move() | kara.move() | ||
| Zeile 54: | Zeile 56: | ||
| while not kara.mushroomFront(): | while not kara.mushroomFront(): | ||
| kara.move() | kara.move() | ||
| - | </code> | + | </kara-solution> |
| - | ++++ | + | < |
| - | ### Aufgabe | + | assert kara.x == 4 and kara.y == 7, f"Kara sollte an 4/7 sein, war aber an {kara.x}/ |
| + | </ | ||
| + | </ | ||
| + | |||
| + | #### Aufgabe | ||
| Schreibe ein Kara-Programm, | Schreibe ein Kara-Programm, | ||
| Zeile 74: | Zeile 80: | ||
| Probier deine Lösung ohne Änderung in dieser Welt aus: | Probier deine Lösung ohne Änderung in dieser Welt aus: | ||
| - | |||
| < | < | ||
| Zeile 90: | Zeile 95: | ||
| </ | </ | ||
| + | <nodisp 1> | ||
| ++++Lösung 3| | ++++Lösung 3| | ||
| <code python> | <code python> | ||
| Zeile 99: | Zeile 105: | ||
| </ | </ | ||
| ++++ | ++++ | ||
| + | </ | ||
| ### Verschachtelte Schleifen | ### Verschachtelte Schleifen | ||
| Eine `while`-Schleife lässt sich auch innerhalb einer anderen Schleife verschachteln. | Eine `while`-Schleife lässt sich auch innerhalb einer anderen Schleife verschachteln. | ||
| - | #### Aufgabe | + | |
| + | #### Aufgabe | ||
| <WRAP todo> | <WRAP todo> | ||
| Zeile 108: | Zeile 116: | ||
| </ | </ | ||
| - | Betrachte den folgenden Code! Wie wird sich Kara bewegen? | + | Betrachte den folgenden Code zuerst **ohne ihn auszuführen**! Wie wird sich Kara bewegen? |
| < | < | ||
| Zeile 129: | Zeile 137: | ||
| - | Kara geht geradeaus, solange kein Pilz vor ihr steht. Wenn sie dabei auf einen Baum trifft, wendet sie nach links, bis der Weg frei ist. Funktioniert das bereits | + | Kara geht geradeaus, solange kein Pilz vor ihr steht. Wenn sie dabei auf einen Baum trifft, wendet sie nach links, bis der Weg frei ist. Funktioniert das immer? Kannst du ein Labyrinth entwerfen, aus dem Kara nicht hinausfindet? |
| ++++Antwort| | ++++Antwort| | ||
| Zeile 157: | Zeile 165: | ||
| Gratuliere, du hast deine ersten Kara-Schleifen geschrieben! | Gratuliere, du hast deine ersten Kara-Schleifen geschrieben! | ||
| - | Um wirklich ein Programm schreiben zu können, das aus vielen oder sogar allen Labyrinthen findet, möchten wir etwas von der folgenden Form haben: | + | Um wirklich ein Programm schreiben zu können, das aus vielen oder sogar allen Labyrinthen findet, möchten wir etwas von der folgenden Form haben. Beachte: der Hashtag (`#`) im folgenden Codebeispiel markiert eine Kommentarzeile: |
| <code python> | <code python> | ||