Subversion Repositories wimsdev

Rev

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

Rev Author Line No. Line
23 reyssat 1
<center><h3>Random parameters in an interactive exercise</h3></center> <p>
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
5903 bpr 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
23 reyssat 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
4091 bpr 28
the exercise, a random value <font color="red">-7</font>
23 reyssat 29
is attributed to \x1. Then the following parameter \y1 will take the value
5755 bpr 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>
5903 bpr 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
23 reyssat 34
the parentheses are necessary, because the substitution is done literarily.)
5912 bpr 35
<a id="list"></a>
23 reyssat 36
!if oefparm isitemof $special_parm
37
 !changeto help/oefparm.phtml
38
!endif
5912 bpr 39
$table_header
23 reyssat 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>Effect
5903 bpr 44
$table_tr<td><span class="tt wims_code_words">\real{x=random(-5..5)}</span>
5755 bpr 45
    <td>\x will be a random real number<br/>between -5 and 5
5903 bpr 46
$table_tr<td><span class="tt wims_code_words">\real{a=random(-5,-3,0.3,4)}</span>
5755 bpr 47
    <td>\a will be a real number taken randomly<br/>among -5,-3,0.3 and 4
5903 bpr 48
$table_tr<td><span class="tt wims_code_words">\complex{z=(1+2*i)^3}</span>
23 reyssat 49
    <td>\z will be the complex number (1+2*i)^3
5903 bpr 50
$table_tr<td><span class="tt wims_code_words">\text{sign=random(+,-)}</span>
23 reyssat 51
    <td>\sign will be a random sign: + ou -
5903 bpr 52
$table_tr<td><span class="tt wims_code_words">\integer{n=3*exp(\a)}</span>
5755 bpr 53
    <td>\n will be the closest integer to 3*e<sup>\a</sup> <br/>(it depends on
23 reyssat 54
    the value of \a)
5755 bpr 55
$table_tr<td><tt class="wims_code_words">\function{f=random<br/> (x^2+1,sin(x),log(x))}</tt>
56
    <td>\f will be a random function: either x^2+1,<br/>or sin(x), or
23 reyssat 57
    log(x)
5903 bpr 58
$table_tr<td><span class="tt wims_code_words">\real{a=evalue(x^2+sin(y),x=3,y=4)}</span>
5755 bpr 59
    <td>Evaluation of the function x^2+sin(y),<br/>
23 reyssat 60
    for x=3, y=4
5903 bpr 61
$table_tr<td><span class="tt wims_code_words">\real{r=solve(x^3-3*x+1,x=0..1)}</span>
23 reyssat 62
    <td>\r will the the simple root of x^3-3x+1 between 0 and 1
5903 bpr 63
$table_tr<td><span class="tt wims_code_words">\function{h=simplify(x^5*y^3*x^2/y)}</span>
23 reyssat 64
    <td>Simplified expression: x<sup>7</sup>y<sup>2</sup>
5903 bpr 65
$table_tr<td><span class="tt wims_code_words">\function{g=diff(sin(x)+cos(y),x)}</span>
23 reyssat 66
    <td>\g will the the derivative of sin(x)+cos(y) with respect to x
5903 bpr 67
$table_tr<td><span class="tt wims_code_words">\function{F=int(x^2+3*x+1,x)}</span>
5755 bpr 68
    <td>\F will an antiderivative of x^2+3*x+1,<br/>
23 reyssat 69
     the constant term being not garanteed to be always the same
4091 bpr 70
!!$table_tr<td><tt class="wims_code_words">\function{F=int(t^2+3*t+1,t=1..x)}
23 reyssat 71
!!    <td>\F will the antiderivative of x^2+3*x+1 with g(1)=0
5903 bpr 72
$table_tr<td><span class="tt wims_code_words">\real{a=int(t^2+3*t+1,t=0..1)}</span>
23 reyssat 73
    <td>\a will the numerical integral of x^2+3*x+1 from 0 to 1
5903 bpr 74
$table_tr<td><span class="tt wims_code_words">\text{f=htmlmath(2*x^2+3*x)}</span>
23 reyssat 75
    <td>\f will be rendered in html as: 2x<sup>2</sup>+3x
5903 bpr 76
$table_tr<td><span class="tt wims_code_words">\text{f=texmath(2*x^2+3*x)}</span>
23 reyssat 77
    <td>\f will be the TeX source for the expression.
5903 bpr 78
$table_tr<td><span class="tt wims_code_words">\integer{n=items(a,b,c,d,e,f)}</span>
23 reyssat 79
    <td>\n will be the number of items (here it is 6) in the list
80
     {a,b,c,d,e,f}
5903 bpr 81
$table_tr<td><span class="tt wims_code_words">\text{i=item(3,a,b,c,d,e,f)}</span>
23 reyssat 82
    <td>\i will be the item number 3 of the list
83
     {a,b,c,d,e,f} (hence c).
5903 bpr 84
$table_tr<td><span class="tt wims_code_words">\text{s=shuffle(6)}</span>
23 reyssat 85
    <td>\s will be the list of 6 integers 1,2,...,6, in random order.
5903 bpr 86
$table_tr<td><span class="tt wims_code_words">\text{s=shuffle(a,b,c,d,e)}</span>
23 reyssat 87
    <td>\s will be the letters {a,b,c,d,e} in random order.
5755 bpr 88
$table_tr<td><tt class="wims_code_words">\matrix{m=1,2,3<br/>4,5,6<br/>7,8,9}</tt>
23 reyssat 89
    <td>\m will be the matrix of 3 rows and 3 columns.
5903 bpr 90
$table_tr<td><span class="tt wims_code_words">\text{t=asis(How do you do? item(1,2,3))}</span>
23 reyssat 91
    <td>The string as it is, with no transformation nor conditionality.
92
 
93
$table_end <p>
94
 
4091 bpr 95
Conditional parameters: You may write
96
<pre>
97
\text{ttt=_condition?_def1}
98
\text{ttt=_condition?_def1:_def2}
99
</pre>
23 reyssat 100
<p>
5903 bpr 101
In this case, <span class="tt">ttt</span> will be set to <span class="tt">_def1</span> if
102
<span class="tt">_condition</span> is true, or to <span class="tt">_def2</span> otherwise (in the second
23 reyssat 103
syntax).
104
!href target=wims_mhelp cmd=help&special_parm=if List of conditions
105
<p>
106
The relative positionning of the definition and the statement is important:
107
if a variable is defined AFTER the statement, the evaluation of the variable
108
will take place only AFTER the user has replied to the question. In this
5903 bpr 109
case, the definition may involve user replies, via <span class="tt wims_code_variable">\reply1</span>,
110
<span class="tt wims_code_variable">\reply2</span>, etc. And the variable can be used in testing
23 reyssat 111
conditions or feedbacks.
112
 
113