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