Migration zur Evaluator 2 Syntax (Jack2): Unterschied zwischen den Versionen

Aus JACK Wiki
Zur Navigation springen Zur Suche springen
 
(12 dazwischenliegende Versionen von 5 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
== EqualsExpr ==
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
* Multiplikation
: Zwischen den Variablen müssen Mal-Zeichen gesetzt werden.
: Zwischen den Variablen müssen Mal-Zeichen gesetzt werden.
:: ''Bsp.: 2xy -> 2*x*y''
:: ''Bsp.:'' \(2xy \rightarrow 2*x*y\)
: ''2xy'' ist als Eingabemöglichkeit im Moment nicht möglich.
: \(2xy\) ist als Eingabemöglichkeit im Moment nicht möglich.
*Methoden
*Methoden
: Methodennamen werden klein geschrieben und '[]' durch '()' ersetzt.
: Methodennamen werden klein geschrieben und <code>'[]'</code> durch <code>'()'</code> ersetzt.
:: ''Bsp.: Factorial[ [var=f] ] -> factorial([var=f])''
:: ''Bsp.:'' <code>Factorial[ [var=f] ] -> factorial([var=f])</code>
*Ausdrücke
: \(\pi\) muss <code>'[var=PI]'</code> geschrieben werden.
:: ''Bsp.:'' <code>equalsExpr('[pos=12]','2*[var=PI]*r')</code>


==Berechnungen==
==Berechnungen==
* Bei Problemen bei der Berechnung von double-Variablen:
* Bei Problemen bei der Berechnung von double-Variablen:
: In der '''exerciseChain.xml'''-Datei:  
: In der '''exerciseChain.xml'''-Datei:  
:: ''round([var=a]*100.)/100.'' --> ''round([var=a]*100.0)/100.0''
:: <code>round([var=a]*100.)/100. --> round([var=a]*100.0)/100.0</code>
 
==Deklaration von Mengenvariablen==
Bei der Mengenangabe <code>"Set"</code> müssen Strings in Apostrophe gesetzt werden:
: <code>set="{'Berlin','Paris','Prag'}"</code>
Zahlen und Variablen werden weiterhin ohne Apostrophe geschrieben
: <code>set="{1,2,3,4}"</code>
: <code>set="{a,b,c}"</code>
 
== 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:
 
<code><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"/></code>
 
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:
 
<code><option name="land" value="sample(c(\'Island\', \'Frankreich\', \'Japan\', \'Großbritannien\', ...), 1)" cas=“R"/></code>
 
[[Category:Evaluator]]

Aktuelle Version vom 19. April 2024, 12:18 Uhr

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 \rightarrow 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
\(\pi\) 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"/>