Kapitel 2. Syntax

KAlgebra verwendet eine intuitive algebraische Syntax für die Eingabe von benutzerdefinierten Funktionen, Eine ähnliche Syntax wird für die meisten modernen grafischen Rechner verwendet. In diesem Abschnitt werden alle in KAlgebra verfügbaren eingebauten Operatoren aufgeführt. Die Syntax von KAlgebra wurde in Anlehnung an die mathematischen Anwendungen Maxima und maple entwickelt und sollte daher allen Benutzern dieser Programme vertraut sein.

In KAlgebra werden die eingegebenen Ausdrücke in MathML für das Hintergrundprogramm umgewandelt. Ein grundsätzliches Verständnis der durch MathML unterstützten Fähigkeiten ist hilfreich, um die Möglichkeiten von KAlgebra zu entdecken.

Folgende Operatoren sind in dieser Version enthalten:

  • + - * / : Addition, Subtraktion, Multiplikation und Division.

  • ^, ** : Potenzen, beide Schreibweisen und auch das Unicodezeichen ² sind erlaubt. Potenzen können auch als Wurzel benutzt werden, zum Beispiel: a**(1/b)

  • ->: Lambda-Funktion. Die Möglichkeit, eine oder mehrere freie Variablen zu definieren, die an eine Funktion gebunden werden. Im Ausdruck length:=(x,y)->(x*x+y*y)^0.5 zum Beispiel wird der Lambda-Operator zur Kennzeichnung benutzt, dass x und y als gebundene Variablen bei der Funktion „length“ verwendet werden.

  • x=a..b : Einschränkung eines Wertebereichs (beschränkte Variable mit unterer und oberer Grenze). Die Variable x kann in diesem Beispiel nur Werte von a bis b annehmen.

  • () : Klammern bestimmen den Vorrang einer auszuführenden Rechenoperation vor anderen in der Rechenreihenfolge.

  • abc(parameter) : Funktionen. Beim Einlesen von Funktionen wird überprüft, ob „abc“ ein Operator ist. Wenn ja, dann wird es als Operator behandelt, ansonsten als benutzerdefinierte Funktion.

  • := : Definition des Wertes einer Variablen. Definitionen wie x:=3, x:=y sind möglich, auch wenn y noch nicht definiert ist, oder zum Beispiel umfang:=r->2*pi*r.

  • ? : Abschnittsweise definierte Bedingungen. Damit können bedingte Operationen in KAlgebra definiert werden. Anders ausgedrückt ist das eine Möglichkeit „if, elseif, else“ -Bedingungen zu definieren. Das Ergebnis einer abschnittsweise definierten Funktion ist der Ausdruck nach dem '?' der ersten wahre Bedingung. Trifft keine Bedingung zu, wird der Ausdruck nach dem letzten '?' ohne vorangestellte Bedingung zurückgegeben. Beispiel: piecewise { x=0 ? 0, x=1 ? x+1, ? x**2 }

  • { } : Damit werden MathML-Container definiert, die hauptsächlich bei abschnittsweise definierten Bedingungen verwendet werden.

  • = > >= < <= : Vergleichsoperatoren für gleich, größer, größer oder gleich, kleiner und kleiner oder gleich.

Mit diese MathML-ähnlichen Syntax kann mit Funktionen wie cos(), sin(), jeder beliebigen trigonometrischen Funktion, sum() oder product() gearbeitet werden. Sie können Funktionen wie plus(), mal() und jede beliebige Funktion mit Operator verwenden. Auch Boolesche Funktionen sind implementiert, Sie können zum Beispiel mit Ausdrücke wie or(1,0,0,0,0) arbeiten.