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:algorithmen [2026-09-07 13:42] – [Aufgabe F1: Wand folgen] hofgf_informatik:karatutorial:algorithmen [2026-09-08 08:03] (aktuell) – [Aufgabe F2: Längster Tunnel] hof
Zeile 6: Zeile 6:
  
 In diesem Kapitel werden wir unsere Python-Kenntnisse vertiefen und auf algorithmische Probleme anwenden. In diesem Kapitel werden wir unsere Python-Kenntnisse vertiefen und auf algorithmische Probleme anwenden.
-### Aufgabe F1: Wand folgen+#### Aufgabe F1: Wand folgen
  
 Kara wacht eifersüchtig über ihren Blättervorrat. Schreibe Python-Code, der Kara immerzu um die Bäume herumlaufen lässt. Kara wacht eifersüchtig über ihren Blättervorrat. Schreibe Python-Code, der Kara immerzu um die Bäume herumlaufen lässt.
  
-**Hinweis**: Das Programm muss aktiv unterbrochen werden.+**Hinweis**: Das Programm hört von sich aus nie auf, muss also aktiv unterbrochen werden, um es zu stoppen.
  
-<kara-exercise id="wall-follower" step="100">+<kara-exercise id="wall-follower" step="100" timeout="inf">
 <kara-world> <kara-world>
 TTTTTTTTTTTTTTT TTTTTTTTTTTTTTT
-     >      T+            T
 T    TTTTT    T T    TTTTT    T
 T   TTLLLTT   T T   TTLLLTT   T
-T   TTLLLLT   T+T   TTLLLLT>  T
 T    TLLLTT   T T    TLLLTT   T
 T    TLLLT    T T    TLLLT    T
Zeile 46: Zeile 46:
  
 ++++TOC| ++++TOC|
-(already covered): +  * (already covered): 
-   * leaf counting +    * leaf counting 
-   * tunnel detection +    * tunnel detection 
-wall following +  wall following 
-longest tunnel finding +  longest tunnel finding 
-leaf ratio & comparisons (more / less) +  leaf ratio & comparisons (more / less) 
-distance between two leaves +  distance between two leaves 
-filling a rectangle with leaves +  filling a rectangle with leaves 
-Boustrophedon field sweep +  Boustrophedon field sweep 
-alternating pattern sowing+  alternating pattern sowing
 ++++ ++++
 +#### Aufgabe F2: Längster Tunnel
  
 +Schreibe Python-Code, um den Länge des längsten Tunnels auszugeben. Ein Tunnel ist definiert als eine gerade Strecke, bei der links **und** rechts ein Baum steht. Am Ende wird die Länge des längsten Tunnels auf der Konsole ausgegeben. Kara stoppt, wenn Sie auf einen Baum trifft.
  
 +**Tipps:**
 +  * Merke dir den bislang längsten Tunnel (Rekordhalter) in einer Variable (zu Beginn `0`).
 +  * Merke dir die Länge des aktuellen Tunnels in einer Variable.
 +    * am Ende jedes Tunnels vergleichst du den aktuellen Tunnel mit dem bisherigen Rekordhalter und setzt ev. diesen eventuell auf den neuen Höchstwert.
 +    * Vergleiche kannst du mit dem Operator `>` oder `<` anstellen, also `if laenge > rekord:`
 +    * danach wird die aktuelle Länge auf `0` gesetzt.
 +
 +<kara-exercise id="max_tunnel" step="200" showsolution>
 +<kara-world>
 +   TTTTTTTTTTTTTTTTTTTTTT
 +                      T
 +     TTTT   TTTTTT  T T
 +   T>                   T
 +        TTTTTTTT TT  TT
 +                      T
 +   TTTTTTTTTTTTTTTTTTTTTT
 +</kara-world>
 +<kara-solution>
 +record = 0
 +length = 0
 +while not kara.treeFront():
 +    if kara.treeLeft() and kara.treeRight():
 +        length = length + 1
 +        kara.putLeaf()  # optional
 +    else:
 +        if length > record:
 +            record = length
 +            print("Neuer Rekord:", record)
 +        length = 0
 +    kara.move()
 +print("Rekord:", record)
 +</kara-solution>
 +<kara-tests>
 +assert "4" in output_lines()[-1]
 +</kara-tests>
 +</kara-exercise>
  • gf_informatik/karatutorial/algorithmen.1788788540.txt.gz
  • Zuletzt geändert: 2026-09-07 13:42
  • von hof