1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138
|
<h2 class="wimscenter">Paramtres alatoires dans un exercice interactif</h2>
<p>
L'utilisation de paramtres alatoires rendra votre exercice beaucoup
plus intressant, car ce sera un exercice diffrent chaque fois qu'il est
redemand.
</p><p>
Par exemple, la ligne suivante dfinit un paramtre sous le nom de
<span class="tt wims_code_variable">x1</span>, dont la valeur sera un entier alatoire entre
-10 et 10 (inclusif) :
</p><pre>
\integer{x1=random(-10..10)}
</pre>
Ce paramtre alatoire peut ensuite tre invoqu par le mot
<b><span class="tt wims_code_variable">\x1</span></b>, dans l'nonc, les rponses, l'indication et la solution.
C'est--dire, chaque mot <span class="tt wims_code_variable">\x1</span> dans ces textes
sera remplac par la valeur alatoire
du paramtre. Cette substitution prend aussi effet dans les dfinitions
d'autres paramtres qui suivent celle de <span class="tt wims_code_words">x1</span>.
<p>
Supposons maintenant que vous avez entr
</p>
<pre>
\integer{x1=random(-10..10)}
\integer{y1=\x1+3}
</pre>
dans le champ de la dfinition de paramtre, et la question
<pre>
Calculez la multiplication de \x1 par \y1.
</pre>
<p>dans l'nonc de l'exercice. Supposons que sur une demande de l'exercice,
une valeur alatoire <span class="tt wims_code_variable">-7</span> est attribue \x1. Alors
le paramtre suivant \y1 prendra la valeur -4, et l'nonc de l'exercice
sera prsent sous la forme
</p><p class="wimscenter">Calculez la multiplication de -7 par -4.
</p>
Vous pouvez ensuite dfinir une rponse numrique au nom de <span class="tt">Le
produit</span>, ayant pour bonne solution <span class="tt">(\x1)*(\y1)</span>. (Remarquez
qu'ici les parenthses sont ncessaires car la substitution se fera de faon
littrale.)
<a id="list"></a>
!if oefparm isitemof $special_parm
!changeto help/oefparm.phtml
!endif
$table_header
<caption>Quelques autres exemples de paramtres
!href cmd=help&special_parm=$special_parm,oefparm#list [liste complte]
</caption>
$table_hdtr<th>Dfinition</th><th>Effet</th></tr>
$table_tr<td class="tt wims_code_words">\real{x=random(-5..5)}
</td><td>\x sera un nombre rel alatoire<br>entre -5 et 5
</td></tr>
$table_tr<td class="tt wims_code_words">\real{a=randitem(-5,-3,0.3,4)}
</td><td>\a sera un nombre rel pris alatoirement<br>parmi -5,-3,0.3 et 4
</td></tr>
$table_tr<td class="tt wims_code_words">\complex{z=(1+2*i)^3}
</td><td>\z sera le nombre complexe z=(1+2*i)^3
</td></tr>
$table_tr<td class="tt wims_code_words">\text{sign=randitem(+,-)}
</td><td>\sign sera un signe alatoire: + ou -
</td></tr>
$table_tr<td class="tt wims_code_words">\integer{n=3*exp(\a)}
</td><td>\n sera l'entier le plus proche de 3*e<sup>\a</sup> <br>(il dpend de la
valeur de \a)
</td></tr>
$table_tr<td class="tt wims_code_words">\function{f=randitem(x^2+1,sin(x),log(x))}
</td><td>\f sera une fonction alatoire: soit x^2+1,<br>soit sin(x), soit
log(x)
</td></tr>
$table_tr<td class="tt wims_code_words">\real{a=evalue(x^2+sin(y),x=3,y=4)}
</td><td>Evaluation de la fonction x^2+sin(y),<br>
pour x=3, y=4
</td></tr>
$table_tr<td class="tt wims_code_words">\real{r=solve(x^3-3*x+1,x=0..1)}
</td><td>\r sera la racine simple de x^3-3x+1 entre 0 et 1
</td></tr>
$table_tr<td class="tt wims_code_words">\function{h=simplify(x^5*y^3*x^2/y)}
</td><td>Expression simplifie : x<sup>7</sup>y<sup>2</sup>
</td></tr>
$table_tr<td class="tt wims_code_words">\function{g=diff(sin(x)+cos(y),x)}
</td><td>\g sera la drive de sin(x)+cos(y) par rapport x
</td></tr>
$table_tr<td class="tt wims_code_words">\function{F=int(x^2+3*x+1,x)}
</td><td>\F sera une primitive de x^2+3*x+1,<br>
le terme constant n'tant pas garanti d'tre toujours le mme
!!$table_tr<td class="wims_code_words">\function{F=int(t^2+3*t+1,t=1..x)}
!! <td>\F sera la primitive x^2+3*x+1 telle que g(1)=0
</td></tr>
$table_tr<td class="tt wims_code_words">\real{a=int(t^2+3*t+1,t=0..1)}
</td><td>\a sera l'intgrale numrique de x^2+3*x+1, de 0 1
</td></tr>
$table_tr<td class="tt wims_code_words">\text{f=htmlmath(2*x^2+3*x)}
</td><td>\f sera rendu en html comme: 2x<sup>2</sup>+3x
</td></tr>
$table_tr<td class="tt wims_code_words">\text{f=texmath(2*x^2+3*x)}
</td><td>\f sera le source TeX de l'expression.
</td></tr>
$table_tr<td class="tt wims_code_words">\integer{n=items(a,b,c,d,e,f)}
</td><td>\n sera le nombre d'articles (ici c'est 6) dans la liste
{a,b,c,d,e,f}
</td></tr>
$table_tr<td class="tt wims_code_words">\text{i=item(3,a,b,c,d,e,f)}
</td><td>\i sera l'article numro 3 de la liste
{a,b,c,d,e,f} (donc c).
</td></tr>
$table_tr<td class="tt wims_code_words">\text{s=shuffle(6)}
</td><td>\s sera la liste des 6 entiers 1,2,...,6, dans un ordre alatoire.
</td></tr>
$table_tr<td class="tt wims_code_words">\text{s=shuffle(a,b,c,d,e)}
</td><td>\s sera les lettres {a,b,c,d,e} dans un ordre alatoire.
</td></tr>
$table_tr<td class="wims_code_words">\matrix{m=1,2,3<br>4,5,6<br>7,8,9}
</td><td>\m sera la matrice de 3 lignes et 3 colonnes.
</td></tr>
$table_tr<td class="tt wims_code_words">\text{t=asis(Comment a va ? matrix(1,2,3))}
</td><td>\t est la chane comme elle est crite, <br>sans transformation ni conditionalit.
</td></tr>
$table_end
Paramtres conditionnels : vous pouvez crire
<pre>
\text{ttt=_condition?_def1}
\text{ttt=_condition?_def1:_def2}
</pre>
<p>
Dans ce cas, <span class="tt wims_code_words">ttt</span> aura la valeur <span class="tt wims_code_words">_def1</span> si
<span class="tt wims_code_words">_condition</span> s'avre vraie, ou <span class="tt wims_code_words">_def2</span> sinon (dans la seconde
syntaxe).
!href target=wims_mhelp cmd=help&special_parm=if Liste de conditions
</p><p>
La position relative d'une dfinition par rapport l'nonc est
importante : si une variable est dfinie APRS l'nonc, l'valuation
de la variable aura lieu uniquement APRS que l'utilisateur ait rpondu
la question. Dans ce cas, la dfinition peut utiliser les rponses donnes
par l'utilisateur, via <span class="tt wims_code_variable">\reply1</span>, <span class="tt wims_code_variable">\reply2</span>, etc. Et la
variable ainsi dfinie peut tre utilise dans les conditions
de test ou les feedbacks.
</p>
|