is-Logo Karel D. Robot
Sequenzen - Automatische Robotersteuerung

S. Spolwig
2.1

[ Karel ]
Startseite

Ziele:
Sequenz als Folge von Anweisungen verstehen, die nach einander ausgeführt werden.

Informationen
zur Vertiefung

 

Roboter können eine "harte Programmierung" haben, d. h. Sie als Programmierer legen aus Kenntnis der Situation jede einzelne Aktion fest oder der Roboter benutzt seine Sensoren und entscheidet unterwegs selbständig, was zu tun ist.

In diesem Abschnitt lernen Sie die drei grundsätzlichen Steueranweisungen, die in der Programmierung verwendet werden: Sequenz, Auswahl, Wiederholungen.
Diese Kontrollstrukturen stehen in kleinen Programmstückchen, mit denen der Roboter gesteuert wird.
Wir beginnen mit der einfachsten: Sequenz

Vorbereitung: Für die nachfolgenden Aktionen sollten Sie den Roboter beauftragen, Spuren zu machen, damit man besser kontrollieren kann, wo er lang gegangen ist.

procedure TControlFrm.ItemsErzeugen;
  // ------------------------------------------------------
  begin
    RD1 := TRobot.Create;
    RD1.SetPos('C',1);
    RD1.MacheSpur;
    Welt.AllesZeigen;
  end;

 

1. Aufgabe
    Dirigieren Sie RD1 von der Ausgangsposition mit der Handsteuerung nach C,3
    und von dort zwischen den Bäumen durch bis K,3
    und notieren Sie die Anweisungen!

Schreibt man diese Anweisungen in eine neue Steuerprozedur, dann kann man
den Roboter diesen Weg immer automatisch gehen lassen.
 

Allgemein ausgedrückt
 
Übersetzt in die Programmiersprache
 
gehe eins vor
gehe eins vor
gehe eins vor
nach links drehen
...
RD1.Vor;
RD1.Vor;
RD1.Vor;
NachLinksDrehen;
...

 

2. Aufgabe
Schreiben Sie eine neue Prozedur TControlFrm.UmDieBaeume

Dazu ist nötig:

a) im INTERFACE-Teil die neue Prozedur deklarieren bei

TControlFrm = class(TFensterFrm)
    UserPnl : TPanel;
    ...
    ...
    procedure UmDieBaeume;

    procedure ItemsErzeugen; // darf nicht gelöscht werden!
  end;

 

b) im IMPLEMENTATION-Teil unten den Code

procedure TControlFrm.UmDieBaeume;
  // ------------------------------------------------------
  begin
    RD1.Vor;
    RD1.Vor;
    RD1.Vor;
    NachLinksDrehen;
    ...
    ...
  end;

 

Zwischenfrage: Warum kann man nicht RD1.LinksDrehen schreiben?

Nun fehlt nur noch ein Button, um diese Prozedur aufzurufen.

c) Ziehen Sie aus der Standardpalette einen Button auf das UsrPanel.

d) Wechseln Sie auf den Objektinspektor;
    - neuen Namen eintragen unter Eigenschaften-Name: GoBtn
    - Beschriftung einfügen unter Eigenschaften-Caption: GO!
 
e) Die ButtonClick-Methode erzeugen und darin eintragen: UmDieBaeume;

(Diese GoBtnClick-Prozedur wird in Zukunft die Testprozedur sein für alle neuen Entwicklungen, die wir noch ausprobieren müssen. Wir schreiben hier dann nur die aktuellen Anweisungen hinein. Das spart eine Menge Text im Programm.)

Starten und testen!
 

Merke: Sequenzen sind eine Folge von Anweisungen,
die nacheinander ausgeführt werden.

 

Die Roboter

 

Algorithmen I

 

©  05. Oktober 2008    Siegfried Spolwig

page_top next page