Lösungsvorschlag Einseitige bedingte Anweisung

Aus ComeniusWiki
Version vom 30. März 2014, 09:48 Uhr von B.Schiller (Diskussion | Beiträge)

(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Wechseln zu: Navigation, Suche
//Eine Anweisung um den Code zu verkürzen.
Anweisung Umdrehen
   LinksDrehen
   LinksDrehen
*Anweisung

//Um das Problem von einem beliebigen Startpunkt aus lösen zu können, muss sich 
//Karol erst einmal auf eine Startposition in der Ecke bringen.
Anweisung PositionEinnehmen
   wiederhole 2 mal
      wiederhole solange NichtIstWand
         Schritt
      *wiederhole
      LinksDrehen
   *wiederhole
*Anweisung

//Die Anweisung Test überprüft, ob eine Marke vorhanden ist.
//Wenn Karol dabei nicht vor der Wand steht, geht er einen Schritt weiter, 
//dreht sich um, legt einen Ziegel, dreht sich wieder um und macht weiter.
//Steht er vor der Wand, macht er einen Schritt zurück, legt den Ziegel, 
//stellt sich auf den Ziegel und macht dann weiter.
Anweisung Test
   wenn IstMarke dann
      wenn NichtIstWand dann
         Schritt
         Umdrehen
         Hinlegen
         Umdrehen
      sonst
         Umdrehen
         Schritt
         Umdrehen
         Hinlegen
         Schritt
     *wenn
   *wenn
*Anweisung


Anweisung Bahn
Wiederhole solange NichtIstWand
Test
Schritt
Test            //Lässt man hier den 2.Test aus, werden Marken vor der Wand ignoriert.
*wiederhole
*Anweisung


Programm
PositionEinnehmen
Wiederhole 4 mal
Bahn
LinksDrehen
Schritt
LinksDrehen
Bahn
RechtsDrehen
Schritt
RechtsDrehen
*wiederhole
Bahn           //Karol läuft vier mal auf und ab und dann noch eine Bahn bis ans Ziel.
*Programm