Rev 11375 | Rev 12208 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
type=question first
textarea="datatrue datafalse explain"
asis="datatrue datafalse explain"
:Une question à choix multiples avec permutation aléatoire des choix.
Voici un modèle de question à choix multiples. L'ordre des choix est aléatoire,
ainsi que les choix s'il y en a suffisamment qui sont définis.
Quand il y a plusieurs bons choix, il suffit d'en choisir un, peu importe lequel.
<p>Le texte n'est pas aléatoire. Un autre modèle <b>QCM à la suite</b>
permet d'avoir aussi un texte aléatoire.</p>
$image_help
$math_help
<p>Auteur du modèle : Gang Xiao <qualite@wimsedu.info></p>
:%%%%%%%%%%%%%%%%% ATTENTION %%%%%%%%%%%%%%%%%%%%
Enlevez l'en-tête ci-dessus si vous détruisez les balises pour le modèle !
(Ce sont les lignes qui commencent par un ':'.)
Sinon l'exercice risque de ne pas pouvoir repasser sous Createxo.
:%%%%%%%% Paramètres d'exemples à redéfinir %%%%%%%%%%%%%%%%%
:\title{Choix multiple}
:\author{XIAO, Gang}
:\email{qualite@wimsedu.info}
:\credits{}
:Nombre de choix à présenter. Au plus 10.
Vous devez définir suffisamment de choix. Sinon l'exercice affichera seulement ce qui est disponible.
\integer{tot=5}
:Le nombre de bons choix dans chaque exercice. Ne doit pas depasser le total.
\integer{givetrue=2}
:Nombre de mauvais choix "obligatoires".
Par exemple si ce nombre est 2, les deux premiers mauvais choix dans la liste seront toujours présentés dans les exercices générés.
<p> Dans le doute, mettez 0.</p>
\integer{minfalse=0}
:Le texte qui explique ce qu'il faut faire.
$embraced_randitem
\text{explain=Voici un modèle de question à choix multiples. L'ordre des choix est aléatoire, ainsi que les choix s'il y en a suffisamment qui sont définis.
Changez les textes, et vous aurez votre question à choix multiples.<br/>
Prenez le bon choix.<br/>
Quand il y a plusieurs bons choix, il suffit d'en choisir un, peu importe lequel.
}
:Le(s) bon(s) choix, un par ligne.
On peut en placer plusieurs (un par ligne) pour tirer au hasard.
Evitez les phrases trop longues ! Aucun point-virgule dans la phrase.
$embraced_randitem
\matrix{datatrue=Bon choix n°1
Bon choix n°2
Bon choix n°3
Bon choix n°4
}
:Les mauvais choix, un par ligne.
Vous pouvez en donner plus que ce qu'il faut tirer au hasard.
Evitez les phrases trop longues ! Aucun point-virgule dans la phrase.
$embraced_randitem
\matrix{datafalse=Mauvais choix n°1
Mauvais choix n°2
Mauvais choix n°3
Mauvais choix n°4
Mauvais choix n°5
Mauvais choix n°6
Mauvais choix n°7
Mauvais choix n°8
}
:Mots d'option : <span class="tt wims_code_words">checkbox</span>, <span class="tt wims_code_words">split</span>.
Ajouter le mot <span class="tt wims_code_words">checkbox</span> s'il y a plusieurs bonnes réponses et si l'élève doit choisir toutes les bonnes réponses (au lieu d'une seule).
Dans ce cas, ajouter aussi le mot <span class="tt wims_code_words">split</span> si on autorise une note partielle quand seulement une partie des bonnes réponses sont choisies.
\text{option=}
:Feedback Général
Ce texte s'affichera après la réponse de l'apprenant, qu'elle soit juste ou fausse.
\text{feedback_general=}
:Feedback en cas de bonne réponse
Ce texte s'affichera après la réponse de l'apprenant, en cas de bonne reponse ou de reponse partielle.
\text{feedback_bon=}
:Feedback en cas de mauvaise réponse
Ce texte s'affichera après la réponse de l'apprenant, s'il a coché au moins une mauvaise réponse.
\text{feedback_mauvais=}
:Mise en aléatoire par des accolades emboitables
$embraced_randitem
\text{accolade=item(1,1 oui,
2 non)}
:%%%%%%%%%%%%%% Rien à modifier avant l'énoncé %%%%%%%%%%%%%%%%
\text{accolade=wims(word 1 of \accolade)}
\text{empty=}
\if{\feedback_general != \empty}{
\text{feedback_general=<p class="feedback">\feedback_general</p>}
}
\if{\feedback_bon != \empty}{
\text{feedback_bon=<p class="feedback good_answer">\feedback_bon</p>}
}
\if{\feedback_mauvais != \empty}{
\text{feedback_mauvais=<p class="feedback bad_answer">\feedback_mauvais</p>}
}
\text{datatrue=wims(nonempty rows \datatrue)}
\text{datafalse=wims(nonempty rows \datafalse)}
\integer{truecnt=rows(\datatrue)}
\integer{falsecnt=rows(\datafalse)}
\integer{givetrue=\givetrue<1?1}
\integer{givetrue=\givetrue>\truecnt?\truecnt}
\integer{tot=\tot > \falsecnt+\givetrue?\falsecnt+\givetrue}
\integer{givetrue=\givetrue>\tot-1?\tot-1}
\integer{minfalse=\minfalse>\tot-\givetrue?\tot-\givetrue}
\text{tsh=shuffle(\truecnt)}
\text{true=row(\tsh,\datatrue)}
\if{\minfalse>0}{
\text{false1=row(1..\minfalse,\datafalse);}
\text{false2=row(\minfalse+1..\falsecnt,\datafalse)}
}{
\integer{minfalse=0}
\text{false1=}
\text{false2=\datafalse}
}
\text{fsh=shuffle(\falsecnt)}
\text{false2=row(\fsh,\false2)}
\text{pick=row(1..\givetrue,\true);\false1 row(1..\tot-\givetrue-\minfalse,\false2)}
\text{ind=wims(makelist 1 for x=1 to \givetrue),wims(makelist 0 for x=1 to \tot-\givetrue)}
\text{sh=shuffle(\tot)}
\text{ind=item(\sh,\ind)}
\text{pick=row(\sh,\pick)}
\text{pick=\accolade=1 ? wims(embraced randitem \pick)}
\text{explain=\accolade=1 ? wims(embraced randitem \explain)}
\text{ans=positionof(1,\ind)}
\text{list=item(1..\tot,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z)}
\text{anstype=checkbox iswordof \option?checkbox:radio}
:%%%%%%%%%%%%% Maintenant l'énoncé en code html. %%%%%%%%%%%%%%%%%%%%
::Vous n'avez pas besoin de modifier ceci en général.
\statement{
<div class="oef_explain">\explain</div>
\for{i=1 to \tot}
{<p class="oefreply">\embed{reply 1,\i, \list[\i] : \pick[\i;]}</p>}
}
:%%%%%%%%%%%%% Rien à modifier ci-après. %%%%%%%%%%%%%%%%%5
\answer{La réponse}{\ans;\list}{type=\anstype}{option=\option}
\feedback{1=1}{\feedback_general}
\feedback{\reply1 isitemof \list[\ans]}{\feedback_bon}
\feedback{\reply1 notitemof \list[\ans]}{\feedback_mauvais}