Beispiel - Turtle-Programme

Turtle-Grafik

Turtle-Grafik geht von der Vorstellung aus, die Bewegung einer Schildkröte (engl. turtle) auf einer Zeichenfläche mit Hilfe von Anweisungen zu steuern. Die Schildkröte ist mit einem Stift versehen und hinterlässt bei ihren Bewegungen eine Spur auf der Zeichenfläche.

Newsletter

Die Schildkröte ist hier mit einem grünen Dreieck dargestellt. Das abgebildete Quadrat zeichnet sie mit den folgenden Anweisungen.

fd 100 rt 90 fd 100 rt 90 fd 100 rt 90 fd 100 rt 90 

Aufgabe 1

(a) Stelle Vermutungen auf, was die Bezeichner 'fd' und 'rt' hier bedeuten.

(b) Du kannst deine Vermutung mit dem Logo-Interpreter testen. Gib hierzu die oben gezeigte Anweisungsfolge in der Eingabezeile unterhalb der Zeichenfläche ein und führe die Anweisungsfolge mit [run] aus.

Aufgabe 2

Welche Regeln muss man beachten, wenn man Anweisungsfolgen vom Logo-Interpreter ausführen lassen möchte? Teste hierzu u.a. die unten gezeigten Anweisungsfolgen. Warum sollte man diese Syntaxregeln präzise festlegen?

fd 100 rt 90 fd 100
fd 100rt 90fd 100
fd100 rt90 fd100
fd -100 rt -90 fd -100
fd 100.5 rt 90.0 fd 100.5

Die Sprache der Turtle-Programme

Unter der Sprache der Turtle-Programme soll die Menge aller korrekt gebildeten Anweisungsfolgen verstanden werden, die von einem Turtle-Interpreter ausgeführt werden können.

Ziel der folgenden Betrachtungen ist es, diese Sprache möglichst präzise zu beschreiben. Die Beschreibung soll zudem konstruktiv in dem Sinne sein, dass man jedes Element der Sprache (d.h. jedes korrekt gebildete Turtle-Programm) mit der gegebenen Beschreibung erzeugen kann.

Beschreibung des Aufbaus von Turtle-Programmen mit Syntaxdiagrammen

Der Aufbau eines Turtle-Programms kann mit Hilfe von Syntaxdiagrammen präzise festgelegt werden. Wir betrachten in einem ersten Versuch nur ganz einfache Turtle-Programme, bei denen keine Wiederholungen und Fallunterscheidungen vorgesehen sind.

Ziffer:

Syntaxdiagramm

Natzahl:

Syntaxdiagramm

Zahl:

Syntaxdiagramm

Leer:

Syntaxdiagramm

WS:

Syntaxdiagramm

Turtleanw:

Syntaxdiagramm

Anwfolge:

Syntaxdiagramm

Turtleprogr:

Syntaxdiagramm

Diese Diagramme können als Fahrpläne zur Erzeugung von (einfachen) Turtle-Programmen gedeutet werden.

Jeder Weg durch diese Diagramme - beginnend im Diagramm Turtleprogr - liefert ein korrekt gebildetes Turtle-Programm:

Turtleprogr ->
Anwfolge ->
TAnw WS TAnw ->
'fd' WS Zahl WS TAnw ->
'fd' Leer Zahl WS TAnw ->
'fd' ' ' Zahl WS TAnw ->
'fd' ' ' Natzahl WS TAnw ->
'fd' ' ' Ziffer Ziffer WS TAnw ->
'fd' ' ' '5' Ziffer WS TAnw ->
'fd' ' ' '5' '0' WS TAnw ->
'fd' ' ' '5' '0' ' ' TAnw ->
'fd' ' ' '5' '0' ' ' 'ht'

Wenn es einem (wie im Fall fd 50 ht) gelingt, ein Wort mit einem Weg durch die gegebenen Diagramme zu erzeugen, dann soll das Wort ein korrekt gebildetes einfaches Turtle-Programm darstellen.

Aufgabe 3

Entscheide mit Hilfe der vorgegebenen Syntaxdiagramme, ob die oben gezeigten Anweisungsfolgen korrekt gebildete einfache Turtle-Programme sind.

fd 100 rt 90 fd 100
fd    100  rt 90 fd 100
fd 100rt 90fd 100
fd100 rt90 fd100
fd -100 rt -90 fd -100
fd - 100 rt - 90 fd - 100

Aufgabe 4

Ändere die Syntaxdiagramme so ab, dass auch Dezimalzahlen als Parameter erfasst werden.

Aufgabe 5

Ändere die Syntaxdiagramme so ab, dass nach einer Zahl keine Leerzeichen folgen müssen.

Aufgabe 6 (für Experten)

Entwickle die oben gezeigten Syntaxdiagramme so weiter, dass auch Wiederholeanweisungen mit erfasst werden. Hier zwei Beispiele für Turtle-Programme mit Wiederholungsanweisungen:

fd 50 repeat 4 [fd 100 rt 90] lt 180 fd 50 lt 180
repeat 10 [repeat 4 [fd 20 rt 90] rt 90 fd 20 lt 90]
X

Fehler melden

X

Suche