[Übersicht] [Einführung] [Sequenzen] [Prozeduren] [Verzweigungen] [Ein-/Ausgabe] [Schleifen] [Zählschleifen] [Prozeduren mit Parametern] [Funktionen] [Rekursion] [Verschiedenes]

 

 Thema: Verzweigungen

Arbeitsblätter Beispiele Übungsaufgaben Kontrolltests Zusatzprogrammieraufgaben Zusatzinformationen/aufgaben 

 

  Arbeitsblätter nach oben

Zip-Datei    Kara benutzt Sensoren
Zip-Datei  Übungen zu Logischen Verknüpfungen
Zip-Datei  Syntax und Struktogramm der Verzweigung (if-Anweisung)

 

Beispiele  nach oben

Karasensor1

import JavaKaraProgram;
/**
*<hr>
*Aufgabe für Kara: KARA steht vor einem Baum oder nicht. Wenn nicht, soll sie
einfach einen Schritt weitergehen, steht sie vor einem Baum, soll sie um den
 einzelnen Baum herumgehen.
*<hr>
*@see <a href="Javakara.html">Alle Programme</a>
*@author Dorothea Steinhauer
*@version 1.0/ 21.1.2002
*/
public class KaraSensor1 extends JavaKaraProgram
{//Anfang von KaraSensor1

   void geheUmBaumHerum()
   {//Anfang von geheUmBaumHerum
        kara.turnLeft();
        kara.move();
        kara.turnRight();
        kara.move();
        kara.move();
        kara.turnRight();
        kara.move();
        kara.turnLeft();
   }//Ende von geheUmBaumHerum
   
   public void myProgram()
   {//Anfang von myProgram
      if (kara.treeFront())
      {this.geheUmBaumHerum();
      }
      else
      {kara.move();
      }
   }//Ende von myProgram
}//Ende von KaraSensor1

 

 Übungsaufgabennach oben

1) Karasensor2:

KARA steht vor einem einzelnen Baum oder nicht. Wenn sie nicht vor einem Baum steht, soll sie einfach einen Schritt weitergehen. Im anderen Fall prüft sie, ob sie auf einem Kleeblatt steht. Steht sie auf einem Kleeblatt, hebt sie es auf und geht links um den einzelnen Baum herum. Im anderen Fall legt sie ein Kleeblatt nieder und geht rechts um den Baum herum.

Lösung  

 

2) Java-Struktogramm-Übung

Setze die in der Programmiersprache Java vorgegebenen Programmläufe in Struktogramme um:
A0, ... ,A5 seien beliebige Anweisungen (z.B. kara.move()) ,
B1, B2 seien beliebige Bedingungen (boolesche Ausdrücke, z.B. !kara.treeFront())

 a)  if (B1)
      { A1;
         A2;
      }
      else
      {  if (B2)
         { A3;
         }
         else
         { A4;
         };
      }
      A5;



Lösung

 b) A0;
     if (B1)
     { A1;
     }
     else
     { A2;
        if (B2)
        { A3;
        }
        else
        { A4;
        }
        A5;
     }


 Lösung

 

3) Formuliere folgende Struktogramme in Java-Anweisungen:

a)



Lösung

b)



Lösung

Kontrolltestsnach oben

 Multiple-Choice-Test zu Sensoren, Logik, Struktogrammen

nach oben

Karasensor3

Aufgabe: Kara prüft, ob sie vor einem Pilz steht. Wenn sie vor einem Pilz steht, soll sie um den Pilz herum gehen, prüfen, ob vor ihr ein Baum steht. Falls dies möglich ist, schiebt sie den Pilz ein Feld weiter. Verhindert ein Baum dies, legt sie ein Kleeblatt neben den (einzelnen) Baum. Steht Kara zu Beginn nicht vor einem Pilz, soll sie ein Tänzchen tanzen.

Programmiere zuerst die notwendigen Prozeduren.

Lösung

Karasensor4

Aufgabe: Programmiere, dass Kara genau dann keinen Schritt macht, wenn sie rechts und links keinen Baum neben sich hat. 

Lösung  

Zusatzinformationen/aufgabennach oben

1. Wie lässt sich das Verhalten von Kara wie rechts angegeben in einem Struktogramm bzw. in Form von Java-Anweisungen notieren?

2. In der Programmierung mit Kara als endlichem Automaten wurden verschiedene Situationen durch die Sensorzustände (yes/no usw.) gekennzeichnet. Überlege dir ein System, mit dem man einen beliebigen Kara-Zustand mit beliebigen Sensoren und Karakommandos in ein Struktogramm und/oder in Java-Anweisungen übertragen kann.

3. Informiere dich, welche Schreibweisen es in der Mathematik für die logischen Verknüpfungen UND, ODER und NICHT gibt.

4. Mathematiker, die sich grundlegend mit der Logik beschäftigt haben, sind George Boole und de Morgan. Finde etwas über sie heraus.

5. Auch Suchmaschinen bedienen sich der logischen Operatoren. Finde heraus, wie man eine Suche bei einer bestimmten Suchmaschine logisch durchdacht gestalten kann (Informationen: http://www.suchfibel.de/2kunst/boolesche_operatoren.htm)