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>Parámetros aleatorios en un ejercicio interactivo</h3>
23 reyssat 2
 
3
El uso de parámetros aleatorios hace sus ejercicios mucho más interesantes,
4
porque serán ejercicios diferentes en cada ocasión que se ejecuten.
5
<p>
6
Por ejemplo, la siguiente línea define un parámetro con el nombre
5903 bpr 7
<span class="tt wims_code_variable">\x1</span>, cuyos valores serán enteros aleatorios
23 reyssat 8
entre -10 y 10 (incluidos):
9
<pre>
10
\integer{x1=random(-10..10)}
11
</pre>
12
Este parámetro aleatorio puede en adelante invocarse con el término
6133 bpr 13
<span class="tt wims_code_variable">\x1</span>, en el enunciado, la pregunta, la pista y la solución del ejercicio.
5903 bpr 14
Esto es, cada aparición del término <span class="tt wims_code_variable">\x1</span> en estos textos será sustituida
23 reyssat 15
por el valor aleatorio del parámetro. Esta sustitución también se producirá en las
16
definiciones de los otros parámetros que sigan a la definición de x1.
17
<p>
18
Supongamos ahora que ha introducido
19
<pre>
20
\integer{x1=random(-10..10)}
21
\integer{y1=\x1+3}
22
</pre>
23
en el campo de la definición de los parámetros, y la pregunta
24
<pre>
25
Calcule la multiplicación de \x1 por \y1.
26
</pre>
27
en el enunciado del ejercicio. Supongamos que en una determinada ocasión
28
de utilización de este ejercicio se asigne un valor aleatorio de
29
<font color=red>-7</font> a \x1. Entonces el siguiente parámetro \y1 tomará el
5755 bpr 30
valor -4, y el enunciado del ejercicio se presentará de la forma <div class="wimscenter">Calcule la multiplicación de -7 por -4.
31
</div>
23 reyssat 32
Además, puede  definir una respuesta numérica con el nombre de
5903 bpr 33
<span class="tt">El producto</span>, que tenga como solución correcta <span class="tt">(\x1)*(\y1)</span>
23 reyssat 34
(tenga en cuenta que aquí los paréntesis son necesarios, porque la sustitución
35
se hace literalmente).
5912 bpr 36
<a id="list"></a>
23 reyssat 37
!if oefparm isitemof $special_parm
38
 !changeto help/oefparm.phtml
39
!endif
5912 bpr 40
$table_header
23 reyssat 41
<caption>Algunos otros ejemplos de parámetros
3263 bpr 42
!href cmd=help&special_parm=$special_parm,oefparm#list [complete list]
23 reyssat 43
</caption>
5947 bpr 44
$table_hdtr<th>Definición</th><th>Efecto</th></tr>
6133 bpr 45
$table_tr<td class="tt wims_code_words">\real{x=random(-5..5)}
5947 bpr 46
    </td><td>\x será un número aleatorio real <br/>entre -5 y 5
47
</td></tr>
6133 bpr 48
$table_tr<td class="tt wims_code_words">\real{a=random(-5,-3,0.3,4)}
5947 bpr 49
    </td><td>\a será un número real tomado aleatoriamente<br/> entre -5,-3,0.3 y 4
50
</td></tr>
6133 bpr 51
$table_tr<td class="tt wims_code_words">\complex{z=(1+2*i)^3}
5947 bpr 52
    </td><td>\z será el número complejo (1+2*i)^3
53
</td></tr>
6133 bpr 54
$table_tr<td class="tt wims_code_words">\text{sign=random(+,-)}
5947 bpr 55
    </td><td>\sign será un signo aleatorio: + o -
56
</td></tr>
6133 bpr 57
$table_tr<td class="tt wims_code_words">\integer{n=3*exp(\a)}
5947 bpr 58
    </td><td>\n será el entero más cercano a  3*e<sup>\a</sup> <br/>
23 reyssat 59
     (depende del valor de \a)
5947 bpr 60
</td></tr>
5755 bpr 61
$table_tr<td><tt class="wims_code_words">\function{f=random<br/> (x^2+1,sin(x),log(x))}</tt>
5947 bpr 62
    </td><td>\f será la función aleatoria: x^2+1,<br/> sin(x) o
23 reyssat 63
    log(x)
5947 bpr 64
</td></tr>
6133 bpr 65
$table_tr<td class="tt wims_code_words">\real{a=evalue(x^2+sin(y),x=3,y=4)}
5947 bpr 66
    </td><td>Evaluación de la función x^2+sin(y),<br/>
23 reyssat 67
    para x=3, y=4
5947 bpr 68
</td></tr>
6133 bpr 69
$table_tr<td class="tt wims_code_words">\real{r=solve(x^3-3*x+1,x=0..1)}
5947 bpr 70
    </td><td>\r será la raíz sencilla de x^3-3x+1 entre 0 y 1
71
</td></tr>
6133 bpr 72
$table_tr<td class="tt wims_code_words">\function{h=simplify(x^5*y^3*x^2/y)}
5947 bpr 73
    </td><td>Expresión simplificada: x<sup>7</sup>y<sup>2</sup>
74
</td></tr>
6133 bpr 75
$table_tr<td class="tt wims_code_words">\function{g=diff(sin(x)+cos(y),x)}
5947 bpr 76
    </td><td>\g será la derivada de sin(x)+cos(y) respecto a x
77
</td></tr>
6133 bpr 78
$table_tr<td class="tt wims_code_words">\function{F=int(x^2+3*x+1,x)}
5947 bpr 79
    </td><td>\F será la integral de x^2+3*x+1,<br/>
23 reyssat 80
     no hay garantías de que el término constante sea siempre el mismo
4091 bpr 81
!!$table_tr<td><tt class="wims_code_words">\function{F=int(t^2+3*t+1,t=1..x)}
5947 bpr 82
!!    </td><td>\F será la integral de x^2+3*x+1 con g(1)=0
83
</td></tr>
6133 bpr 84
$table_tr<td  class="tt wims_code_words">\real{a=int(t^2+3*t+1,t=0..1)}
5947 bpr 85
    </td><td>\a será la integral numérica de x^2+3*x+1 entre 0 y 1
86
</td></tr>
6133 bpr 87
$table_tr<td  class="tt wims_code_words">\text{f=htmlmath(2*x^2+3*x)}
5947 bpr 88
    </td><td>\f se representará en html como: 2x<sup>2</sup>+3x
89
</td></tr>
6133 bpr 90
$table_tr<td class="tt wims_code_words">\text{f=texmath(2*x^2+3*x)}
5947 bpr 91
    </td><td>\f será el código fuente en TeX de la expresión.
92
</td></tr>
6133 bpr 93
$table_tr<td class="tt wims_code_words">\integer{n=items(a,b,c,d,e,f)}
5947 bpr 94
    </td><td>\n será el número de elementos (aquí es de 6) de la lista
23 reyssat 95
     {a,b,c,d,e,f}
5947 bpr 96
</td></tr>
6133 bpr 97
$table_tr<td class="tt wims_code_words">\text{i=item(3,a,b,c,d,e,f)}
5947 bpr 98
    </td><td>\i será el elemento número 3 de la lista
23 reyssat 99
     {a,b,c,d,e,f} (luego c).
5947 bpr 100
</td></tr>
6133 bpr 101
$table_tr<td class="tt wims_code_words">\text{s=shuffle(6)}
5947 bpr 102
    </td><td>\s será una lista de 6 enteros 1,2,...,6, en orden aleatorio.
103
</td></tr>
6133 bpr 104
$table_tr<td class="tt wims_code_words">\text{s=shuffle(a,b,c,d,e)}
5947 bpr 105
    </td><td>\s será las letras {a,b,c,d,e} en orden aleatorio.
106
</td></tr>
5755 bpr 107
$table_tr<td><tt class="wims_code_words">\matrix{m=1,2,3<br/>4,5,6<br/>7,8,9}</tt>
5947 bpr 108
    </td><td>\m será la matriz de 3 líneas y 3 columnas.
109
</td></tr>
110
$table_end
23 reyssat 111
 
4091 bpr 112
Parámetros condicionales: puede escribir
113
<pre>
114
\text{ttt=_condition?_def1}</tt>
115
\text{ttt=_condition?_def1:_def2}
116
</pre>
23 reyssat 117
<p>
5903 bpr 118
En este caso, <span class="tt">ttt</span> tendrá el valor <span class="tt">_def1</span> si
119
<span class="tt">_condition</span> es verdadera, o <span class="tt">_def2</span> en caso contrario
23 reyssat 120
(en la sintaxis del segundo ejemplo).
121
 
122
!href target=wims_mhelp cmd=help&special_parm=if Lista de condiciones
5947 bpr 123
</p><p>
23 reyssat 124
Es importante la posición relativa de una definición con respecto al
125
enunciado: si se define una variable DESPUÉS del enunciado, la evaluación
126
de la variable tendrá lugar únicamente DESPUÉS de que el usuario haya respondido
127
a la pregunta. En este caso la definición puede utilizar las respuestas
5903 bpr 128
dadas por el usuario, por medio de <span class="tt wims_code_variable">\reply1</span>,
129
<span class="tt wims_code_variable">\reply2</span>, etc.
23 reyssat 130
Y la variable así definida puede utilizarse en la solución, las condiciones
131
de comprobación o los comentarios.
5947 bpr 132
</p>
23 reyssat 133