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:karatutorial:loops [2026-08-14 15:14] hofgf_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, können wir eine Anweisung oder eine ganze Sequenz auch mit einer _Schleife_ wiederholen. Die untenstehende Schleife lässt Kara _solange_ (Englisch: _while_) vorwärts laufen, als sie **nicht** vor einem Pilz steht. Statt einen Befehl mehrere Male hintereinander hinzuschreiben, können wir eine Anweisung oder eine ganze Sequenz auch mit einer _Schleife_ wiederholen. Die untenstehende Schleife lässt Kara _solange_ (Englisch: _while_) vorwärts laufen, als sie **nicht** vor einem Pilz steht.
  
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 fortgesetzt.+    * Drücke <kbd>Tab</kbd>, um eine Zeile (oder mehrereeinzurücken, <key>⇧+Tab</key>, um sie auszurücken. 
 +    * Die [[wpde>Tabulatortaste]] heisst je nach Tastatur <key>⇥</key> oder <key>↹</key>, sie ist links der Taste <key>Q</key>
 +    * <key>⇧</key> bezeichnet die [[wpde>Umschalttaste]], teilweise auch mit <key>S</key> bezeichnet
 +  * Sobald die Bedingung falsch wird, wird das Programm nach dem eingerückten Block fortgesetzt.
  
 +Der Fachbegriff für eine Schleife ist **[[wpde>Iteration]]** (von lateinisch _iterare_ 'wiederholen').
  
-### Aufgabe 2+#### Aufgabe B1: Zwei Schleifen
 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, ob vor Kara ein Baum steht. 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, ob vor Kara ein Baum steht.
  
-<kara-editor step="300" id="a2">+<kara-exercise step="300" id="a2">
 while not kara.treeFront(): while not kara.treeFront():
     kara.move()     kara.move()
Zeile 43: Zeile 48:
    TTTTMTTTT    TTTTMTTTT
 </kara-world> </kara-world>
-</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
-++++ +<kara-tests> 
-### Aufgabe 3+assert kara.x == 4 and kara.y == 7, f"Kara sollte an 4/7 sein, war aber an {kara.x}/{kara.y}" 
 +</kara-tests> 
 +</kara-exercise> 
 + 
 +#### Aufgabe B2: Anpassungsfähige Kara
 Schreibe ein Kara-Programm, das mit zwei Schleifen zum Pilz gelangt! Funktioniert das Programm auch, wenn Kara zu Beginn in eine andere Richtung schaut? Schreibe ein Kara-Programm, das mit zwei Schleifen zum Pilz gelangt! Funktioniert das Programm auch, wenn Kara zu Beginn in eine andere Richtung schaut?
  
Zeile 74: Zeile 80:
  
 Probier deine Lösung ohne Änderung in dieser Welt aus: Probier deine Lösung ohne Änderung in dieser Welt aus:
- 
  
 <kara-editor step="300" id="a3_2"> <kara-editor step="300" id="a3_2">
Zeile 90: Zeile 95:
 </kara-editor> </kara-editor>
  
 +<nodisp 1>
 ++++Lösung 3| ++++Lösung 3|
 <code python> <code python>
Zeile 99: Zeile 105:
 </code> </code>
 ++++ ++++
 +</nodisp>
  
 ### 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 4+#### Aufgabe B3: Code interpretieren
  
 <WRAP todo> <WRAP todo>
Zeile 109: Zeile 116:
 </WRAP> </WRAP>
  
-Betrachte den folgenden Code! Wie wird sich Kara bewegen?+Betrachte den folgenden Code zuerst **ohne ihn auszuführen**! Wie wird sich Kara bewegen?
  
 <kara-editor step="300" id="a4"> <kara-editor step="300" id="a4">
Zeile 130: 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 immer? Kannst du ein Labyrinth entwerfen, aus dem Kara nicht hinausfindet?+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|
-Kara kann sich in _Taschen_ fangen, die sich nicht mit Links-Drehungen verlassen fangen. Wäre zum Beispiel der Baum unten rechts nicht vorhanden, würde sie nicht zum Pilz finden:+Kara kann sich in _Taschen_ fangen, die sich nicht mit Links-Drehungen verlassen lassen. Wäre zum Beispiel der Baum unten rechts nicht vorhanden, würde sie nicht zum Pilz finden:
  
 <kara-editor step="300" id="a4_b"> <kara-editor step="300" id="a4_b">
Zeile 158: 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. Beachteder Hashtag (`#`) im folgenden Codebeispiel markiert eine Kommentarzeile: Sie wird von Kara ignoriert. Mit Kommentaren kann Code erklärt werden.
  
 <code python> <code python>
  • gf_informatik/karatutorial/loops.1786720466.txt.gz
  • Zuletzt geändert: 2026-08-14 15:14
  • von hof