Die Turtle im Koordinatensystem 1 - Wien · Die Turtle im Koordinatensystem 1 Die folgenden...

14
Die Turtle im Koordinatensystem 1 Die folgenden Erläuterungen wurden mit MicroWorlds 2.01 der Firma LCSI (Logo Computer Systems Incorporation) erstellt. 1. DAS KOORDINATENSYSTEM IN LOGO Der Bildschirm ist durch ein Gitter aufgeteilt (in der Mathematik spricht man von einem Koordinatensystem). Die Mitte des Gitters entspricht dabei genau der Turtlestellung, die man mit HOME oder auch mit CG (LöscheGrafik) erhält. Von diesem Punkt aus kann man sich waagrecht und senkrecht zwei Achsen denken, die X-Achse (waagrecht) und die Y-Achse (senkrecht). Beide Achsen sind in Turtleschritte unterteilt, von der Mitte aus nach rechts bis 290, nach links bis -290, von der Mitte aus nach oben bis 155, nach unten bis -155. Die Mitte selbst ist der Null-Punkt. Soll nun ein bestimmter Punkt des Bildschirmes ausgewählt werden, dann muß man lediglich angeben, wie weit nach rechts oder LTnks, also in X- Richtung, und wie weit nach oben oder unten, also in Y-Richtung man zu gehen hat. Folgende Prozeduren erzeugen auf dem Bildschirm die Koordinatenachsen: TO SKALA.STRICH.X.ACHSE FD 2 BK 4 FD 2 END TO SKALA.STRICH.Y.ACHSE LT 90 FD 2 BK 4 FD 2 RT 90 END TO PFEIL LT 90 FD 3 REPEAT 2[RT 120 FD 6] RT 120 FD 3 RT 90 END TO PFEIL.X.ACHSE RT 90 PFEIL LT 90 PU BK 10 END 1

Transcript of Die Turtle im Koordinatensystem 1 - Wien · Die Turtle im Koordinatensystem 1 Die folgenden...

Page 1: Die Turtle im Koordinatensystem 1 - Wien · Die Turtle im Koordinatensystem 1 Die folgenden Erläuterungen wurden mit MicroWorlds 2.01 der Firma LCSI (Logo Computer Systems Incorporation)

Die Turtle im Koordinatensystem 1 Die folgenden Erläuterungen wurden mit MicroWorlds 2.01 der Firma LCSI (Logo Computer Systems Incorporation) erstellt.

1. DAS KOORDINATENSYSTEM IN LOGO

Der Bildschirm ist durch ein Gitter aufgeteilt (in der Mathematik spricht man von einem Koordinatensystem). Die Mitte des Gitters entspricht dabei genau der Turtlestellung, die man mit HOME oder auch mit CG (LöscheGrafik) erhält.

Von diesem Punkt aus kann man sich waagrecht und senkrecht zwei Achsen denken, die X-Achse (waagrecht) und die Y-Achse (senkrecht). Beide Achsen sind in Turtleschritte unterteilt, von der Mitte aus nach rechts bis 290, nach links bis -290, von der Mitte aus nach oben bis 155, nach unten bis -155. Die Mitte selbst ist der Null-Punkt.

Soll nun ein bestimmter Punkt des Bildschirmes ausgewählt werden, dann muß man lediglich angeben, wie weit nach rechts oder LTnks, also in X-Richtung, und wie weit nach oben oder unten, also in Y-Richtung man zu gehen hat.

Folgende Prozeduren erzeugen auf dem Bildschirm die Koordinatenachsen:

TO SKALA.STRICH.X.ACHSE FD 2 BK 4 FD 2 END

TO SKALA.STRICH.Y.ACHSE LT 90 FD 2 BK 4 FD 2 RT 90 END

TO PFEIL LT 90 FD 3 REPEAT 2[RT 120 FD 6] RT 120 FD 3 RT 90 END

TO PFEIL.X.ACHSE RT 90 PFEIL LT 90 PU BK 10 END

1

Page 2: Die Turtle im Koordinatensystem 1 - Wien · Die Turtle im Koordinatensystem 1 Die folgenden Erläuterungen wurden mit MicroWorlds 2.01 der Firma LCSI (Logo Computer Systems Incorporation)

TO PFEIL.Y.ACHSE PFEIL PU LT 90 FD 7.5 RT 90 END

TO SKALA.X.ACHSE :X IF :X > 225 [STOP] NZ :X 0 SKALA.STRICH.X.ACHSE SKALA.X.ACHSE :X + 10 END

TO SKALA.Y.ACHSE :Y IF :Y > 145 [STOP] NZ 0 :Y SKALA.STRICH.Y.ACHSE SKALA.Y.ACHSE :Y + 10 END

TO X.ACHSE NZ -220 0 Z 220 0 PFEIL.X.ACHSE SKALA.X.ACHSE -220 END

TO Y.ACHSE NZ 0 -140 Z 0 140 PFEIL.Y.ACHSE SKALA.Y.ACHSE -140 END

TO ACHSEN CG SETC 14 X.ACHSE Y.ACHSE HOME SETC 9 END

TO Z :X :Y IF :X > 240 [STOP] IF :X < -240 [STOP] IF :Y > 190 [STOP] IF :Y < -190 [STOP]

2

Page 3: Die Turtle im Koordinatensystem 1 - Wien · Die Turtle im Koordinatensystem 1 Die folgenden Erläuterungen wurden mit MicroWorlds 2.01 der Firma LCSI (Logo Computer Systems Incorporation)

SETPOS LIST :X :Y END

TO NZ :X :Y IF :X > 240 [STOP] IF :X < -240 [STOP] IF :Y > 190 [STOP] IF :Y < -190 [STOP] PU SETPOS LIST :X :Y PD END

Die Hauptprozedur heißt ACHSEN. Wird diese aufgerufen, werden die Koordinatenachsen gezeichnet.

2. DER LOGO-BEFEHL SETPOS [X Y]

Der LOGO - Befehl, der die Turtle auf einen bestimmten Bildschirmpunkt setzt, heißt:

SETPOS [x y]

Für ihn sind zwei Angaben notwendig, nämlichch eine Zahl für den X-Wert und eine für den Y-Wert.

Wir wollen ein Quadrat mit seinen Diagonalen zeichnen. Wir versuchen folgende Prozedur:

TO QUADRAT1 PU

3

Page 4: Die Turtle im Koordinatensystem 1 - Wien · Die Turtle im Koordinatensystem 1 Die folgenden Erläuterungen wurden mit MicroWorlds 2.01 der Firma LCSI (Logo Computer Systems Incorporation)

SETPOS [70 70] PD SETPOS [70 0] SETPOS [0 0] SETPOS [0 70] SETPOS [70 70] SETPOS [0 0] SETPOS [0 70] SETPOS [70 0] SETPOS [0 0] END

3. DIE LOGO-BEFEHLE XCOR UND YCOR

In unseremm Beispiel haben wir mit dem Befehl SETPOS die Koordinaten der Punkte vorgegeben und die Turtle zeichnend immer wieder zu den neuen Punkten geschickt, bis ein Quadrat mit seinen Diagonalen ensteht. Wenn wir aber später irgend ein Quadrat zeichnen wollen, woher wissen wir dann die X-Werte und die Y-Werte der Punkte, die miteinander verbunden werden sollen, um z. B. die Diagonalen des Quadrats zeichnen zu lassen.

Die Befehle XCOR und YCOR stellen jeweils fest, an welchem Punkt sich die Turtle jeweils befindet, und zwar bestimmt XCOR den X-Wert und YCOR den Y-Wert des Punktes.

Der Befehl

4

Page 5: Die Turtle im Koordinatensystem 1 - Wien · Die Turtle im Koordinatensystem 1 Die folgenden Erläuterungen wurden mit MicroWorlds 2.01 der Firma LCSI (Logo Computer Systems Incorporation)

SETPOS -30 70

schickt die Turtle an einen bestimmten Punkt des Koordinatensystems.

Der Befehl

SHOW XCOR

ergibt -30

der Befehl

SHOW YCOR

ergibt 70

4. DIE X-WERTE UND Y-WERTE SOLLEN IN VARIABLEN GESPEICHERT WERDEN

Wenn wir nun ein x-beliebiges Quadrat zeichnen wollen und später die Diagonalen eingezeichnet werden sollen, hat die Turtle den Eckpunkt, von dem aus die erste Diagonale gezeichnet werden soll, womöglich schon wieder verlassen.

Deshalb bestimmen wir eine Variable, in der wir den für später zu behaltenden Wert speichern.

Der entsprechende Befehl dafür heißt

MAKE "Name (der Variablen) Wert (der ihr zugewiesen wird)

Der erste Eckpunkt unseres Quadrats befindet sich am Turtlestandort , wenn mit dem Zeichnen begonnen wird. Seine Koordinaten können wir mit XCOR und YCOR abfragen und mit dem MAKE-Befehl bewirken, dass entsprechende Variablen diese Werte (XCOR und YCOR) erhalten sollen.

MAKE "X.ECKE.1 XCOR

MAKE "Y.ECKE.1 YCOR

Es existieren nun zwei Variablen, deren Werte gerade die Koordinatenwerte der ersten Ecke unseres Quadrates sind.

Nach dem Zeichnen der ersten Quadratseite ist die Turtle am zweiten Eckpunkt des Quadrates angelangt. Wir erzeugen zwei weitere Variablen.

MAKE "X.ECKE.2 XCOR

MAKE "Y.ECKE.2 YCOR

5

Page 6: Die Turtle im Koordinatensystem 1 - Wien · Die Turtle im Koordinatensystem 1 Die folgenden Erläuterungen wurden mit MicroWorlds 2.01 der Firma LCSI (Logo Computer Systems Incorporation)

XCOR und YCOR ergeben nun andere Werte, da ja der Turtlestandort nun ein anderer ist. Diese Werte werden an die neuen Variablen übergeben. Wieder wird die (diesmal zweite) Quadratseite gezeichnet. Die Turtle steht dann am dritten Eckpunkt. Wieder erzeugen wir zwei Variablen.

Die gesamte Prozedur sieht nun so aus:

TO QUADRAT2 :SEITE MAKE X.ECKE.1 XCOR MAKE Y.ECKE.1 YCOR FD :SEITE RT 90 MAKE X.ECKE.2 XCOR MAKE Y.ECKE.2 YCOR FD :SEITE RT 90 MAKE X.ECKE.3 XCOR MAKE Y.ECKE.3 YCOR FD :SEITE RT 90 MAKE X.ECKE.4 XCOR MAKE Y.ECKE.4 YCOR FD :SEITE RT 90 DIAGONALEN1 HOME END

Nach Aufruf der Prozedur, z. B. nach QUADRAT2 90 können wir uns die einzelnen Variablen auf dem Bildschirm ausdrucken lassen.

6

Page 7: Die Turtle im Koordinatensystem 1 - Wien · Die Turtle im Koordinatensystem 1 Die folgenden Erläuterungen wurden mit MicroWorlds 2.01 der Firma LCSI (Logo Computer Systems Incorporation)

Der Befehl

SHOW NAMES

druckt die Namen der Variablen und die Inhalte der Variablen aus.

Wir erhalten also folgendes Ergebnis:

:X.ECKE.1 0

:Y.ECKE.1 0

:X.ECKE.2 0

:Y.ECKE.2 90

:X.ECKE.3 90

:Y.ECKE.3 90

:X.ECKE.4 90

:Y.ECKE.4 0

Die Werte 0 und 90, die wir für X.ECKE.2 und Y.ECKE.2 erhalten haben, beschreiben also die Lage des zweiten Eckpunktes unseres Quadrates. Die Lage des vierten Eckpunktes unseres Quadrates ist in den Variablen X.ECKE.4 und Y.ECKE.4 gespeichert. Werden nun beide Ecken verbunden, ergibt sich die erste Diagonale.

Mit dem Befehl SETPOS [x y] kann ich nun die Turtle an einen bestimmten Punkt setzen.

Somit kann ich mit dem Befehl

SETPOS LIST :X.ECKE.2 :Y.ECKE.2

die Turtle auf den Punkt [0 90] setzen.

Das Zeichnen der Diagonalen ist nun relativ einfach.

TO DIAGONALEN1 PU SETPOS LIST :X.ECKE.1 :Y.ECKE.1 PD SETPOS LIST :X.ECKE.3 :Y.ECKE.3 PU SETPOS LIST :X.ECKE.2 :Y.ECKE.2 PD SETPOS LIST :X.ECKE.4 :Y.ECKE.4 HOME END

7

Page 8: Die Turtle im Koordinatensystem 1 - Wien · Die Turtle im Koordinatensystem 1 Die folgenden Erläuterungen wurden mit MicroWorlds 2.01 der Firma LCSI (Logo Computer Systems Incorporation)

5. VARIABLE AUTOMATISCH ERZEUGEN

Eine Quadrat-Prozedur geht schneller zu zeichnen, wenn wir mit dem REPEAT-Befehl arbeiten.

REPEAT 4 [FD 70 RT 90]

Warum ist bei unserem QUADRAT2 der REPEAT-Befehl nicht möglich? Doch nur deshalb, weil bei MAKE jedesmal ein anderer Variablenname angegeben worden ist, also eben nicht einfach nur wiederholt werden durfte.

In LOGO ist es möglich, selbständig neue Wörter als Variablennamen erzeugen zu lassen.

Für diesen Zweck gibt es den Befehl

WORD

a) Der Befehl

SHOW WORD "Wörter "Buch

gibt auf dem Bildschirm aus

Wörterbuch

b) Der Befehl

SHOW WORT "X.ECKE. "9

ergibt

X.ECKE.9

c) Die Befehle

MAKE "ZAHL 17

und

SHOW WORT "X.ECKE. :ZAHL

ergeben

X.ECKE.17

d) Da wir bei unserem Quadrat mit der Ecke Nr. 1 beginnen, schaffen wir eine Variable ZÄHLZAHL, in der wir den Wert 1 speichern, also

MAKE "ZÄHLZAHL 1

8

Page 9: Die Turtle im Koordinatensystem 1 - Wien · Die Turtle im Koordinatensystem 1 Die folgenden Erläuterungen wurden mit MicroWorlds 2.01 der Firma LCSI (Logo Computer Systems Incorporation)

Und nun unsere Prozedur:

TO QUADRAT3 :SEITE MAKE "ZÄHLZAHL 1 REPEAT 4[FD :SEITE RT 90 MAKE (WORD "X.ECKE. :ZÄHLZAHL) XCOR MAKE (WORD "Y.ECKE. :ZÄHLZAHL) YCOR MAKE "ZÄHLZAHL :ZÄHLZAHL + 1] DIAGONALEN1 END

Die Prozedur übergibt als erstes den Wert 1 einer Variablen mit dem Namen ZÄHLZAHL. Dann kommt die viermal zu wiederholende Befehlsfolge. Sie beginnt mit dem Zeichnen der ersten Quadratseite und der Rechtsdrehung um 90 Grad. Anschließend folgt der MAKE-Befehl, in dem der Wert XCOR dem Wort aus "X.ECKE. und :ZÄHLZAHL zugewiesen wird. Da die Variable :ZÄHLZAHL beim ersten Durchgang noch den Wert 1 hat, ergibt

WORD "X.ECKE. :ZÄHLZAHL

das Wort

X.ECKE.1

Entsprechendes geschieht mit der Variablen X.ECKE.1 und dem Wert YCOR.

Zum Schluß steht noch

MAKE "ZÄHLZAHL :ZÄHLZAHL + 1

Zu dem bisherigen Wert von ZÄHLZAHL - nämlich im Moment noch 1 - wird die Zahl 1 addiert. Dieser Wert wird der Variablen ZÄHLZAHL neu übergeben. ZÄHLZAHL hat nun also den Wert 2.

Der Vorgang beginnt von vorne. Da ZÄHLZAHL nun den Wert 2 hat, wird durch den Befehl

MAKE WORD "X.ECKE. :ZÄHLZAHL

das Wort

X.ECKE.2

geschaffen.

Dieser neu geschaffenen Variablen wird der neue Wert XCOR zugewiesen.

Und so geht es weiter, bis alle vier Seiten gezeichnet worden sind.

9

Page 10: Die Turtle im Koordinatensystem 1 - Wien · Die Turtle im Koordinatensystem 1 Die folgenden Erläuterungen wurden mit MicroWorlds 2.01 der Firma LCSI (Logo Computer Systems Incorporation)

AUFGABEN:

1) Schreibe Prozeduren, die mit Hilfe einer Folge von SETPOS - Befehlen

a) ein Rechteck

b) ein Parallelogramm

mit seinen Diagonalen erzeugt.

Lösungen:

TO RECHTECK1 PU SETPOS [ 30 10] PD SETPOS [ 30 70] SETPOS [ 120 70] SETPOS [ 120 10] SETPOS [ 30 10] SETPOS [ 120 70] SETPOS [ 30 70] SETPOS [120 10] END

TO PARALLELOGRAMM1 PU SETPOS [-10 20] PD SETPOS [70 –40] SETPOS [50 10] SETPOS [-30 70] SETPOS [-10 20] SETPOS [50 10] SETPOS [-30 70] SETPOS [70 –40] END

10

Page 11: Die Turtle im Koordinatensystem 1 - Wien · Die Turtle im Koordinatensystem 1 Die folgenden Erläuterungen wurden mit MicroWorlds 2.01 der Firma LCSI (Logo Computer Systems Incorporation)

2. Schreibe Prozeduren für ein Rechteck und ein Parallelogramm, in denen die Koordinatenpunkte in Variablen gespeichert werden!

Lösungen:

TO RECHTECK2 :A :B MAKE "X.1 XCOR MAKE "Y.1 YCOR FD :A RT 90 MAKE "X.2 XCOR MAKE "Y.2 YCOR FD :B RT 90 MAKE "X.3 XCOR MAKE "Y.3 YCOR FD :A RT 90 MAKE "X.4 XCOR MAKE "Y.4 YCOR FD :B RT 90 DIAGONALEN2 END

TO DIAGONALEN2 PU SETPOS LIST :X.1 :Y.1 PD SETPOS LIST:X.3 :Y.3 PU SETPOS LIST :X.2 :Y.2 PD SETPOS LIST :X.4 :Y.4 END

TO PARALLELOGRAMM2 :A :B :W MAKE "X.1 XCOR MAKE "Y.1 YCOR FD :A RT :W

11

Page 12: Die Turtle im Koordinatensystem 1 - Wien · Die Turtle im Koordinatensystem 1 Die folgenden Erläuterungen wurden mit MicroWorlds 2.01 der Firma LCSI (Logo Computer Systems Incorporation)

MAKE "X.2 XCOR MAKE "Y.2 YCOR FD :B RT 180 - :W MAKE "X.3 XCOR MAKE "Y.3 YCOR FD :A RT :W MAKE "X.4 XCOR MAKE "Y.4 YCOR FD :B RT 180 - :W DIAGONALEN2 END

3. Schreibe Prozeduren, die ein Rechteck und ein Parallelogramm mit deren Diagonalen erzeugen, in denen die Variablennamen und die Inhalte der Variablen selbst erzeugt werden!

Lösungen:

TO RECHTECK3 :A :B MAKE "ZÄHLZAHL 1 REPEAT 2[FD :A RT 90 MAKE (WORD "X. :ZÄHLZAHL) XCOR MAKE (WORD "Y. :ZÄHLZAHL) YCOR MACHE "ZÄHLZAHL :ZÄHLZAHL + 1 FD :B RT 90 MAKE (WORD "X. :ZÄHLZAHL) XCOR MAKE (WORD "Y. :ZÄHLZAHL) YCOR MACHE "ZÄHLZAHL :ZÄHLZAHL + 1] DIAGONALEN2 END

TO PARALLELOGRAMM3 :A :B :W MAKE "ZÄHLZAHL 1 REPEAT 2[FD :A RT :W

12

Page 13: Die Turtle im Koordinatensystem 1 - Wien · Die Turtle im Koordinatensystem 1 Die folgenden Erläuterungen wurden mit MicroWorlds 2.01 der Firma LCSI (Logo Computer Systems Incorporation)

MAKE (WORD "X. :ZÄHLZAHL) XCOR MAKE (WORD "Y. :ZÄHLZAHL) YCOR MAKE "ZÄHLZAHL :ZÄHLZAHL + 1 FD :B RT 180 - :W MAKE (WORD "X. :ZÄHLZAHL) XCOR MAKE (WORD "Y. :ZÄHLZAHL) YCOR MAKE "ZÄHLZAHL :ZÄHLZAHL + 1] DIAGONALEN2 END

6. VIELECKE UND DEREN VARIABLE

Die Prozedur für ein Vieleck ist recht einfach.

TO VIELECK :N :S MAKE "ZÄHLZAHL 1 REPEAT :N[FD :S RT 360 / :N MAKE (WORD "X.ECKE. :ZÄHLZAHL) XCOR MAKE (WORD "Y.ECKE. :ZÄHLZAHL) YCOR MAKE "ZÄHLZAHL :ZÄHLZAHL + 1] DIAGONALEN3 :N 1 END

Wie aber können alle Diagonalen gezeichnet werden? Das Problem besteht darin, daß wir nun nicht mehr von einer feststehenden Eckenzahl (z. B. 4 bei einem Quadrat) ausgehen können. Wir können also nicht mehr von vornherein bestimmen, welche Ecken miteinander verbunden werden können

13

Page 14: Die Turtle im Koordinatensystem 1 - Wien · Die Turtle im Koordinatensystem 1 Die folgenden Erläuterungen wurden mit MicroWorlds 2.01 der Firma LCSI (Logo Computer Systems Incorporation)

TO ALLE.DIAGONALEN :ANZAHL :NR :START IF :START > :ANZAHL [SETPOS LIST THING WORD "X.ECKE. :NR THING WORD "Y.ECKE. :NR STOP] SETPOS LIST THING WORD "X.ECKE. :NR THING WORD "Y.ECKE. :NR SETPOS LIST THING WORD "X.ECKE. :START THING WORD "Y.ECKE. :START ALLE.DIAGONALEN :ANZAHL :NR :START + 1 END

TO DIAGONALEN3 :ANZAHL :NR IF :NR > :ANZAHL - 2 [SETPOS LIST THING WORD "X.ECKE. :ANZAHL THING WORD "X.ECKE. :ANZAHL STOP] ALLE.DIAGONALEN :ANZAHL :NR (:NR + 2) DIAGONALEN3 :ANZAHL :NR + 1 END

7. REFERENZLITERATUR

Ernst F. Haas, Schüler programmieren in Logo Lehr- und Arbeitsbuch mit mehr als 200 Prozedurbeispielen und 180 Aufgaben Verlag Ferdinand Schöningh, Paderborn 1988

Maria HEERDEGEN-LEITNER Andreas HEERDEGEN

KMS_NTS 4

Schäffergasse 3 A - 1040 Wien

14