!set titb=Un exemple d'exercices où l'élève doit recommencer 
!set keyw=
!set datm=20060606
!set prev=
!set next=
!set upbl=main
!set dat1=19000101
!set dat2=24000101


!if $wims_read_parm!=$empty
 !goto $wims_read_parm
!endif
!exit

:content

!read primitives.phtml 1, embed, definition, &nbsp; 


!read primitives.phtml 2, link, fichiernextstep0, Le fichier 
<pre class="cc">
<div class="variable">
$m_text$m_lbrac a = $m_randint(3<tt class="w">..</tt>12) $m_rbrac
$m_integer$m_lbrac b = \a^2 $m_rbrac $m_text$m_lbrac nstep = <tt class=reply>r1</tt> $m_rbrac
$m_nextstep$m_lbrac \nstep $m_rbrac </div></pre>
<div class="aide">La variable <tt class="c">\nstep</tt> contient la question demandée
à l'étape suivante &#58; initialisation à la question 1, ici
</div>
<pre class="cc">
<div class="variable">
$m_text$m_lbrac commentaire= $m_rbrac </div>
<div class="statement">
$m_statement$m_lbrac Calculez  &#92;(\a^2).
\commentaire
<tt class=comm>\embed</tt>$m_lbrac r \step $m_rbrac  $m_rbrac </div>
<div class="variable">
$m_answer$m_lbrac $m_rbrac$m_lbrac \rep1 $m_rbrac$m_lbrac <tt class="type">type=numeric</tt> $m_rbrac
$m_answer$m_lbrac $m_rbrac$m_lbrac \rep2 $m_rbrac$m_lbrac <tt class="type">type=numeric</tt> $m_rbrac 
$m_answer$m_lbrac $m_rbrac$m_lbrac \rep3 $m_rbrac$m_lbrac <tt class="type">type=numeric</tt> $m_rbrac
$m_text$m_lbrac rep = \rep1, \rep2, \rep3 $m_rbrac
$m_integer$m_lbrac H = \rep[\step - 1] $m_rbrac </div></pre>
<div class="aide">Pendant le statement, <tt class="c">\step</tt> a été incrémentée
de 1. La première fois qu'on passe ici, elle vaut donc 2. Comme on veut utiliser
la réponse <tt class=reply>r1</tt>, on doit donc prendre <tt class="c">\step - 1</tt>
</div>
<pre class="cc">
<div class="variable">
$m_text$m_lbrac nstep = \H &#33;= \b <tt class="op">and</tt> \step<=3 ?  r \step&#58; $m_rbrac </div></pre>
<div class="aide">On redéfinit <tt class="c">\nstep</tt> comme étant 
la question suivante si la réponse de l'étudiant est fausse et qu'il a essayé 
au plus 2 fois. Sinon, on vide la variable <tt class="c">\nstep</tt> (attention
au <tt class="c">&#58;</tt>)
</div>
<pre class="cc">
<div class="variable">
$m_condition$m_lbrac $m_rbrac$m_lbrac \b = \rep[1] $m_rbrac$m_lbrac <tt class="type">option=hide</tt>}
$m_condition$m_lbrac $m_rbrac$m_lbrac \b = \rep[2] <tt class="op">or</tt> \b = \rep[1] $m_rbrac$m_lbrac <tt class="type">option=hide</tt> $m_rbrac
$m_condition$m_lbrac $m_rbrac$m_lbrac \b = \rep[3] <tt class="op">or</tt> \b = \rep[1] <tt class="op">or</tt> \b = \rep[2] $m_rbrac$m_lbrac <tt class="type">option=hide</tt> $m_rbrac </div></pre>
<div class="aide">Le rôle des conditions ici est d'éviter que l'exercice s'arrête
dès que l'élève a répondu faux ... Il faut cependant faire attention de ne pas le pénaliser
s'il a juste tout de suite. 
</div>
<pre class="cc">
<div class="variable">
$m_text$m_lbrac commentaire=\step = 2 <tt class="op">and</tt> \H &#33;= \b ? Cela est faux, recommencez. $m_rbrac
$m_text$m_lbrac commentaire= \step = 3 <tt class="op">and</tt> \H &#33;= \b ? Vous n'avez
plus le droit qu'à un essai. $m_rbrac </div></pre>
<div class="aide"> Le commentaire dépend donc de l'étape. Remarquez qu'on l'a initialisé
avant le statement par <tt class="c"> $m_text$m_lbrac commentaire= $m_rbrac </tt>
</div>
<pre class="cc">
<div class="statement">
$m_feedback$m_lbrac 1 = 1 $m_rbrac$m_lbrac La réponse est \b $m_rbrac </div>
</pre>

