Rev 15107 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
15107 | mquerol | 1 | |
2 | <h2 class="wimscenter">Paramètres aléatoires dans un exercice interactif</h2> |
||
6133 | bpr | 3 | <p> |
15107 | mquerol | 4 | L'utilisation de paramètres aléatoires rendra votre exercice beaucoup |
5 | plus intéressant, car ce sera un exercice différent chaque fois qu'il est |
||
6 | redemandé. |
||
6133 | bpr | 7 | </p><p> |
15107 | mquerol | 8 | Par exemple, la ligne suivante définit un paramètre sous le nom de |
9 | <span class="tt wims_code_variable">x1</span>, dont la valeur sera un entier aléatoire entre |
||
10 | -10 et 10 (inclusif) : |
||
11 | </p><pre> |
||
12 | \integer{x1=random(-10..10)} |
||
13 | </pre> |
||
14 | Ce paramètre aléatoire peut ensuite être invoqué par le mot |
||
15 | <b><span class="tt wims_code_variable">\x1</span></b>, dans l'énoncé, les réponses, l'indication et la solution. |
||
16 | C'est-à-dire, chaque mot <span class="tt wims_code_variable">\x1</span> dans ces textes |
||
17 | sera remplacé par la valeur aléatoire |
||
18 | du paramètre. Cette substitution prend aussi effet dans les définitions |
||
19 | d'autres paramètres qui suivent celle de <span class="tt wims_code_words">x1</span>. |
||
20 | <p> |
||
21 | Supposons maintenant que vous avez entré |
||
6133 | bpr | 22 | </p> |
23 | reyssat | 23 | <pre> |
24 | \integer{x1=random(-10..10)} |
||
25 | \integer{y1=\x1+3} |
||
26 | </pre> |
||
15107 | mquerol | 27 | dans le champ de la définition de paramètre, et la question |
23 | reyssat | 28 | <pre> |
15107 | mquerol | 29 | Calculez la multiplication de \x1 par \y1. |
23 | reyssat | 30 | </pre> |
15107 | mquerol | 31 | <p>dans l'énoncé de l'exercice. Supposons que sur une demande de l'exercice, |
32 | une valeur aléatoire <span class="tt wims_code_variable">-7</span> est attribuée à \x1. Alors |
||
33 | le paramètre suivant \y1 prendra la valeur -4, et l'énoncé de l'exercice |
||
34 | sera présenté sous la forme |
||
35 | </p><p class="wimscenter">Calculez la multiplication de -7 par -4. |
||
36 | </p> |
||
37 | Vous pouvez ensuite définir une réponse numérique au nom de <span class="tt">Le |
||
38 | produit</span>, ayant pour bonne solution <span class="tt">(\x1)*(\y1)</span>. (Remarquez |
||
39 | qu'ici les parenthèses sont nécessaires car la substitution se fera de façon |
||
40 | littérale.) |
||
5912 | bpr | 41 | <a id="list"></a> |
23 | reyssat | 42 | !if oefparm isitemof $special_parm |
43 | !changeto help/oefparm.phtml |
||
44 | !endif |
||
15107 | mquerol | 45 | >$table_header |
46 | <caption>Quelques autres exemples de paramètres |
||
47 | !href cmd=help&special_parm=$special_parm,oefparm#list [liste complète] |
||
23 | reyssat | 48 | </caption> |
15107 | mquerol | 49 | $table_hdtr<th>Définition</th><th>Effet</th></tr> |
6133 | bpr | 50 | $table_tr<td class="tt wims_code_words">\real{x=random(-5..5)} |
17348 | bpr | 51 | </td><td>\x sera un nombre réel aléatoire<br>entre -5 et 5 |
5947 | bpr | 52 | </td></tr> |
6133 | bpr | 53 | $table_tr<td class="tt wims_code_words">\real{a=random(-5,-3,0.3,4)} |
17348 | bpr | 54 | </td><td>\a sera un nombre réel pris aléatoirement<br>parmi -5,-3,0.3 et 4 |
5947 | bpr | 55 | </td></tr> |
6133 | bpr | 56 | $table_tr<td class="tt wims_code_words">\complex{z=(1+2*i)^3} |
15107 | mquerol | 57 | </td><td>\z sera le nombre complexe z=(1+2*i)^3 |
5947 | bpr | 58 | </td></tr> |
6133 | bpr | 59 | $table_tr<td class="tt wims_code_words">\text{sign=random(+,-)} |
15107 | mquerol | 60 | </td><td>\sign sera un signe aléatoire: + ou - |
5947 | bpr | 61 | </td></tr> |
6133 | bpr | 62 | $table_tr<td class="tt wims_code_words">\integer{n=3*exp(\a)} |
17348 | bpr | 63 | </td><td>\n sera l'entier le plus proche de 3*e<sup>\a</sup> <br>(il dépend de la |
15107 | mquerol | 64 | valeur de \a) |
5947 | bpr | 65 | </td></tr> |
17348 | bpr | 66 | $table_tr<td><tt class="wims_code_words">\function{f=random<br>(x^2+1,sin(x),log(x))}</tt> |
67 | </td><td>\f sera une fonction aléatoire: soit x^2+1,<br>soit sin(x), soit |
||
23 | reyssat | 68 | log(x) |
5947 | bpr | 69 | </td></tr> |
6133 | bpr | 70 | $table_tr<td class="tt wims_code_words">\real{a=evalue(x^2+sin(y),x=3,y=4)} |
17348 | bpr | 71 | </td><td>Evaluation de la fonction x^2+sin(y),<br> |
15107 | mquerol | 72 | pour x=3, y=4 |
5947 | bpr | 73 | </td></tr> |
6133 | bpr | 74 | $table_tr<td class="tt wims_code_words">\real{r=solve(x^3-3*x+1,x=0..1)} |
15107 | mquerol | 75 | </td><td>\r sera la racine simple de x^3-3x+1 entre 0 et 1 |
5947 | bpr | 76 | </td></tr> |
6133 | bpr | 77 | $table_tr<td class="tt wims_code_words">\function{h=simplify(x^5*y^3*x^2/y)} |
15107 | mquerol | 78 | </td><td>Expression simplifiée : x<sup>7</sup>y<sup>2</sup> |
5947 | bpr | 79 | </td></tr> |
6133 | bpr | 80 | $table_tr<td class="tt wims_code_words">\function{g=diff(sin(x)+cos(y),x)} |
15107 | mquerol | 81 | </td><td>\g sera la dérivée de sin(x)+cos(y) par rapport à x |
5947 | bpr | 82 | </td></tr> |
6133 | bpr | 83 | $table_tr<td class="tt wims_code_words">\function{F=int(x^2+3*x+1,x)} |
17348 | bpr | 84 | </td><td>\F sera une primitive de x^2+3*x+1,<br> |
15107 | mquerol | 85 | le terme constant n'étant pas garanti d'être toujours le même |
86 | !!$table_tr<td><tt class="wims_code_words">\function{F=int(t^2+3*t+1,t=1..x)} |
||
87 | !! <td>\F sera la primitive x^2+3*x+1 telle que g(1)=0 |
||
5947 | bpr | 88 | </td></tr> |
6133 | bpr | 89 | $table_tr<td class="tt wims_code_words">\real{a=int(t^2+3*t+1,t=0..1)} |
15107 | mquerol | 90 | </td><td>\a sera l'intégrale numérique de x^2+3*x+1, de 0 à 1 |
5947 | bpr | 91 | </td></tr> |
6133 | bpr | 92 | $table_tr<td class="tt wims_code_words">\text{f=htmlmath(2*x^2+3*x)} |
15107 | mquerol | 93 | </td><td>\f sera rendu en html comme: 2x<sup>2</sup>+3x |
5947 | bpr | 94 | </td></tr> |
6133 | bpr | 95 | $table_tr<td class="tt wims_code_words">\text{f=texmath(2*x^2+3*x)} |
15107 | mquerol | 96 | </td><td>\f sera le source TeX de l'expression. |
5947 | bpr | 97 | </td></tr> |
6133 | bpr | 98 | $table_tr<td class="tt wims_code_words">\integer{n=items(a,b,c,d,e,f)} |
15107 | mquerol | 99 | </td><td>\n sera le nombre d'articles (ici c'est 6) dans la liste |
23 | reyssat | 100 | {a,b,c,d,e,f} |
5947 | bpr | 101 | </td></tr> |
6133 | bpr | 102 | $table_tr<td class="tt wims_code_words">\text{i=item(3,a,b,c,d,e,f)} |
15107 | mquerol | 103 | </td><td>\i sera l'article numéro 3 de la liste |
104 | {a,b,c,d,e,f} (donc c). |
||
5947 | bpr | 105 | </td></tr> |
6133 | bpr | 106 | $table_tr<td class="tt wims_code_words">\text{s=shuffle(6)} |
15107 | mquerol | 107 | </td><td>\s sera la liste des 6 entiers 1,2,...,6, dans un ordre aléatoire. |
5947 | bpr | 108 | </td></tr> |
6133 | bpr | 109 | $table_tr<td class="tt wims_code_words">\text{s=shuffle(a,b,c,d,e)} |
15107 | mquerol | 110 | </td><td>\s sera les lettres {a,b,c,d,e} dans un ordre aléatoire. |
5947 | bpr | 111 | </td></tr> |
17348 | bpr | 112 | $table_tr<td><tt class="wims_code_words">\matrix{m=1,2,3<br>4,5,6<br>7,8,9}</tt> |
15107 | mquerol | 113 | </td><td>\m sera la matrice de 3 lignes et 3 colonnes. |
5947 | bpr | 114 | </td></tr> |
15107 | mquerol | 115 | $table_tr<td class="tt wims_code_words">\text{t=asis(Comment ça va ? matrix(1,2,3))} |
17348 | bpr | 116 | </td><td>\t est la chaîne comme elle est écrite, <br>sans transformation ni conditionalité.</td> |
15107 | mquerol | 117 | </tr> |
5947 | bpr | 118 | $table_end |
23 | reyssat | 119 | |
15107 | mquerol | 120 | Paramètres conditionnels : vous pouvez écrire |
4091 | bpr | 121 | <pre> |
122 | \text{ttt=_condition?_def1} |
||
123 | \text{ttt=_condition?_def1:_def2} |
||
124 | </pre> |
||
23 | reyssat | 125 | <p> |
15107 | mquerol | 126 | Dans ce cas, <span class="tt wims_code_words">ttt</span> aura la valeur <span class="tt wims_code_words">_def1</span> si |
127 | <span class="tt wims_code_words">_condition</span> s'avère vraie, ou <span class="tt wims_code_words">_def2</span> sinon (dans la seconde |
||
128 | syntaxe). |
||
129 | !href target=wims_mhelp cmd=help&special_parm=if Liste de conditions |
||
5947 | bpr | 130 | </p><p> |
15107 | mquerol | 131 | La position relative d'une définition par rapport à l'énoncé est |
132 | importante : si une variable est définie APRÈS l'énoncé, l'évaluation |
||
133 | de la variable aura lieu uniquement APRÈS que l'utilisateur ait répondu à |
||
134 | la question. Dans ce cas, la définition peut utiliser les réponses données |
||
135 | par l'utilisateur, via <span class="tt wims_code_variable">\reply1</span>, <span class="tt wims_code_variable">\reply2</span>, etc. Et la |
||
136 | variable ainsi définie peut être utilisée dans les conditions |
||
137 | de test ou les feedbacks. |
||
138 | </p> |