Subversion Repositories wimsdev

Rev

Rev 5947 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

  1. <h3>Random parameters in an interactive exercise</h3>
  2.  
  3. The use of random parameters makes your exercise much more interesting,
  4. because it will be a different exercise each time it is requested.
  5. <p>
  6. For example, the following line defines a parameter under the name of
  7. <font color=blue><b>x1</b></font>, whose value will be a random integer
  8. between -10 and 10 (inclusive):
  9. <pre>
  10. \integer{x1=random(-10..10)}
  11. </pre>
  12. This random parameter may then be called by the word
  13. <b><span class="tt wims_code_variable">x1</span></b>, in the statement, the replis, the hint and the solution.
  14. That is, each word <span class="tt wims_code_variable">x1</span> in these texts will be replaced
  15. by the random value of the parameter. This substitution will also take
  16. place in the definitions of other parameters which follow that of x1.
  17. <p>
  18. Suppose now that you have entered
  19. <pre>
  20. \integer{x1=random(-10..10)}
  21. \integer{y1=\x1+3}
  22. </pre>
  23. in the field of the definition of parameters, and the question
  24. <pre>
  25. Compute the multiplication of \x1 by \y1.
  26. </pre>
  27. in the statement of the exercise. Suppose that for a certain request of
  28. the exercise, a random value <font color="red">-7</font>
  29. is attributed to \x1. Then the following parameter \y1 will take the value
  30. -4, and the statement of the exercise will be presented under the form <div class="wimscenter">Compute the multiplication of -7 by -4.
  31. </div>
  32. You may then define a numerical reply in the name of <span class="tt">The product</span>,
  33. having for the good solution <span class="tt wims_code_words">(\x1)*(\y1)</span>. (Remark that here
  34. the parentheses are necessary, because the substitution is done literarily.)
  35. <a id="list"></a>
  36. !if oefparm isitemof $special_parm
  37.  !changeto help/oefparm.phtml
  38. !endif
  39. $table_header
  40. <caption>Some other examples of parameters
  41. !href cmd=help&special_parm=$special_parm,oefparm#list [complete list]
  42. </caption>
  43. $table_hdtr<th>Definition</th><th>Effect</th></tr>
  44. $table_tr<td class="tt wims_code_words">\real{x=random(-5..5)}
  45.     </td><td>\x will be a random real number<br/>between -5 and 5
  46. </td></tr>
  47. $table_tr<td class="tt wims_code_words">\real{a=random(-5,-3,0.3,4)}
  48.     </td><td>\a will be a real number taken randomly<br/>among -5,-3,0.3 and 4
  49. </td></tr>
  50. $table_tr<td class="tt wims_code_words">\complex{z=(1+2*i)^3}
  51.     </td><td>\z will be the complex number (1+2*i)^3
  52. </td></tr>
  53. $table_tr<td class="tt wims_code_words">\text{sign=random(+,-)}
  54.     </td><td>\sign will be a random sign: + ou -
  55. </td></tr>
  56. $table_tr<td class="tt wims_code_words">\integer{n=3*exp(\a)}
  57.     </td><td>\n will be the closest integer to 3*e<sup>\a</sup> <br/>(it depends on
  58.     the value of \a)
  59. </td></tr>
  60. $table_tr<td class="tt wims_code_words">\function{f=random<br/> (x^2+1,sin(x),log(x))}
  61.     </td><td>\f will be a random function: either x^2+1,<br/>or sin(x), or
  62.     log(x)
  63. </td></tr>
  64. $table_tr<td class="tt wims_code_words">\real{a=evalue(x^2+sin(y),x=3,y=4)}
  65.     </td><td>Evaluation of the function x^2+sin(y),<br/>
  66.     for x=3, y=4
  67. </td></tr>
  68. $table_tr<td class="tt wims_code_words">\real{r=solve(x^3-3*x+1,x=0..1)}
  69.     </td><td>\r will the the simple root of x^3-3x+1 between 0 and 1
  70. </td></tr>
  71. $table_tr<td class="tt wims_code_words">\function{h=simplify(x^5*y^3*x^2/y)}
  72.     </td><td>Simplified expression: x<sup>7</sup>y<sup>2</sup>
  73. </td></tr>
  74. $table_tr<td class="tt wims_code_words">\function{g=diff(sin(x)+cos(y),x)}
  75.     </td><td>\g will the the derivative of sin(x)+cos(y) with respect to x
  76. </td></tr>
  77. $table_tr<td class="tt wims_code_words">\function{F=int(x^2+3*x+1,x)}
  78.     </td><td>\F will an antiderivative of x^2+3*x+1,<br/>
  79.      the constant term being not garanteed to be always the same
  80. !!$table_tr<td class="tt wims_code_words">\function{F=int(t^2+3*t+1,t=1..x)}
  81. !!    </td><td>\F will the antiderivative of x^2+3*x+1 with g(1)=0
  82. </td></tr>
  83. $table_tr<td class="tt wims_code_words">\real{a=int(t^2+3*t+1,t=0..1)}
  84.     </td><td>\a will the numerical integral of x^2+3*x+1 from 0 to 1
  85. </td></tr>
  86. $table_tr<td class="tt wims_code_words">\text{f=htmlmath(2*x^2+3*x)}
  87.     </td><td>\f will be rendered in html as: 2x<sup>2</sup>+3x
  88. </td></tr>
  89. $table_tr<td class="tt wims_code_words">\text{f=texmath(2*x^2+3*x)}
  90.     </td><td>\f will be the TeX source for the expression.
  91. </td></tr>
  92. $table_tr<td class="tt wims_code_words">\integer{n=items(a,b,c,d,e,f)}
  93.     </td><td>\n will be the number of items (here it is 6) in the list
  94.      {a,b,c,d,e,f}
  95. </td></tr>
  96. $table_tr<td class="tt wims_code_words">\text{i=item(3,a,b,c,d,e,f)}
  97.     </td><td>\i will be the item number 3 of the list
  98.      {a,b,c,d,e,f} (hence c).
  99. </td></tr>
  100. $table_tr<td class="tt wims_code_words">\text{s=shuffle(6)}
  101.     </td><td>\s will be the list of 6 integers 1,2,...,6, in random order.
  102. </td></tr>
  103. $table_tr<td class="tt wims_code_words">\text{s=shuffle(a,b,c,d,e)}
  104.     </td><td>\s will be the letters {a,b,c,d,e} in random order.
  105. </td></tr>
  106. $table_tr<td class="tt wims_code_words">\matrix{m=1,2,3<br/>4,5,6<br/>7,8,9}
  107.     </td><td>\m will be the matrix of 3 rows and 3 columns.
  108. </td></tr>
  109. $table_tr<td class="tt wims_code_words">\text{t=asis(How do you do? item(1,2,3))}
  110.     </td><td>The string as it is, with no transformation nor conditionality.
  111. </td></tr>
  112. $table_end
  113.  
  114. Conditional parameters: You may write
  115. <pre>
  116. \text{ttt=_condition?_def1}
  117. \text{ttt=_condition?_def1:_def2}
  118. </pre>
  119. <p>
  120. In this case, <span class="tt">ttt</span> will be set to <span class="tt">_def1</span> if
  121. <span class="tt">_condition</span> is true, or to <span class="tt">_def2</span> otherwise (in the second
  122. syntax).
  123. !href target=wims_mhelp cmd=help&special_parm=if List of conditions
  124. </p><p>
  125. The relative positionning of the definition and the statement is important:
  126. if a variable is defined AFTER the statement, the evaluation of the variable
  127. will take place only AFTER the user has replied to the question. In this
  128. case, the definition may involve user replies, via <span class="tt wims_code_variable">\reply1</span>,
  129. <span class="tt wims_code_variable">\reply2</span>, etc. And the variable can be used in testing
  130. conditions or feedbacks.
  131. </p>
  132.  
  133.