Subversion Repositories wimsdev

Rev

Rev 11270 | Rev 17348 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
3681 bpr 1
 
11271 bpr 2
<h2 class="wimscenter">Paramètres aléatoires dans un exercice interactif</h2>
6587 bpr 3
<p>
23 reyssat 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é.
5872 bpr 7
</p><p>
23 reyssat 8
Par exemple, la ligne suivante définit un paramètre sous le nom de
11270 bpr 9
<span class="tt wims_code_variable">x1</span>, dont la valeur sera un entier aléatoire entre
23 reyssat 10
-10 et 10 (inclusif)&nbsp;:
11270 bpr 11
</p><pre>
23 reyssat 12
\integer{x1=random(-10..10)}
13
</pre>
4091 bpr 14
Ce paramètre aléatoire peut ensuite être invoqué par le mot
5903 bpr 15
<b><span class="tt wims_code_variable">\x1</span></b>, dans l'énoncé, les réponses, l'indication et la solution.
11270 bpr 16
C'est-à-dire, chaque mot <span class="tt wims_code_variable">\x1</span> dans ces textes
23 reyssat 17
sera remplacé par la valeur aléatoire
18
du paramètre. Cette substitution prend aussi effet dans les définitions
5903 bpr 19
d'autres paramètres qui suivent celle de <span class="tt wims_code_words">x1</span>.
23 reyssat 20
<p>
21
Supposons maintenant que vous avez entré
5947 bpr 22
</p>
23 reyssat 23
<pre>
24
\integer{x1=random(-10..10)}
25
\integer{y1=\x1+3}
26
</pre>
27
dans le champ de la définition de paramètre, et la question
28
<pre>
29
Calculez la multiplication de \x1 par \y1.
30
</pre>
5947 bpr 31
<p>dans l'énoncé de l'exercice. Supposons que sur une demande de l'exercice,
11270 bpr 32
une valeur aléatoire <span class="tt wims_code_variable">-7</span> est attribuée à \x1. Alors
23 reyssat 33
le paramètre suivant \y1 prendra la valeur -4, et l'énoncé de l'exercice
11270 bpr 34
sera présenté sous la forme
35
</p><p class="wimscenter">Calculez la multiplication de -7 par -4.
5755 bpr 36
</p>
5903 bpr 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
23 reyssat 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
11270 bpr 45
>$table_header
23 reyssat 46
<caption>Quelques autres exemples de paramètres
47
!href cmd=help&special_parm=$special_parm,oefparm#list [liste complète]
48
</caption>
74 bpr 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)}
5755 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)}
5755 bpr 54
    </td><td>\a sera un nombre réel pris aléatoirement<br/>parmi -5,-3,0.3 et 4
11270 bpr 55
</td></tr>
6133 bpr 56
$table_tr<td class="tt wims_code_words">\complex{z=(1+2*i)^3}
74 bpr 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(+,-)}
74 bpr 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)}
5755 bpr 63
    </td><td>\n sera l'entier le plus proche de 3*e<sup>\a</sup> <br/>(il dépend de la
23 reyssat 64
    valeur de \a)
5947 bpr 65
</td></tr>
5755 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)}
5755 bpr 71
    </td><td>Evaluation de la fonction x^2+sin(y),<br/>
23 reyssat 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)}
74 bpr 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)}
74 bpr 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)}
74 bpr 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)}
5755 bpr 84
    </td><td>\F sera une primitive de x^2+3*x+1,<br/>
23 reyssat 85
     le terme constant n'étant pas garanti d'être toujours le même
4091 bpr 86
!!$table_tr<td><tt class="wims_code_words">\function{F=int(t^2+3*t+1,t=1..x)}
23 reyssat 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)}
74 bpr 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)}
74 bpr 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)}
74 bpr 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)}
74 bpr 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)}
74 bpr 103
    </td><td>\i sera l'article numéro 3 de la liste
23 reyssat 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)}
74 bpr 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)}
74 bpr 110
    </td><td>\s sera les lettres {a,b,c,d,e} dans un ordre aléatoire.
5947 bpr 111
</td></tr>
5755 bpr 112
$table_tr<td><tt class="wims_code_words">\matrix{m=1,2,3<br/>4,5,6<br/>7,8,9}</tt>
74 bpr 113
    </td><td>\m sera la matrice de 3 lignes et 3 colonnes.
5947 bpr 114
</td></tr>
6133 bpr 115
$table_tr<td class="tt wims_code_words">\text{t=asis(Comment ça va ? matrix(1,2,3))}
5755 bpr 116
    </td><td>\t est la chaîne comme elle est écrite, <br/>sans transformation ni conditionalité.</td>
117
</tr>
5947 bpr 118
$table_end
23 reyssat 119
 
11270 bpr 120
Paramètres conditionnels&nbsp;: vous pouvez écrire
4091 bpr 121
<pre>
122
\text{ttt=_condition?_def1}
123
\text{ttt=_condition?_def1:_def2}
124
</pre>
23 reyssat 125
<p>
5903 bpr 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
23 reyssat 128
syntaxe).
129
!href target=wims_mhelp cmd=help&special_parm=if Liste de conditions
5755 bpr 130
</p><p>
23 reyssat 131
La position relative d'une définition par rapport à l'énoncé est
3555 bpr 132
importante&nbsp;: 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 à
23 reyssat 134
la question. Dans ce cas, la définition peut utiliser les réponses données
5903 bpr 135
par l'utilisateur, via <span class="tt wims_code_variable">\reply1</span>, <span class="tt wims_code_variable">\reply2</span>, etc. Et la
3555 bpr 136
variable ainsi définie peut être utilisée dans les conditions
137
de test ou les feedbacks.
6587 bpr 138
</p>