Lernpfad:LibreLogo für Fortgeschrittene/Eigene Befehle programmieren
Um eine Reihe von Anweisungen mehrmals hintereinander zu benutzen kann man Wiederholungen benutzen. Allerdings werden die Anweisungen dann mehrmals direkt hintereinander ausgeführt. Möchte man ein Fenster zeichnen, dann kann man so sehr leicht die vier Seiten malen:
WIEDERHOLE 4 [ VOR 1cm RE 90 ]
Es wird ein Quadrat mit der Seitenlänge 1 Zentimeter gezeichnet.
Soll nun ein zweites Fenster gezeichnet werden, dann muss der Turtle zuerst an die neue Position fahren, damit das Fenster an der richtigen Stelle erscheint, wenn man die Anweisungen erneut ausführt. Eine Schleife funktioniert hier nicht.
Eigene Anweisungen
Dafür erlaubt Logo das Programmieren eigener Anweisungen mit dem Wort ZU
:
ZU FENSTER WIEDERHOLE 4 [ VOR 1cm RE 90 ] ENDE
Nun gibt es eine neue Anweisung FENSTER
, die ein quadratisches Fenster zeichnet, wenn sie benutzt wird.
FENSTER RE 90 VOR 2cm LI 90 FENSTER
Eigene Anweisungen mit Parametern
So eine neue Anweisung ist praktisch, aber noch praktischer wäre sie, wenn man mit ihr nicht nur einen Zentimeter große Fenster zeichnen könnte, sondern beliebig große.
Die VOR
Anweisung zeichnet ja auch nicht immer eine ein Zentimeter lange Linie, sondern beliebig lange. Wie lang, das kann man durch eine Längenangabe selber festlegen: VOR 2,5cm
.
Die Längenangabe in der VOR
Anweisung nennt man einen Parameter. Und deine eigenen Anweisungen können auch solche Parameter besitzen.
Damit unsere FENSTER
Anweisung beliebige Fenster zeichnen kann, fügen wir den Namen des Paramteres nach dem Namen der Anweisung ein. Den Namen des Parameters können wir dann in der Anweisung anstelle der Länge in der VOR
Anweisung nutzen.
ZU FENSTER :Größe WIEDERHOLE 4 [ VOR :Größe RE 90 ] ENDE
Probier es ruhig aus.
Mehrere Parameter
Man kann eine Anweisung auch mit mehreren Parametern versehen. Das Fenster oben ist immer ein Quadrat. Wir könnten aber auch ein sechseckiges Fenster zeichnen wollen. Die folgende Anweisung MEHRECK
zeichnet eine Form mit einer Seitenlänge und einer beliebigen Anzahl Ecken:
ZU MEHRECK :Ecken :Größe WIEDERHOLE :Ecken [ VOR :Größe RE 360/:Ecken ] ENDE