|
Übungsaufgaben
-
Nennen Sie ein Beispiel für eine Lisp-Rechenfunktion, die
beliebig viele Argumente erhalten kann.
All of the basic arithmetic functions (+ - * /)
-
Stellen Sie sich vor, Sie haben mit einer Zeichnung zu tun, die
in 12 x 12 Planquadrate unterteilt ist, welche von 0 (links unten)
bis 143 (rechts oben) durchnummeriert sind. Welche der hier
besprochenden Rechenfunktionen benötigen Sie, um herauszubekommen,
in welcher Spalte (vertikal!) ein bestimmtes Quadrat liegt?
(rem 83 12) => 11, d.h. das Feld 83 liegt ganz rechts, da die
Zählung wieder bei 0 beginnt
-
Berechnen Sie in der Kommandozeile:
die dritte Wurzel aus 100
die vierte Wurzel aus 1000
die Zahl e
den Cosinus von pi/2
den Sinus von pi/4
den Sinus von 45°
den Cosinus von 30°
(expt 100(/ 1 3.0)) => 4.64159
(sqrt(sqrt 1000)) oder (expt 100(/ 1 3.0)) => 5.62341
(exp 1) => 2.71828
(cos(/ pi 2)) => 6.12303e-017 - das ist 0 mit Rundungsfehler!
(sin(/ pi 4)) oder (/(sqrt 2)2) => 0.707107
siehe letzte Aufgabe, 45° == pi/4
(cos(/ pi 6)) => 0.866025
Kleine Mathe-Schwächen bitte woanders auffrischen;-)
-
Welche der folgenden Eingaben verursachen eine Fehlermeldung?
(+(+))
(*(+ 3 4(- 6 3))6))((- 5 9)
(cos 30 45 60)
(+ pi pi)
(exp 100)
(expt 100)
Bei der 2. ist falsch geklammert, cos kann nur 1 Argument haben,
expt braucht eigentlich 2, geht aber durch, auch wenn das Ergebnis
zu nichts zu gebrauchen ist, es wird 1 verwendet, wenn das zweite
Argument fehlt
-
Nennen Sie mindestens drei Beispiele für Lisp-Rechenfunktionen,
die immer nur ein Argument erhalten. Fallen Ihnen noch weitere
Funktionen ein, die es in Lisp wohl ebenso geben wird, die Sie
aber noch nicht kennen, und die auch nur ein Argument haben
können? Nennen Sie ausserdem drei Beispiele für Funktionen, die
mindestens zwei Argumente benötigen.
Ein Argument erhalten sin, cos, log, abs und sqrt. Ihnen könnte noch
der Tangens eingefallen - aber den gibt es nicht in AutoLisp! Trotzdem
ein guter Gedanke. Ersetzen den Tangens durch sin/cos -- oder war's
umgekehrt? Den Arcustangens gibt's aber: (atan ...).
Zwei Argumente brauchen (wenn das Ergebnis sinnvoll sein soll)
die Funktionen rem, expt und die Grundrechenarten ausser (- ...)
für ein wirklich sinnvolles Ergebnis. Die Minus-Funktion mit einem
Argument macht allerdings immer Sinn (Negation!)
-
Beschreiben sie noch einmal die Unterschiede zwischen Infix-,
Präfix- und Postfix-Notation.
Bei der Infix-Notation steht der Operator zwischen den Operanden
und muss wiederholt werden, wenn mehr als zwei Operanden gegeben
sind. Bei der Präfix-Notation (AutoLisp!) steht er am Anfang,
gefolgt von den Operanden. Die Postfix-Notation ist ähnlich, nur
steht da der Operator ganz am Ende.
-
In welcher Reihenfolge bzw. Richtung werden die Bestandteile
verschachtelter Ausdrücke in AutoLisp evaluiert?
Die Hauptrichtung ist Links->Rechts, Verschachtelungen werden
von Innen nach Aussen verarbeitet
-
Wenn wir den Ausdruck (xyz 1 2 3) auf der Kommandozeile
eingeben und keine Fehlermeldung erhalten, was muss dann
xyz sein?
Dann muss xyz eine Funktion sein!
|
|
|