Variablen (JACK3): Unterschied zwischen den Versionen

Aus JACK Wiki
Zur Navigation springen Zur Suche springen
K (Hinweis auf Syntaxflags ergänzt; Beispiel für mathematische Variablen eingefügt)
(Erläuterungen zum Einbetten von Variablen)
 
(8 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 2: Zeile 2:


==JACK-Variablen==
==JACK-Variablen==
Es stehen verschiedene Variablentypen zur Verfügung, die in allen (Evaluator-)Ausdrücken (z.B. in Feedbackregeln oder Stufenverknüpfungen) verwendet werden können. Alle JACK-Variablen werden mit <code>[<type>=<name>]</code> verwendet. Beim Testen einer Aufgabe und Ansehen einer Bearbeitung können die Variablen in den Debug-Optionen eingesehen werden. Auch im Fließtext (z.B. Aufgabentext, Feedback- oder Hinweis-Texten) können JACK-Variablen verwendet werden. Für die bessere Darstellung der Variablen in Fließtexten (z.B. Runden auf x Stellen, SI-Präfixe) gibt es die sogenannten [[Variablensetzung Syntax Flag (JACK3)|Syntax Flags]].
Es stehen verschiedene Variablentypen zur Verfügung, die in allen (Evaluator-)Ausdrücken (z.B. in Feedbackregeln oder Verknüpfungen) verwendet werden können. Alle JACK-Variablen werden mit <code>[<type>=<name>]</code> verwendet. Beim Testen einer Aufgabe und Ansehen einer Bearbeitung können die Variablen in den Debug-Optionen eingesehen werden. Auch im Fließtext (z.B. Aufgabentext, Feedback- oder Hinweis-Texten) können JACK-Variablen verwendet werden. Für die bessere Darstellung der Variablen in Fließtexten (z.B. Runden auf x Stellen, SI-Präfixe) gibt es die sogenannten [[Variablensetzung Syntax Flag (JACK3)|Syntax Flags]].


<div style="background:#e6f3ff; border: 3px solid #99ceff; border-left-width:15px; padding:0 .5em; width:100%; box-sizing:border-box;">
{{Wichtig|Nicht alle Variablen sind immer verfügbar. Eingabe-Variablen sind nur nach einer Einreichung verfügbar, Meta-/Check-Variablen ggf. erst nach durchgeführten Checks und nur bei bestimmten Aufgabentypen. Um zu prüfen, ob eine Variable definiert ist, kann die Funktion [[IsVariable]] genutzt werden.}}
'''Wichtig''': Bei der Verwendung von JACK-Variablen ist darauf zu achten, dass Eingabe-, Check- und Meta-Variablen nicht immer verfügbar sind, z.B. sind Eingabe-Variablen nur nach einer Einreichung verfügbar. Um zu prüfen, ob eine Variable definiert ist, kann die Funktion [[IsVariable]] genutzt werden.
</div>


Bieten Aufgabenteil-Typen bestimmte Variablen an, sind diese im Abschnitt "Variablen" des jeweiligen Artikels aufgelistet.
Bieten Aufgabenteil-Typen bestimmte Variablen an, sind diese im Abschnitt "Variablen" des jeweiligen Artikels aufgelistet.
Zeile 18: Zeile 16:
b = 15
b = 15
</pre>
</pre>
Nach der Initialisierung enthält die Aufgaben-Variable "a" einen zufälligen Wert zwischen 1 und 10 und "b" den Wert 15. Diese Variable kann in der Aufgabe (z.B. in Feedbackregeln, Feedback oder dem Aufgabentext) nun mit <code>[var=a]</code> verwendet werden. Als Wert der Variablen sind sowohl Konstanten als auch (komplexere) [[Evaluator#Funktionen|Evaluator-Ausdrücke]] möglich.
Nach der Initialisierung enthält die Aufgaben-Variable "a" einen zufälligen Wert zwischen 1 und 9 und "b" den Wert 15. Diese Variable kann in der Aufgabe (z.B. in Feedbackregeln, Feedback oder dem Aufgabentext) nun mit <code>[var=a]</code> (siehe auch [[Variablen (JACK3)#Variablen in Texten einbetten|Variablen in Texten einbetten]]) verwendet werden. Als Wert der Variablen sind sowohl Konstanten als auch (komplexere) [[Evaluator#Funktionen|Evaluator-Ausdrücke]] möglich.


=== Eingabe-Variablen (input)===
===Eingabe-Variablen (input)===
Diese Variablen enthalten innerhalb eines Aufgabenteils die Eingabe von Studierenden. Wie die Variablen heißen und was sie enthalten, hängt vom jeweiligen Typ des Aufgabenteils ab. Mithilfe von Eingabe-Variablen lässt sich z.B. prüfen, ob die Eingabe korrekt war bzw. ob das eingegebene Ergebnis einer Musterlösung entspricht.
Diese Variablen enthalten innerhalb eines Aufgabenteils die Eingabe von Studierenden. Wie die Variablen heißen und was sie enthalten, hängt vom jeweiligen Typ des Aufgabenteils ab. Mithilfe von Eingabe-Variablen lässt sich z.B. prüfen, ob die Eingabe korrekt war bzw. ob das eingegebene Ergebnis einer Musterlösung entspricht.


Beispiel 1: In einer Fill-In-Stufe heißen die Variablen wie das Feld. Der folgende Ausdruck prüft, ob im Feld "feld1" die 42 eingegeben wurde:
Beispiel 1: In einem Fill-In-Aufgabenteil heißen die Variablen wie das Feld. Der folgende Ausdruck prüft, ob im Feld "feld1" die 42 eingegeben wurde:
<pre>
<pre>
[input=feld1]==42
[input=feld1]==42
Zeile 34: Zeile 32:
Beispiel 3: Um die Eingabe aus dem Feld in eine Variable zu kopieren, genügt der Ausdruck <code>[input=feld1]</code> im Inhalt des Variablenupdates.
Beispiel 3: Um die Eingabe aus dem Feld in eine Variable zu kopieren, genügt der Ausdruck <code>[input=feld1]</code> im Inhalt des Variablenupdates.


===Check-Variablen (check) ===
===Check-Variablen (check)===
Variablen dieses Typs enthalten nach einer Einreichung die Ergebnisse der automatischen Checks. Auch diese Variablen werden von JACK3 automatisch gesetzt und sind nicht überschreibbar. Wie bei den Eingabe-Variablen ist es abhängig vom Typ des Aufgabenteils, ob und welche Check-Variablen genutzt werden können.
Variablen dieses Typs enthalten nach einer Einreichung die Ergebnisse der automatischen Checks. Auch diese Variablen werden von JACK3 automatisch gesetzt und sind nicht überschreibbar. Wie bei den Eingabe-Variablen ist es abhängig vom Typ des Aufgabenteils, ob und welche Check-Variablen genutzt werden können.


Beispiel Multiple-Choice: Die Checkvariable <code>mcStageCorrectTicks</code> enthält die Anzahl der vom Studierenden gesetzten Kreuze.
Beispiel Multiple-Choice: Die Checkvariable <code>mcStageCorrectTicks</code> enthält die Anzahl der vom Studierenden gesetzten Kreuze.


=== Meta-Variablen (meta)===
===Meta-Variablen (meta)===
Meta-Variablen werden ebenso wie Eingabe- und Check-Variablen automatisch gesetzt. Sie enthalten zusätzliche Informationen zum Aufgabenteil oder die laufende Bearbeitung.
Meta-Variablen werden ebenso wie Eingabe- und Check-Variablen automatisch gesetzt. Sie enthalten zusätzliche Informationen zum Aufgabenteil oder die laufende Bearbeitung.


Zeile 45: Zeile 43:


==== Global nutzbare Meta-Variablen====
==== Global nutzbare Meta-Variablen====
Die folgenden Meta-Variablen sind nicht abhängig von einem Stufentypen und können an verschiedenen Stellen benutzt werden:
Die folgenden Meta-Variablen sind nicht abhängig von einem Aufgabenteil-Typen und können an verschiedenen Stellen benutzt werden:
{| class="wikitable"
{| class="wikitable"
|+
!Name
!Name
!Beschreibung
!Beschreibung
Zeile 56: Zeile 53:
|[[Kurs Einstellungen (JACK3)#Kursfeedback|Kursfeedback]]
|[[Kurs Einstellungen (JACK3)#Kursfeedback|Kursfeedback]]
|-
|-
|stageCurrentResult  
|stageCurrentResult
|Aktuelles Gesamtergebnis der jeweiligen Stufe. Vor der ersten Durchführung von Checks ist der Wert dieser Variablen stets 0.
|Aktuelles Gesamtergebnis des jeweiligen Aufgabenteils. Vor der ersten Durchführung von Checks ist der Wert dieser Variablen stets 0.
|Innerhalb einer Stufe
|Innerhalb eines Aufgabenteils
|-
|-
|stageCurrentAttempt  
|stageCurrentAttempt  
| Zählt die Anzahl der Versuche der jeweiligen Stufe. Beim ersten Betreten der Stufe ist dies stets 1 und erhöht sich mit jeder Verknüpfung vom Typ "Aufgabenteil wiederholen" und jedem Klick auf "Ab hier neu bearbeiten".
|Zählt die Anzahl der Versuche des jeweiligen Aufgabenteils. Beim ersten Betreten ist dies stets 1 und erhöht sich mit jeder Verknüpfung vom Typ "Aufgabenteil wiederholen" und jedem Klick auf "Ab hier neu bearbeiten".
| Innerhalb einer Stufe
| Innerhalb eines Aufgabenteils
|-
|-
|stageHints  
|stageHints
|Anzahl Hinweise, die in der jeweiligen Stufe bereits angezeigt wurden.
| Anzahl Hinweise, die im jeweiligen Aufgabenteil bereits angezeigt wurden.
|Innerhalb einer Stufe
|Innerhalb eines Aufgabenteils
|}
|}
'''Die Meta-Variablen können und sollten nur im jeweiligen Anwendungsbereich genutzt werden.''' In Stufen können die Variablen überall dort verwendet werden, wo Ausdrücke mit JACK-Variablen unterstützt werden, z.B. in Bedingungen für Verknüpfungen oder in Variablenupdates. Sie können aber auch in Feedback- oder Hinweistexten benutzt werden.
'''Die Meta-Variablen können und sollten nur im jeweiligen Anwendungsbereich genutzt werden.''' In Aufgabenteilen können die Variablen überall dort verwendet werden, wo Ausdrücke mit JACK-Variablen unterstützt werden, z.B. in Bedingungen für Verknüpfungen oder in Variablenupdates. Sie können aber auch in Feedback- oder Hinweistexten benutzt werden.


===Weitere Beispiele ===
===Weitere Beispiele ===
Zeile 79: Zeile 76:


==Mathematische Variablen und Konstanten==
==Mathematische Variablen und Konstanten==
Mathematische Variablen wie "x" und Konstanten wie Pi können innerhalb von JACK-Variablen genutzt werden.
Mathematische Variablen wie \(x\) und Konstanten wie \(\pi\) können innerhalb von JACK-Variablen genutzt werden.


*Beispiel 1: Die Aufgaben-Variable "func1" bekommt den Wert <code>x+2</code> zugewiesen. Hierbei ist "x" eine mathematische Variable.
*Beispiel 1: Die Aufgaben-Variable "func1" bekommt den Wert \(x+2\) zugewiesen. Hierbei ist \(x\) eine mathematische Variable.
*Beispiel 2: Die Aufgaben-Variable "func2" bekommt den Wert <code>a/b</code> zugewiesen. "a" und "b" werden zu mathematischen Variablen.
*Beispiel 2: Die Aufgaben-Variable "func2" bekommt den Wert \(a/b\) zugewiesen. \(a\) und \(b\) werden zu mathematischen Variablen.


Der Evaluator unterstützt das Rechnen mit mathematischen Variablen, z.B. ergibt \( x+x=2\cdot x \)
Der Evaluator unterstützt das Rechnen mit mathematischen Variablen, z.B. ergibt \( x+x=2\cdot x \)


In JACK-Variablen können auch die mathematischen Konstanten <code>e</code> und <code>pi</code> sowie <code>i</code> verwendet werden. Tragen mathematische Variablen denselben Namen, kann es zu Verwechslungen während der Berechnung kommen. '''Um dies zu vermeiden, müssen die Konstanten durch die jeweilige Evaluator-Funktion angegeben werden:'''
In JACK-Variablen können auch die mathematischen Konstanten \(e, \pi, i\) verwendet werden. Tragen mathematische Variablen denselben Namen, kann es zu Verwechslungen während der Berechnung kommen. '''Um dies zu vermeiden, müssen die Konstanten durch die jeweilige Evaluator-Funktion angegeben werden:'''
{| class="wikitable"
{| class="wikitable"
|+
|+
Zeile 94: Zeile 91:
|-
|-
|[https://de.wikipedia.org/wiki/Eulersche_Zahl Eulersche_Zahl]
|[https://de.wikipedia.org/wiki/Eulersche_Zahl Eulersche_Zahl]
|e
|\(e\)
|[[ConstE|constE()]]
|[[ConstE|constE()]]
|-
|-
|[https://de.wikipedia.org/wiki/Imagin%C3%A4re_Zahl Imaginäre Einheit]
|[https://de.wikipedia.org/wiki/Imagin%C3%A4re_Zahl Imaginäre Einheit]
|i
|\(i\)
|[[Imaginary|imaginary()]]
|[[Imaginary|imaginary()]]
|-
|-
|[https://de.wikipedia.org/wiki/Kreiszahl Kreiszahl Pi]
|[https://de.wikipedia.org/wiki/Kreiszahl Kreiszahl Pi]
|pi
| \(\pi\)
|[[ConstPi|constPi()]]
|[[ConstPi|constPi()]]
|}
|}
'''Achtung:''' Gibt ein Lernender <code>e</code>, <code>pi</code> oder <code>i</code> ein, wird dies immer als die jeweilige mathematische Konstante (Eulersche Zahl, Imaginäre Einheit, Pi) gewertet. Es kann daher kein Abgleich mit einer eigenen definierten Variable <code>e</code>, <code>pi</code> oder <code>i</code> erfolgen.
'''Achtung:''' Gibt ein Lernender <code>e</code>, <code>pi</code> oder <code>i</code> ein, wird dies immer als die jeweilige mathematische Konstante (Eulersche Zahl, Imaginäre Einheit, Pi) gewertet. Es kann daher kein Abgleich mit einer eigenen definierten Variable <code>e</code>, <code>pi</code> oder <code>i</code> erfolgen.
==Variablen in Texten einbetten==
Alle JACK-Variablen können mit <code>[variablenTyp=variablenName]</code> beliebig in Texten eingefügt werden, bspw. im Aufgabentext oder im Feedback. Bei der Anzeige werden diese Ausdrücke mit dem Inhalt der Variable ersetzt. Soll eine Variable als \( \LaTeX \) gerendet werden, muss die Variable mit Dollarzeichen umschlossen werden und hinter dem Variablenname der Zusatz <code>latex</code> ergänzt werden. <code>[var=a]</code> gibt die Aufgabenvariable "a" als Text aus,  <code>$[var=a,latex]$</code> als LaTeX. Zu beachten ist, dass [[Zeichenkette|Zeichenketten]] immer als Text gerendert werden.
{| class="wikitable"
|+Beispiele für Variablen im Text
!|Variablenkonfiguration
!|<code>[var=var1]</code>
!|<code>$[var=var1,latex]$</code>
|-
|sqrt(6)
|root[2](6)
| \(\sqrt{6}\)
|-
|"sqrt(6)" (Zeichenkette)
|sqrt(6)
|\(\text{sqrt(6)}\)
|-
|5^2
|25
|\(25\)
|-
|"5^2" (Zeichenkette)
|5^2
|\(\text{5^2}\) (es handelt sich um ungültige LaTeX-Syntax)
|}
Es folgt ein Beispiel, wie Variablen in einer Aufgabe eingebettet werden können.
<gallery widths="400" heights="200">
Datei:Variablen Beispiel Konfiguration.png|In der [https://wiki.uni-due.de/jack/Variablenkonfiguration%20(JACK3) Variablenkonfiguration] sind zwei Aufgaben-Variablen definiert, eine zufällige Zahl <code>a</code> und eine Zahl <code>b := a+1</code>.
Datei:Variablen Beispiel Aufgabentext.png|Im Aufgabentext wird die Variable in der oben gezeigten Schreibweise mit eckigen Klammern eingefügt.
Datei:Variablen Beispiel Antwortoptionen.png|Auch in anderen Texten können Variablen eingefügt werden, wie hier anhand von Multiple-Choice-Antwortoptionen gezeigt. Im unteren Beispiel wird die Variable in der LaTeX-Darstellung angezeigt.
Datei:Variablen Beispiel Anzeige.png|Beim Testen der Aufgabe wird an der Stelle der Variable die Zahl angezeigt.
</gallery>
Die gezeigte Art der Einbettung funktioniert mit allen JACK-Variablen. So kann im Feedbacktext beispielsweise über Eingabe- oder Meta-Variablen Bezug auf die Eingaben genommen werden. Natürlich können Variablen auch komplexer sein, wie beispielsweise Vektoren oder Brüche. Hier ist die LaTeX-Darstellung empfehlenswert. JACK bietet zudem [[Variablensetzung Syntax Flag (JACK3)|Syntax-Flags]] für Variablen, um diese in einer wissenschaftlichen Schreibweise (z.B. \(3 \cdot 10^{-3}\)) oder gerundet anzuzeigen.
[[Kategorie:Benutzerhandbuch]]
[[Kategorie:Benutzerhandbuch]]

Aktuelle Version vom 9. September 2024, 10:44 Uhr

Um Aufgaben und Kurse zu parametrisieren (z.B. Feedback abhängig von der Eingabe, Aufgaben mit Zufallsvariablen), bietet JACK3 ein flexibles Variablenkonzept. Dieser Artikel beschreibt die unterschiedlichen Arten von Variablen, wie sie eingesetzt werden können und was es zu beachten gibt.

JACK-Variablen

Es stehen verschiedene Variablentypen zur Verfügung, die in allen (Evaluator-)Ausdrücken (z.B. in Feedbackregeln oder Verknüpfungen) verwendet werden können. Alle JACK-Variablen werden mit [<type>=<name>] verwendet. Beim Testen einer Aufgabe und Ansehen einer Bearbeitung können die Variablen in den Debug-Optionen eingesehen werden. Auch im Fließtext (z.B. Aufgabentext, Feedback- oder Hinweis-Texten) können JACK-Variablen verwendet werden. Für die bessere Darstellung der Variablen in Fließtexten (z.B. Runden auf x Stellen, SI-Präfixe) gibt es die sogenannten Syntax Flags.

Wichtig: Nicht alle Variablen sind immer verfügbar. Eingabe-Variablen sind nur nach einer Einreichung verfügbar, Meta-/Check-Variablen ggf. erst nach durchgeführten Checks und nur bei bestimmten Aufgabentypen. Um zu prüfen, ob eine Variable definiert ist, kann die Funktion IsVariable genutzt werden.

Bieten Aufgabenteil-Typen bestimmte Variablen an, sind diese im Abschnitt "Variablen" des jeweiligen Artikels aufgelistet.

Aufgaben-Variablen (var)

Aufgaben-Variablen werden innerhalb der Variablenkonfiguration einer Aufgabe definiert und mit einem initialen Wert belegt. Sie können durch Variablenupdates bei bestimmten Events geändert werden und stehen nur während der Bearbeitung dieser Aufgabe zur Verfügung.

Beispiel:

a = randomIntegerBetween(1,10)
b = 15

Nach der Initialisierung enthält die Aufgaben-Variable "a" einen zufälligen Wert zwischen 1 und 9 und "b" den Wert 15. Diese Variable kann in der Aufgabe (z.B. in Feedbackregeln, Feedback oder dem Aufgabentext) nun mit [var=a] (siehe auch Variablen in Texten einbetten) verwendet werden. Als Wert der Variablen sind sowohl Konstanten als auch (komplexere) Evaluator-Ausdrücke möglich.

Eingabe-Variablen (input)

Diese Variablen enthalten innerhalb eines Aufgabenteils die Eingabe von Studierenden. Wie die Variablen heißen und was sie enthalten, hängt vom jeweiligen Typ des Aufgabenteils ab. Mithilfe von Eingabe-Variablen lässt sich z.B. prüfen, ob die Eingabe korrekt war bzw. ob das eingegebene Ergebnis einer Musterlösung entspricht.

Beispiel 1: In einem Fill-In-Aufgabenteil heißen die Variablen wie das Feld. Der folgende Ausdruck prüft, ob im Feld "feld1" die 42 eingegeben wurde:

[input=feld1]==42

Beispiel 2: Die Variable "a" wurde wie oben initialisiert. Der folgende Ausdruck prüft, ob die in das Feld die Quadratzahl eingegeben wurde:

[input=feld1]==pow([var=a],2)

Die Inhalte der Variablen können nur gelesen, aber nicht verändert werden. Sollen die Inhalte zu einem anderen Zeitpunkt als in den Checks des Aufgabenteils verwendet werden, müssen sie durch passende Variablenupdates in Aufgabenvariablen kopiert werden.

Beispiel 3: Um die Eingabe aus dem Feld in eine Variable zu kopieren, genügt der Ausdruck [input=feld1] im Inhalt des Variablenupdates.

Check-Variablen (check)

Variablen dieses Typs enthalten nach einer Einreichung die Ergebnisse der automatischen Checks. Auch diese Variablen werden von JACK3 automatisch gesetzt und sind nicht überschreibbar. Wie bei den Eingabe-Variablen ist es abhängig vom Typ des Aufgabenteils, ob und welche Check-Variablen genutzt werden können.

Beispiel Multiple-Choice: Die Checkvariable mcStageCorrectTicks enthält die Anzahl der vom Studierenden gesetzten Kreuze.

Meta-Variablen (meta)

Meta-Variablen werden ebenso wie Eingabe- und Check-Variablen automatisch gesetzt. Sie enthalten zusätzliche Informationen zum Aufgabenteil oder die laufende Bearbeitung.

Beispiel Multiple-Choice: Die Metavariable mcStageNumberOfAnswerOptions gibt an, wie viele Antwortoptionen dem Studierenden angezeigt wurden.

Global nutzbare Meta-Variablen

Die folgenden Meta-Variablen sind nicht abhängig von einem Aufgabenteil-Typen und können an verschiedenen Stellen benutzt werden:

Name Beschreibung Anwendungsbereich
currentResult Aktuelles Gesamtergebnis einer Kursbearbeitung Kursfeedback
stageCurrentResult Aktuelles Gesamtergebnis des jeweiligen Aufgabenteils. Vor der ersten Durchführung von Checks ist der Wert dieser Variablen stets 0. Innerhalb eines Aufgabenteils
stageCurrentAttempt Zählt die Anzahl der Versuche des jeweiligen Aufgabenteils. Beim ersten Betreten ist dies stets 1 und erhöht sich mit jeder Verknüpfung vom Typ "Aufgabenteil wiederholen" und jedem Klick auf "Ab hier neu bearbeiten". Innerhalb eines Aufgabenteils
stageHints Anzahl Hinweise, die im jeweiligen Aufgabenteil bereits angezeigt wurden. Innerhalb eines Aufgabenteils

Die Meta-Variablen können und sollten nur im jeweiligen Anwendungsbereich genutzt werden. In Aufgabenteilen können die Variablen überall dort verwendet werden, wo Ausdrücke mit JACK-Variablen unterstützt werden, z.B. in Bedingungen für Verknüpfungen oder in Variablenupdates. Sie können aber auch in Feedback- oder Hinweistexten benutzt werden.

Weitere Beispiele

[var=a]           => gibt den Wert der JACK-Variable a aus der Variablenkonfiguration zurück
[input=field1]    => Gibt den Wert des Eingabefeldes field1 zurück
[check=result]    => Gibt das Ergebnis des Checkers zurück
[meta=stageHints] => Gibt die Anzahl der verwendeten Hinweise in einer Aufgabe zurück

Mathematische Variablen und Konstanten

Mathematische Variablen wie \(x\) und Konstanten wie \(\pi\) können innerhalb von JACK-Variablen genutzt werden.

  • Beispiel 1: Die Aufgaben-Variable "func1" bekommt den Wert \(x+2\) zugewiesen. Hierbei ist \(x\) eine mathematische Variable.
  • Beispiel 2: Die Aufgaben-Variable "func2" bekommt den Wert \(a/b\) zugewiesen. \(a\) und \(b\) werden zu mathematischen Variablen.

Der Evaluator unterstützt das Rechnen mit mathematischen Variablen, z.B. ergibt \( x+x=2\cdot x \)

In JACK-Variablen können auch die mathematischen Konstanten \(e, \pi, i\) verwendet werden. Tragen mathematische Variablen denselben Namen, kann es zu Verwechslungen während der Berechnung kommen. Um dies zu vermeiden, müssen die Konstanten durch die jeweilige Evaluator-Funktion angegeben werden:

Name Symbol Evaluator-Funktion
Eulersche_Zahl \(e\) constE()
Imaginäre Einheit \(i\) imaginary()
Kreiszahl Pi \(\pi\) constPi()

Achtung: Gibt ein Lernender e, pi oder i ein, wird dies immer als die jeweilige mathematische Konstante (Eulersche Zahl, Imaginäre Einheit, Pi) gewertet. Es kann daher kein Abgleich mit einer eigenen definierten Variable e, pi oder i erfolgen.

Variablen in Texten einbetten

Alle JACK-Variablen können mit [variablenTyp=variablenName] beliebig in Texten eingefügt werden, bspw. im Aufgabentext oder im Feedback. Bei der Anzeige werden diese Ausdrücke mit dem Inhalt der Variable ersetzt. Soll eine Variable als \( \LaTeX \) gerendet werden, muss die Variable mit Dollarzeichen umschlossen werden und hinter dem Variablenname der Zusatz latex ergänzt werden. [var=a] gibt die Aufgabenvariable "a" als Text aus, $[var=a,latex]$ als LaTeX. Zu beachten ist, dass Zeichenketten immer als Text gerendert werden.

Beispiele für Variablen im Text
Variablenkonfiguration [var=var1] $[var=var1,latex]$
sqrt(6) root[2](6) \(\sqrt{6}\)
"sqrt(6)" (Zeichenkette) sqrt(6) \(\text{sqrt(6)}\)
5^2 25 \(25\)
"5^2" (Zeichenkette) 5^2 \(\text{5^2}\) (es handelt sich um ungültige LaTeX-Syntax)

Es folgt ein Beispiel, wie Variablen in einer Aufgabe eingebettet werden können.

Die gezeigte Art der Einbettung funktioniert mit allen JACK-Variablen. So kann im Feedbacktext beispielsweise über Eingabe- oder Meta-Variablen Bezug auf die Eingaben genommen werden. Natürlich können Variablen auch komplexer sein, wie beispielsweise Vektoren oder Brüche. Hier ist die LaTeX-Darstellung empfehlenswert. JACK bietet zudem Syntax-Flags für Variablen, um diese in einer wissenschaftlichen Schreibweise (z.B. \(3 \cdot 10^{-3}\)) oder gerundet anzuzeigen.