Ruleviolation

Aus JACK Wiki
Zur Navigation springen Zur Suche springen

Allgemeines

Definiert einen Feedbackfall, falls Regeln mit Hilfe des Tags Rule in Correctanswer definiert wurden.

Eigenheiten der Einzelnen Aufgabentypen(Checker-Orientiert)

InstantFillInChecker

Über das Attribut test ist zu bestimmen, welche Regeln verletzt wurden. Dafür erlaubt JACK vier verschiedene Funktionen, die bei diesem Attribut eingetragen werden können und auf die im Folgenden eingegangen wird. Die Regeln, welche z.T. die Argumente dieser Funktionen sind, sind stets über ihre ID zu referenzieren. Wird im Tag <feedback> genutzt.

  • exactly: Erlaubt es, die Anzahl der verletzten Regeln genau zu zählen, unabhängig davon welche Regeln verletzt sind. Der Aufruf exactly(3) im Attribut test sorgt also dafür, dass der Inhalt dieses Tags als Feedback zurückgegeben wird, falls genau drei Regeln verletzt sind.
  • atleast: Erlaubt es, die Anzahl der mindestens verletzten Regeln zu zählen, unabhängig davon welche Regeln verletzt sind. Der Aufruf atleast(3) im Attribut test sorgt also dafür, dass der Inhalt dieses Tags als Feedback zurückgegeben wird, falls mindestens drei Regeln verletzt sind.
  • combined: Erlaubt es, eine Kombination von Regeln anzugeben, die verletzt sein müssen, damit das angegebene Feedback erscheint. Der Aufruf combined(1,2,3) im Attribut test sorgt also dafür, dass der Inhalt dieses Tags als Feedback zurückgegeben wird, falls die Regeln 1,2 und 3 verletzt sind.
  • condition: Erlaubt es, einen logischen Ausdruck anzugeben, der beschreibt welche Regeln verletzt bzw. nicht verletzt sein müssen, damit das jeweilige Feedback erscheint. Der Aufruf condition((1||2)&&!3) im Attribut test sorgt also dafür, dass der Inhalt dieses Tags als Feedback zurückgegeben wird, falls die Regel 1 oder 2 verletzt ist und 3 nicht verletzt ist.
  • andere: Wird ausgelöst, falls keine anderer Feedbackfall ausgelöst wird.

Beispiel

    <correctanswer>
	<!--Die Regeln, welche erfüllt sein müssen, damit die Lösung als richtig gewertet wird-->
        <rule id="1">[pos=1]==[var=g1]</rule>
        <rule id="2">[pos=2]==[var=h1]</rule>
        <message>Richtig. Sehr gut!</message>
    </correctanswer>
    <feedback>
        <!--Wenn genau eine Regel verletzt ist, bekommt der Student 50 Punkte abgezogen-->
        <ruleviolation test="exactly(1)" penalty="50"/>
        <!--Wennn genau zwei Regeln verletzt sind, bekommt der Student 100 Punkte abgezogen--> 
        <ruleviolation test="exactly(2)" penalty="100"/> 
        <!--Wenn die Regel mit der Id=1 verletzt ist, wird dem Studenten das Feedback ausgegeben-->
		<ruleviolation test="condition(1)"> Der von dir für $x=[var=e]$ angegebene Funktionswert stimmt leider nicht. </ruleviolation>
        <!--Wenn die Regel mit der Id=2 verletzt ist, wird dem Studenten das Feedback ausgegeben-->
        <ruleviolation test="condition(2)"> Der von dir für $x=[var=f]$ angegebene Funktionswert stimmt leider nicht. </ruleviolation>
    </feedback>

Parent

Child

Dieser Tag hat keine Untertags.