Material für den Informatikunterricht
Logo und Winlogo
Einiges in der Hilfe zu Winlogo fehlt, wird unmöglich erklärt, ist falsch oder man kommt nur über viele Umwege auf die Lösung. Das wird hier kurz vorgestellt und ergänzt.
Außerdem sollen hier nach und nach einige komplexere Projekte vorgestellt werden, die über das reine Malen von Blumen und Bäumen mit dem Igel hinausgehen.
Wer ein bisschen experimentieren will: Nach Registrierung kann man eine 30-Tage-Testversion herunterladen.
Falsche Programm-Bibliothek
Winlogo 2.0 arbeitet mit der Datei VCL40.BPL. Das ist eine uralte Delphi-Bibliothek, die offenbar für manche Abstürze oder Fehlermeldungen verantwortlich ist. Delphi schreibt zu dieser Datei, dass Ärger mit ihr darauf verweist, dass eine mit VCL40.BPL zusammenarbeitende Datei namens COMCTL32.DLL eventuell veraltet ist... Was übrigens der Verantwortliche hinter Winlogo mittlerweile weiß! Man kann den Hänger provozieren, indem man den Igel hinter der Maus herlaufen lässt:
PR test SETZE "x" ER MAUSZUSTAND SETZE "y" ELEMENT 2 MAUSZUSTAND AUFXY :x :y test ENDE
Nach etwa vier Sekunden ist Schluss!
Eingabefenster
PR test LS ;* alte Inhalte der Textseite löschen SETZE "x" EINGABEFENSTER "Bitte geben Sie Ihre PIN ein." WENN LEER? :x DANN DZ "Sie haben nichts eingegeben." PAUSE 20 test ;* kurze Pause zum Lesen der Meldung SETZE "x" ER :x ;* aus einer Liste (mit einem Element) wird eine Variable WENN :x = 4711 DANN DZ "ok!" SONST DZ "falsch ..." ENDE
- Zu LS: Dieser Befehl sollte zu Beginn aller Text orientierten Prozeduren/Projekte Standard sein, damit man kontrollieren kann, was wozu gemeldet wird.
- Die Syntax zu EINGABEFENSTER fehlt in der Winlogo-Hilfe komplett.
- Wie fange ich eine Fehlermeldung ab, wenn gar nichts eingegeben wurde? Mit der Prüfung auf eine leere Liste des Namens, der im Eingabefenster verwendet wird. Dann folgt eine Meldung, zwei Sekunden Lesepause und dann eine Rekursion! Die einzige fehlerfreie Alternative statt der Rekursion wäre AUSSTIEG.
- Was im Eingabefenster erfragt wird, wird immer als Liste gespeichert, nicht einfach als Variable! Listen sind Verkettungen von einzelnen Variablen oder anders gesagt: Listen bestehen aus Elementen und werden unter einem Namen (hier x) zusammengefasst. Um die einzelne Eingabe aus dem Eingabefenster zu prüfen und einfach weiterverarbeiten zu können, verwandle ich diese Liste in eine Variable. Das geht so, dass ich ERSTES = ER oder LETZTES = LZ Element der Liste x als Variable deklariere.
Tastaturabfrage mit TASTE
Was mit der Funktion TASTE zurückgegeben wird, wird in Winlogo 2.0 ganz ungefragt in Großbuchstaben verwandelt. Es gibt in Winlogo 2.0 nicht mehr wie im guten alten DOS-LOGO den Befehl GROSSKLEIN. Eine weitere Besonderheit ist, dass TASTE die Leertaste und die Returntaste ignoriert. Um also aus einer Rekursion herauszukommen, die permanent die einzelne Tasteneingabe liest, muss man ein anderes Sonderzeichen der Tastatur nehmen, z.B. "#". - Aber eben in Winlogo 2.0 dessen "groß" geschriebene Version, d.h. ANSI 191, also "¿".
Eine weitere Merkwürdigkeit besteht darin, dass die Tasten des Nummerblockes nicht etwa als 1 2 3 ... genommen werden, sondern jedenfalls bei der Prüfung einer Eingabe auf dem Nummerblock als a b c! Null wird als Apostroph wiedergegeben, die Plus-Taste als k! - Und wer da allzu lange herumexperimentiert, dem stürzt Win-Logo gleich ganz ab...
Was es mal gab und jetzt fehlt
- FENSTER; das sorgte dafür, dass der Igel, wenn er den Bildschirm verließ, auf der anderen Bildschirmseite wieder hereinkam.
- GROSSKLEIN; siehe oben der Wahnsinn bei der Tastatur-Abfrage. Siehe auch die Merkwürdigkeiten beim Verschlüsseln mit Logo.
- Schriftgröße des Igels; das konnte man früher unterschiedlich einstellen. Jetzt gibt's da nur noch Standard.
- Die verschiedene Stiftbreite ist auch weg.
- Hintergrundbild - praktisch Fehlanzeige. Du willst ein Fußballstadium oder den Weltraum für ein Spiel als Hintergrund einblenden? Na, versuch's mal. Früher ging das problemlos.
- Mehrere Igel gibt es in Winlogo auch nicht mehr. Also nichts mit Billard mit mehreren Bällen oder Mäuserennen oder solchen Spielen. Von Schwarmverhalten ganz zu schweigen. Schade.
Dateigröße
Winlogo 2.0 erlaubt nur eine recht geringe Menge an Code. Bei der Analoguhr wird's schon knapp. Wenn ich da noch ein paar Zeilen Kommentar hinzufüge, meldet sich das Programm, es sei jetzt genug, zu viel, geht nicht mehr...
Textdateien verarbeiten
Logo ist kein Textverarbeitungsprogramm. Aber Dateien speichern und lesen kann es schon - mit ein paar Verrenkungen. Die erste Verrenkung besteht darin, dass die Textblöcke (das können Wörter oder ganze Absätze sein) durch ordentlichen Zeilenwechsel mit der Returntaste voneinander getrennt sein müssen. Dann programmiert man beispielsweise Folgendes:
LADELISTE "beispiel" "Laufwerk:\Pfad...\Dateiname.txt" WH ANZAHL :beispiel [DR ER :beispiel DR " " SETZE "beispiel" OE :beispiel]
Ergebnis ist der Text, in diesem Fall fortlaufend, aber statt der Zeilenwechsel mit Leerzeichen.
Alternativen?
- STARLOGO TNG ist zwar einerseits vom MIT, was erst einmal dafür spricht, denn da wurde LOGO schließlich erfunden, anderseits scheint es eine riskante Sache zu sein: Nach dem Installieren meldet Kasperky, dass da ein Tastatur-Spionage-Programm (Keylogger) zugange sei. Und zwar auch nach nach Beendigung von Starlogo! Schade, denn der Charme von Startlogo ist oder wäre, dass man damit Dutzende von Igel laufen lassen kann, um so Schwarmverhalten zu simulieren.
- MSW-LOGO...
- XLOGO ist möglicherweise eine brauchbare Alternative: Open Source. Um mit XLOGO arbeiten zu könne, muss die Java-Laufzeit-Umgebung (JRE) auf dem Computer installiert sein. Diese ist frei und kann geladen werden von Java bei Sun. Nachteil: Vieles bei XLOGO steht in Französisch.
- Ein Forum zu Logo ist der "Logo-Ring".
© Michael Kraus, ab September 2008