Subversion Repositories wimsdev

Rev

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

Rev Author Line No. Line
6133 bpr 1
<h3>Random parameters in an interactive exercise</h3>
23 reyssat 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
5947 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>
5947 bpr 43
$table_hdtr<th>Definition</th><th>Effect</th></tr>
6133 bpr 44
$table_tr<td class="tt wims_code_words">\real{x=random(-5..5)}
5947 bpr 45
    </td><td>\x will be a random real number<br/>between -5 and 5
46
</td></tr>
6133 bpr 47
$table_tr<td class="tt wims_code_words">\real{a=random(-5,-3,0.3,4)}
5947 bpr 48
    </td><td>\a will be a real number taken randomly<br/>among -5,-3,0.3 and 4
49
</td></tr>
6133 bpr 50
$table_tr<td class="tt wims_code_words">\complex{z=(1+2*i)^3}
5947 bpr 51
    </td><td>\z will be the complex number (1+2*i)^3
52
</td></tr>
6133 bpr 53
$table_tr<td class="tt wims_code_words">\text{sign=random(+,-)}
5947 bpr 54
    </td><td>\sign will be a random sign: + ou -
55
</td></tr>
6133 bpr 56
$table_tr<td class="tt wims_code_words">\integer{n=3*exp(\a)}
5947 bpr 57
    </td><td>\n will be the closest integer to 3*e<sup>\a</sup> <br/>(it depends on
23 reyssat 58
    the value of \a)
5947 bpr 59
</td></tr>
6133 bpr 60
$table_tr<td class="tt wims_code_words">\function{f=random<br/> (x^2+1,sin(x),log(x))}
5947 bpr 61
    </td><td>\f will be a random function: either x^2+1,<br/>or sin(x), or
23 reyssat 62
    log(x)
5947 bpr 63
</td></tr>
6133 bpr 64
$table_tr<td class="tt wims_code_words">\real{a=evalue(x^2+sin(y),x=3,y=4)}
5947 bpr 65
    </td><td>Evaluation of the function x^2+sin(y),<br/>
23 reyssat 66
    for x=3, y=4
5947 bpr 67
</td></tr>
6133 bpr 68
$table_tr<td class="tt wims_code_words">\real{r=solve(x^3-3*x+1,x=0..1)}
5947 bpr 69
    </td><td>\r will the the simple root of x^3-3x+1 between 0 and 1
70
</td></tr>
6133 bpr 71
$table_tr<td class="tt wims_code_words">\function{h=simplify(x^5*y^3*x^2/y)}
5947 bpr 72
    </td><td>Simplified expression: x<sup>7</sup>y<sup>2</sup>
73
</td></tr>
6133 bpr 74
$table_tr<td class="tt wims_code_words">\function{g=diff(sin(x)+cos(y),x)}
5947 bpr 75
    </td><td>\g will the the derivative of sin(x)+cos(y) with respect to x
76
</td></tr>
6133 bpr 77
$table_tr<td class="tt wims_code_words">\function{F=int(x^2+3*x+1,x)}
5947 bpr 78
    </td><td>\F will an antiderivative of x^2+3*x+1,<br/>
23 reyssat 79
     the constant term being not garanteed to be always the same
6133 bpr 80
!!$table_tr<td class="tt wims_code_words">\function{F=int(t^2+3*t+1,t=1..x)}
5947 bpr 81
!!    </td><td>\F will the antiderivative of x^2+3*x+1 with g(1)=0
82
</td></tr>
6133 bpr 83
$table_tr<td class="tt wims_code_words">\real{a=int(t^2+3*t+1,t=0..1)}
5947 bpr 84
    </td><td>\a will the numerical integral of x^2+3*x+1 from 0 to 1
85
</td></tr>
6133 bpr 86
$table_tr<td class="tt wims_code_words">\text{f=htmlmath(2*x^2+3*x)}
5947 bpr 87
    </td><td>\f will be rendered in html as: 2x<sup>2</sup>+3x
88
</td></tr>
6133 bpr 89
$table_tr<td class="tt wims_code_words">\text{f=texmath(2*x^2+3*x)}
5947 bpr 90
    </td><td>\f will be the TeX source for the expression.
91
</td></tr>
6133 bpr 92
$table_tr<td class="tt wims_code_words">\integer{n=items(a,b,c,d,e,f)}
5947 bpr 93
    </td><td>\n will be the number of items (here it is 6) in the list
23 reyssat 94
     {a,b,c,d,e,f}
5947 bpr 95
</td></tr>
6133 bpr 96
$table_tr<td class="tt wims_code_words">\text{i=item(3,a,b,c,d,e,f)}
5947 bpr 97
    </td><td>\i will be the item number 3 of the list
23 reyssat 98
     {a,b,c,d,e,f} (hence c).
5947 bpr 99
</td></tr>
6133 bpr 100
$table_tr<td class="tt wims_code_words">\text{s=shuffle(6)}
5947 bpr 101
    </td><td>\s will be the list of 6 integers 1,2,...,6, in random order.
102
</td></tr>
6133 bpr 103
$table_tr<td class="tt wims_code_words">\text{s=shuffle(a,b,c,d,e)}
5947 bpr 104
    </td><td>\s will be the letters {a,b,c,d,e} in random order.
105
</td></tr>
6133 bpr 106
$table_tr<td class="tt wims_code_words">\matrix{m=1,2,3<br/>4,5,6<br/>7,8,9}
5947 bpr 107
    </td><td>\m will be the matrix of 3 rows and 3 columns.
108
</td></tr>
6133 bpr 109
$table_tr<td class="tt wims_code_words">\text{t=asis(How do you do? item(1,2,3))}
5947 bpr 110
    </td><td>The string as it is, with no transformation nor conditionality.
111
</td></tr>
112
$table_end
23 reyssat 113
 
4091 bpr 114
Conditional parameters: You may write
115
<pre>
116
\text{ttt=_condition?_def1}
117
\text{ttt=_condition?_def1:_def2}
118
</pre>
23 reyssat 119
<p>
5903 bpr 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
23 reyssat 122
syntax).
123
!href target=wims_mhelp cmd=help&special_parm=if List of conditions
5947 bpr 124
</p><p>
23 reyssat 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
5903 bpr 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
23 reyssat 130
conditions or feedbacks.
5947 bpr 131
</p>
23 reyssat 132