Quand on crée un pli avec <tt class="c">\\fold</tt>, on crée automatiquement un lien vers une deuxième version 
de la page qui contient le texte du pli ; alors les paramètres aléatoires de la page sont rechargés 
et donc différents. Aussi, la solution contenue dans le pli ne correspond donc pas à la 
question posée.

Pour éviter cela, on utilise la commande <tt class="c">\\link</tt> 
qui permet de recharger la même page dans une version différente
et de transmettre les paramètres nécessaires au calcul de la solution. 
Voici comment faire :
<ul>
<li>On met un point dans la première paire d'accolades de la commande <tt class="c">\\link</tt> pour 
signifier qu'on envoie sur la même page.</li>
<li>Le paramètre <tt class="c">N</tt> repère les versions de la page : 
<ul><li>La version <tt class="c">\\N=1</tt> de la page ne contient que la question ; 
le lien vers l'autre version est <tt class="fl">Solution</tt>.</li>
 <li>La version <tt class="c">\\N=2</tt> de la page  contient  la question et la solution ; 
le lien vers l'autre version est 
 <tt class="fl">Nouvelle question</tt>.</li>
</ul></li>
<li>Le mot <tt class="c">\\lien</tt> dans la deuxième accolade de la commande 
<tt class="c">&#92;link{.}{&#92;lien}{exemple}{parm1=&#92;N&parm2=&#92;p&parm3=&#92;q}
</tt> est le lien qui permet de changer de version ; sa définition dépend donc de <tt class="c">N</tt> :
<pre class="ccc">&#92;def{text lien=&#92;N=1 ? Solution:Nouvelle question}</pre>
</li>
<li>La troisième accolade de la commande contient l'ancre de l'exemple car la page est longue. Sinon au rechargement, 
la page revient en haut.</li>
<li>La quatrième accolade de la commande contient les paramètres transmis lors du rechargement.
<ul><li>
Le paramètre <tt class="c">N</tt> est transmis et conditionne la version affichée : une nouvelle question est affichée 
(N = 1) ou  la solution est calculée avec les paramètres conservées puis affichée (N = 2).
La commande <tt class="c">&#92;def{integer N = &#92;parm1 = 1 ? 2 : 1}</tt> donne la valeur 2 à N si <tt class="c">parm1=1</tt>
 et la valeur 1 sinon. On change de version à chaque rechargement.</li>
<li>Les paramètres aléatoires de l'exemple, ici <tt class="c">p, q</tt>, sont transmis par les paramètres ajoutés 
(<tt class="c">parm2=&#92;p&parm3=&#92;q</tt>) dans cette commande (voir l'aide).</li>
</ul>
<li>Dans la version <tt class="c">\\N=1</tt> de la page, on pose une nouvelle question, donc les paramètres, 
ici \(p) et \(q), sont pris au hasard (<tt class="c">random</tt>). Dans la version <tt class="c">\\N=2</tt> de la page,
la solution est calculée (puis affichée) avec les valeurs de \(p) et \(q) 
transmises par la commande 
<pre class="ccc">&#92;link{.}{&#92;lien}{exemple}{parm1=&#92;N&parm2=&#92;p&parm3=&#92;q}</pre>. 
On définit donc \(p) et \(q) selon la valeur de <tt class="c">N</tt> par les lignes suivantes :
<pre class="ccc">
&#92;def{integer p=&#92;N=1 ? random(2..10):&#92;parm2}
&#92;def{integer q=&#92;N=1 ? random(1..5):&#92;parm3}</pre></li>
<li>La variable <tt class="c">reponse</tt> dépend  de <tt class="c">N</tt>
dans sa définition : <tt class="c">&#92;def{text reponse=&#92;N=2 ? La solution est &#92;liste:&nbsp;}</tt>. 
Quand <tt class="c">N=1</tt>, elle est vide sinon elle donne la solution.</li>
</ul>

<h2><a name="exemple"></a>Voici l'exemple aléatoire en action</h2>
\def{integer N = \parm1= 1 ? 2 : 1}
\def{text lien=\N=1 ? Solution:Nouvelle question}

\def{integer p=\N=1 ? random(2..10):\parm2}
\def{integer q=\N=1 ? random(1..5):\parm3}
\def{text liste=\q}
\for{i=2 to \p}{
\def{integer r=\i*\q}
\def{text liste=\liste, \r}}

\def{text reponse=\N=2 ? La solution est \liste:&nbsp;}

<div class="ccc">
Compte de \q en \q de \q à \r. \reponse
<br>
\link{.}{\lien}{exemple}{parm1=\N&parm2=\p&parm3=\q}
</div>

<h2>Voici le code complet :</h2>
<pre class="ccc"> 
&#92;def{integer N = &#92;parm1 = 1 ? 2 : 1}
&#92;def{text lien=&#92;N=1 ? Solution:Nouvelle question}

&#92;def{integer p=&#92;N=1 ? random(2..10):&#92;parm2}
&#92;def{integer q=&#92;N=1 ? random(1..5):&#92;parm3}
&#92;def{text liste=&#92;q}
&#92;for{i=2 to &#92;p}{
&#92;def{integer r=&#92;i*&#92;q}
&#92;def{text liste=&#92;liste, &#92;r}}
&#92;def{text reponse=&#92;N=2 ? La solution est &#92;liste:&nbsp;}


Compte de &#92;q en &#92;q de &#92;q à &#92;r. &#92;reponse
&#92;link{.}{&#92;lien}{exemple}{parm1=&#92;N&parm2=&#92;p&parm3=&#92;q}

</pre>