K. Haussmann logo? logo!
Programmieren von Mikrocomputern Die Bande dieser Reihe geben den Benutzern von Heimcomputern, Hobbycomputern bzw. Personalcomputern ijber die Betriebsanleitung hinaus zusiitzliche Anwendungshilfen. Der Leser findet wertvolle Informationen und Hinweise mit Beispielen zur optimalen Ausnutzung seines Gerates, besonders auch im Hinblick auf die Entwicklung eigener Programme. Bisher erschienene Bande Band 1 Einfiihrung in BASIC Band 15 Entwerfen von Programmen von W. Schneider (Commodore 64) von G. Oetzmann Band 3 BASIC fur Fortgeschrittene von W. Schneider Band 16 EinfUhrung in die Anwendung des Betriebssystems MS DOS Band 4 EinfUhrung in Pascal von W. Schneider von W. Schneider Band 17 Einfiihrung in die Anwendung des Band 6 BASIC Pro!lrammierbuch zu den UCSD p Systems grundlegenden Ablaufstrukturen von K. Buckner/M. J. Cookson/ der Datenverarbeitung A. I. Hinxman/A. Tate von E. Kaier Band 18 Mikrocomputer-COBOL Band 7 Lehr und Obungsbuch fur von W. Kahler Commodore-Volkscomputer von G. Oetzmann Band 19 Fortgeschrittene Programmier. techniken in Turbo Pascal Band 9 EinfUhrung in die Anwendung des von E. Hering und K. Scheurer Betriebssystems CP/M von W. Schneider Band 20 Einfiihrung in die Anwendung des Betriebssystems Apple DOS Band 10 Datenstrukturen in Pascal und (Apple II) BASIC von H. R. Behrendt und von D. Herrmann H. Junghans Band 11 Programmierprinzipien in BASIC Band 21 LOGO? LOGO! und Pascal von K. Haussmann von D. Herrmann Band 22 Einfiihrung in Turbo Pascal unter Band 12 Assembler Programmierung von CP/M 80 Mikroprozessoren (8080, 8085, von G. Harbeck Z 80) mit dem ZX Spectrum von P. Kahlig Band 23 Pascal mit der Turtle Band 13 Strukturiertes Programmieren in BASIC von W. Schneider von K. und K. H. Beelich Band 24 Programmieren mit UNIX von G. Martin und M. Trostmann Band 14 Logo Programmierkurs fur Commodore 64 Logo und Terrapin Logo (Apple II) von B. Schuppar Band 25 Murmeltierwelt und Pascal von H. Pinke
Programmieren von Mikrocomputern Band 21 Kristina Haussmann LOGO? LOGO! Ein Programmierbuch Friedr. Vieweg & Sohn Braunschweig IWiesbaden
CIP-Kurztitelaufnahme der Deutschen Bibliothek Haussmann, Kristina: Logo? Logo!: Ein Programmierbuch / Kristina Haussmann, - Braunschweig; Wiesbaden: Vieweg, 1987, (Programmieren von Mikrocomputern; Bd. 21) ISBN-13: 978-3-528-04485-5 e-isbn-13: 978-3-322-89423-6 001: 10.1007/978-3-322-89423-6 NE:GT Das in diesem Buch enthaltene Programm-Material ist mit keiner Verpflichtung oder Garantie irgendeiner Art verbunden. Der Autor und der Verlag ubernehmen infolgedessen keine Verantwortung und werden keine daraus folgende oder sonstige Haftung ubernehmen, die auf irgendeine Art aus der Benutzung dieses Programm-Materials oder Teilen davon entsteht. 1987 Aile Rechte vorbehalten Friedr. Vieweg & Sohn Verlagsgesellschaft mbh, Braunschweig 1987 Das Werk einschliei:llich aller seiner Teile ist urheberrechtlich geschutzt. Jede Verwertung aui:lerhalb der engen Grenzen des Urheberrechtsgesetzes ist ohne Zustimmung des Verlags unzulassig und strafbar. Das gilt insbesondere fur Vervielfiiltigungen, Ubersetzungen, Mikroverfilmungen und die Einspeicherung und Verarbeitung in elektronischen Systemen. Umschlaggestaltung: Peter Lenz, Wiesbaden ISBN-13: 978-3-528-04485-5
v Fur Dorothea Vorwort Es gibt eine Reihe von M i ~ v e r s t auber n d die n iprogrammiersprache s s e n LOGO. - LOGO ist lediglich dazu geeignet, Neulinge an den Computer heranzufuhren, nicht aber dazu, zu einem tieferen Programmierverstandnis beizutragen. LOGO beschrankt sich auf die Igel-Geometrie und dam it aufgraphischeanwendungen. Vernunftige Probleme kann man damit nicht angehen. LOGO ist eine einfache Programmiersprache. Betrachten Sie den letzten Punkt aber nicht gleich als Abschreckung. Es ist sicher nicht in jedem Fall ein M i ~ v e r s t ad na man d~ n imit s, LOGO leicht arbeiten kann. Es ist in der Tat einfacher, mit dieser Sprache die ersten Computer-Erfahrungen zu sammeln, als mit jeder anderen Programmiersprache. Nutzt man beispielsweise die Graphikbefehle von LOGO, so hat man sofort eine direkte Ruckmeldung, was sie bewirken. Sie sind auch leicht nachvollziehbar, denn mit den Bewegungen auf dem Bildschirm verhalt es sich ganz ahnlich, wie wenn wir uns selbst bewegen, sei es nach rechts, nach links, vorwarts oder ruckwarts. LOGO-Programme mussen zudem nicht ellenlang sein, sondern sie konnen in Module, das sind kleine Unterprogramme, zerlegt werden, die in sich leicht verstandlich sind. Und LOGO erlaubt s c h l i e etwas ~ l i cfaszinierendes. h Es erlaubt, d a eine ~ Prozedur sich selbst aufruft; das ist dann eine rekursive Prozedur. Gerade die Moglichkeit der Rekursion erlaubt bei vielen Problemen kurze Programmtexte. Gleichzeitig bedeutet das aber, d a LOGO ~ ab einem gewissen Punkt schwieriger wird. Je tiefer man in die Struktur der Sprache eingedrungen ist und je mehr Sprachelemente man ken nt, desto mehr Moglichkeiten gibt es auch, diese Sprachelemente zu kombinieren, zumal man mit LOGO leicht zusatzliche Worter erfinden kann. Aber haben Sie keine Angst! Die ersten Kapitel m u ~ auch t e n fur jemanden, der noch nie vor einem Computer s a ~ recht, einfach zu lesen sein. Es wird allerdings vorausgesetzt, d a der ~ Leser oder die Leserin die Moglichkeit hat, mit einem Computer zu spielen und zu experimentieren. Aber LOGO beschrankt sich nicht, wie manchmal vermutet wird, auf die Igel-Graphik. Man kann Texte und Zahlen mit LOGO verarbeiten, man kann Spiele programmieren, Geheimschriften kodieren und dekodieren" generell Probleme losen. Das bringt diese Sprache in die Nahe von ausgeklugelten Programmiersprachen wie die aus dem Bereich der Kunstlichen Intelligenz (zum Beispiel LISP oder PROLOG). Dies soil nur als seelische Vorbereitung dienen: ab dem sechsten Kapitel wird dieses Buch doch etwas schwieriger, als es zunachst den Anschein hat. Aber es soil eben auch ein b i ~ cvon h eder n Vielfalt der Anwendungen aufgezeigt werden, die sich durch LOGO e r s c h llassen. i e ~ e n
VI Vorwort Sie finden deshalb in fast allen Kapiteln konkrete Problemaufgaben, bei deren Losung die Sprachelemente und die strukturellen Moglichkeiten von LOGO eingefuhrt werden. Den Kern zu einem tieferen Verstandnis von LOGO finden Sie vermutlich in Kapitel 6. Hier steht ein zentrales Prinzip des Programmierens im Vordergrund, namlich das Prinzip der Rekursion. Das Kapitel ist sicher nicht ganz einfach. Aber fur den, der es verstanden hat, liest sich der Rest des Buches leichter. Man sollte sich also im vorneherein etwas Zeit fur diesen Abschnitt nehmen. Um die Mmverstandnisse zu Beginn in ihr Gegenteil zu verkehren, lalst sich sagen: LOGO ist eine ausgereifte Programmiersprache, die bei den meisten Problemen eine Losung durch ein Programm ermoglicht. LOGO beschrankt sich nicht auf die graphischen Anwendungen. Diese machen den Einstieg einfach und bereiten auf das Verstandnis auch anderer Programmieranwendungen vor. LOGO ist nicht einfach und LOGO ist auch nicht schwer. Das kommt auf das jeweilige Problem an. Aber LOGO hat seinen Reiz im spielerischen und experimentellen Zugang zum Computer. Es ist wie mit dem Zusammensetzen eines Mosaiks. Zuerst ergeben sich Inseln, die fur sich einen Sinn machen, dann passen diese Inseln plotzlich zueinander. Es zeigen sich Beziehungen, die man nicht erahnt hat. Und schlielslich fi.igt sich alles zu einem grolsen Bild. Der Reiz nimmt rapide zu, bis man endlich das gesamte Bild sieht. Aber beim Programmieren ist es ahnlich wie bei Mosaiken: ein paar Steinchen fehlen immer. Nur ist naturlich die Freude grols, wenn man wieder einmal eines dieser Steinchen findet. Karlsruhe, im November 1986 Kristina Haussmann
VII Inhaltsverzeichnis Vorwort 1 Start mit LOGO.... Hardware und Softwareausstattung LOGO, eine Programmiersprache nicht nur fur Kinder. Programmieren und Problemlosen. Was braucht man fur das Arbeiten mit LOGO? Wir starten das LOGO-System. 2 Der Weg durch das Labyrinth Ein Einstieg in die Igel-Graphik 8 Erste LOGO-Kommandos. Die Arbeit im Direktmodus. Einfache Moglichkeiten der Korrektur von Eingabefehlern. 3 Siidsee-Traume... 20 Einfache Prozeduren mit LOGO Erste Prozeduren mit LOGO. Fehlerkorrektur fur Fortgeschrittene. Die Verwendung von Variablen. Modulares Arbeiten. Speicherung von Prozeduren auf einer Diskette. 4 Wie heibt die Hauptstadt von Italien?... 43 Textbausteine in Program men Arbeiten mit Text. Definition von Variablen in LOGO. CTRL-Kommandos im Editor. Eingaben eines Benutzers in einer Prozedur. Bedingte Befehle. Textausgabe auf einem Drucker. 5 Wechselstube... 63 Vom Umgang mit Zahlen, Wortern und Listen Einige Datentypen von LOGO. Das LOGO-System als Taschenrechner. Befehle und Prozeduren mit einer Wertruckgabe. Utilities.
VIII I nhaltsverzeichn is 6 Wie die Orgelpfeifen... 83 Rekursive Strukturen in LOGO Rekursion im Alltag. Erste rekursive LOGO-Prozeduren. Abbruchbedingungen in Prozeduren. Rekursive Aufrufe am Ende und in der Mitte einer Prozedur. 7 Dem Zufall auf der Spur... 104 Zahlenoperationen in Program men Das Arbeiten mit Zufallszahlen. Ein Kommentar im Prozedurtext. Prozeduren erzeugen Variablen. Simulationen mit Computerhilfe. 8 LOGO ist LOGO ist LOGO... 124 Utilities auch fur Graphik-Anwendungen Graphik-Utilities. Farbgraphik mit LOGO. Weitere Graphik-Bausteine. Aufbau von Utilities-Dateien. Umgang mit dem Platz im Arbeitsspeicher. 9 Streng geheim!... 147 Listenverarbeitung fur Fortgeschrittene Tricks und Kniffe beim Arbeiten mit Wbrtern und Listen. Zusammenfugen von Elementen zu Listen und Wbrtern. Kann man Daten schljtzen? BEWAHRE in einem Prozedurtext. 10 Was sagt die Statistik?... 170 Graphik- und Textdarstellungen Wahrheitswerte und logische Verknupfungen. Sortierverfahren bei einer Zahlenliste. Ein Programm-Menu. Auswertung von Listen. 11 Das Spiel mit dem Wolf, der Ziege und dem Kohlkopf... 194 Speicherplatzverwaltung bei komplexen Program men Speicherkapazitat beim Arbeiten mit LOGO. Utilities zur Textdarstellung. Sortieren in alphabetischer Ordnung. Stichwortverzeichnis... 214 Literaturhinweise... 219