Beispiel - Logo-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.

(c) 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?

Anweisungsfolge 1:

fd 100rt 90fd 100

Anweisungsfolge 2:

fd100 rt90 fd100

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 vorerst nur recht einfache Turtle-Programme, bei denen keine Wiederholungen und Fallunterscheidungen vorgesehen sind.

Ziffer:

Syntaxdiagramm

Natzahl:

Syntaxdiagramm

Dezbruch:

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 ->
Anw WS Anw ->
'fd' WS Zahl WS Anw ->
'fd' Leer Zahl WS Anw ->
'fd' ' ' Zahl WS Anw ->
'fd' ' ' Natzahl WS Anw ->
'fd' ' ' Ziffer Ziffer WS Anw ->
'fd' ' ' '5' Ziffer WS Anw ->
'fd' ' ' '5' '0' WS Anw ->
'fd' ' ' '5' '0' ' ' Anw ->
'fd' ' ' '5' '0' ' ' 'ht' WS ->
'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 eine korrekt gebildetes einfaches Turtle-Programm darstellen.

Aufgabe 2

Jetzt kannst du entscheiden, ob folgende Wörter korrekt gebildete (einfache) Turtle-Programme im Sinne der angegebenen Syntaxdiagramme bilden:

Aufgabe 3 (gar nicht so einfach)

Ändere die Syntaxdiagramme so ab, dass nach einer ht-Anweisung am Ende einer Anweisungsfolge kein Leerzeichen mehr stehen muss.

Aufgabe 4 (für Experten)

Wir erweitern jetzt die Sprache der Turtle-Programme. Es soll jetzt auch möglich sein, Wiederholungen mit einer festen Anzahl von Wiederholungsdurchgängen zu bilden. 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]

(a) Teste zunächst mit dem Logo-Interpreter, was solche Wiederholeanweisungen bewirken.

(b) Teste anschließend, wie Tutle-Programme mit Wiederholeanweisungen aufgebaut sein können.

(c) Entwickle die oben gezeigten Syntaxdiagramme so weiter, dass auch Wiederholeanweisungen mit erfasst werden.

X

Fehler melden

X

Suche