Evaluator

Aus JACK Wiki
Zur Navigation springen Zur Suche springen

Ergebnisauswertung

Der Evaluator wird zur Auswertung diverser Ausdrücke innerhalb von JACK verwendet. Er findet zum Beispiel Anwendung bei der Benutzung des result-Attributs innerhalb des <option>-Tags.

<correctanswer>
 <option result="[pos=1]==25*2"/>
 <message>Richtig! Das Ergebnis ist 50.</message>
</correctanswer>

Hierbei versucht der Evaluator den Wert des result-Attributs, also der in Anführungszeichen stehende Ausdruck, zu einem Boolean auszuwerten. Für eine korrekte Funktionsweise ist es deswegen wichtig, dass der dort stehende Ausdruck auch tatsächlich zu einem booleschen Ergebnis validiert werden kann. Auf diese Weise können viele mitunter sehr unterschiedliche Lösungs-Einreichungen von Aufgaben auf ihre Richtigkeit geprüft werden, ohne sich im Vorfeld jeder möglichen Einreichung bewusst zu sein.

Variablen erstellen

Zusätzlich kann der Evaluator auch beim Erzeugen aufgabenbezogener Variablen innerhalb der ExerciseChain genutzt werden. Innerhalb des value-Attributs des <option>-Tags lassen sich mathematische Operationen so wie spezielle Funktionen des Evaluators nutzen, um beispielsweise Aufgaben mit unterschiedlichen bzw. zufallsgenerierten Werten zu erstellen. Bei dieser Nutzung des Evaluators muss anders als bei der Auswertung von Lösungseinreichungen nicht darauf geachtet werden, dass dem auszuwertenden Ausdruck ein Boolean-Wert zugewiesen werden kann.

<variables>
 <option name="a" value="5"/>
 <option name="b" value="2"/>
 <option name="c" value="[var=a]*[var=b]"/>
</variabls>

Funktionen

Der Evaluator beinhaltet viele verschiedene Funktionen, die alle in JACK für die Aufgabendarstellung benutzt werden können. Hier geben wir eine vollständige Liste aller angebotenen Funktionen mit ihrer Funktionalität. <option>

allgemeine binäre Operatoren

unäre Operatoren

CAS Funktionen

Evaluator Funktionen

Hinweise

  • Wenn man zwei oder mehr Funktionen miteinander verknüpft fallen die Anführungszeichen weg: equalsExpr(evalEq('5','5'),'0')