Subversion Repositories wimsdev

Rev

Rev 2798 | 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
 
4
:Une question à choix multiples avec permutation aléatoire.
5
 
6
QCM classique, avec un bon choix qui ne dépend pas du texte.
7
Mais les choix ainsi que leur ordre peuvent être mis en aléatoire.
8
<p>
9
Auteur du modèle : Gang Xiao <xiao@unice.fr>
10
 
11
:%%%%%%%%%%%%%%%%%      ATTENTION      %%%%%%%%%%%%%%%%%%%%
12
 
2880 bpr 13
Enlevez l'en-tête ci-dessus si vous détruisez les balises pour le modèle !
23 reyssat 14
(Ce sont les lignes qui commencent par un ':'.)
15
Sinon l'exercice risque de ne pas pouvoir repasser sous Createxo.
16
 
17
:%%%%%%%% Paramètres d'exemples à redéfinir %%%%%%%%%%%%%%%%%
18
 
19
:\title{Choix multiple}
20
:\author{XIAO Gang}
21
:\email{xiao@unice.fr}
22
 
23
:Nombre de choix à présenter. Au plus 10.
24
Vous devez définir suffisamment de choix. Sinon l'exercice affichera
25
seulement ce qui est disponible.
26
\integer{tot=5}
27
 
28
:Le nombre de bons choix dans chaque exercice. Ne doit pas depasser le total.
29
\integer{givetrue=2}
30
 
31
:Nombre de mauvais choix "obligatoires".
32
Par exemple si ce nombre est 2, les deux premiers mauvais choix dans la
33
liste seront toujours présentés dans les exercices générés.
34
<p> Dans le doute, mettez 0.
35
\integer{minfalse=0}
36
 
37
:Le texte qui explique ce qu'il faut faire.
38
$embraced_randitem
39
\text{explain=
40
Voici un modèle de question à choix multiples. L'ordre des choix est
41
aléatoire, ainsi que les choix s'il y en a suffisamment qui sont définis.
42
Changez les textes, et vous aurez votre question à choix multiples.
43
<p>
44
Prenez le bon choix.
45
Quand il y a plusieurs bons choix, il suffit d'en choisir n'importe lequel.
46
}
47
 
48
:Le(s) bon(s) choix, un par ligne.
49
On peut en placer plusieurs (un par ligne) pour tirer au hasard.
50
Evitez les phrases trop longues ! Aucun point-virgule dans la phrase.
51
$embraced_randitem
52
\matrix{datatrue=
53
Le bon choix 1.
54
Le bon choix 2.
55
Le bon choix 3.
56
Le bon choix 4.
57
}
58
 
59
:Les mauvais choix, un par ligne.
60
Vous pouvez en donner plus que ce qu'il faut tirer au hasard.
61
Evitez les phrases trop longues ! Aucun point-virgule dans la phrase.
62
$embraced_randitem
63
\matrix{datafalse=
64
Le mauvais choix 1.
65
Le mauvais choix 2.
66
Le mauvais choix 3.
67
Le mauvais choix 4.
68
Le mauvais choix 5.
69
Le mauvais choix 6.
70
Le mauvais choix 7.
71
Le mauvais choix 8.
72
}
73
 
74
:Mots d'option : "checkbox", "split".
75
Ajouter le mot "checkbox" s'il y a plusieurs bonnes réponses et si l'élève
76
doit choisir toutes les bonnes réponses (au lieu d'une seule). Dans ce cas, 
77
ajouter aussi le mot "split" si on autorise une note partielle quand seulement une
78
partie des bonnes réponses sont choisies.
79
\text{option=}
80
 
81
:%%%%%%%%%%%%%% Rien à modifier avant l'énoncé %%%%%%%%%%%%%%%%
82
 
83
\text{datatrue=wims(nonempty rows \datatrue)}
84
\text{datafalse=wims(nonempty rows \datafalse)}
85
\integer{truecnt=rows(\datatrue)}
86
\integer{falsecnt=rows(\datafalse)}
87
\integer{givetrue=\givetrue<1?1}
88
\integer{givetrue=\givetrue>\truecnt?\truecnt}
89
\integer{tot=\tot > \falsecnt+\givetrue?\falsecnt+\givetrue}
90
\integer{givetrue=\givetrue>\tot-1?\tot-1}
91
\integer{minfalse=\minfalse>\tot-\givetrue?\tot-\givetrue}
92
\text{tsh=shuffle(\truecnt)}
93
\text{true=row(\tsh,\datatrue)}
94
\if{\minfalse>0}{
95
 \text{false1=row(1..\minfalse,\datafalse);}
96
 \text{false2=row(\minfalse+1..\falsecnt,\datafalse)}
97
}{
98
 \integer{minfalse=0}
99
 \text{false1=}
100
 \text{false2=\datafalse}
101
}
102
\text{fsh=shuffle(\falsecnt)}
103
\text{false2=row(\fsh,\false2)}
104
\text{pick=row(1..\givetrue,\true);\false1 row(1..\tot-\givetrue-\minfalse,\false2)}
105
\text{ind=wims(makelist 1 for x=1 to \givetrue),wims(makelist 0 for x=1 to \tot-\givetrue)}
106
 
107
\text{sh=shuffle(\tot)}
108
\text{ind=item(\sh,\ind)}
109
\text{pick=row(\sh,\pick)}
110
\text{pick=wims(embraced randitem \pick)}
111
\text{explain=wims(embraced randitem \explain)}
112
\text{ans=positionof(1,\ind)}
113
\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)}
114
\text{anstype=checkbox iswordof \option?checkbox:radio}
115
 
116
:%%%%%%%%%%%%% Maintenant l'énoncé en code html. %%%%%%%%%%%%%%%%%%%%
117
 
118
::Vous n'avez pas besoin de modifier ceci en général.
119
 
1362 obado 120
\statement{
121
\explain
23 reyssat 122
\for{i=1 to \tot}{
1362 obado 123
	<p class="oefreply"><label><strong>\embed{reply 1,\i}-</strong> \pick[\i;]</label></p>
23 reyssat 124
}
125
}
126
 
127
:%%%%%%%%%%%%% Rien à modifier ci-après. %%%%%%%%%%%%%%%%%5
128
 
129
\answer{La réponse}{\ans;\list}{type=\anstype}{option=\option}
130