Migration zur Evaluator 2 Syntax (Jack2)

Aus JACK Wiki
Zur Navigation springen Zur Suche springen

Durch die Migration auf den Evaluator Version 2, welche im November 2017 vorgenommen wurde, kann es zu fehlerhaften Aufgaben kommen. Auf dieser Seite werden die typischen Fehler aufgeführt und Maßnahmen zur Behebung angegeben.

Fehler in der Funktion EqualsExpr

  • Multiplikation
Zwischen den Variablen müssen Mal-Zeichen gesetzt werden.
Bsp.: 2xy -> 2*x*y
2xy ist als Eingabemöglichkeit im Moment nicht möglich.
  • Methoden
Methodennamen werden klein geschrieben und '[]' durch '()' ersetzt.
Bsp.: Factorial[ [var=f] ] -> factorial([var=f])
  • Ausdrücke
π muss '[var=PI]' geschrieben werden.
Bsp.: equalsExpr('[pos=12]','2*[var=PI]*r')

Berechnungen

  • Bei Problemen bei der Berechnung von double-Variablen:
In der exerciseChain.xml-Datei:
round([var=a]*100.)/100. --> round([var=a]*100.0)/100.0

Deklaration von Mengenvariablen

Bei der Mengenangabe "Set" müssen Strings in Apostrophe gesetzt werden:

set="{'Berlin','Paris','Prag'}"

Zahlen und Variablen werden weiterhin ohne Apostrophe geschrieben

set="{1,2,3,4}"
set="{a,b,c}"

Hochkommata in Funktionsargumenten

Hochkommata sind der Deklaration von Zeichenketten für den Evaluator vorbehalten. Dies kann problematisch sein, wenn man Hochkommata auch innerhalb dieser Zeichenketten verwenden möchte, also bspw. in folgendem Aufruf:

<option name="land" value="sample(c('Island', 'Frankreich', 'Japan', 'Großbritannien', 'Norwegen', 'Deutschland', 'Italien', 'die Niederlande', 'Tschechien', 'Polen', 'Österreich', 'Griechenland', 'die USA', 'die Türkei'), 1)" cas=“R"/>

Der Ausdruck im Attribut value wird der Funktion evaluateInR in Hochkommata übergeben und diese wird ausgewertet. Daher muss wie in Java üblich ein Escaping mittels Backslash betrieben werden. Der korrekte Aufruf lautet also nun folgendermaßen:

<option name="land" value="sample(c(\'Island\', \'Frankreich\', \'Japan\', \'Großbritannien\', ...), 1)" cas=“R"/>