Subversion Repositories wimsdev

Rev

Rev 5907 | Rev 8002 | 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}
6132 bpr 32
:\credits{}
23 reyssat 33
 
34
:Nombre de choix à présenter. Au plus 10.
3108 obado 35
Vous devez définir suffisamment de choix. Sinon l'exercice affichera seulement ce qui est disponible.
23 reyssat 36
\integer{tot=5}
37
 
38
:Le nombre de bons choix dans chaque exercice. Ne doit pas depasser le total.
39
\integer{givetrue=2}
40
 
41
:Nombre de mauvais choix "obligatoires".
3108 obado 42
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.
43
<p> Dans le doute, mettez 0.</p>
23 reyssat 44
\integer{minfalse=0}
45
 
46
:Le texte qui explique ce qu'il faut faire.
47
$embraced_randitem
48
\text{explain=
3108 obado 49
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.
50
Changez les textes, et vous aurez votre question à choix multiples.<br/>
51
Prenez le bon choix.<br/>
52
Quand il y a plusieurs bons choix, il suffit d'en choisir un, peu importe lequel.
23 reyssat 53
}
54
 
55
:Le(s) bon(s) choix, un par ligne.
56
On peut en placer plusieurs (un par ligne) pour tirer au hasard.
57
Evitez les phrases trop longues ! Aucun point-virgule dans la phrase.
6132 bpr 58
 
23 reyssat 59
$embraced_randitem
60
\matrix{datatrue=
61
Le bon choix 1.
62
Le bon choix 2.
63
Le bon choix 3.
64
Le bon choix 4.
65
}
66
 
67
:Les mauvais choix, un par ligne.
68
Vous pouvez en donner plus que ce qu'il faut tirer au hasard.
69
Evitez les phrases trop longues ! Aucun point-virgule dans la phrase.
70
$embraced_randitem
71
\matrix{datafalse=
72
Le mauvais choix 1.
73
Le mauvais choix 2.
74
Le mauvais choix 3.
75
Le mauvais choix 4.
76
Le mauvais choix 5.
77
Le mauvais choix 6.
78
Le mauvais choix 7.
79
Le mauvais choix 8.
80
}
81
 
5907 bpr 82
:Mots d'option :  <span class="tt wims_code_words">checkbox</span>,  <span class="tt wims_code_words">split</span>.
83
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).
84
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.
23 reyssat 85
\text{option=}
86
 
3396 bpr 87
:Feedback Général
88
Ce texte s'affichera après la réponse de l'apprenant, qu'elle soit juste ou fausse.
3108 obado 89
\text{feedback_general=}
90
 
3396 bpr 91
:Feedback en cas de bonne réponse
92
Ce texte s'affichera après la réponse de l'apprenant, en cas de bonne reponse ou de reponse partielle.
3108 obado 93
\text{feedback_bon=}
94
 
3396 bpr 95
:Feedback en cas de mauvaise réponse
96
Ce texte s'affichera après la réponse de l'apprenant, s'il a coché au moins une mauvaise réponse.
3108 obado 97
\text{feedback_mauvais=}
98
 
6132 bpr 99
:Mise en aléatoire par des accolades emboitables
100
$embraced_randitem
101
\text{accolade=item(1,1 oui,
102
2 non)}
103
 
104
 
23 reyssat 105
:%%%%%%%%%%%%%% Rien à modifier avant l'énoncé %%%%%%%%%%%%%%%%
6132 bpr 106
\text{accolade=wims(word 1 of \accolade)}
23 reyssat 107
 
3108 obado 108
\text{empty=}
109
\if{\feedback_general != \empty}{
110
  \text{feedback_general=<p class="feedback">\feedback_general</p>}
111
}
112
\if{\feedback_bon != \empty}{
113
  \text{feedback_bon=<p class="feedback good_answer">\feedback_bon</p>}
114
}
115
\if{\feedback_mauvais != \empty}{
116
  \text{feedback_mauvais=<p class="feedback bad_answer">\feedback_mauvais</p>}
117
}
118
 
23 reyssat 119
\text{datatrue=wims(nonempty rows \datatrue)}
120
\text{datafalse=wims(nonempty rows \datafalse)}
121
\integer{truecnt=rows(\datatrue)}
122
\integer{falsecnt=rows(\datafalse)}
123
\integer{givetrue=\givetrue<1?1}
124
\integer{givetrue=\givetrue>\truecnt?\truecnt}
125
\integer{tot=\tot > \falsecnt+\givetrue?\falsecnt+\givetrue}
126
\integer{givetrue=\givetrue>\tot-1?\tot-1}
127
\integer{minfalse=\minfalse>\tot-\givetrue?\tot-\givetrue}
128
\text{tsh=shuffle(\truecnt)}
129
\text{true=row(\tsh,\datatrue)}
130
\if{\minfalse>0}{
131
 \text{false1=row(1..\minfalse,\datafalse);}
132
 \text{false2=row(\minfalse+1..\falsecnt,\datafalse)}
133
}{
134
 \integer{minfalse=0}
135
 \text{false1=}
136
 \text{false2=\datafalse}
137
}
138
\text{fsh=shuffle(\falsecnt)}
139
\text{false2=row(\fsh,\false2)}
140
\text{pick=row(1..\givetrue,\true);\false1 row(1..\tot-\givetrue-\minfalse,\false2)}
141
\text{ind=wims(makelist 1 for x=1 to \givetrue),wims(makelist 0 for x=1 to \tot-\givetrue)}
142
 
143
\text{sh=shuffle(\tot)}
144
\text{ind=item(\sh,\ind)}
145
\text{pick=row(\sh,\pick)}
6132 bpr 146
\text{pick=\accolade=1 ? wims(embraced randitem \pick)}
147
\text{explain=\accolade=1 ? wims(embraced randitem \explain)}
23 reyssat 148
\text{ans=positionof(1,\ind)}
149
\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)}
150
\text{anstype=checkbox iswordof \option?checkbox:radio}
151
 
152
:%%%%%%%%%%%%% Maintenant l'énoncé en code html. %%%%%%%%%%%%%%%%%%%%
153
 
154
::Vous n'avez pas besoin de modifier ceci en général.
155
 
1362 obado 156
\statement{
157
\explain
23 reyssat 158
\for{i=1 to \tot}{
1362 obado 159
	<p class="oefreply"><label><strong>\embed{reply 1,\i}-</strong> \pick[\i;]</label></p>
23 reyssat 160
}
161
}
162
 
163
:%%%%%%%%%%%%% Rien à modifier ci-après. %%%%%%%%%%%%%%%%%5
164
 
165
\answer{La réponse}{\ans;\list}{type=\anstype}{option=\option}
166
 
3108 obado 167
\feedback{1=1}{\feedback_general}
168
\feedback{\reply1 isitemof \list[\ans]}{\feedback_bon}
169
\feedback{\reply1 notitemof \list[\ans]}{\feedback_mauvais}