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-24 13:33] – [Iteration mit Schleifen] hof | gf_informatik:karatutorial:loops [2026-08-29 07:59] (aktuell) – hof | ||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| ## Iteration mit Schleifen | ## Iteration mit Schleifen | ||
| + | |||
| Statt einen Befehl mehrere Male hintereinander hinzuschreiben, | Statt einen Befehl mehrere Male hintereinander hinzuschreiben, | ||
| Zeile 22: | Zeile 23: | ||
| * 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** | * Die zu wiederholenden Anweisungen werden **gleichmässig eingerückt** | ||
| - | * Drücke < | + | * Drücke < |
| - | * Die Tabulator-Taste | + | * Die [[wpde> |
| + | * < | ||
| * Sobald die Bedingung falsch wird, wird das Programm nach dem eingerückten Block fortgesetzt. | * Sobald die Bedingung falsch wird, wird das Programm nach dem eingerückten Block fortgesetzt. | ||
| Der Fachbegriff für eine Schleife ist **[[wpde> | 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 46: | Zeile 48: | ||
| | | ||
| </ | </ | ||
| - | </kara-editor> | + | <kara-solution> |
| - | + | ||
| - | <nodisp 2> | + | |
| - | ++++Lösung 2| | + | |
| - | <code python> | + | |
| while not kara.treeFront(): | while not kara.treeFront(): | ||
| kara.move() | kara.move() | ||
| Zeile 58: | Zeile 56: | ||
| while not kara.mushroomFront(): | while not kara.mushroomFront(): | ||
| kara.move() | kara.move() | ||
| - | </code> | + | </kara-solution> |
| - | ++++ | + | < |
| - | </nodisp> | + | assert kara.x == 4 and kara.y == 7, f"Kara sollte an 4/7 sein, war aber an {kara.x}/ |
| + | </ | ||
| + | </kara-exercise> | ||
| - | ### Aufgabe | + | #### Aufgabe |
| Schreibe ein Kara-Programm, | Schreibe ein Kara-Programm, | ||
| Zeile 95: | Zeile 95: | ||
| </ | </ | ||
| - | < | + | < |
| ++++Lösung 3| | ++++Lösung 3| | ||
| <code python> | <code python> | ||
| Zeile 110: | Zeile 110: | ||
| 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 116: | 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 137: | 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| | ||