Subversion Repositories wimsdev

Rev

Rev 17348 | Blame | Compare with Previous | Last modification | View Log | RSS feed

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