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>交互式练习中的随机参数</h3>
2
<p>
23 reyssat 3
使用随机参数可以使您的练习更加吸引人,
4
因为每次出来的都是不同的练习.
5
<p>
2071 zjchen 6
例如以下一行命令定义了名为 <font color=blue><b>x1</b></font> 的参数,
7
它的值是 -1010 间的随机整数 (包括 -1010):
6133 bpr 8
</p>
23 reyssat 9
<pre>
10
\integer{x1=random(-10..10)}
11
</pre>
5903 bpr 12
以后在陈述, 回答, 提示与解中都可以用 <b><span class="tt">\x1</span></b> 来调用此随机参数.
13
也就是说文本中的 <span class="tt">\x1</span> 每次都被不同的随机值所取代.
2071 zjchen 14
这种取代也发生在依赖于 x1 的其他参数的定义中.
23 reyssat 15
<p>
16
现在假设您在参数定义的栏目中输入了
6133 bpr 17
</p>
23 reyssat 18
<pre>
19
\integer{x1=random(-10..10)}
20
\integer{y1=\x1+3}
21
</pre>
22
练习的陈述为
23
<pre>
2071 zjchen 24
计算 \x1 与 \y1 的乘积.
23 reyssat 25
</pre>
6133 bpr 26
假定在练习的某个请求中 \x1 被分配一个随机值 <span class="wims_emph">-7</font>.
5768 bpr 27
后一个参数 \y1 将取值 -4, 而且此练习将具有形式 <div class="wimscenter">计算 -7-4 乘积.
28
</div>
23 reyssat 29
您然后可以定义名为<b>乘积</b>的数值回答的正确解是
5903 bpr 30
<span class="tt">(\x1)*(\y1)</span>. (注意这里的括号是必要的, 因为替代完全是按字面意义执行的.)
5912 bpr 31
<a id="list"></a>
23 reyssat 32
!if oefparm isitemof $special_parm
33
 !changeto help/oefparm.phtml
34
!endif
5912 bpr 35
$table_header
23 reyssat 36
<caption>参数的一些别的例子
37
!href cmd=help&special_parm=$special_parm,oefparm#list [完整表格]
38
</caption>
2071 zjchen 39
$table_hdtr<th>定义</th><th>效果</th></tr>
5903 bpr 40
$table_tr<td><span class="tt">\real{x=random(-5..5)}</span></td>
2071 zjchen 41
    <td>\x 是 -55 间的随机实数</td></tr>
5947 bpr 42
</td></tr>
5903 bpr 43
$table_tr<td><span class="tt">\real{a=random(-5,-3,0.3,4)}</span></td>
2071 zjchen 44
    <td>\a 是在 -5,-3,0.3,4 之中随机选取的实数</td></tr>
5947 bpr 45
</td></tr>
5903 bpr 46
$table_tr<td><span class="tt">\complex{z=(1+2*i)^3}</span></td>
2071 zjchen 47
    <td>\z 是复数 (1+2*i)^3</td></tr>
5947 bpr 48
</td></tr>
5903 bpr 49
$table_tr<td><span class="tt">\text{sign=random(+,-)}</span></td>
2071 zjchen 50
    <td>\sign 是随机符号: +-</td></tr>
5947 bpr 51
</td></tr>
5903 bpr 52
$table_tr<td><span class="tt">\integer{n=3*exp(\a)}</span></td>
2071 zjchen 53
    <td>\n 是与 3*e<sup>\a</sup> 最接近的整数 (它依赖于 \a 的值)</td></tr>
5947 bpr 54
</td></tr>
55
$table_tr<td><span class="tt">\function{f=random<br/> (x^2+1,sin(x),log(x))}</span></td>
2071 zjchen 56
    <td>\f 是 x^2+1, sin(x),log(x) 中随机选取的函数</td></tr>
5947 bpr 57
</td></tr>
5903 bpr 58
$table_tr<td><span class="tt">\real{a=evalue(x^2+sin(y),x=3,y=4)}</span></td>
2071 zjchen 59
    <td>函数 x^2+sin(y) 对 x=3, y=4 赋值</td></tr>
5947 bpr 60
</td></tr>
5903 bpr 61
$table_tr<td><span class="tt">\real{r=solve(x^3-3*x+1,x=0..1)}</span></td>
2071 zjchen 62
    <td>\r 是 x^3-3x+101 之间的单根</td></tr>
5947 bpr 63
</td></tr>
5903 bpr 64
$table_tr<td><span class="tt">\function{h=simplify(x^5*y^3*x^2/y)}</span></td>
2071 zjchen 65
    <td>化简表达式: x<sup>7</sup>y<sup>2</sup></td></tr>
5947 bpr 66
</td></tr>
5903 bpr 67
$table_tr<td><span class="tt">\function{g=diff(sin(x)+cos(y),x)}</span></td>
2071 zjchen 68
    <td>\g 是 sin(x)+cos(y) 关于 x 的导数</td></tr>
5947 bpr 69
</td></tr>
5903 bpr 70
$table_tr<td><span class="tt">\function{F=int(x^2+3*x+1,x)}</span></td>
5768 bpr 71
    <td>\F 是 x^2+3*x+1 的不定积分,<br/>
2071 zjchen 72
     不保证常数项始终相同</td></tr>
5947 bpr 73
!!</td></tr>
74
$table_tr<td><span class="tt">\function{F=int(t^2+3*t+1,t=1..x)}</span></td>
2071 zjchen 75
!!    <td>\F 是 x^2+3*x+1 满足 g(1)=0 的原函数</td></tr>
5947 bpr 76
</td></tr>
5903 bpr 77
$table_tr<td><span class="tt">\real{a=int(t^2+3*t+1,t=0..1)}</span></td>
2071 zjchen 78
    <td>\a 是 x^2+3*x+101 的数值积分</td></tr>
5947 bpr 79
</td></tr>
5903 bpr 80
$table_tr<td><span class="tt">\text{f=htmlmath(2*x^2+3*x)}</span></td>
2071 zjchen 81
    <td>\f 表示成 html 格式,: 2x<sup>2</sup>+3x</td></tr>
5947 bpr 82
</td></tr>
5903 bpr 83
$table_tr<td><span class="tt">\text{f=texmath(2*x^2+3*x)}</span></td>
2071 zjchen 84
    <td>\f 表示成 TeX 格式.</td></tr>
5947 bpr 85
</td></tr>
5903 bpr 86
$table_tr<td><span class="tt">\integer{n=items(a,b,c,d,e,f)}</span></td>
2071 zjchen 87
    <td>\n 是表 {a,b,c,d,e,f} 中的元素个数 (这里是 6)</td></tr>
5947 bpr 88
</td></tr>
5903 bpr 89
$table_tr<td><span class="tt">\text{i=item(3,a,b,c,d,e,f)}</span></td>
2071 zjchen 90
    <td>\i 是表 {a,b,c,d,e,f} 中第 3 个元素 (这里是 c).</td></tr>
5947 bpr 91
</td></tr>
5903 bpr 92
$table_tr<td><span class="tt">\text{s=shuffle(6)}</span></td>
2071 zjchen 93
    <td>\s 是 6 个整数 1,2,...,6 的表, 次序是随机的.</td></tr>
5947 bpr 94
</td></tr>
5903 bpr 95
$table_tr<td><span class="tt">\text{s=shuffle(a,b,c,d,e)}</span></td>
2071 zjchen 96
    <td>\s 是字母表 {a,b,c,d,e}, 次序是随机的.</td></tr>
5947 bpr 97
</td></tr>
98
$table_tr<td><span class="tt">\matrix{m=1,2,3<br/>4,5,6<br/>7,8,9}</span></td>
2071 zjchen 99
    <td>\m 是 33 列的矩阵.</td></tr>
5947 bpr 100
</td></tr>
5903 bpr 101
$table_tr<td><span class="tt">\text{t=asis(How do you do? matrix(1,2,3))}</span></td>
2071 zjchen 102
    <td>保持串的原始形式, 不做变换, 不加条件.</td></tr>
23 reyssat 103
 
5947 bpr 104
$table_end
23 reyssat 105
 
106
条件参数: 您可以写<p>
5903 bpr 107
<span class="tt">\text{ttt=_condition?_def1}</span><br/>
108
<span class="tt">\text{ttt=_condition?_def1:_def2}</span>
23 reyssat 109
<p>
5903 bpr 110
在这个情形, 当条件 <span class="tt">_condition</span> 为真时, <span class="tt">ttt</span> 取值 <span class="tt">_def1</span>.
111
如果是第二句, 否则取 <span class="tt">_def2</span>.
23 reyssat 112
!href target=wims_mhelp cmd=help&special_parm=if 条件表
113
<p>
114
定义与陈述的相对位置是很重要的:
115
如果变量定义在陈述之后, 那么仅当用户回答了问题后才会给变量赋值.
5903 bpr 116
在这种情形, 定义中可以通过 <span class="tt">\reply1</span>,
117
<span class="tt">\reply2</span> 等引用用户的答案. 此变量可用于解答中, 以测试条件或反馈.
5947 bpr 118
</p>
23 reyssat 119
 
120