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