IsMathematikerRealNumber

Aus JACK Wiki
Zur Navigation springen Zur Suche springen

Diese Seite beinhaltet eine Evaluator-Funktion im JACK3 System.

Zugehörige Evaluatoren

  • MathEvaluator

Beschreibung

Die Funktion isMathematikerRealNumber prüft, ob es sich bei einem gegebenen Objekt um eine reelle Zahl handelt und der eingegebene Term nicht weiter vereinfachbar ist. Die Funktion gibt einen Boolean zurück.

Hinweis: Nicht zu verwechseln mit IsRealNumber. Hier findet sich eine Übersicht aller Number-Funktionen.


Für diese Funktion ist die Eingabe dann eine reelle Zahl, wenn die folgenden Kriterien erfüllt sind:

  • Die Eingabe lässt sich nicht zu Unendlich ausrechnen,
  • Die Eingabe lässt sich zu einer reellen Zahl ausrechnen,
  • Die Eingabe kann nicht weiter vereinfacht werden und
  • Die Eingabe ist kein Doppelbruch oder ein Bruch mit Fließkommazahlen.

Eine Eingabe ist weiter vereinfachbar, wenn

  • sie mindestens einen Operanten enthält (+, -, *, /, ^, sqrt) und
  • sich zu einer Ganzzahl ausrechnen lässt.

Syntax

isMathematikerRealNumber(Objekt objekt)

Parameter

  • objekt - das zu überprüfende Objekt

Return Value

  • Gibt einen Boolean zurück. True, wenn es sich um eine reelle Zahl nach obigen Kriterien handelt.

Beispiele

//Kein Operant
isMathematikerRealNumber(5.5)   --> returns true
isMathematikerRealNumber(5)   --> returns true
isMathematikerRealNumber(constE())   --> returns true
isMathematikerRealNumber(constPi())   --> returns true

isMathematikerRealNumber(infinity())   --> returns false, da Unendlich nicht als Zahl definiert ist

// Ein Operant
isMathematikerRealNumber(sqrt(3))   --> returns true
isMathematikerRealNumber(ln(4))   --> returns true
isMathematikerRealNumber(cos(4))   --> returns true
isMathematikerRealNumber(sin(2))   --> returns true
isMathematikerRealNumber(tan(1))   --> returns true
isMathematikerRealNumber(-6)   --> returns true
isMathematikerRealNumber(constE()^2)   --> returns true 
isMathematikerRealNumber(constPi()/2)   --> returns true

isMathematikerRealNumber(2*3)   --> returns false, der Ausdruck lässt sich weiter vereinfachen
isMathematikerRealNumber(0.5/0.5)   --> returns false, der Ausdruck lässt sich weiter vereinfachen
isMathematikerRealNumber(sqrt(4))   --> returns false, der Ausdruck lässt sich weiter vereinfachen
isMathematikerRealNumber(3^5)   --> returns false, der Ausdruck lässt sich weiter vereinfachen

// Zwei Operanden
isMathematikerRealNumber(-1/5)   --> returns true
isMathematikerRealNumber(1/-5)   --> returns true
isMathematikerRealNumber(-sqrt(3))   --> returns true
isMathematikerRealNumber(sqrt(4/9))   --> returns true
isMathematikerRealNumber(sqrt(3)/2)   --> returns true
isMathematikerRealNumber(sqrt(sqrt(3)))   --> returns true
isMathematikerRealNumber(((3)^0.5)^0.5)   --> returns true
isMathematikerRealNumber(2^(1/3))   --> returns true
isMathematikerRealNumber(sqrt(2)*constPi())   --> returns true
isMathematikerRealNumber(1+sqrt(3))   --> returns true

isMathematikerRealNumber(sqrt(-1))   --> returns false, es handelt sich um eine komplexe Zahl
isMathematikerRealNumber(sqrt(2^2))   --> returns false, der Ausdruck lässt sich weiter vereinfachen
isMathematikerRealNumber(0.5/(1/2))   --> returns false, der Ausdruck lässt sich weiter vereinfachen

// Drei Operanden
isMathematikerRealNumber(1/2*sqrt(3))   --> returns true
isMathematikerRealNumber(sqrt(3^2+5))   --> returns false, der Ausdruck lässt sich weiter vereinfachen
isMathematikerRealNumber((1/2)/(1/2))   --> returns false, der Ausdruck lässt sich weiter vereinfachen

// Vier Operanden
isMathematikerRealNumber(-1/2*sqrt(3))   --> returns true

Benutzung von Variablen

isMathematikerRealNumber([input=fillin1])

isMathematikerRealNumber([var=a])

Hinweise

Die Überprüfung mit Textfeldern funktioniert nur, wenn man den Formeleditor verwendet.

Gibt man keinen Editor an, wird für ein Textfeld ([input=fillin1] usw.) ein OpenMath String zurückgegeben. Dadurch gibt isMathematikerRealNumber([input=fillin1]) sowie isMathematikerRealNumber('[input=fillin1]') immer false zurück. Um ein richtiges Ergebnis zu erlangen, muss Matches genutzt werden.