Rev 6096 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
13 | reyssat | 1 | <p> |
6115 | bpr | 2 | Vous pouvez définir des variables dans vos documents puis les appeler dans la suite (d'une même page), |
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) : |
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> |
||
13 | reyssat | 75 | Paramètres conditionnels vous pouvez écrire<p> |
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> |
84 | Notons enfin que les blocs insérés via \link{fold}{<span class="tt">\fold</span>} ou |
||
85 | \link{embed}{<span class="tt">\embed</span>} héritent les définitions de variables avant l'insertion. |
||
6096 | bpr | 86 | </p> |