Rev 13716 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
type=question first
textarea="datatrue datafalse explain"
iEdit="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>
<p class="wims_credits">Auteur du modèle : <a href="mailto:qualite@wimsedu.info">Gang Xiao</a></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 dépasser 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>.
Par défaut, l'élève ne pourra sélectionner qu'un seul choix.
Mettre 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, si on veut de plus que l'élève obtienne une partie des points lorsque
sa réponse est partiellement bonne, ajouter le mot <span class="tt wims_code_words">split</span>.
\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=}
:Indication
Un texte qui peut aider l'apprenant à trouver la bonne réponse
\text{exo_hint=}
: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>}
}
\if{\exo_hint != \empty}{
\hint{\exo_hint}
}
\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{option=wims(items2words \option)}
\text{anstype=checkbox iswordof \option?checkbox:radio}
%%% for latex print
\text{latextext=}
\for{ll=1 to \tot}{
\text{latextext=\latextext
\item \list[\ll] : \pick[\ll;]}
}
%%%
:%%%%%%%%%%%%% 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}
{<div class="oefreply">\embed{reply 1,\i, \list[\i] : \pick[\i;]}</div>}
}
:%%%%%%%%%%%%% 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}
:%%%%%%%%%%%%% Maintenant l'énoncé en latex. %%%%%%%%%%%%%%%%%%%%
\latex{
\begin{statement}
\explain
\begin{\anstype}
\latextext
\end{\anstype}
\end{statement}
}