is-Logo Karel D. Robot
Auswahl - Automatische Robotersteuerung

S. Spolwig
2.3

[ Karel ]
Startseite

Ziele:
Zweiseitige Auswahl oder Entscheidung: wenn - dann - sonst / if - then - else

Informationen
zur Vertiefung


Schon ganz gut, aber leider bleibt RD1 vor einem Baum stehen und ruht sich aus. Besser wäre es, er würde an dem Baum vorbei gehen. Wir können also sagen

Allgemein ausgedrückt
 
Übersetzt in die Programmiersprache
 
wenn VorneFrei ist
dann gehe eins vor
sonst

  drehe nach rechts
  gehe eins vor
  drehe nach links
  gehe eins vor
  gehe eins vor
  drehe nach links
  gehe eins vor
  drehe nach rechts
if RD1.VorneFrei
then RD1.Vor
else
 begin
   RD1.RechtsDrehen;
   RD1.Vor;
   NachLinksDrehen;
   RD1.Vor;
   RD1.Vor;
   NachLinksDrehen;
   RD1.Vor;
   RD1.RechtsDrehen
 end

In einem Auswahlzweig können auch mehrere Anweisungen als ein Block stehen. Dieser Block wird zwischen begin und end eingeschlossen. Vergessen Sie das begin nach else, würde nur die erste Anweisung RD1.RechtsDrehen als Alternative ausgeführt werden und nicht alle Anweisungen des Blocks.

1. Aufgabe
   Schreiben Sie eine neue Prozedur TControlFrm.Vorwaerts3
 
mit diesen Anweisungen
 (wie Vorwaerts2).

Starten und testen!

 

2. Aufgabe
   
Der RD1 soll bei Programmstart auf Feld A,3 stehen.
   Mit dem GoButton wird er auf der Zeile 3 gestartet und soll dann um die Bäume herum
   in der Zeile bis N,3  gehen.
   Schreiben Sie eine neue Prozedur TControlFrm.Vorwaerts4.

   Tip: Wiederverwendung!
 
   Die Startposition ändern Sie direkt in SetPos() in der
  procedure TControlFrm.ItemsErzeugen.
 

Merke:  In der zweiseitigen Auswahl wird eine Bedingung geprüft,
ob sie wahr oder falsch ist

                und dann entweder die eine oder die andere Anweisung ausgeführt.

 

 

 

 

Algorithmen II

 

©  05. Oktober 2008    Siegfried Spolwig

page_top next page