Subversion Repositories wimsdev

Rev

Rev 5448 | Rev 11375 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

type=datalist
textarea="data explain"

:Marquer les objets selon leurs propriétés.

On présente une liste d'objets et il faut marquer ceux qui possèdent une certaine propriété 
selon la demande de l'exercice.<br/>
Pour construire un exercice avec ce modèle, il suffit de donner la liste d'objets et leurs propriétés.<br/>
Auteur du modèle : Gang Xiao <xiao@unice.fr>

:%%%%%%%%%%%%%%%%%      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{Marquer par propriété}
:\author{XIAO, Gang}
:\email{xiao@unice.fr}

:Nombre d'objets à marquer par exercice. Jusqu'à 100.
Il faut avoir défini suffisamment d'objets dans les données principales !
\integer{tot=12}

:Le nombre minimal de bons objets à marquer. Au moins 1.
\integer{mingood=1}

:Le nombre minimal de mauvais objets à ne pas marquer. Au moins 1.
\integer{minbad=4}

:Liste de propriétés. La propriété à marquer sera tirée au hasard.
\text{prop=française,italienne,allemande}

:Données principales.
Définir un objet par ligne, d'abord le nom, ensuite la propriété, séparés par une virgule.<br/>
Il vaut mieux définir des données en quantité abondante pour chaque propriété.
\matrix{data=
Fabien Barthez,francaise
Grégory Coupet,francaise
Eric Abidal,francaise
William Gallas,francaise
Willy Sagnol,francaise
Lilian Thuram,francaise
Pascal Chimbonda,francaise
Mickaël Silvestre,francaise
Claude Makélélé,francaise
Patrick Vieira,francaise
Florent Malouda,francaise
Zinedine Zidane,francaise
Sylvain Wiltord,francaise
Franck Ribéry,francaise
Vikash Dhorasoo,francaise
Sidney Govou,francaise
Thierry Henry,francaise
David Trézéguet,francaise
Louis Saha,francaise

Gianluigi Buffon,italienne
Morgan De Sanctis,italienne
Angelo Peruzzi,italienne
Christian Abbiati,italienne
Marco Amelia,italienne
Flavio Roma,italienne
Gianluca Zambrotta,italienne
Alessandro Nesta,italienne
Fabio Cannavaro,italienne
Fabio Grosso,italienne
Cristian Zaccardo,italienne
Marco Materazzi,italienne
Andrea Barzagli,italienne
Massimo Oddo,italienne
Mauro Camoranesi,italienne
Andrea Pirlo,italienne
Gennaro Gattuso,italienne
Francesco Totti,italienne
Daniele de Rossi,italienne
Aimo Diana,italienne
Simone Barone,italienne
Manuele Blasi,italienne
Simone Perrotta,italienne
Alberto Gilardino,italienne
Luca Toni,italienne
Alessandro Del Piero,italienne
Vicenzo Iaquinta,italienne
Christian Vieri,italienne
Antonio Cassano,italienne
Cristiano Lucarelli,italienne
Filippo Inzaghi,italienne

Jens Lehmann,allemande
Oliver Kahn,allemande
Timo Hildebrand,allemande
Philipp Lahm,allemande
Arne Friedrich,allemande
Robert Huth,allemande
Jens Nowotny,allemande
Per Mertesacker,allemande
Christoph Metzelder,allemande
Marcell Jansen,allemande
Bernd Schneider,allemande
Sebastian Kehl,allemande
Torsten Frings,allemande
Michael Ballack,allemande
Tim Borowski,allemande
Bastian Schweinsteiger,allemande
David Odonkor,allemande
Thomas Hitzlsperger,allemande
Miroslav Klose,allemande
Lukas Podolski,allemande
Gerald Asamoah,allemande
Mike Hanke,allemande
Oliver Neuville,allemande
}

:Mots d'option.
Ajoutez le mot <span class="tt wims_code_words">split</span> à la définition si vous voulez donner une note
partielle pour des réponses partiellement correctes.
\text{option=split}

:Options de Présentation.
Ajoutez ici le mot "liste" si vous voulez afficher les objets sous forme de liste 
\text{presentation=}


:%%%%%%%%%%%%%% Rien à modifier avant l'énoncé %%%%%%%%%%%%%%%%

\text{prop=randitem(\prop)}

\text{data=wims(nonempty rows \data)}
\text{good=wims(select \data where column 2 issametext \prop)}
\text{bad=wims(select \data where column 2 notsametext \prop)}
\text{good=shuffle(wims(nonempty item \good[;1]))}
\text{bad=shuffle(wims(nonempty item \bad[;1]))}
\integer{goodcnt=items(\good)}
\integer{badcnt=items(\bad)}
\integer{tot=min(\tot,\goodcnt+\badcnt)}
\integer{mingood=min(\mingood,\tot-1)}
\integer{minbad=min(\minbad,\tot-\mingood-1)}
\integer{pickgood=randint(min(\mingood,\goodcnt)..min(\tot-\minbad,\goodcnt))}
\integer{pickbad=min(\tot-\pickgood,\badcnt)}
\integer{tot=\pickgood+\pickbad}
\text{ind=wims(makelist 1 for x=1 to \pickgood),wims(makelist 0 for x=1 to \pickbad)}
\text{all=item(1..\pickgood,\good),item(1..\pickbad,\bad)}
\text{list=wims(values x for x=1 to \tot)}
\text{sh=shuffle(\list)}
\text{all=item(\sh,\all)}
\text{ind=item(\sh,\ind)}
\text{tomark=positionof(1,\ind)}

:%% Choix de la presentation : sous forme lineaire par defaut, ou sous forme de liste à puces.
\if{liste iswordof \presentation}
{
 \text{pre=<ul>}
 \text{separatorL=<li>}
 \text{separatorR=</li>}
 \text{post=</ul>}
}
{
 \text{pre=<p>}
 \text{separatorL=<span>}
 \text{separatorR=</span>}
 \text{post=</p>}
}

:%%%%%%%%%%%%% Maintenant l'énoncé en code html. %%%%%%%%%%%%%%%%%%%%

:Le texte pour expliquer ce qu'il faut faire.
Pour évoquer la propriété tirée, écrire <span class="tt">\prop</span>.
$embraced_randitem
\text{explain=
Parmi les joueurs ci-dessous qui ont participé à la coupe du monde de football 2006, marquez ceux qui sont dans l'équipe \prop.
}

:%% Calculs à ne pas modifier
\text{explain=wims(embraced randitem \explain)}

::On n'a pas besoin de modifier l'énoncé directement en général.

\statement{
<p>\explain</p>
\pre
 \for{k=1 to \tot-1}{\separatorL \embed{r1,\k},\separatorR }
 \separatorL \embed{r1,\tot}.\separatorR
\post
}

:%%%%%%%%%%%%% Rien à modifier ci-après. %%%%%%%%%%%%%%%%%5

\answer{Le marquage}{\tomark;\all}{type=mark}{option=\option}