Arbeitsblätter für JavaKara

JavaKara: Schriftliche Übung 1 (Lösungen)

Autor: Horst Gierhardt



  1. Finde jeweils zu den Kara-Bedingungen die negierte Form!

    Bed.: kara.treeFront() || kara.treeRight()
    neg.: !kara.treeFront() && !kara.treeRight()
    Bed.: kara.treeFront() && kara.treeRight()
    neg.: !kara.treeFront() || !kara.treeRight()
    Bed.: kara.treeFront() || !kara.onLeaf()
    neg.: !kara.treeFront() && kara.onLeaf()
    Bed.: !kara.treeLeft() && kara.treeFront() && !kara.treeRight()
    neg.: kara.treeLeft() || !kara.treeFront() || kara.treeRight()
  2. Drücke die auf Deutsch formulierten Anweisungen in der Sprache Java für Kara aus: ,,Wenn vorne kein Baum, aber ein Pilz steht, so gehe einen Schritt vor und drehe nach rechts, sonst gehe einen Schritt nach links, falls dort kein Baum steht.''

      if (!kara.treeFront() && kara.mushroomFront())
           {
             kara.move();
             kara.turnRight();
           }
      else {
             if (!kara.treeLeft())
                  {
                    kara.turnLeft();
                    kara.move();
                  }
           }
    
    
  3. Im folgenden Programm sind mehrere Schreib- und Flüchtigkeitsfehler versteckt, die eine erfolgreiche Kompilierung verhindern. Verbessere!

    import JavaKaraProgram;
    public class SchlampigGeschrieben extends
    JavaKaraProgram {
      void einenSchrittWeiter
      {
       if (!kara.treeFront())
            { kara.move(); }
       else {
             if (!kara treeLeft())
                  { kara.turnLeft();
                    kara.move();
                  }
             else { kara.turnRight();
                    kara.move();
                  }
            }
      }
    
      public void myProgram()
      {
        while ( !(kara.treeFront() & kara.treeLeft() && kara.treeRight())  )
          {
          einenSchrittWeiter();
          }
      }
    }  // Ende von SchlampigGeschrieben
    
    
  4. Kara steht auf dem ersten Blatt einer Spur von Kleeblättern (mit Unterbrechungen). Am Ende der Spur steht ein Baum. Kara soll bis zum Baum laufen. Wenn er auf ein Kleeblatt trifft, soll er rechts daneben ein weiteres Kleeblatt ablegen. Benutze zur Lösung eine Methode legeRechts(), die Kara rechts von seiner aktuellen Position ein Kleeblatt ablegen und zurückkehren lässt.

    import JavaKaraProgram;
    public class RechtsDanebenLegen extends JavaKaraProgram
    {
    
      void legeRechts()
      {
        kara.turnRight();
        kara.move();
        kara.putLeaf();
        kara.turnLeft();
        kara.turnLeft();
        kara.move();
        kara.turnRight();
      }
    
        public void myProgram()
        {
          if (kara.onLeaf()) { legeRechts(); }
          while (!kara.treeFront())
          {
            kara.move();
            if (kara.onLeaf()) { legeRechts(); }
          }
        }
    }