Beispiel(exerciseChain) (Jack2)
Zur Navigation springen
Zur Suche springen
Beispiel XML-Datei
<?xml version="1.0" encoding="iso-8859-1"?>
<exercisechain>
<variables>
<option name="a" min="1" max="5" />
<option name="b" value="getRandomFromList(list(2,3,5,7,11))" />
<option name="c" value="[var=a]+[var=b]" />
<option name="d" value="getRandomFromList(list('Sinus','Kosinus'))" />
</variables>
<step id="1" file="stage1.xml" >
<input value="[var=c]" />
<input value="[var=d]" />
<output name="e" />
<output name="f" />
<next default="repeat" message="Bitte versuchen Sie es erneut." >
<path target="2" result="100" message="Richtig" />
</next>
<skip target="2" >
<outputvalue name="e" value="5" />
<outputvalue name="f" value="7" />
</skip>
</step>
<step id="2" file="stage2.xml" >
<input value="[var=c]" />
<input value="[var=d]" />
<next default="repeat" message="Bitte versuchen Sie es erneut." >
<path target="end" result="100" message="Richtig" />
</next>
<skip target="end" />
</step>
</exercisechain>
Die zu dieser ExerciseChain gehörende Aufgabe besteht aus zwei Stufen, zu denen die Stufendateien stage1.xml und stage2.xml gehören. Bevor wir uns diesen zuwenden, wollen wir jedoch zunächst die Variablendeklaration im Tag <variables>
genauer betrachten. Es werden vier Variablen definiert, die innerhalb der Aufgabe durch die Verwendung des Platzhalters [var=name]
referenziert werden können:
- Die Variable a ist eine ganze Zahl zwischen 1 und 5.
- Die Variable b ist eine Zahl aus der Menge {2,3,5,7,11}, also eine der ersten fünf Primzahlen.
- Die Variable c ist die Summe aus der Variablen a und der Variablen b.
- Die Variable d ist eine Mengenvariable. Die Menge besteht aus den beiden Zeichenketten "Sinus" und "Kosinus".
Kommentiertes Beispiel
Hier ist ein kommentiertes Beispiel für die exerciseChain. Dieses Beispiel kann hier heruntergeladen werden.
<?xml version="1.0" encoding="iso-8859-1"?>
<!--
Bitte achten Sie beim Speichern der Datei darauf, dass das Encoding
ISO-8859-1 (auch als Latin1 bezeichnet) ausgewählt ist, damit auch
Sonderzeichen korrekt dargestellt werden.
-->
<exercisechain>
<!--
Im Tag <variables> können Sie die Variablen anlegen, die Sie in dieser
Aufgabe verwenden wollen. Das Tag <variables> ist optional und kann
somit auch weggelassen werden.
Bitte legen Sie für jede Variable, die Sie verwenden möchten, ein
<option> Tag an und geben Sie im Attribut "name" ihren Namen an. Sie
haben drei Möglichkeiten die Variablen zu initialisieren:
Zufällig aus einem Intervall:
Geben Sie dazu die beiden Attribute "min" und "max" an, die den
minimalen (inklusive), bzw. maximalen (inklusive) Wert der Variablen
angeben. Das folgende Beispiel legt eine Variable namens foo an,
die den Wert 3, 4 oder 5 haben kann.
<option name="foo" min="3" max="5"/>
Zufällig aus einer Menge:
Geben Sie dazu das Attribut "set" an und geben Sie in geschweiften
Klammern alle Werte der Menge durch Kommata getrennt an. Das
folgende Beispiel legt eine Variable namens foo an und setzt ihren
Anfangswert zufällig auf 23, 42 oder 1337.
<option name="foo" set="{23,42,1337}"/>
Mittels eines Ausdrucks:
Geben Sie dazu das Attribut "value" an und setzen Sie dessen Wert
auf einen Ausdruck, der vom JACK Evaluator ausgerechnet werden kann.
Das folgende Beispiel legt eine Variable namens foo an und setzt
ihren Wert auf 1337.
<option name="foo" value="13 * 100 + 37"/>
Sie können sich das <variables> Tag von hier aus dem Kommentarblock
herauskopieren:
<variables>
<option name="MeineVariable" min="23" max="42"/>
</variables>
-->
<!--
Geben Sie bitte für jede Teilaufgabe ihrer Aufgabe ein <step> Tag an.
Das "id" Attribut muss einen eindeutigen Namen für die Stufe enthalten.
Wir empfehlen die Stufen zu nummerieren. Das Attribut "file" gibt den Namen der
Stufendefinitionsdatei an.
-->
<step id="1" file="stage1.xml" >
<!--
Bitte legen Sie hier für jeden Parameter, den die Stufe benötigt, ein
<input> Tag an und geben Sie im "value" Attribut ein vom JACK Evaluator
auswertbaren Ausdruck an. Das folgende Beispiel übergibt der Stufe die
Summe aus einer Variable namens foo und 23:
<input value="[var=foo] + 23"/>
-->
<!--
Bitte legen Sie hier für jede Variable, die die Stufe zurückgeben soll,
ein <output> Tag an und geben Sie im Attribut "name" den Namen an, unter
dem dieser Wert gespeichert werden soll. Ist bereits eine Variable mit
diesem Namen vorhanden, wird ihr aktueller Inhalt durch den neuen
ersetzt. Das folgende Beispiel erwartet von der Stufendatei einen
Rückgabewert und legt diesen unter dem Namen bar ab.
<output name="bar"/>
-->
<!--
Das <next> Tag definiert mit welcher Stufe beim Abschließen der
aktuellen Stufe fortgefahren werden soll. Mit dem Attribut "default"
legen Sie fest, welche Stufe standardmäßig auf die aktuelle folgen soll.
hier können Sie entweder den Namen einer anderen Stufe eintragen oder
die folgen Werte:
end Markiert das Ende der Aufgabe und zeigt keine weitere
Stufe an.
repeat Wiederholt die aktuelle Stufe.
Im Attribut "message" können Sie eine Nachricht hinterlegen, die in
diesem Fall angezeigt wird.
-->
<next default="repeat" message="Bitte versuchen Sie es noch mal.">
<!--
Für jeden vom Standardfall abweichenden Pfad legen Sie bitte im <next>
Tag ein <path> Tag an. Das Attribut "target" ist hier analog zum
"default" Attribut des <step> Tags zu verwenden. Das "message" Attribut
verhält sich genau gleich. Im "result" Attribut können Sie eine minimale
Punktzahl angeben, die erreicht werden muss, um diesen Pfad zu
aktivieren. Im Attribut "condition" können Sie zudem beliebige
Bedingungen für das Aktivieren des Pfads angeben. Das folgende Beispiel
definiert einen Pfad, der aktiviert wird, wenn mindestens 75 Punkte in
der aktuellen Stufe erreicht wurden und die Aufgabe beendet:
<path target="end" result="75"/>
Das folgende Beispiel wiederholt die aktuelle Stufe, wenn eine Variable
namens "foo" mit dem Wert 23 belegt ist.
<path target="repeat" condition="[var=foo]==23"/>
-->
<path target="end" result="100"/>
</next>
<!--
Wenn es möglich sein soll, die Stufe zu überspringen, dann können Sie
das hier durch ein <skip> Tag angeben. Im Attribut "target" müssen Sie
dann die Stufe angeben, die nach dem Überspringen angesteuert werden
soll.
<skip target="2"/>
-->
</step>
<!--
Hier können Sie beliebig viele weitere Stufendefinitionen mit den <step>
Tags anlegen.
-->
</exercisechain>