Subversion Repositories wimsdev

Rev

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

Rev Author Line No. Line
23 reyssat 1
type=datalist
2
textarea="data explain"
3
 
4
:Marquer les objets selon leurs propriétés.
5
 
424 bpr 6
On présente une liste d'objets, et il faut marquer ceux qui possèdent une
23 reyssat 7
certaine propriété selon la demande de l'exercice.
8
<p>
9
Pour construire un exercice avec ce modèle, il suffit de donner la liste
10
d'objets et leurs propriétés.
11
<p>
12
Auteur du modèle : Gang Xiao <xiao@unice.fr>
13
 
14
:%%%%%%%%%%%%%%%%%      ATTENTION      %%%%%%%%%%%%%%%%%%%%
15
 
16
Enlevez l'entete ci-dessus si vous détruisez les balises pour le modèle !
17
(Ce sont les lignes qui commencent par un ':'.)
18
Sinon l'exercice risque de ne pas pouvoir repasser sous Createxo.
19
 
20
:%%%%%%%% Paramètres d'exemples à redéfinir %%%%%%%%%%%%%%%%%
21
 
22
:\title{Marquer par propriété}
23
:\author{XIAO Gang}
24
:\email{xiao@unice.fr}
25
 
26
:Nombre d'objets à marquer par exercice. Jusqu'à 100.
27
Il faut avoir défini suffisamment d'objets dans les données
28
principales !
29
\integer{tot=12}
30
 
31
:Le nombre minimal de bons objets à marquer. Au moins 1.
32
\integer{mingood=1}
33
 
34
:Le nombre minimal de mauvais objets à ne pas marquer. Au moins 1.
35
\integer{minbad=4}
36
 
37
:Liste de propriétés. La propriété à marquer sera tirée au hasard.
38
\text{prop=française,italienne,allemande}
39
 
40
:Données principales.
41
Définir un objet par ligne, d'abord le nom,
42
ensuite la propriété, séparés par une virgule.
43
<p> Il vaut mieux définir des données en quantité abondante pour chaque
44
propriété.
45
\matrix{data=
46
Fabien Barthez,francaise
47
Grégory Coupet,francaise
48
Eric Abidal,francaise
49
William Gallas,francaise
50
Willy Sagnol,francaise
51
Lilian Thuram,francaise
52
Pascal Chimbonda,francaise
53
Mickaël Silvestre,francaise
54
Claude Makélélé,francaise
55
Patrick Vieira,francaise
56
Florent Malouda,francaise
57
Zinedine Zidane,francaise
58
Sylvain Wiltord,francaise
59
Franck Ribéry,francaise
60
Vikash Dhorasoo,francaise
61
Sidney Govou,francaise
62
Thierry Henry,francaise
63
David Trézéguet,francaise
64
Louis Saha,francaise
65
 
66
Gianluigi Buffon,italienne
67
Morgan De Sanctis,italienne
68
Angelo Peruzzi,italienne
69
Christian Abbiati,italienne
70
Marco Amelia,italienne
71
Flavio Roma,italienne
72
Gianluca Zambrotta,italienne
73
Alessandro Nesta,italienne
74
Fabio Cannavaro,italienne
75
Fabio Grosso,italienne
76
Cristian Zaccardo,italienne
77
Marco Materazzi,italienne
78
Andrea Barzagli,italienne
79
Massimo Oddo,italienne
80
Mauro Camoranesi,italienne
81
Andrea Pirlo,italienne
82
Gennaro Gattuso,italienne
83
Francesco Totti,italienne
84
Daniele de Rossi,italienne
85
Aimo Diana,italienne
86
Simone Barone,italienne
87
Manuele Blasi,italienne
88
Simone Perrotta,italienne
89
Alberto Gilardino,italienne
90
Luca Toni,italienne
91
Alessandro Del Piero,italienne
92
Vicenzo Iaquinta,italienne
93
Christian Vieri,italienne
94
Antonio Cassano,italienne
95
Cristiano Lucarelli,italienne
96
Filippo Inzaghi,italienne
97
 
98
Jens Lehmann,allemande
99
Oliver Kahn,allemande
100
Timo Hildebrand,allemande
101
Philipp Lahm,allemande
102
Arne Friedrich,allemande
103
Robert Huth,allemande
104
Jens Nowotny,allemande
105
Per Mertesacker,allemande
106
Christoph Metzelder,allemande
107
Marcell Jansen,allemande
108
Bernd Schneider,allemande
109
Sebastian Kehl,allemande
110
Torsten Frings,allemande
111
Michael Ballack,allemande
112
Tim Borowski,allemande
113
Bastian Schweinsteiger,allemande
114
David Odonkor,allemande
115
Thomas Hitzlsperger,allemande
116
Miroslav Klose,allemande
117
Lukas Podolski,allemande
118
Gerald Asamoah,allemande
119
Mike Hanke,allemande
120
Oliver Neuville,allemande
121
}
122
 
123
:Mots d'option.
124
Ajoutez le mot "split" à la définition si vous voulez donner une note
125
partielle pour des réponses partiellement correctes.
126
\text{option=split}
127
 
128
:%%%%%%%%%%%%%% Rien à modifier avant l'énoncé %%%%%%%%%%%%%%%%
129
 
130
\text{prop=randitem(\prop)}
131
 
132
\text{data=wims(nonempty rows \data)}
133
\text{good=wims(select \data where column 2 issametext \prop)}
134
\text{bad=wims(select \data where column 2 notsametext \prop)}
135
\text{good=shuffle(wims(nonempty item \good[;1]))}
136
\text{bad=shuffle(wims(nonempty item \bad[;1]))}
137
\integer{goodcnt=items(\good)}
138
\integer{badcnt=items(\bad)}
139
\integer{tot=min(\tot,\goodcnt+\badcnt)}
140
\integer{mingood=min(\mingood,\tot-1)}
141
\integer{minbad=min(\minbad,\tot-\mingood-1)}
142
\integer{pickgood=randint(min(\mingood,\goodcnt)..min(\tot-\minbad,\goodcnt))}
143
\integer{pickbad=min(\tot-\pickgood,\badcnt)}
144
\integer{tot=\pickgood+\pickbad}
145
\text{ind=wims(makelist 1 for x=1 to \pickgood),wims(makelist 0 for x=1 to \pickbad)}
146
\text{all=item(1..\pickgood,\good),item(1..\pickbad,\bad)}
147
\text{list=wims(values x for x=1 to \tot)}
148
\text{sh=shuffle(\list)}
149
\text{all=item(\sh,\all)}
150
\text{ind=item(\sh,\ind)}
151
\text{tomark=positionof(1,\ind)}
152
 
153
:%%%%%%%%%%%%% Maintenant l'énoncé en code html. %%%%%%%%%%%%%%%%%%%%
154
 
155
:Le texte pour expliquer ce qu'il faut faire.
156
Pour évoquer la propriété tirée, écrire <tt>\prop</tt>.
157
$embraced_randitem
158
\text{explain=
159
Parmi les joueurs ci-dessous qui ont participé à la coupe du monde
160
de football 2006, marquez ceux qui sont dans l'équipe \prop.
161
}
162
 
163
:%% Calculs à ne pas modifier
164
\text{explain=wims(embraced randitem \explain)}
165
 
166
::On n'a pas besoin de modifier l'énoncé directement en général.
167
 
168
\statement{\explain
169
<p>
170
\for{k=1 to \tot-1}{\embed{r1,\k},}
171
\embed{r1,\tot}.
172
<p>
173
}
174
 
175
:%%%%%%%%%%%%% Rien à modifier ci-après. %%%%%%%%%%%%%%%%%5
176
 
177
\answer{Le marquage}{\tomark;\all}{type=mark}{option=\option}
178