Rev 15074 | Rev 15187 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
type=question
textarea="data instruction instruction1 instruction2 instruction3 feedback1 feedback2 feedback3"
iEdit="instruction instruction1 instruction2 instruction3 feedback1 feedback2 feedback3"
:On pose deux ou trois questions successives sur un objet choisi au hasard dans une liste.
<p>Les questions peuvent être des questions à choix multiples, des questions dont la réponse
est un texte, un nombre ou bien une fonction à une variable.
</p><p>Les questions étant posées l'une après l'autre, l'exercice peut soit s'arrêter
dès la première erreur, soit s'arrêter une fois toutes les questions posées.
</p>
<p>Remarques : <ul>
<li>l'objet peut être une image (mettre alors le code html de l'image, voir ci-dessous) ;
</li><li>il est possible de faire
apparaitre un commentaire (feedback) après chaque réponse entrée ;
</li><li>pour l'instruction et les "feedback", l'objet peut être désigné par la variable
<span class="tt wims_code_variable">\name</span>.
</li></ul></p>
<p class="wims_credits">
Auteur du modèle : <a href="mailto:bernadette.m.riou@orange.fr">Bernadette Perrin-Riou</a>
</p>
:%%%%%%%% Paramètres d'exemples à redéfinir %%%%%%%%%%%%%%%%%
:\title{Questions successives sur un objet}
:\author{Bernadette, Perrin-Riou}
:\email{bernadette.perrin-riou@math.u-psud.fr}
:\credits{}
:Format de la question 1
\text{format1=item(1, radio (un choix parmi la liste suivante),
numeric (réponse numérique),
function (fonction d'une variable),
case (texte sans tolérance d'erreur),
nocase (tolère minuscule/majuscule),
atext (ignore pluriel/singulier et articles)
)}
:Liste de choix pour la question 1 (si radio)
Donner la liste des choix si vous avez choisi le type radio.
\text{choix1=premier groupe, deuxième groupe, troisième groupe}
:Format de la question 2
\text{format2=item(4,radio (un choix parmi la liste suivante),
numeric (réponse numérique),
function (fonction d'une variable),
case (texte sans tolérance d'erreur),
nocase (tolère minuscule/majuscule),
atext (ignore pluriel/singulier et articles)
)}
:Liste de choix pour la question 2 (si radio)
Donner la liste des bons choix si vous avez choisi le type radio.
\text{choix2=}
:Format de la question 3
\text{format3=item(5,0 (pas de question),
radio (un choix parmi la liste suivante),
numeric (réponse numérique),
function (fonction d'une variable),
case (texte sans aucune tolérance d'erreur),
nocase (différence minuscule/majuscule toléré),
atext (ignore pluriel/singulier et articles)
)}
:Liste de choix pour la question 3 (si radio)
Donner la liste des choix à afficher si vous avez choisi le type radio.
\text{choix3=}
:Texte d'approbation
\text{right=Vous avez raison.}
:Texte de désaprobation
\text{false=Votre réponse n'est pas juste.}
:Texte présentant la réponse de l'apprenant
\text{name_my_answer=Votre réponse :}
:Arrêt de l'exercice dès la 1ère erreur
\text{opt_arr=item(2,oui,non)}
:Données principales
<p>Les données pour les réponses aux questions seront à entrer en utilisant le format simple suivant :
<pre>obj 1, réponse quest 1 pour obj 1, réponse quest 2 pour obj 1, réponse quest 3 pour obj 1
obj 2, réponse quest 1 pour obj 2, réponse quest 2 pour obj 2, réponse quest 3 pour obj 2
...
</pre>
(les données pour chaque objet sont séparées par des virgules et écrites sur une ligne).
<h3>radio </h3> Dans le cas d'une question à choix multiple, la réponse à la question sera
simplement le numéro du bon choix parmi la liste donnée.
<h3>numeric</h3>
Dans le cas d'une réponse numérique, la réponse à la question est un nombre réel. La réponse de l'apprenant
sera considérée comme juste si l'erreur relative est inférieure à 0.001. <br />
Pour que la vérification se fasse avec une autre précision relative,
il suffit d'entrer la réponse à la question sous la forme : <span class="tt">[réponse, précision]</span>
au lieu de simplement <span class="tt">réponse</span><p>
Par exemple,
<ul><li>[0.3,0.1] signifie que la réponse sera considérée comme juste si elle est comprise au sens
large entre 0.27 et 0.33.
</li><li>[1/3,0] signifie que les réponses 1/3 ou 2/6 seront acceptées mais aucune valeur approchée
de 1/3 ne sera acceptée.
</li></ul></p>
<h3>function</h3>
Dans le cas où la réponse est une fonction, la réponse de l'apprenant sera évaluée en 10 points choisis
au hasard dans l'intervalle [-5,5] (par défaut) et comparée en ces points à la bonne réponse.
La réponse sera considérée comme juste si l'erreur relative
sur ces 10 points est inférieure à 0.001. Il est possible de fixer un autre intervalle pour controler la réponse.
<p>Par exemple, si la bonne réponse est <span class="tt">sin(t)*t</span> et si on veut que la réponse
soit évaluée sur l'intervalle [0,6] on entrera la réponse sous la forme :
<span class="tt">[sin(t)*t,t=[0,6]]</span> au lieu d'écrire simplement <span class="tt">sin(t)*t</span>
</p>
\matrix{data= manger,1,Je mangeais,Je mangerai
finir, 2, Je finissais, Je finirai
courir,3, Je courais, Je courrai}
:%%%%%%%%%%%%%%
\text{data=randomrow(\data)}
\text{name=<span class="name">\data[1]</span>}
\text{data=\data[2..-1]}
:Instruction générale
\text{instruction=Nous allons étudier le verbe \name.}
:Instruction à la 1ère étape
\text{instruction1=Donner le groupe de \name.}
:Instruction à la 2ème étape
\text{instruction2=Donner l'imparfait du verbe \name à la première personne du singulier sans oublier le pronom.}
:Instruction à la 3ème étape
\text{instruction3=Donner le futur du verbe \name à la première personne du singulier sans oublier le pronom.}
:%%%%%%%%%%%%%% Rien à modifier avant l'énoncé %%%%%%%%%%%%%%%%
\text{option=\opt_arr issametext oui? :nonstop}
\text{giveanal=\giveanal issametext oui? 1:0}
\precision{1000}
\real{prec_rel=0.001}
\range{-5..5}
\css{<style>
.name {color:#047;}
.big_bullet>li{font-size:2em;color:#599;margin:0 0 .5em .5em;}
.big_bullet div, .big_bullet label{font-size:1rem;margin:.2em;}
.big_bullet .instruction,.big_bullet .reponse{color:initial;}
</style>}
\text{format1=wims(word 1 of \format1)}
\text{format2=wims(word 1 of \format2)}
\text{format3=wims(word 1 of \format3)}
\text{rep1=wims(declosing \data[1])}
\text{rep2=\data[2]}
\text{rep3=\data[3]}
\text{reponse1=\rep1}
\text{reponse2=\rep2}
\text{reponse3=\rep3}
\if{\format1 issametext radio}{
\text{rep1=\data[1];\choix1}
\text{reponse1=\choix1[\data[1]]}
}
\if{\format1 issametext numeric}{
\text{format1=range}
\real{prec1=items(\reponse1)=2 and \reponse1[2]>=0 ? \reponse1[2]:\prec_rel}
\text{reponse1=\reponse1[1]}
\real{rep1inf=\reponse1*(1-\prec1)}\real{rep1sup=\reponse1*(1+\prec1)}
\text{rep1=\rep1inf,\rep1sup,\reponse1}
}
\if{\format1 issametext function}{
\text{reponse1=\reponse1[1]}
}
\if{\format2 issametext radio}{
\text{rep2=\data[2];\choix2}
\text{reponse2=\choix2[\data[2]]}
}
\if{\format2 issametext numeric}{
\text{format2=range}
\real{prec2=items(\reponse2)=2 and \reponse2[2]>=0 ? \reponse2[2]:\prec_rel}
\text{reponse2=\reponse2[1]}
\real{rep2inf=\reponse2*(1-\prec2)}\real{rep1sup=\reponse2*(1+\prec2)}
\text{rep2=\rep2inf,\rep2sup,\reponse2}
}
\if{\format2 issametext function}{
\text{reponse2=\reponse2[1]}
}
\if{\format3 issametext radio}{
\text{rep3=\data[3];\choix3}
\text{reponse3=\choix3[\data[3]]}
}
\if{\format3 issametext numeric}{
\text{format3=range}
\real{prec3=items(\reponse3)=2 and \reponse3[2]>=0 ? \reponse3[2]:\prec_rel}
\text{reponse3=\reponse3[1]}
\real{rep3inf=\reponse3*(1-\prec3)}\real{rep3sup=\reponse3*(1+\prec3)}
\text{rep3=\rep3inf,\rep3sup,\reponse3}
}
\if{\format3 issametext function}{
\text{reponse3=\reponse3[1]}
}
\text{STEP=r1}
\if{\format2!=0}{
\text{STEP=\STEP
r2}
\if{\format3!=0}{
\text{STEP=\STEP
r3}
}
}
\text{reponse1=<strong class="name">\reponse1</strong>}
\text{reponse2=<strong class="name">\reponse2</strong>}
\text{reponse3=<strong class="name">\reponse3</strong>}
:Feedback sur la réponse à la question 1
Pour écrire un texte qui s'affichera à la 2ème étape de l'exercice.
On peut utiliser la variable \reponse1 pour faire apparaitre la
bonne réponse à la question 1.
\text{feedback1=\name est un verbe du \reponse1.}
:Feedback sur la réponse à la question 2
Pour écrire un texte qui s'affichera à la 3ème étape de l'exercice.
On peut utiliser la variable \reponse2 pour faire apparaitre la
bonne réponse à la question 2.
\text{feedback2=L'imparfait à la première personne du singulier de \name est \reponse2.}
:Feedback à la fin
\text{feedback3=Le futur à la première personne du singulier de \name est \reponse3.}
:%%%
\text{givegood=slib(oef/env givegood)}
\text{givegood=\givegood issametext ? 1}
\nextstep{\STEP}
\statement{
<div>\instruction</div>
<ol class="big_bullet"><li>
<div class="instruction">\instruction1</div>
\if{\step=1 or \step>=4}{
\if{\format1 notsametext radio}{
<label class="reponse" for="reply1">\name_my_answer \embed{r1}</label>
}{
<div class="reponse">\name_my_answer \embed{r1}</div>
}
}{
<div class="reponse">
\name_my_answer <span class="name">\reply1</span>
</div>
}
\if{\step>=2}{
\if{\givegood>0}{
<div class="feedback
\if{\sc_reply1=1}{oef_indgood">\right}{\if{\sc_reply1<=0}{oef_indbad}{oef_indpartial}">\false} \feedback1
</div>
}
</li><li>
<div class="instruction">
\instruction2
</div>
}
\if{\step=2 or \step>=4}{
\if{\format2 notsametext radio}{
<label class="reponse" for="reply2">\name_my_answer \embed{r2}</label>
}{
<div class="reponse">\name_my_answer \embed{r2}</div>
}
}
\if{\step>=3}{
\if{\step < 4}{
<div class="reponse">
\name_my_answer <span class="name">\reply2</span>
</div>
}
\if{\givegood>0}{
<div class="feedback
\if{\sc_reply2=1}{oef_indgood">\right}{\if{\sc_reply2<=0}{oef_indbad}{oef_indpartial}">\false} \feedback2
</div>
}
\if{\format3!=0}{
</li><li>
<div class="instruction"> \instruction3</div>
\if{\format3 notsametext radio}{
<label class="reponse" for="reply3">\name_my_answer \embed{r3}</label>
}{
<div class="reponse">\name_my_answer \embed{r3}</div>
}
}
}
\if{\step>=4 and \format3!=0}{
\if{\givegood>0}{
<div class="feedback
\if{\sc_reply3=1}{oef_indgood">\right}{\if{\sc_reply3<=0}{oef_indbad}{oef_indpartial}">\false} \feedback3
</div>
}
}
</li>
</ol>
}
\answer{}{\rep1}{type=\format1}{option=\option}
\answer{}{\rep2}{type=\format2}{option=\option}
\answer{}{\rep3}{type=\format3}{option=\option}