Rev 5764 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
## identifiants de l'exercice: titre, auteur, format
\title{
\\\toef_var1
}
\author{
\\\toef_var2
}
\email{
\\\toef_var3
}
\langage{fr}
\format{html}
## type qcm de l'exo
\integer{
exo=
\\\toef_var4
}
## la liste des questions
\matrix{
obsList=
wims(replace internal ? by ? in \\\toef_var5)
}
\integer{obsnb=wims(rowcnt \obsList)}
## la liste des réponses éventuelles
\matrix{
propsList=
wims(replace internal ? by ? in \\\toef_var6)
}
\integer{propsnb=wims(rowcnt \propsList)-1}
## liste des bonnes réponses par question
\matrix{
propsrepList=
wims(replace internal ? by ? in \\\toef_var7)
}
## les indications
\matrix{
indicList=
wims(replace internal ? by ? in \\\toef_var15)
}
## nombre de possibilités à afficher
\integer{
ckchnb=
\\\toef_var8
}
\integer{
fixchnb=
\\\toef_var9
}
\integer{
borng=
\\\toef_var10
}
\integer{
bornd=
\\\toef_var11
}
\integer{
chnb=
\\\toef_var12
}
## couleurs de fond
\text{bg=lavender,lemonchiffon,azure}
## nombre de lignes pour l'affichage de 2 colonnes de la liste des propriétés
\integer{rowsnb=floor((\chnb+1)/2)}
\integer{extrarow=((\chnb+1)%2)}
## choix aléatoire d'une question
\integer{objn=random(1..\obsnb)}
\text{obj=wims(trim \obsList[\objn;])}
\text{obj=wims(char 2 to -2 of \obj)}
## la bonne réponse initiale
\text{props=\propsrepList[\objn;]}
## génération de la liste des réponses à afficher
\text{pafnbs=shuffle(\propsnb)}
\text{pafnbs=wims(item 1 to \chnb of \pafnbs)}
## text{pafnbs=wims(sort numeric item \pafnbs)}
\integer{nbp=\propsnb+1}
\text{pafnbs=wims(append item \nbp to \pafnbs)}
\text{paf=}
\for{i in \pafnbs}{
\text{paf=wims(append line \propsList[\i;] to \paf)}
}
\matrix{paf=\paf}
\integer{chnbp=\chnb+1}
\text{propsorder=wims(values i for i=1 to \chnbp)}
## ce qu'il faudra choisir pour avoir juste
\text{brep=wims(listintersect \props and \pafnbs)}
\integer{brepnb=wims(itemcnt \brep)}
\if{\brepnb=0}{
\text{ansrep=\chnbp}}{
\text{ansrep=}
\for{i in \brep}{
\text{situ=position(\i,\pafnbs)}
\text{ansrep=wims(append item \situ to \ansrep)}
}
}
\text{ansrep=wims(sort numeric item \ansrep)}
\text{rep=Les réponses à la question \obj}
## numérotation des éléments des colonnes
\text{c1=wims(values i for i=1 to \rowsnb)}
\text{c2=wims(values \rowsnb+i for i=1 to \rowsnb)}
## énoncé saisi en ligne
\text{
enonceR=
\\\toef_var13
}
## détection de l'indication
\text{com=wims(trim \indicList[\objn;])}
\text{com=wims(char 4 to -2 of \com)}
\text{com=wims(trim \com)}
\integer{comN=wims(charcnt \com)}
## ici on donne l'énoncé de l'exercice
\statement{
\enonceR
<br>
<br>
<center>
<table bgcolor=darkcyan>
\for{k=1 to \rowsnb}{
<tr>
<td bgcolor=\bg[(2*\k-1)%3+1] align=left>
<table>
<tr>
<td bgcolor=sandybrown>
\embed{reply 1,\c1[\k]}
</td>
<td>
\paf[\k;]
</td>
</tr>
</table>
</td>
<td bgcolor=\bg[(2*\k)%3+1] align=left>
<table>
<tr>
<td bgcolor=sandybrown>
\embed{reply 1,\c2[\k]}
</td>
<td>
\paf[(\k+\rowsnb);]
</td>
</tr>
</table>
</td>
</tr>
}
\if{\extrarow<>0}{
<tr>
<td align=center bgcolor=\bg[\chnbp%3+1] colspan=2>
<table>
<tr>
<td bgcolor=sandybrown>
\embed{reply 1,\chnbp}
</td>
<td align=center>
\paf[\chnbp;]
</td>
</tr>
</table>
</td>
</tr>
}
</table>
</center>
}
## champ de soumission et analyse de la réponse
\reply{\rep}{\ansrep;\propsorder}{type=\\\toef_var14}
## indications éventuelles
\hint{
<div style="background-color:moccasin;width:80%">
\if{\comN>1}{
\com
}{
<font color=magenta><tt>désolé: il n' y a pas d'indication.</tt></font>
}
</div>
}