LOGO 1. Teil - oder eine Einführung in Turtle-Geometrie

Unbestritten ist BASIC die verbreitetste Sprache für Personal- und Home-Computer. Es liegt vielleicht an der Tatsache, daß die Mehrzahl dieser Computer vom Werk her mit einem BASIC-Interpreter ausgerüstet sind. Atari hat diese Philosophie geändert. Zu dem Lieferumfang seiner neuen Generation von Computern (ST) gehören neben BASIC auch LOGO von Digital-Research.

Samt Maus liefert Atari zu seiner ST-Computer-Reihe ein anderes Tierchen in Form einer Schildkröte und damit eine leistungsfähige Computersprache, nämlich D.R. LOGO. LOGO wurde Ende der 60er Jahre von Seymour Papert, Professor in dem Institut of Technology, Massachusetts, entwickelt; ein Labor, welches sich mit der künstlichen Intelligenz beschäftigt.

# LOGO UNTER GEM

Nach dem Laden von LOGO erscheint der Bildschirm in zwei Hälften geteilt. Auf der linken Seite befindet sich das LOGO-Dialog-Fenster und auf der rechten Seite das Output-Fenster, auf dem momentan nur das Schildkrötensymbol wartet, um bestimmte Arbeiten zu verrichten.

Im obersten Teil befindet sich die Menü-Leiter, in deren Inneren die abrufbaren Funktionen in mehrere Unter-Menüs aufgeteilt sind.

Bewegen Sie mit der Maus die Pfeile auf dem Bildschirm bis oben links und berühren Sie mit deren Spitze das DESK-Menü.

Sofort erscheint:

Das DESK-Menü ist schon durch das Atari-Handbuch bekannt und ausführlich erklärt.

Das zweite nach rechts stehende Pull-Down-Menü trägt den Namen „File“ und besteht aus:

Load
die auf Disketten gespeicherten Programme erscheinen in einer „Dialog-Box“, die mit Hilfe der Maus ausgewählt und in den Arbeitsspeicher geladen werden.

Save as
ermöglicht das Kopieren eines in der Diskette schon vorhandenen Programms auf der selben Diskette. Vorsicht! Nicht zu verwechseln mit dem BASIC-Kommando „Rename“.

Save
ein fertig editiertes Programm läßt sich damit auf Diskette speichern .

Delete
gespeicherte Files werden dadurch gelöscht.

Load-Pic
ein auf Diskette gespeichertes Grafik-Bild wird in den Grafik-Puffer geladen. Die Größe des Grafik-Display entspricht der Originalgröße.

Save-Pic
eine erstellte Grafik wird auf Diskette gespeichert.

Quit
verursacht das Verlassen von LOGO und einen Rücksprung in das DESK-Top.

Das Run-Pull-Down-Menü beinhaltet die Optionen, die das Starten und Anhalten von Befehlen und Prozeduren regeln. Die folgenden Funktionen sind auch über die Tastatur durchführbar:

Stop
beendet die Durchführung eines Programms. Durch das gleichzeitige Betätigen von Control und C ist diese Funktion über die Tastatur zu erreichen.

Run-Buffer
beim Anklicken dieser Funktion wird der letzte direkte Befehl oder das Programm wieder ausgeführt. Ein Clear-Text oder Clear-Screen löscht den Run-Buffer.

Pause
hält den Programmablauf an und läßt eine Eingabe über die Tastatur zu. Durch das Auswählen von Continue aus dem gleichen Pull-Down-Menü, wird das Programm fortgesetzt.

Continue
s. o. Continue erreicht man auch mit Hilfe der Abkürzung CO und Return.

Das Edit-Menü ist das umfangreichste und wichtigste Menü von allen. Dadurch hat man Zugang zu einem sehr leistungsfähigen Editor.

Work-Space
Öffnet das Editor-Fenster zum Editieren von Programmen.

File
Lädt eine schon vorhandene Prozedur zur Weiterverarbeitung oder Änderung, in den Speicher.

Save Edit ~C
Speichert ein editiertes Programm auf Diskette.

Abandon ~C
Verlassen des Editors und Zurückkehr in das Dialog-Fenster. Dadurch geht der Inhalt des Editor-Fenster verloren.

Papert, ein Mathematik-Professor und ehemaliger Student des schweizerischen Psychologen Jean Piaget (bekannt als Vater der modernen Psychologie), strebte nicht nach einer neuen Sprache, die ein Optimum eines Computers bilden sollte, sondern eher nach einem pädagogischen Werkzeug, daß die intellektuellen Fähigkeiten der Studierenden entwickeln sollte - genauso wie der tatsächliche Lernprozeß komplizierte Vorgänge erleichtert.

So entstand eine Programmiersprache, die in Dialog-Betrieb mit dem Anwender arbeitet und in der Lage ist, schwierige Prozesse anschaulich zu lösen; und daß durch die Ausführung von kurzen Befehlen, die die Form von einfachen und bekannten Begriffen haben. Bei dem damaligen Stand der Technik war es unmöglich solche Lösungen auf einem Sichtgerät darzustellen. Papert schuf eine mechanische „Schildkröte“, an dessen Unterseite ein Stift befestigt war. Beim Fahren auf einer Papierunterlage hinterließ sie Linien. Heute hat sich diese motorisierte „Schildkröte“ in ein stilisiertes Dreieck verwandelt, die auf dem Bildschirm wunderschöne Figuren zeichnen kann.

Wenn der griechische Mathematiker Phythagoras im Zeitalter der Computer gelebt hätte, wäre ihm LOGO mit großer Wahrscheinlichkeit als Sprache zur Lösung seiner wichtigen mathematischen und geometrischen Probleme dienlich gewesen. Mit einfachen Befehlen ist zu beweisen, daß die kürzeste Entfernung zwischen zwei Punkten eine Strecke ist. Dazu braucht man nur FORWARD zu schreiben, zusätzlich die gewünschten Schritte einzugeben und schon bewegt sich die Schildkröte.

Tippen Sie:

FORWARD 50

Diese Eingabe veranlaßt unser Symbol sich 50 Schritte in die Richtung, in die die Spitze zeigt, zu bewegen. Dabei wird eine Linie auf dem Bildschirm gezogen. Mit BACK, wieder gefolgt von einer numerischen Angabe, rückt die Schildkröte zurück.

BACK 50
Setze die Schildkröte an ihren ursprünglichen Platz; die vorher gezeichnete Linie bleibt dabei erhalten. Genauso kann man die Laufrichtung ändern

LEFT 90
Veranlaßt eine Drehung von 90° nach links.

RIGHT 90
Veranlaßt eine Drehung von 90° nach rechts.

Mit diesen vier primitiven, aber leistungsfähigen Befehlen können wir anfangen zu zeichnen.

Geben Sie ein:

FORWARD 50 
RIGHT 90
FORWARD 50
RIGHT 90
FORWARD 50
RIGHT 90
FORWARD 50

Auf dem Output-Fenster wird schrittweise ein Quadrat gezeichnet. Man sollte aber nicht verschweigen, daß für so wenig ein solcher Aufwand betrieben wird. Aber es geht auch anders -viel leichter und schneller.

LOGO besitzt einen Befehl, der RE-PEAT heißt. Damit sieht unsere Prozedur, ein Quadrat zu zeichnen, etwas anders aus.

Schreiben Sie jetzt:

Repeat 4 [FD 50 RT 90]

REPEAT 4 verursacht die viermalige Wiederholung der Anweisung in der Klammer. FD ist die Abkürzung für FORWARD und RT die für RIGHT, die LOGO genau versteht.

LOGO erlaubt die Anfertigung von kleinen Routinen - dies ist wahrscheinlich eine der bedeutendsten Merkmale dieser Sprache - die nach Bedarf nachgeladen werden können und dann ausgeführt werden. Diese kleinen Prozeduren werden jeweils unter einem Namen abgelegt und sind deshalb leicht zu handhaben.

Rufen Sie den LOGO-Editor durch anklinken von „Workspace“ oder durch eintippen von EDIT auf das Dialog-Fenster.

Jetzt befinden Sie sich im Editor-Modus, und das Schreiben eines Programms ähnelt sehr stark dem Schreiben eines gewöhnlichen Texts. Sie müssen nur auf bestimmte, von LOGO verlangte, Syntaxregeln achten. Wie könnte dies anders ein? Es handelt sich schließlich um eine Sprache. Schreiben Sie jetzt:

TO QUADRAT
	REPEAT 4 [FD 50 RT 90]

In direktem, Modus geben Sie QUADRAT ein und die Schildkröte beginnt zu zeichnen. Kurz darauf steht unser wohlbekanntes Quadrat auf dem Grafik-Display.

Das kann man jetzt abspeichern und bei Bedarf immer abrufen. Auf diese Art und Weise wird der Computer eine riesige Menge an Funktionen beherrschen, die man später zur Lösung anderer Probleme anwenden kann.

So weit so gut. Aber unser Programm hat noch einen Haken. Denn was geschieht, wenn wir ein Quadrat mit großer oder kleiner Seitenlänge darstellen möchten. Dafür ist die von uns hergestellte Prozedur nicht flexibel genug.

Ändern Sie die Routine folgendermaßen:

TO QUADRAT :SEITE 
REPEAT 4 [FD :SEITE RT 90 
END

Noch einmal im Direkt-Modus geben Sie ein:

QUADRAT 70

Die dargestellte Figur hat ihre Seitenlange deutlich vergrößert. Auf diese Art und Weise ist es uns möglich das schon fertige Programm mit geringen Änderungen so zu gestalten, daß es etliche Polygonen zeichnen kann. Ändern Sie die Routine folgendermaßen:

TO QUADRAT :SEITE :WINKEL :WIE 
REPEAT :WIE [FD :SEITE RT :WINKEL]

Rufen Sie die Routine so auf: QUADRAT 50 72 5 Jetzt haben wir eine geometrische Figur mit fünf Seiten. Bei QUADRAT 50 60 6 eine mit sechs Seiten usw.

Wir haben die QUADRAT Prozedur derart verändert, daß der Name in keiner Weise mehr stimmt. Der passende Name wäre jetzt Polygon.

Atari LOGO besitzt auch andere Möglichkeiten zur Darstellung von Quadraten und Polygonen, die zur Übersichtlichkeit eines Programms beitragen und ebenso die Herstellung erleichtern. So ist es möglich ein Quadrat durch den Befehl BOX [X Y WIDTH HEIGTH] zu zeichnen, oder ein Polygon beliebiger Seitenlänge mit dem Befehl POLY [XI Y1 X2 Y2 ... XN YN] darzustellen. Zum Zeichnen von Kreisen wie Ellipsen sind auch bestimmte Befehle vordefiniert, genauso zur Festlegung der Linienart und ihrer Farbe.

Zur Herstellung z. B. einer Ellipse geben Sie der Reihe nach

Wobei die Angabe der Anfangskoordinate, sowie die Höhe und Breite der Winkel dargestellt werden soll.

Zum Zeichnen von Kreisen geben Sie der Reihe nach

Mark ~S
Ein bestimmter Bereich oder eine ganze Prozedur wird zwischengespeichert. Mit Copy ~T läßt sich dieser Bereich an das Ende des Texts kopieren. Damit erhält der Programmierer ein leistungsfähiges Werkzeug um Teile eines Programms anzuhängen.

Copy ~T
Gewählter Bereich wird am Ende des Texts abgetrennt.

CuT ~W
Falls ein Teil des Programms gelöscht werden muß, läßt es sich auf diese Art und Weise realisieren. Bei der Rückgängigmachung des Vorhabens wird durch Auswahlen von Taste “Y der gelöschte Teil am Ende der Prozedur wieder erscheinen. Achtung! Diese Rekonstruktion eines gelöschten Texts funktioniert nur, wenn nach Anwendung von Cut ~ W keine andere Funktion aufgerufen werden soll,

Taste ~Y
Der von Cut gelöschte Teil erscheint wieder am Ende des Texts.

Top ~R
setzt den Cursor links oben in das Editor-Fenster.

Botton ~X
bewegt den Cursor ans Ende des Textes im Editor-Fenster.

Center ~L
Text wird innerhalb des Editor-Fensters zentriert.

Page Up ~U
Das Edit-Fenster wird nach oben verschoben bis zum Ende des Texts.

Page-Up-Down ~V
Das Edit-Fenster wird seiner ganzen Länge nach nach unten geschoben.

< = Line ~A
Cursor rückt bis zur Beginn der Linie.

= > Line ~E
Cursor rückt bis zum Linienende.

Über das Menü „Setting“ erhält man Zugang zu wichtigen Funktionen für grafische Vorbereitungen, sowie bei der Fehlersuche im Programm. Bei den Grafik-Auswahlen öffnet sich ein neues kleines Fenster mit zusätzlichen Wahlmöglichkeiten in der Mitte der Bildschirmfläche.

Wie schon erwähnt könnte eine schon hergestellte Prozedur innerhalb einer anderen aufgerufen und ausgeführt werden. Wir definieren ein Modul unter dem Namen Hexagon, das ein Polynom mit sechs Kanten zeichnet.

TO HEXAGON :SEITE 
REPEAT 6 [FD :SEITE RT 60]
END

Jetzt schreiben wir ein Programm, das die Prozedur Hexagon aufruft.

TO SUPERHEX :SEITE
REPEAT 7 [HEXAG0N:SEITE LEFT 45]
END

Auf diese Art und Weise können wir ein Programm erweitern. Eine solche Form der Selbstaufrufung nennt man. REKURSION und sie ist eine der wichtigsten Eigenschaften von LOGO. Man muß allerdings sagen, daß unsere jetzige Form von Rekursion nicht unbedingt die beste ist. Vor allem, weil die Anzahl der Selbstaufrufe nicht ohne größere Eingriffe in das Programm selbst zu steuern ist. Betrachten wir das nächste Beispiel:

TO SPIRAL :SEITE :WINKEL :INS :INW 
FD :SEITE 
RT :WINKEL
SPIRAL :SEITE ★ :INS :WINKEL ★ :INW :INS :INW 
END

Es wird eine Prozedur definiert, die vier Eingaben zuläßt: Seite, Winkel, Inkrementseite, sowie Inkrementwinkel. Dann wird eine Strecke gemäß unserer Eingabe in einem bestimmten Winkel gezeichnet. Jetzt ruft sich die Prozedur selbst auf, nur daß dabei die Strecke, sowie der dazugehörige Winkel inkrementiert wird. Geben Sie jetzt in direktem Modus ein:

?CS
?SPIRAL 30 12 0 80

Wie Sie sehen hört es nie auf. Erweitern wir unser Programm SPIRAL folgendermaßen:

TO SPIRAL :SEITE :WINKEL :INS :INW 
IF :WINKEL = 360 [STOP]
FD :SEITE 
RT :WINKEL
SPIRAL :SEITE ★ :INS :WINKEL ★ :INW :INS :INW
END

Wie Sie sehen, arbeitet die Anweisung IF genauso wie bei anderen Sprachen und gibt die Möglichkeit zur Steuerung einer Schleife. Damit ist dieser Teil unserer Reihe über das Programmieren von LOGO beendet. Das nächste Mal werden wir uns mit STRING-Verwaltung, sowie LISTEN und weiteren Anweisungen beschäftigen.

Zuletzt ein Leckerbissen von LOGO:

TO B1 :N IF :N = 0 [STOP]
LT 25 FD 5 ★ :N
B1 :N - 1
BACK 5 ★ :N RT 25
RT 25 FD 5* :N
B1 :N - 1
BACK 5 ★ :N LT 25
END
**Fill** : Durch Auswahl der Frage „True“ ist es möglich die Art der Muster zu definieren. Bei Farbmonitoren auch die Farbe.

Zoom
: bewirkt eine Vergrößerung.

Line : gibt die Möglichkeit Typen und Linienbreiten auszuwählen: sowie bei der oben genannten Fill-Option besteht auch hier die Möglichkeit zur Wahl der Linienfarbe. Vorausgesetzt man besitzt einen Farbmonitor.

Auch bei dem Turtle-Menü erscheint eine Dialog-Box mit verschiedenen Auswahlmöglichkeiten zur Steuerung des Schildkrötensymbols.

Position

Heading : Der Standpunkt der Schildkröte wird festgesetzt. Die Spitze zeigt die Fahrtrichtung an.

X:_ Y:_ : Eine neue Position der Schildkröte wird festgesetzt, in Bezug auf X und/ oder Y Koordinate.

Turtle State : man kann damit zwischen einer Darstellung mit oder ohne dreieckigem Symbol wählen.

Pen State : Die Schildkröte stellt in LOGO den fahrenden Stift dar. Man kann durch Pen-State den benannten Stift hoch und runter fahren.

Die Bildschirmverwaltung wird durch das Screen-Menü erreicht. Bei der Window-Option wird eine Linie weitergeführt ohne Berücksichtigung der Bildschirmgrenze. Bei Auswahl von Wrap verschwindet die Schildkröte am oberen Rand des Bildschirms und taucht am unteren Rand auf der gleichen Linie wieder auf. Mit Fence meldet sich LOGO bei Überschreiten der Display-Grenze durch eine Error-Meldung.

Aspectratio : Die Veränderung dieser Option beeinflußt die Y-Lage einer dargestellten Grafik.

Pyn : Damit kann man wahlweise die X-oder Y-Lage verändern. Mit Hilfe von Watch und Trace wird in ein dafür extra geöffnetes Fenster, Debug-Info, der Programmablauf schrittweise gezeigt.

Buffer-Grph : Für die Grafik-Fenster reserviert LOGO normalerweise einen bestimmten Bereich. So kann das Grafik-Display durch ein anderes Fenster verdeckt werden, ohne daß dadurch die dargestellte Grafik verlorengeht. Dieser Puffer kann beliebig oft ein- und ausgeschaltet werden.

Close-Debug : beendet die Trace-Funktion und schließt das Debug-Fenster.

Close-Edit : beendet die Editor-Funktion, läßt aber das Edit-Fenster offen.

Alle Fehlermeldungen werden auch in Form einer Dialog-Box mitten auf dem Bildschirm gezeigt.

Definieren der Turtle
Definieren von Mustern, Linienbreite und Farbe


Aus: ST-Computer 01 / 1986, Seite 57

Links

Copyright-Bestimmungen: siehe Über diese Seite