Subversion Repositories wimsdev

Rev

Rev 2901 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
23 reyssat 1
type=first
2
textarea="datatrue datafalse explain"
3
 
3426 bpr 4
:Une question à choix multiples avec permutation aléatoire des choix.
23 reyssat 5
 
5112 bpr 6
Voici un modèle de question à choix multiples. L'ordre des choix est aléatoire, 
7
ainsi que les choix s'il y en a suffisamment qui sont définis.
8
Quand il y a plusieurs bons choix, il suffit d'en choisir un, peu importe lequel.
9
 
10
<p>
5129 bpr 11
Le texte n'est pas aléatoire. Un autre modèle <b>QCM à la suite</b>
5112 bpr 12
permet d'avoir aussi un texte aléatoire.
13
 
5131 bpr 14
 
15
$image_help
16
 
5134 bpr 17
$math_help
18
 
3108 obado 19
<p>Auteur du modèle : Gang Xiao <xiao@unice.fr></p>
23 reyssat 20
 
21
:%%%%%%%%%%%%%%%%%      ATTENTION      %%%%%%%%%%%%%%%%%%%%
22
 
2880 bpr 23
Enlevez l'en-tête ci-dessus si vous détruisez les balises pour le modèle !
23 reyssat 24
(Ce sont les lignes qui commencent par un ':'.)
25
Sinon l'exercice risque de ne pas pouvoir repasser sous Createxo.
26
 
27
:%%%%%%%% Paramètres d'exemples à redéfinir %%%%%%%%%%%%%%%%%
28
 
29
:\title{Choix multiple}
5147 bpr 30
:\author{XIAO, Gang}
23 reyssat 31
:\email{xiao@unice.fr}
32
 
33
:Nombre de choix à présenter. Au plus 10.
3108 obado 34
Vous devez définir suffisamment de choix. Sinon l'exercice affichera seulement ce qui est disponible.
23 reyssat 35
\integer{tot=5}
36
 
37
:Le nombre de bons choix dans chaque exercice. Ne doit pas depasser le total.
38
\integer{givetrue=2}
39
 
40
:Nombre de mauvais choix "obligatoires".
3108 obado 41
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.
42
<p> Dans le doute, mettez 0.</p>
23 reyssat 43
\integer{minfalse=0}
44
 
45
:Le texte qui explique ce qu'il faut faire.
46
$embraced_randitem
47
\text{explain=
3108 obado 48
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.
49
Changez les textes, et vous aurez votre question à choix multiples.<br/>
50
Prenez le bon choix.<br/>
51
Quand il y a plusieurs bons choix, il suffit d'en choisir un, peu importe lequel.
23 reyssat 52
}
53
 
54
:Le(s) bon(s) choix, un par ligne.
55
On peut en placer plusieurs (un par ligne) pour tirer au hasard.
56
Evitez les phrases trop longues ! Aucun point-virgule dans la phrase.
57
$embraced_randitem
58
\matrix{datatrue=
59
Le bon choix 1.
60
Le bon choix 2.
61
Le bon choix 3.
62
Le bon choix 4.
63
}
64
 
65
:Les mauvais choix, un par ligne.
66
Vous pouvez en donner plus que ce qu'il faut tirer au hasard.
67
Evitez les phrases trop longues ! Aucun point-virgule dans la phrase.
68
$embraced_randitem
69
\matrix{datafalse=
70
Le mauvais choix 1.
71
Le mauvais choix 2.
72
Le mauvais choix 3.
73
Le mauvais choix 4.
74
Le mauvais choix 5.
75
Le mauvais choix 6.
76
Le mauvais choix 7.
77
Le mauvais choix 8.
78
}
79
 
4674 bpr 80
:Mots d'option :  <tt class="wims_code_words">checkbox</tt>,  <tt class="wims_code_words">split</tt>.
81
Ajouter le mot  <tt class="wims_code_words">checkbox</tt> 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).
82
Dans ce cas, ajouter aussi le mot  <tt class="wims_code_words">split</tt> si on autorise une note partielle quand seulement une partie des bonnes réponses sont choisies.
23 reyssat 83
\text{option=}
84
 
3396 bpr 85
:Feedback Général
86
Ce texte s'affichera après la réponse de l'apprenant, qu'elle soit juste ou fausse.
3108 obado 87
\text{feedback_general=}
88
 
3396 bpr 89
:Feedback en cas de bonne réponse
90
Ce texte s'affichera après la réponse de l'apprenant, en cas de bonne reponse ou de reponse partielle.
3108 obado 91
\text{feedback_bon=}
92
 
3396 bpr 93
:Feedback en cas de mauvaise réponse
94
Ce texte s'affichera après la réponse de l'apprenant, s'il a coché au moins une mauvaise réponse.
3108 obado 95
\text{feedback_mauvais=}
96
 
23 reyssat 97
:%%%%%%%%%%%%%% Rien à modifier avant l'énoncé %%%%%%%%%%%%%%%%
98
 
3108 obado 99
\text{empty=}
100
\if{\feedback_general != \empty}{
101
  \text{feedback_general=<p class="feedback">\feedback_general</p>}
102
}
103
\if{\feedback_bon != \empty}{
104
  \text{feedback_bon=<p class="feedback good_answer">\feedback_bon</p>}
105
}
106
\if{\feedback_mauvais != \empty}{
107
  \text{feedback_mauvais=<p class="feedback bad_answer">\feedback_mauvais</p>}
108
}
109
 
23 reyssat 110
\text{datatrue=wims(nonempty rows \datatrue)}
111
\text{datafalse=wims(nonempty rows \datafalse)}
112
\integer{truecnt=rows(\datatrue)}
113
\integer{falsecnt=rows(\datafalse)}
114
\integer{givetrue=\givetrue<1?1}
115
\integer{givetrue=\givetrue>\truecnt?\truecnt}
116
\integer{tot=\tot > \falsecnt+\givetrue?\falsecnt+\givetrue}
117
\integer{givetrue=\givetrue>\tot-1?\tot-1}
118
\integer{minfalse=\minfalse>\tot-\givetrue?\tot-\givetrue}
119
\text{tsh=shuffle(\truecnt)}
120
\text{true=row(\tsh,\datatrue)}
121
\if{\minfalse>0}{
122
 \text{false1=row(1..\minfalse,\datafalse);}
123
 \text{false2=row(\minfalse+1..\falsecnt,\datafalse)}
124
}{
125
 \integer{minfalse=0}
126
 \text{false1=}
127
 \text{false2=\datafalse}
128
}
129
\text{fsh=shuffle(\falsecnt)}
130
\text{false2=row(\fsh,\false2)}
131
\text{pick=row(1..\givetrue,\true);\false1 row(1..\tot-\givetrue-\minfalse,\false2)}
132
\text{ind=wims(makelist 1 for x=1 to \givetrue),wims(makelist 0 for x=1 to \tot-\givetrue)}
133
 
134
\text{sh=shuffle(\tot)}
135
\text{ind=item(\sh,\ind)}
136
\text{pick=row(\sh,\pick)}
137
\text{pick=wims(embraced randitem \pick)}
138
\text{explain=wims(embraced randitem \explain)}
139
\text{ans=positionof(1,\ind)}
140
\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)}
141
\text{anstype=checkbox iswordof \option?checkbox:radio}
142
 
143
:%%%%%%%%%%%%% Maintenant l'énoncé en code html. %%%%%%%%%%%%%%%%%%%%
144
 
145
::Vous n'avez pas besoin de modifier ceci en général.
146
 
1362 obado 147
\statement{
148
\explain
23 reyssat 149
\for{i=1 to \tot}{
1362 obado 150
	<p class="oefreply"><label><strong>\embed{reply 1,\i}-</strong> \pick[\i;]</label></p>
23 reyssat 151
}
152
}
153
 
154
:%%%%%%%%%%%%% Rien à modifier ci-après. %%%%%%%%%%%%%%%%%5
155
 
156
\answer{La réponse}{\ans;\list}{type=\anstype}{option=\option}
157
 
3108 obado 158
\feedback{1=1}{\feedback_general}
159
\feedback{\reply1 isitemof \list[\ans]}{\feedback_bon}
160
\feedback{\reply1 notitemof \list[\ans]}{\feedback_mauvais}