Migration zur Evaluator 2 Syntax (Jack2): Unterschied zwischen den Versionen
PRanz (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
|||
(15 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* | :: ''Bsp.:'' \(2xy \rightarrow 2*x*y\) | ||
: | : \(2xy\) ist als Eingabemöglichkeit im Moment nicht möglich. | ||
*Methoden | |||
: Methodennamen werden klein geschrieben und <code>'[]'</code> durch <code>'()'</code> ersetzt. | |||
:: ''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== | |||
* Bei Problemen bei der Berechnung von double-Variablen: | |||
: In der '''exerciseChain.xml'''-Datei: | |||
:: <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])
- Bsp.:
- Ausdrücke
- \(\pi\) muss
'[var=PI]'
geschrieben werden.- Bsp.:
equalsExpr('[pos=12]','2*[var=PI]*r')
- Bsp.:
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"/>