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

Wir haben uns in dem ersten Teil unseres LOGO-Kurses mit den einfachen Befehlen der Graphikerzeugung beschäftigt. Diesesmal verabschieden wir uns von der Welt der graphischen Darstellung um andere Seiten von LOGO kennenzulernen, kommen aber später wieder darauf zurück.

Das LOGO Einmaleins

Was hätte man von einer Computersprache, die keine Zahlen verarbeiten könnte? Schließlich können Computer hauptsächlich nur mit Zahlen umgehen. Genauso ist dies bei LOGO.

LOGO kennt eine große Anzahl von mathematischen Funktionen, die sowohl im Direkt-Modus angesprochen, als auch in Programme eingebaut werden können.

Die Addition zweier oder mehrerer Zahlen funktioniert folgendermaßen:

? +  <zahl>  <zahl>
oder
? <zahl>  +  <zahl>
wie
? SUM <zahl>  <zahl>

Diese drei Modi wiederholen sich bei Subtraktion, Multiplikationen, sowie Divisionen.

DR LOGO FOR GEM!
?+ 12 U
46
?- 67 20
*7
?65 * l
I3B
T* 45 4
180
?/ 34 4
8,5
?36 / 3
12

Für die Benutzung von Produkten werden wir jetzt ein kleines Programm schreiben, das eine bestimmte Menge von Zahlen quadriert und auf dem Bildschirm auflistet. Tippen Sie bitte ein

TO ZAHL :MENGE

. IF .-MENGE > 100 (STOP) PRINT :MENGE * :MENGE ZAHL :MENGE + 1 END

Jetzt geben Sie im Direct Modus ein: ZAHL l

Das Programm wird die ersten 100 Zahlen quadrieren und auf dem Bildschirm ausgeben. Die mathematischen Fähigkeiten beschränken sich bei LOGO nicht auf die vier Grundrechenarten, sondern wie bei anderen höheren Programmiersprachen auch, sind Funktionen wie Wurzelziehen, Potenzieren und trigonometrische Funktionen implementiert. Hier eine Übersicht dieser Funktionen:

SORT <zahl>

ermittelt die quadratische Wurzel jeder beliebigen Zahl.SQRT 9 ergibt 3 .

Um die bisher beschriebenen Funktionen zu erläutern, werden wir eine kleine Prozedur schreiben, die eine quadratische Gleichung (lösbar) löst.

Eine quadratische Gleichung kann folgendermaßen berechnet werden:

-b + SQRT b 2 - 4ac / 2a -b - SQRT b 2 - 4ac / 2a

Unsere LOGO Prozedur sieht so aus:

TO QUADRATISCHE :A :B :C
CT
MAKE-ZWISCHEN SQRT B    2 - (4 * (:A * : C)
MAKE"QGl :-(B + ZWISCHEN) / 2 * :A
MAKE"QG2 :-(B - ZWISCHEN) / 2 * :A
PRINT :QG1
END

Jetzt geben Sie im Direkt-Modus ein: QUADRATISCHE 9 12 24

Um eine Zahl zu potenzieren, kann man wahlweise: ? <zahl> Potenz oder ? <zahl> Potenz Die Zahl 8 3 z. B. ergibt 512.00036

Bei der Potenzierung mit einer gebrochenen Zahl resultiert daraus eine Wurzel, z. B. 21 1/3 ist gleichbedeutend 21 und das ergibt 2.7589.

QUOTIENT <zahl> <zahl> ergibt den ganzzahligen Teil einer Division. QUOTIENT 7 2 ergibt 3. REMAINDER <zahl> <zahl> Durch REMAINDER wird der Rest einer Division bestimmt.

ABS <zahl> ergibt den absoluten Wert einer Zahl wieder. ABS-18 ergibt 18.

INT <zahl> gibt den ganzzahligen Anteil einer Zahl wieder. Die Stellen hinter dem Dezimalpunkt werden ignoriert. INT 3.5 ergibt 3.

ROUND <zahl> rundet eine Zahl auf bzw. ab. ROUND 20.5 ergibt 21. Außerdem kennt LOGO die Zahl PI, wobei PRINT PI die Zahl 3.141592 ergibt.

TOUOTIENT 16
3
?REMflIKDER 5 2
l
ms -9
3
?IHT 16,3
16
7RDUHO 13.5
14
?PI
3.141592
fl

Die Exponentialfunktion einer Zahl ist durch EXP < zahl > zu ermitteln.

Natürlicher Logarithmus, wie Logarithmus zur Basis 10 sind bei LOGO auch möglich.

LOG 40 ergibt 3.6888 (natürlicher Logarithmus von 40), LOG10 40 ergibt 1.6020 (Logarithmus zur Basis 10 von 40)

Um den natürlichen Logarithmus zu verdeutlichen, geben Sie folgende Prozedur ein, der den Sinur-Hyperbolikus berechnet:

TO SINUSH :ZAHL
MAKE"SH LOG
(ZAHL + SQR ((ZAHL   2) + 1)
PRINT :SH
END

Im Direct-Modus geben Sie ein: SINUSH 20

Umwandlung von Bogenmaß in Altgrad, und umgekehrt beherrscht LOGO ebenfalls.

DEGREES < zahl > Umwandlung einer Zahl von Bogenmaß in Altgrad.
RADIANZ <zahl> Umwandlung einer Zahl von Altgrad in Bogenmaß.

Die wichtigen trigonometrischen Funktionen sind auch vertreten.

SIN < zahl > ermittelt den Sinus eines Winkels.
COS <zahl> bestimmt den Cosinus eines Winkels.
TAN <zahl> ermittelt den Tangens eines Winkels.
ARCTAN <zahl> errechnet den Arcus-Tangens eines Winkels.

7LOG 60 4.894345 7LOG18 30 1.(77121 "SIH 30 B.5
?COS 45 8.707107 "TflH 15 B.Z67949 TftRCTflH 65 69.118604

Wie Sie schon gesehen haben, können alle diese mathematischen Funktionen nicht nur im Direkt-Modus angesprochen, sondern auch in Programme eingebaut werden. Wir werden jetzt eine aufwendige Prozedur schreiben, in der Teile dieser Funktionen verdeutlicht werden sollen. Von Pythagoras wissen wir, daß die Länge der Hypotenuse eines rechtwinkligen Dreiecks folgendermaßen berechnet werden kann:

(Hypotenuse) 2 = (a) 2 + (b) 2

Eine Prozedur in LOGO, die die Hypotenuse berechnet, kann so aussehen:

TO HYPOTENUSE :SEITEA :SEITEB
MAKE "HYPO SQRT :SEITEA * :SEITEA +
:SEITEB *   :SEITEB PRINT :HYPO END

Wir wissen aus dem ersten Teil unseres Kurses, daß eine Prozedur mit den Befehl TO anfangen und einen Namen besitzen muß. Bei unserem Programm lautet der Name Hypotenuse.

Die Prozedur läßt die Eingabe von zwei Parametern (a,b) zu. Die nächste Zeile zeigt uns zuerst die Benutzung von Variablen, sowie die Zuweisung eines errechneten Wertes. Die Variabel HYPO enthält den Wert der Hypotenusenlänge, die folgendermaßen berechnet wird: SQRT :A * A + B * B. Wir hätten dies auch anders berechnen können: SQRT :A 2 + B 2. Die nächste Zeile verursacht, daß der Wert der Hypotenuse angezeigt wird. Die Prozedur wird, wie immer, mit END abgeschlossen. Wir werden jetzt unsere Prozedur erweitern, und zwar insofern, daß über die Tastatur eingelesen und die Hypotenuse berechnet wird.

TO LESEN CT
PRINT (BITTE GEBEN SIE SEITE a EIN) MAKE "SEITEA RL
PRINT (BITTE GEBEN SIE SEITE b EIN) MAKE "SEITEB RL HYPOTENUSE :SEITEA :SEITEB END

Zuerst wird durch CT das Textfenster freigestellt. Die nächste Zeile fordert Sie auf einen Wert über die Tastatur einzugeben. Durch RL (READ LIST) wird solange gewartet, bis eine Zahl eingegeben und mit RETURN abgeschlossen wird. Das Ganze wiederholt sich in der dritten und vierten Zeile damit dann in der fünften unsere alte Prozedur HYPOTENUSE aufgerufen werden kann. Unser Dreieck kann nicht nur berechnet werden, sondern auch gezeichnet. Das ist unser nächster Schritt. Geben Sie bitte ein:

TO ZEICHEN :SEITEA :SEITEB : HYPO CS
FD :SEITEA RT90 FD :SEITEB
LT 180 - ARCTAN :A / :B FD :HYPO END

Wie oben werden auch hier durch CS die Graphikfenster gelöscht und dann wird ein Dreieck gezeichnet. Wir führen jetzt alle Teilprozeduren zu einem einzigen Programm zusammen. Zu diesem Zweck geben Sie jetzt bitte ein:

TO DREIECK LESEN
ZEICHEN :SEITEA :SEITEB ; HYPO END

Jetzt geben Sie im Direkt-Modus ein: DREIECK

LOGO und die Logik

Genauso wie mathematische Funktionen verfügt LOGO über einige logische Operationen, die wir jetzt beschreiben möchten:

AND < Aussage > < Aussage > Logisches UND. Ergibt TRUE, wenn alle Aussagen wahr sind, sonst ist die Antwort FALSE.

? AND 10 &gt; 5 " AND  8 &gt; 4

7 < 9 ergibt TRUE. 6 < 5 ergibt FALSE. OR < Aussage > < Aussage > Logisches ODER. Ergibt TRUE, wenn zumindest eine Aussage wahr ist.

? OR 10 &gt; 5 " OR   8 &gt; 9

6 < 5 ergibt TRUE. 6 < 5 ergibt FALSE.

NOT &lt; Aussage &gt;

NOT ergibt FALSE, wenn die Aussage wahr ist und umgekehrt.

? NOT 20 =  20 ergibt FALSE. " NOT   6 &lt;    5 ergibt TRUE.
?fiHD 10 > 3 2 = Z
TRUE
TflHD 2 = 2 8 < 9
FfiLSE
TOR J > ( Z = Z
TRUE
?OR 18 < 5 (> 7
FfiLSE
?HDT 18 < 5
TRUE

Damit ist unsere Folge zu einem Ende gekommen. Wir sind ein Stück weiter in das Reich von LOGO vorgedrungen. In unserer nächsten Folge werden wir uns intensiv mit Variabeln, sowie Listen beschäftigen.



Aus: ST-Computer 02 / 1986, Seite 65

Links

Copyright-Bestimmungen: siehe Über diese Seite