Subversion Repositories wimsdev

Rev

Rev 6115 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
13 reyssat 1
<p>
11795 bpr 2
Vous pouvez définir des variables dans vos documents puis les appeler dans la suite (d'une même page),
6115 bpr 3
rendant ainsi le document plus dynamique.
13 reyssat 4
 
5
Par exemple, la ligne suivante définit une variable sous le nom de
6094 bpr 6
<span class="tt wims_variables">x1</span>, dont la valeur sera un entier aléatoire entre
13 reyssat 7
-10 et 10 (inclusif)&nbsp;:
6115 bpr 8
</p>
13 reyssat 9
<pre>
10
\\def{integer x1=random(-10..10)}
11
</pre>
3341 bpr 12
Cette valeur aléatoire peut ensuite être évoquée par le mot
6094 bpr 13
<span class="tt bold">\\x1</span>, dans la suite du bloc qui l'a définie.
14
C'est-à-dire, chaque mot <span class="tt">\\x1</span> sera remplacé par la valeur aléatoire de la variable.
3614 bpr 15
Cette substitution prend aussi effet dans les définitions
13 reyssat 16
d'autres variables qui suivent celle de x1.
17
 
18
\def{integer x1=random(10..50)}
19
\def{integer y1=random(10..50)}
20
\def{integer xy=\x1*\y1}
21
Par exemple, dans cette page nous avons défini
22
<pre>
23
\\def{integer x1=random(10..50)}
24
\\def{integer y1=random(10..50)}
25
\\def{integer xy=\\x1*\\y1}
26
</pre>
6094 bpr 27
Par conséquent, le texte <span class="tt">\\x1*\\y1=\\xy</span> donne
3341 bpr 28
\x1*\y1=\xy. Vous pouvez \reload{renouveler la page} pour voir les valeurs changer.
6096 bpr 29
 
6115 bpr 30
<table class="wimsborder wimscenter">
6096 bpr 31
<caption>Quelques autres exemples de variables
32
\help{module=adm/doc&job=help&help_subject=oefparm}{[Liste complète]}
33
</caption>
3614 bpr 34
<tr><th>Définition</th><th>Effet</th></tr>
6094 bpr 35
<tr><td><span class="tt">\\def{real x=random(-5..5)}</span>
5767 bpr 36
    </td><td>\\x sera un nombre réel aléatoire<br/>entre -5 et 5</td></tr>
6094 bpr 37
<tr><td><span class="tt">\\def{real a=random(-5,-3,0.3,4)}</span>
5767 bpr 38
    </td><td>\\a sera un nombre réel pris aléatoirement<br/>parmis -5,-3,0.3 et 4</td></tr>
6094 bpr 39
<tr><td><span class="tt">\\def{complex z=(1+2*i)^3}</span>
3614 bpr 40
    </td><td>\\z sera le nombre complexe z=\((1+2*i)^3)</td></tr>
6094 bpr 41
<tr><td><span class="tt">\\def{text sign=random(+,-)}</span>
3614 bpr 42
    </td><td>\\sign sera un signe aléatoire: + ou -</td></tr>
6094 bpr 43
<tr><td><span class="tt">\\def{integer n=3*exp(\\a)}</span>
5767 bpr 44
    </td><td>\\n sera l'entier le plus proche de 3*e<sup>\\a</sup><br/>(il dépend de la valeur de \\a)</td></tr>
6094 bpr 45
<tr><td><span class="tt">\\def{function f=random<br/>(x^2+1,sin(x),log(x))}</span>
5767 bpr 46
    </td><td>\\f sera une fonction aléatoire: soit \(x^2+1),<br/>soit sin(x), soit log(x)</td></tr>
6094 bpr 47
<tr><td><span class="tt">\\def{text s=shuffle(6)}</span>
3614 bpr 48
    </td><td>\s sera une liste de 6 entiers 1,2,...,6, dans un ordre aléatoire.</td></tr>
6094 bpr 49
<tr><td><span class="tt">\\def{text s=shuffle(a,b,c,d,e)}</span>
3614 bpr 50
    </td><td>\s sera les lettres {a,b,c,d,e} dans un ordre aléatoire.</td></tr>
6094 bpr 51
<tr><td><span class="tt">\\def{real a=evalue(x^2+sin(y),x=3,y=4)}</span>
5767 bpr 52
    </td><td>Evaluation de la fonction \(x^2+sin(y)),<br/>
3614 bpr 53
    pour x=3, y=4</td></tr>
6094 bpr 54
<tr><td><span class="tt">\\def{real r=solve(x^3-3*x+1,x=0..1)}</span>
3614 bpr 55
    </td><td>\\r sera la racine simple de \(x^3-3x+1) entre 0 et 1</td></tr>
6094 bpr 56
<tr><td><span class="tt">\\def{function h=simplify(x^5*y^3*x^2/y)}</span>
3614 bpr 57
    </td><td>Expression simplifiée : \(x^7*y^2)</td></tr>
6094 bpr 58
<tr><td><span class="tt">\\def{function g=diff(sin(x)+cos(y),x)}</span>
3614 bpr 59
    </td><td>\\g sera la dérivée de sin(x)+cos(y) par rapport à x</td></tr>
6094 bpr 60
<tr><td><span class="tt">\\def{function F=int(x^2+3*x+1,x)}</span>
5767 bpr 61
    </td><td>\\F sera une primitive de \(x^2+3*x+1),<br/>
3614 bpr 62
     le terme constant n'étant pas garanti d'être toujours le même</td>
6094 bpr 63
\comment{<tr><td><span class="tt">\\def{function F=int(t^2+3*t+1,t=1..x)}</span>
3614 bpr 64
    <td>\\F sera la primitive de \(x^2+3*x+1) telle que F(1)=0}</td></tr>
6094 bpr 65
<tr><td><span class="tt">\\def{real a=int(t^2+3*t+1,t=0..1)}</span>
3614 bpr 66
    </td><td>\a sera l'intégrale numérique de \(x^2+3*x+1), de 0 à 1</td></tr>
6094 bpr 67
<tr><td><span class="tt">\\def{text f=htmlmath(2*x^2+3*x)}</span>
3614 bpr 68
    </td><td>\\f sera rendu en html comme: \(2x^2+3x)</td></tr>
6094 bpr 69
<tr><td><span class="tt">\\def{text f=texmath(2*x^2+3*x)}</span>
3614 bpr 70
    </td><td>\\f sera le source TeX de l'expression.</td></tr>
6094 bpr 71
<tr><td><span class="tt">\\def{matrix m=1,2,3<br/>4,5,6<br/>7,8,9}</span>
3614 bpr 72
    </td><td>\\m sera la matrice de 3 lignes et 3 colonnes.</td></tr>
6115 bpr 73
</table>
74
<p>
11795 bpr 75
Paramètres conditionnels&nbsp; vous pouvez écrire
6094 bpr 76
<span class="tt">\text{ttt=_condition?_def1}</span> ou <br/>
77
<span class="tt">\text{ttt=_condition?_def1:_def2}</span>
6115 bpr 78
</p><p>
6094 bpr 79
Dans ce cas, <span class="tt">ttt</span> aura la valeur <span class="tt">_def1</span> si
80
<span class="tt">_condition</span> s'avère vraie, ou <span class="tt">_def2</span> sinon (dans la seconde
13 reyssat 81
syntaxe).
3614 bpr 82
\help{module=adm/doc&cmd=new&job=help&help_subject=if}{Liste de conditions}.
6115 bpr 83
</p><p>
11795 bpr 84
Notons enfin que les blocs insérés via \link{fold}{<span class="tt">\fold</span>} ou
6115 bpr 85
\link{embed}{<span class="tt">\embed</span>} héritent les définitions de variables avant l'insertion.
6096 bpr 86
</p>