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:leaves [2026-08-28 06:04] hofgf_informatik:karatutorial:leaves [2026-08-28 06:43] (aktuell) hof
Zeile 21: Zeile 21:
           * Sequenz           * Sequenz
           * Iteration (was ist die Bedingung für `while`?)           * Iteration (was ist die Bedingung für `while`?)
 +  * L4:
 +    * Bool'sche Logik: `not`, `and`, `or`
 +  * L5:
 +    * Variablen
 +    * Schleifen mit Zähler
 ++++ ++++
 </nodisp> </nodisp>
 +
 ## Blätter sammeln ## Blätter sammeln
 Neben Pilzen gibt es in der Kara-Welt auch Kleeblätter (en. _leaf_). Während ein einzelner Pilz von Kara herumgeschoben werden kann, können Blätter gelegt und aufgenommen werden. Die folgenden Funktionen stehen zur Verfügung: Neben Pilzen gibt es in der Kara-Welt auch Kleeblätter (en. _leaf_). Während ein einzelner Pilz von Kara herumgeschoben werden kann, können Blätter gelegt und aufgenommen werden. Die folgenden Funktionen stehen zur Verfügung:
Zeile 52: Zeile 58:
 </kara-tests> </kara-tests>
 </kara-exercise> </kara-exercise>
- 
 ### Verzweigungen ### Verzweigungen
 Wir können nur Blätter aufnehmen, wenn eines vorhanden ist. Um eine Anweisung nur dann auszuführen, wenn eine Bedingung wahr ist, verwenden wir eine Verzweigung. Das Schlüsselwort in Python lautet `if`. Wir können nur Blätter aufnehmen, wenn eines vorhanden ist. Um eine Anweisung nur dann auszuführen, wenn eine Bedingung wahr ist, verwenden wir eine Verzweigung. Das Schlüsselwort in Python lautet `if`.
Zeile 74: Zeile 79:
  
 Der Fachbegriff für eine Verzweigung ist **Selektion** (Auswahl einer Anweisung). Der Fachbegriff für eine Verzweigung ist **Selektion** (Auswahl einer Anweisung).
 +
 +### Aufgabe: Blätter verteilen
 +
 +Schreibe Code, der gerade umgekehrt funktioniert: Überall, wo **kein** Blatt ist, soll eines hingelegt werden - auch im Startfeld.
 +
 +<kara-exercise id="put_leaves_if" showsolution>
 +<kara-world>
 +   TTTTTTTTTT
 +   T>L L L LT
 +   TTTTTTTTTT
 +</kara-world>
 +<kara-tests>
 +assert world_leaves() == 8, "8 Blätter erwartet"
 +</kara-tests>
 +<kara-solution>
 +while not kara.treeFront():
 +    if not kara.onLeaf():
 +        kara.putLeaf()
 +    kara.move()
 +</kara-solution>
 +</kara-exercise>
 +
 +
  
 ### Aufgabe Labyrinth-Gärtner ### Aufgabe Labyrinth-Gärtner
Zeile 166: Zeile 194:
 </kara-tests> </kara-tests>
 </kara-exercise> </kara-exercise>
- 
 ### Aufgabe: Pilzsuche ### Aufgabe: Pilzsuche
  
 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.
  
-<kara-exercise id="leaf_walkshowsolution>+<WRAP group> 
 +<WRAP column twothirds> 
 +<code python> 
 +while not kara.treeFront(): 
 +    if kara.onLeaf(): 
 +        kara.turnLeft() 
 +    if kara.mushroomFront(): 
 +        kara.turnRight() 
 +    kara.move() 
 +</code> 
 +</WRAP> 
 +<WRAP column third> 
 +{{.:leaves:pasted:20260828-062628.png?nolink&407|}} 
 +</WRAP> 
 +</WRAP> 
 + 
 +<nodisp 2> 
 +++++Lösung| 
 +Kara landet auf dem Feld **B6**: 
 + 
 +<kara-exercise id="mushroom_walk">
 <kara-world> <kara-world>
    TTTTTTTTTTT    TTTTTTTTTTT
Zeile 178: Zeile 225:
    T M  ML   T    T M  ML   T
            T            T
-     LM   LT+     LM  L T
     v    T     v    T
-           T 
     L    T     L    T
-        LT+       L T 
 +           T
    TTTTTTTTTTT    TTTTTTTTTTT
 </kara-world> </kara-world>
Zeile 192: Zeile 239:
     kara.move()     kara.move()
 </kara-exercise> </kara-exercise>
 +++++ 
 +</nodisp>
  
 ### Aufgabe Golfplatz (schwierig) ### Aufgabe Golfplatz (schwierig)
Zeile 221: Zeile 269:
 while kara.onLeaf(): while kara.onLeaf():
     kara.removeLeaf()     kara.removeLeaf()
-    # Wenden, bis Bahn frei +    # Wenden beim Baum. 
-    while kara.treeFront():+    if kara.treeFront():
         kara.turnRight()         kara.turnRight()
     kara.move()     kara.move()
  • gf_informatik/karatutorial/leaves.1787897091.txt.gz
  • Zuletzt geändert: 2026-08-28 06:04
  • von hof