Informatische Konzepte in LOGO



Ähnliche Dokumente
Lektion 6: Prozeduren mit Parametern Übergabe von Werten

1 topologisches Sortieren

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Programmierkurs Java

Professionelle Seminare im Bereich MS-Office

Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster

Primzahlen und RSA-Verschlüsselung

Grundlagen Word Eigene Symbolleisten. Eigene Symbolleisten in Word erstellen

Kapitel 3 Frames Seite 1

Skript und Aufgabensammlung Terme und Gleichungen Mathefritz Verlag Jörg Christmann Nur zum Privaten Gebrauch! Alle Rechte vorbehalten!

Mathematik: Mag. Schmid Wolfgang Arbeitsblatt 3 1. Semester ARBEITSBLATT 3 RECHNEN MIT GANZEN ZAHLEN

Outlook-Daten komplett sichern

PowerPoint: Text. Text

Anleitung über den Umgang mit Schildern

Mediator 9 - Lernprogramm

Text-Zahlen-Formatieren

Erweiterung der Aufgabe. Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen:

Handbuch ECDL 2003 Modul 2: Computermanagement und Dateiverwaltung Der Task-Manager

Wie halte ich Ordnung auf meiner Festplatte?

Informationsblatt Induktionsbeweis

Erstellen einer Collage. Zuerst ein leeres Dokument erzeugen, auf dem alle anderen Bilder zusammengefügt werden sollen (über [Datei] > [Neu])

Inhalt. 1 Einleitung AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER

Was man mit dem Computer alles machen kann

Zwischenablage (Bilder, Texte,...)

1 Mathematische Grundlagen

Serienbrieferstellung in Word mit Kunden-Datenimport aus Excel

5 DATEN Variablen. Variablen können beliebige Werte zugewiesen und im Gegensatz zu

Erklärung zu den Internet-Seiten von

Konzepte der Informatik

Eine Einführung in die Installation und Nutzung von cygwin

Abschlussprüfung Realschule Bayern II / III: 2009 Haupttermin B 1.0 B 1.1

Informatik Kurs Simulation. Hilfe für den Consideo Modeler

Wir arbeiten mit Zufallszahlen

Installation des Authorware Webplayers für den Internet Explorer unter Windows Vista

Woche 1: Was ist NLP? Die Geschichte des NLP.

Bauteilattribute als Sachdaten anzeigen

AZK 1- Freistil. Der Dialog "Arbeitszeitkonten" Grundsätzliches zum Dialog "Arbeitszeitkonten"

Aktivierung der SeKA-Anmeldung

Leichte-Sprache-Bilder

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen

Tutorial Speichern. Jacqueline Roos - Riedstrasse 14, 8908 Hedingen, jroos@hispeed.ch -

Dateien mit Hilfe des Dateimanagers vom USB-Stick kopieren und auf der Festplatte speichern

OECD Programme for International Student Assessment PISA Lösungen der Beispielaufgaben aus dem Mathematiktest. Deutschland

EINFACHES HAUSHALT- KASSABUCH

Dokumentation zum Spielserver der Software Challenge

Einrichten einer Festplatte mit FDISK unter Windows 95/98/98SE/Me

Outlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang

Übungen Programmieren 1 Felix Rohrer. Übungen

7 Rechnen mit Polynomen

Neue Zugangsdaten für sg-online erstellen

10.1 Auflösung, Drucken und Scannen

Übungen zu C++ Kapitel 1

Es sollte die MS-DOS Eingabeaufforderung starten. Geben Sie nun den Befehl javac ein.

Grundlagen der Theoretischen Informatik, SoSe 2008

Dieser Ablauf soll eine Hilfe für die tägliche Arbeit mit der SMS Bestätigung im Millennium darstellen.

Folge 19 - Bäume Binärbäume - Allgemeines. Grundlagen: Ulrich Helmich: Informatik 2 mit BlueJ - Ein Kurs für die Stufe 12

Zur drittletzten Zeile scrollen

Anleitung: Einrichtung der Fritz!Box 7272 mit VoIP Telefonanschluss

Bereich METIS (Texte im Internet) Zählmarkenrecherche

Handbuch. NAFI Online-Spezial. Kunden- / Datenverwaltung. 1. Auflage. (Stand: )

Fotos verkleinern mit Paint

1. Einführung Erstellung einer Teillieferung Erstellung einer Teilrechnung 6

Eigene Dokumente, Fotos, Bilder etc. sichern

Gratis Excel SVERWEIS Funktions-Anleitung, Tutorial, ebook, PDF-E-Book

Lineare Gleichungssysteme

Die Post hat eine Umfrage gemacht

TESTEN SIE IHR KÖNNEN UND GEWINNEN SIE!

Erklärung zum Internet-Bestellschein

Definition und Begriffe

Web-Kürzel. Krishna Tateneni Yves Arrouye Deutsche Übersetzung: Stefan Winter

Stapelverarbeitung Teil 1

4 Aufzählungen und Listen erstellen

Hinweise zum Übungsblatt Formatierung von Text:

Hinweise zur Benutzung des Programms zur Berechnung der Abiturendnote

Gleichungen Lösen. Ein graphischer Blick auf Gleichungen

Handbuch für Easy Mail in Leicht Lesen

Was meinen die Leute eigentlich mit: Grexit?

Erstellen einer digitalen Signatur für Adobe-Formulare

Mit der Maus im Menü links auf den Menüpunkt 'Seiten' gehen und auf 'Erstellen klicken.

Serienbrief erstellen

Fotostammtisch-Schaumburg

der Eingabe! Haben Sie das Ergebnis? Auf diesen schwarzen Punkt kommen wir noch zu sprechen.

Urlaubsregel in David

Dokumentation IBIS Monitor

Virtueller Seminarordner Anleitung für die Dozentinnen und Dozenten

Lernwerkstatt 9 privat- Freischaltung

4. AUSSAGENLOGIK: SYNTAX. Der Unterschied zwischen Objektsprache und Metasprache lässt sich folgendermaßen charakterisieren:

Auftragsbearbeitung 3.1

1. LPC - Lehmanns Programmier Contest - Lehmanns Logo

Leit-Bild. Elbe-Werkstätten GmbH und. PIER Service & Consulting GmbH. Mit Menschen erfolgreich

Festplatte defragmentieren Internetspuren und temporäre Dateien löschen

Diese Anleitung zeigt dir, wie du eine Einladung mit Microsoft Word gestalten kannst.

Dazu stellen Sie den Cursor in die Zeile, aus der eine Überschrift werden soll, und klicken auf die gewünschte Überschrift.

Gefahr erkannt Gefahr gebannt

Durchführung der Datenübernahme nach Reisekosten 2011

Tevalo Handbuch v 1.1 vom

V o r w o r t. A n l e i t u n g

Dieser Text beschreibt die Neuerungen von DaNiS und die Vorgehensweise beim DaNiS-Update.

Lieber SPAMRobin -Kunde!

Transkript:

Informatische Konzepte in LOGO Die folgenden Erläuterungen wurden mit MicroWorlds 2.01 der Firma LCSI (Logo Computer Systems Incorporation) erstellt. 1. TURTLE-GEOMETRIE Die Grundlage der Turtle-Geometrie ist die Vorstellung einer mechanischen, ferngesteuerten Schildkröte (Turtle) mit einem auf der Schildkröte befestigten Schreibstift. Die Turtle kann eine bestimmte Anzahl von Schritten vor oder zurück bewegt werden, sie kann um einen bestimmen Winkel nach rechts oder links gedreht werden. Mit dem Schreibstift zeichnet sie einen Strich der angegebenen Länge. Durch die Befehlsfolge FD 50 RT 120 FD 50 RT 120 FD 50 RT 120 wird ein gleichseitiges Dreieck gezeichnet, und die Turtle wieder in die Ausgangslage positioniert. Nach jeder Zeile führt das interaktive LOGO- System die eingetippten Befehle sofort aus. Eventuelle Fehler werden dadurch sofort erkannt. Zwischen Befehl und Parameter muß immer ein Leerzeichen gemacht werden. Um dieses Dreieck anzumalen, muß folgende Befehlsfolge eingetippt werden: PU RT 60 FD 25 PD SETC "RED FILL Die Turtle muß also zuerst mit den Befehlen PU, RT w, FD n und PD in die Figur positioniert werden, danach wird die Farbe der Turtle gewählt, erst dann kann mit dem Befehl FILL die Figur angemalt werden. 1

2. SCHLEIFEN Durch die Befehlsfolge FD 100 RT 144 FD 100 RT 144 FD 100 RT 144 FD 100 RT 144 FD 100 RT 144 kann ein Stern gezeichnet werden. Beim Zeichnen von regelmäßigen Figuren erkennen die Kinder die Notwendigkeit, das wiederholte Ausführen von gleichen Befehlen in einem einzigen Befehl zusammenzufassen. In LOGO kann der selbe Stern viel einfacher mit dem REPEAT - Befehl gezeichnet werden. REPEAT 5[FD 100 RT 144] 3. SPEICHERN VON BEFEHLSZEILEN IN PROZEDUREN Sollen viele Sterne gezeichnet werden, müssen wir immer wieder diese Zeile eintippen, das wird mit der Zeit umständlich, wir wollen also diese Befehlszeile in einer Prozedur speichern. Dazu gehen wir folgendermaßen vor: Jede Prozedur erhält einen Namen und wird unter diesem Namen definiert. TO STERN REPEAT 5[FD 100 RT 144] Die Definition der Prozedur kann den Kindern so erklärt werden, dass der Computer nun gelernt hat, was ein Stern ist und damit seinen Wortschatz erweitert hat. Der neue Befehl STERN kann nun genauso verwendet werden wie der Befehl FD oder BK. 4. AUFRUFEN VON PROZEDUREN Immer wenn ich nun den Befehl STERN eintippe, wird mir der Computer einen Stern zeichnen. Eine einmal definierte Prozedur kann beliebig oft ausgeführt (aufgerufen) werden. Sie kann aber auch verändert (editiert) werden (es kann z. B. die Seitenlänge von 100 auf 80 verkürzt werden, was das Konzept der "VARIABLEN" vorbereitet). Das Editieren macht aber 2

auch deutlich, dass auch das gespeicherte Programm nach wie vor ein aus Zeichen aufgebauter Text ist, der beliebig modifiziert werden kann. TO STERN REPEAT 5 [FD 100 RT 144] 5. PARAMETER UND VARIABLE Irgendwann wollen wir diesen Stern in verschiedenen Größen zeichnen. Auf der Prozedurenseite (im Editor) können wir die Größe 100 unseres Sternes auf einen anderen Wert setzen, aber mit einem PARAMETER geht es viel leichter. In der folgenden Prozedur STERN mit dem "Platzhaltersymbol" (Parameter) :GRÖSSE wurde die Konstante 100 durch die Variable :GRÖSSE ersetzt. TO STERN :GRÖSSE REPEAT 5 [FD :GRÖSSE RT 144] Die Prozedur beschreibt somit nur mehr das Wesentliche (die Gestalt), die Größe wird beim Aufruf angegeben, z.b. STERN 70 oder STERN 80 Damit wird außer dem Konzept eines Parameters noch der Unterschied zwischen variabler und konstanter Größen vermittelt. Der Winkel von 144 Grad ist für unseren Stern konstant, die Größe unseres Sternes hingegen kann variieren. Gleichzeitig gewinnt auch das Namenskonzept der Prozeduren an Bedeutung. Während bis jetzt nur Namen für Prozeduren vergeben worden sind, müssen jetzt auch Parameter durch Namen gekennzeichnet werden. (Um die beiden Namen, also Prozeudrnamen und Variablennamen zu unterschieden, wird der Parameternamen durch einen Doppelpunkt gekennzeichnet.) Wenn man erkennt, das 5 * 144 Grad genau 720 Grad, das Doppelte von 360 Grad ergibt, kann man sehr leicht eine Prozedur zum Zeichnen von Sternen der gleichen Bauart mit variabler Größe und variabler Anzahl von Strahlen schreiben: 3

TO STERN :GRÖSSE :STRAHLEN REPEAT :STRAHLEN [FD :GRÖSSE RT 720 / :STRAHLEN] Mit Parametern könne Prozeduren verallgemeinert, universell definiert werden. Anstatt eine Prozedur für ein Dreieck zu definieren, kann eine Prozedur für ein regelmäßiges Vieleck mit beliebig vielen Ecken geschrieben werden. TO VIELECK :ECKEN :SEITE REPEAT :ECKEN [FD :SEITE RT 360 / :ECKEN] Rufe ich nun VIELECK 3 50 auf, so wird ein Dreieck mit der Seitenlänge 50 gezeichnet. Bei Aufruf von VIELECK 8 30 wird ein Achteck mit der Seitenlänge 30 gezeichnet. Unter Verwendung dieses Vieleckes kann ein Stern aus einer variablen ANZAHL Vielecken, die wiederum aus einer variablen Anzahl ECKEN mit einer variablen SEITE bestehen, gezeichnet werden. TO STERN :ECKEN :ANZAHL :SEITE REPEAT :ANZAHL [VIELECK :ECKEN :SEITE RT 360 / :ECKEN] 6. REKURSION Prozeduren können auch so definiert werden, dass sie sich in ihrer Definition wieder selbst aufrufen. Man nennt das Rekursion, die sich selbst wieder aufrufende Prozedur nennt man rekursive Prozedur. Rekursive Prozeduren sind bei graphischen Anwendungten meist viel anschaulicher. Es ist z.b. naheliegend, eine Spirale durch eine Strecke und eine verdreht anschließende etwas kleinere Strecke zu zeichnen. TO SPIRALE :SEITE FD :SEITE RT 60 SPIRALE :SEITE - 2 Bei Aufruf von SPIRALE 80 wird die Turtle um achtzig Schritte nach vor gehen, danach wird sie sich um 80 Grad nach rechts drehen. Nun ruft sich die Prozedur wieder selbst auf. Aber der Inhalt der Variablen :SEITE, nämlich 80, wird vorerst um zwei verringert. Die Schildkröte geht also nur mehr um 78 Schritte vorwärts, dreht sich wieder um 60 Grad nach rechts, 4

danach ruft sich die Prozedur wieder selbst auf, wieder mit etwas verringerter Seitenlänge. Die Schwierigkeit, die besteht, ist, dass am Beginn der Schüler noch keine Abbruchkriterien für seine Rekursion findet, dass sich die Prozedur also bis in alle Ewigkeit weiter selbst aufruft. Nun kann ich durch die Tastenkombination Strg + S die Ausführung der Prozedur stoppen, ich kann also interaktiv ein laufendes Programm abbrechen, ich kann aber auch ein Abbruchkriterium in die Prozedur einbauen. TO SPIRALE :SEITE IF :SEITE = 0 [STOP] FD :SEITE RT 60 SPIRALE :SEITE - 2 Die Spirale ruft sich solange selbst wieder auf, bis der Inhalt der Variablen :SEITE 0 ist. Danach wird die Ausführung der Prozedur abgebrochen. 7. FUNKTIONEN Um einen nahtlosen Übergang von den graphischen Aufgaben zu funktionalen Konzepten der Listenverarbeitung zu unterstützen, empfiehlt es sich, als Gegenstück zu den Prozeduren auch Funktionen vorzustellen. Diese unterscheiden sich von der Prozedur dadurch, dass sie ein Ergebnis als Funktionswert liefern. Die in das LOGO-System bereits eingebaute Funktion RANDOM :N etwa liefert zufällig eine ganze Zahl zwischen 0 und N - 1. Erinnern wir uns an die Prozedur STERN :ECKEN :ANZAHL :SEITE TO STERN :ECKEN :ANZAHL :SEITE REPEAT :ANZAHL[VIELECK :ECKEN :SEITE RT 360 / :ECKEN] STERN RANDOM 5 RANDOM 10 RANDOM 40 zeichnet z.b. einen Stern aus zufällig vielen Polygonen, zufälliger Eckenzahl und zufälliger Seitenlänge, falls die Prozedur Stern definiert wurde. Sollen die Zufallszahlen in einem vorgegeben Intervall (A, B) liegen, so kann dies durch die folgendermaßen definierte Funktion ZUFALL bewirkt werden. 5

TO ZUFALL :A :B OP :A + RANDOM ( :B - :A) + 1 Der Funktionswert wird durch den Befehl OUTPUT (OP) beschrieben. Der Befehl SHOW ZUFALL 10 40 liefert eine zufällig vom Computer ausgewählte Zahl zwischen 10 und 40. Das Konzept einer Funktion erlaubt interessante Parallelen zum mathematischen Funktionsbegriff. 8. DIALOGPROGRAMME Da in LOGO mit Hilfe eines PRINT-Befehles (PR) ein beliebiger Text am Bildschirm ausgegeben werden kann, und mittels des Befehls QUESTION ein ebensolcher Text von der Tastatur eingegeben werden kann, steht der Programmierung eines einfachen Dialogs nichts mehr im Wege: TO DIALOG QUESTION [Wollen Sie ein Dreieck zeichnen?] IF ANSWER = "JA [DREIECK 50 ] QUESTION [Wollen Sie eine Spirale zeichnen?] IF ANSWER = "JA [Spirale 80 ] TEXT1, PR [Etwas anderes kann ich noch nicht!] Die beiden folgenden Beispiele zeigen mögliche Abwickelungen dieses Mensch - Maschine - Dialogs: Beispiel 1: WOLLEN SIE EIN DREIECK ZEICHNEN? JA/NEIN NEIN WOLLEN SIE EINE SPIRALE ZEICHNEN? JA/NEIN NEIN ETWAS ANDERES KANN ICH NOCH NICHT! Beispiel 2: WOLLEN SIE EIN DREIECK ZEICHNEN? JA/NEIN JA (Dreieck wird gezeichnet, falls Prozedur vorhanden!) Ein solcher Dialog gestattet es, den Programmablauf zur Ausführungszeit zu beeinflussen und im Programm vorgesehene Alternativen auszuwählen. 6

Die eingegebene Daten sind ebenso wie die ausgegebenen Texte Listen (und daher in eckige Klammern eingeschlossen). Aber auch der von der Bedingung abhängige Programmteil ist eine Liste. Die folgende Prozedur 1MAL1 zeigt einen Dialog, der solange nach dem Produkt seiner Parameter M und N fragt, bis das richtigte Ergebnis eingetippt wird. TO 1MAL1 :M :N QUESTION (SE [Wieviel ist] :M [*] :N [?] ) MAKE "ANTWORT ANSWER IF :ANTWORT = ( :M * :N) [TEXT1, PR [BRAVO!]] IF NOT :ANTWORT = ( :M * :N) [PR [FALSCH! NOCH EINMAL!]1MAL1 :M :N] Bei Aufruf von 1MAL1 können die Parameterwerte etwa zufällig gesetzt werden: REPEAT 5 [1MAL1 RANDOM 10 RANDOM 20] WIEVIEL IST 2 * 11? 22 BRAVO! WIEVIEL IST 4 * 11? 44 BRAVO! WIEVIEL IST 4 * 1? 4 BRAVO! WIEVIEL IST 9 * 13? 107 FALSCH! NOCH EINMAL! WIEVIEL IST 9 * 13? 117 BRAVO! WIEVIEL IST 7 * 6? 42 BRAVO! 9. SPEICHERN VON DATEN Ebenso wie es wünschenswert war, Programme zu speichern, um sie anschließend wiederholt auszuführen, wird jetzt der Wusch nach Speicherung der eingegebenen Daten wach. 7

Ähnlich wie die gespeicherten Programme, müssen auch die Daten mit einem Namen bezeichnet werden. Mit Hilfe der MAKE - Anweisung kann einem Datenelement ein Wert zugewiesen werden, um die eingegebene Antwort zu speichern. MAKE "ANTWORT ANSWER Zu einem späteren Zeitpunkt kann die gespeicherte Antwort überprüft werden. IF :ANTWORT = JA... Genau genommen erfolgt der Zugriff zu dem Datenelement hin zu zwei unterschiedlichen Zwecken. Im ersten Fall wird der Name des Datenelementes benötigt, im zweiten Fall der Inhalt. (In LOGO wird der Name durch Apostrophe, der Inhalt durch den Doppelpunkt gekennzeichnet. Anstelle des Doppelpunktes kann auch WERT geschrieben werden. MAKE "HAUPTWORT [AUTO] MAKE "R 0 MAKE "F 0 Um später die Namen der Datenelemente und die Inhalte der Datenelemente überprüfen zu können, verwendet man den Befehl SHOW NAMES Der Computer listet nun die Namen und die Inhalte der Daten auf: MAKE "R 0 MAKE "HAUPTWORT [AUTO] MAKE "F 0 Jedes gespeicherte Datenelement kann später wieder gelöscht werden. CLEARNAME "Name löscht Namen und Inhalt des entsprechenden Datenelementes. CLEARNAMES löscht alle gespeicherten Datenelemente und deren Inhalte. 8

Das folgende Beispiel zeigt eine Erweiterung der 1mal1 - Prozedur, die die Anzahl der richtigen und falschen Antworten mit HIlfe der Datenelemente R und F mitzählt. TO 1MAL1 RECHNEN RANDOM 10 RANDOM 10 QUESTION[Noch einmal? JA/NEIN] MAKE "ANTWORT ANSWER IF :ANTWORT = "JA [1MAL1] IF :ANTWORT = "NEIN [TEXT1, PR(SE :R[Richtig!] :F[Falsch!]) STOP ] TO RECHNEN :M :N QUESTION(SE [Wieviel ist] :M [*] :N[?]) MAKE "ANTWORT ANSWER IF :ANTWORT = ( :M * :N) [TEXT1, PR[Bravo!] MAKE "R :R + 1] IF NOT :ANTWORT = ( :M * :N) [TEXT1, PR[Falsch!] MAKE "F :F + 1 RECHNEN :M :N] Vor dem Aufruf von 1MAL1 müssen durch die Befehle MAKE "R 0 MAKE "F 0 den Datenelementen R und F die Werte 0 zugewiesen werden. 10.1. WÖRTER 10. ZAHLEN, WÖRTER, LISTEN In LOGO werden Zeichenketten WÖRTER genannt. Zu ihrer Verarbeitung - Zusammenfassung von Wörtern zu längeren, Zerlegen von Wörtern etc. - gibt es in LOGO eine Reihe von Sprachelementen. Als Kennzeichen für ein Wort wird in LOGO ein Anführungszeichen verwendet. Bei Eingabe von TEXT1, PR "HUGO wird HUGO auf dem Bildschirm ausgegeben. Entgegen dem Gebrauch in der deutschen Sprache (und auch in vielen Computersprachen) steht das Anführungszeichen nur am Anfang eines Wortes. Ein Wort darf aus allen Zeichen bestehen außer dem Leerzeichen und den eckigen Klammern. 9

Folgende Funktionen, die als Eingabe ein Wort haben, sind in LOGO vorhanden, um Teile eines Wortes herauszugreifen: a) FIRST: TEXT1, PR FIRST "HUGO ergibt H b) LAST: TEXT1, PR LAST "HUGO ergibt O c) BUTFIRST (Abkürzung BF): TEXT1, PR BUTFIRST "HUGO ergibt UGO d) BUTLAST (Abkürzung BL): TEXT1, PR BUTLAST "HUGO ergibt HUG e) Natürlich kann man auch diese Vokabel zusammen verwenden. TEXT1, PR LAST BUTLAST "HUGO ergibt G f) Zum Zusammensetzen von größeren Wörtern aus kleineren verwendet LOGO die Funktion WORD. Sie verlangt zwei Eingaben und setzt diese (in der Reihenfolge der Eingabe) zu einem Wort zusammen. TEXT1, PR WORD "DONAU "DAMPFSCHIFF ergibt DONAUDAMPFSCHIFF 10.2. ZAHLEN 10

Zahlen werden in LOGO wie Wörter behandelt, so dass man alle Funktionen zum Arbeiten mit Wörtern auch auf Zahlen anwenden kann. TEXT1, PR BUTFIRST "234567 ergibt 34567 und so fort... Folgende zwei Prozeduren mögen das Vorgestellte erläutern: TO TRICHTER1 :WORT IF :WORT = " [E] TEXT1, PR :WORT TRICHTER1 BUTFIRST :WORT Bei Aufruf von TRICHTER1 "ANASTASIUS wird auf dem Bildschirm ausgegeben: ANASTASIUS NASTASIUS ASTASIUS STASIUS TASIUS ASIUS SIUS IUS US S TO TRICHTER2 :WORT IF :WORT = " [E] PR :WORT TRICHTER2 BUTLAST :WORT Bei Aufruf von TRICHTER2 "ANASTASIUS wird auf dem Bildschirm ausgegeben: ANASTASIUS ANASTASIU ANASTASI ANASTAS ANASTA ANAST ANAS 11

ANA AN A TRICHTERn reduziert jeweils das Wort um das erste bzw. letzte Zeichen. Der gesamte Vorgang wird beendet, wenn das gesamte Wort zum leeren Wort abgebaut ist. 10.3. LISTEN Durch Leerzeichen getrennte Worte eines Textes bilden eine LISTE. LISTEN werden in LOGO in eckige Klammern eingeschlossen dargestellt. MAKE "HAUPTWÖRTER [AUTO FENSTER TISCH GARTEN] Durch die MAKE-Anweisung wird diese Liste dem Datenelement HAUPTWÖRTER zugewiesen. Der Inhalt von HAUPTWÖRTER ist also die Liste AUTO FENSTER TISCH GARTEN TEXT1, PR :HAUPTWÖRTER wobei der Doppelpunkt immer den Inhalt, den Wert des Datenelementes darstellt, ergibt also auf dem Bildschirm AUTO FENSTER TISCH GARTEN Die für Zeichen (Elemente) von Wörtern und Zahlen eingeführten Funktionen können auch auf Listen angewandt werden, nur dass sie sich dann auf einzelne Wörter (Elemente der Liste) statt auf Zeichen beziehen. a) FIRST: Es wird das erste Element der Liste herausgegriffen: TEXT1, PR FIRST :HAUPTWÖRTER ergibt AUTO b) LAST: Es wird das letzte Element der Liste herausgegriffen: TEXT1, PR LAST :HAUPTWÖRTER ergibt GARTEN 12

c) BUTFIRST: Hier wird der Rest der Liste ohne erstes Element geliefert. TEXT1, PR BUTFIRST :HAUPTWÖRTER ergibt FENSTER TISCH GARTEN d) BUTLAST: Hier wird der Rest der Liste ohne letztes Element geliefert. TEXT1, PR BUTLAST :HAUPTWÖRTER ergibt AUTO FENSTER TISCH e) FPUT: Mit diesem Befehl kann vorne an eine Liste ein Element als erstes Element eingefügt werden. MAKE "HAUPTWÖRTER FPUT "KASTEN :HAUPTWÖRTER ergibt KASTEN AUTO FENSTER TISCH GARTEN f) LPUT: Mit diesem Befehl kann hinten an eine Liste ein Element als letztes Element angefügt werden. MAKE "HAUPTWÖRTER LPUT "BETT :HAUPTWÖRTER ergibt KASTEN AUTO FENSTER TISCH GARTEN BETT g) Mit dem Befehl MAKE "HAUPTWÖRTER LPUT FIRST :HAUPTWÖRTER BUTFIRST :HAUPTWÖRTER kann das erste Element der Liste entfernt werden und hinten als letztes Element wieder angehängt werden. h) Ebenso kann mit dem Befehl MAKE "HAUPTWÖRTER FPUT LAST :HAUPTWÖRTER BUTLAST :HAUPTWÖRTER das letzte Element der Liste entfernt werden und vorne als erstes Element wieder angehängt werden. 13

Unter Verwendung einer aus einem deutschen und dem gleichbedeutenden englischen Wort zusammengesetzten Liste kann z.b. ein Vokabelprüfprogramm folgendermaßen definiert werden: TO QUIZ MAKE "WÖRTER [ [HUND DOG] [KATZE CAT] [MAUS MOUSE] ] FRAGE FIRST :WÖRTER Hier wird dem Datenelement WÖRTER eine Liste, die wiederum drei Listen enthält, zugewiesen. Jede dieser drei Listen enthält zwei Elemente, also ein erstes und ein zweites Element. Danach wird die Prozedur FRAGE aufgerufen. TO FRAGE :PAAR QUESTION (SE [Wie heißt] FIRST :PAAR [auf Englisch?] ) MAKE "ANTWORT ANSWER IF :ANTWORT = LAST :PAAR [TEXT1, PR [Richtig!]] IF NOT :ANTWORT = LAST :PAAR [TEXT1, PR [Falsch!] FRAGE FIRST :WÖRTER] MAKE "WÖRTER BUTFIRST :WÖRTER IF :WÖRTER = [] [STOPALL] FRAGE FIRST :WÖRTER Vom ersten der drei PAARE (das sind die drei Listen) soll das erste Element auf dem Bildschirm erscheinen. Der Anwender soll das zweite (oder letzte)element dieser Liste (also LAST) eintippen, also den englischen Begriff. Ist er richtig, wird dieses mit dem Wort RICHTIG festgestellt und zum nächsten PAAR gegenagen. Ist er falsch, wird so lange das erste Element des ersten PAARES (also der ersten LISTE) auf dem Bildschirm gezeigt, bis das richtige zweite Element eingetippt wird. Danach wird die dem Datenelement WÖRTER zugewiesene Liste um das erste Element verkleinert (MAKE "WÖRTER BUTFIRST :WÖRTER). Danach wird wieder FRAGE aufgerufen. Die geht so lange, bis die dem Datenelement WÖRTER zugewiesene Liste leer ist. Danach wird das Programm abgebrochen. ( IF :WÖRTER = [] [STOPALL] ). 11. PROGRAMME ALS DATEN Da jede Prozedur, ebenso wie die Daten, als Liste dargestellt wird, ist es naheliegend, den bislang bewußt gemachten Unterschied zwischen Programm und Daten in Frage zu stellen und Programme als Daten und Daten als Programme zu betrachten. 14

Im Beispiel unseres Vokabelprüfprogrammes etwa äußert sich der Unterschied, ob von Deutsch auf Englisch oder von Englisch auf Deutsch übersetzt wird, nur durch die Ersetzung von LAST durch FIRST und BUTFIRST durch BUTLAST. TO QUIZ2 QUESTION DEUTSCH - ENGLISCH...1 ENGLISCH - DEUTSCH...2 MAKE "ANTWORT ANSWER IF :ANTWORT = "1 [MAKE "X "FIRST] IF :ANTWORT = "2 [MAKE "X "LAST] MAKE "WÖRTER [HUND DOG KATZE CAT MAUS MOUSE] FRAGE2 :WÖRTER :X Enthält der Parameter X den TEXT "first", so wird nach dem englischen Äquivalent eines deutschen Wortes gefragt, hat X den Text "last", wird nach dem deutschen Äquivalent des englischen Wortes gefragt. Der LOGO-Befehl RUN bewirkt dabei die Interpretation der nachfolgenden Liste als Programmtext. Dass die Sprachnamen DEUTSCH und ENGLISCH ebenfalls in einer Liste gespeichert sind, macht das Programm für beliebige Sprachen anwendbar. TO FRAGE2 :WÖRTER :X QUESTION (SE [Wie heißt] RUN LIST :X :WÖRTER[auf] RUN LIST :X [ENGLISCH DEUTSCH][?]) MAKE "ANTWORT2 ANSWER IF :ANTWORT2 = [ ] [FRAGE2 :WÖRTER :X] MAKE "FIRST :ANTWORT2 IF :ANTWORT2 = (RUN LIST :X RUN LIST WORD "BUT :X :WÖRTER) [TEXT1, PR [Bravo!]] IF NOT :ANTWORT2 = ( RUN LIST :X RUN LIST WORD "BUT :X :WÖRTER)[TEXT1, PR[Falsch!]FRAGE2 :WÖRTER :X] MAKE "WÖRTER RUN LIST (WORD "BUT :X) RUN LIST (WORD "BUT :X) :WÖRTER IF :WÖRTER = [ ][STOPALL] FRAGE2 :WÖRTER :X Ähnlich kann die Auswahl aus einem Menü von gespeicherten Programmen durch eine Liste dieser Programmnamen im Dialog gesteuert werden. TO DIALOG :L IF :L = [][TEXT1, PR[Etwas anderes kann ich nicht!]stopall] QUESTION (SE [Soll ich ein) FIRST :L [zeichnen? JA/NEIN]) MAKE "ANTWORT ANSWER 15

IF :ANTWORT = "Ja[CG RUN FIRST :L] DIALOG BUTFIRST :L Sind nun z.b. die Prozeduren RECHTECK, QUADRAT und DREIECK definiert worden, wird nach Aufruf des Befehls DIALOG [RECHTECK QUADRAT DREIECK] der Dialog gestartet, und die Figuren werden gezeichnet, falls der Benützer das wünscht. 12. REFERENZLITERATUR H. SCHAUER u. G. FUTSCHEK, Warum LOGO für Programmieranfänger? in: Surveys in Computer Science B. I. - Wissenschaftsverlag Maria HEERDEGEN-LEITNER Andreas HEERDEGEN KMS_NTS 4 Schäffergasse 3 A - 1040 Wien 16