Warning, /education/kturtle/po/fr/docs/kturtle/programming-reference.docbook is written in an unsupported language. File is not indexed.
0001 <chapter id="reference"> 0002 <title 0003 >Référence de programmation &turtlescript;</title> 0004 <para 0005 >Ceci est le chapitre de référence &turtlescript; de &kturtle;. La première section de ce chapitre donne quelques aspects de la <link linkend="grammar" 0006 >grammaire</link 0007 > des programmes en &turtlescript;. La deuxième section traite exclusivement des <link linkend="mathematical-operators" 0008 >opérateurs mathématiques</link 0009 >, des <link linkend="boolean-operators" 0010 >opérateurs booléens (vrai / faux)</link 0011 > et des <link linkend="comparing-operators" 0012 >opérateurs de comparaison</link 0013 >. La troisième partie est une énorme liste de toutes les <link linkend="commands" 0014 >commandes</link 0015 >, expliquées une par une. La section quatre explique comment <link linkend="assignment-of-variables" 0016 >assigner</link 0017 > des valeurs aux <link linkend="assignment-of-variables" 0018 >variables</link 0019 >. Enfin, nous expliquons comment arranger l'exécution des commandes avec les <link linkend="controlling-execution" 0020 >instructions de contrôle d'exécution</link 0021 > dans la section cinq, et comment créer vos propres commandes avec <link linkend="learn" 0022 >apprends</link 0023 > dans la section six.</para> 0024 0025 <sect1 id="grammar"> 0026 <title 0027 >La grammaire de &turtlescript;</title> 0028 <para 0029 >Comme tout langage, &turtlescript; dispose de différents types de mots et de symboles. En français, nous distinguons les verbes (comme « marcher » ou « chanter »), et les noms (comme « sœur » ou « maison »), ils sont utilisés pour différents objectifs. &turtlescript; est un langage de programmation, il est utilisé pour indiquer à &kturtle; ce qu'il faut faire.</para> 0030 <para 0031 >Dans cette section, certains types de mots et symboles de &turtlescript; sont expliqués brièvement. Nous expliquons les <link linkend="comment" 0032 >commentaires</link 0033 >, les <link linkend="command" 0034 >commandes</link 0035 > et les trois différents types de littéraux : les <link linkend="number" 0036 >nombres</link 0037 >, les <link linkend="string" 0038 >chaînes</link 0039 > et les <link linkend="boolean-value" 0040 >booléens (vrai / faux)</link 0041 >.</para> 0042 0043 0044 <sect2 id="comment"> 0045 <title 0046 >Commentaires</title> 0047 <para 0048 >Un programme est constitué d'instructions qui sont exécutées lorsque le programme est lancé, et de commentaires. Les commentaires ne sont pas exécutés. &kturtle; les ignore simplement lors que votre programme est exécuté. Ils sont là pour aider les autres programmeurs à mieux comprendre votre programme. Tout ce qui suit le symbole <userinput 0049 >#</userinput 0050 > est considéré comme un commentaire en &turtlescript;. Par exemple, ce petit programme ne fait rien : <screen> 0051 # ce petit programme ne fait rien, c'est juste un commentaire ! 0052 </screen 0053 > C'est un peu inutile, mais ça explique bien les choses.</para> 0054 <para 0055 >Les commentaires sont très utiles lorsque le programme devient un peu plus complexe. Il peut aider à donner des conseils aux autres programmeurs. Dans le programme suivant, vous pouvez voir l'utilisation des commentaires avec la commande <link linkend="print" 0056 >print</link 0057 >. <screen> 0058 # Ce programme a été écrit par Cies Breijs. 0059 écris "ce texte sera affiché sur le canevas" 0060 # la ligne précédente n'est pas un commentaire, mais la ligne suivante en est un : 0061 # écris "ce texte ne sera pas affiché : " 0062 </screen 0063 > La première ligne décrit le programme. La deuxième est exécutée par &kturtle; et écrit <userinput 0064 >Ce texte sera affiché sur le canevas</userinput 0065 > sur le canevas. La troisième ligne est un commentaire. Et la quatrième ligne est un commentaire qui contient un morceau de &turtlescript;. Si le symbole <userinput 0066 >#</userinput 0067 > était enlevé dans la quatrième ligne, l'instruction écris serait exécutée par &kturtle;. Les programmeurs disent que l'instruction écris dans la quatrième ligne est « commentée ».</para> 0068 <para 0069 >Les lignes commentées sont <glossterm 0070 >surlignées</glossterm 0071 > en gris clair dans <link linkend="the-editor" 0072 >l'éditeur de code</link 0073 >.</para> 0074 </sect2> 0075 0076 <sect2 id="command"> 0077 <title 0078 >Commandes</title> 0079 <para 0080 >À l'aide des commandes, vous dites à la tortue ou à &kturtle; de faire quelque chose. Certaines commandent nécessitent un paramètre, d'autres donnent une sortie. <screen> 0081 # avance est une commande qui nécessite un paramètre, dans ce cas le nombre 100 : 0082 avance 100 0083 </screen 0084 > La première ligne est un <link linkend="comment" 0085 >commentaire</link 0086 >. La seconde ligne contient la commande <userinput 0087 >avance</userinput 0088 > et le <link linkend="number" 0089 >nombre</link 0090 > <userinput 0091 >100</userinput 0092 >. Le nombre ne fait pas partie de la commande, mais est considéré comme un « paramètre » de la commande.</para> 0093 <para 0094 >Certaines commandes comme par exemple <userinput 0095 >va</userinput 0096 > nécessitent plus d'un paramètre en entrée. Plusieurs valeurs doivent être séparées un utilisant le caractère <userinput 0097 >,</userinput 0098 > (virgule).</para> 0099 <para 0100 >Pour une étude détaillée de toutes les commandes gérées par &kturtle;, allez <link linkend="commands" 0101 >ici</link 0102 >. Les commandes internes sont <glossterm 0103 >surlignées</glossterm 0104 > en bleu foncé.</para> 0105 </sect2> 0106 0107 <sect2 id="number"> 0108 <title 0109 >Nombres</title> 0110 <para 0111 >Vous savez probablement certaines choses sur les nombres. La façon dont ils sont utilisés dans &kturtle; n'est pas très différente de la façon dont on les utilise dans le langage parlé, ou avec les mathématiques. </para> 0112 <para 0113 >Nous avons les nombres appelés nombre naturels : <userinput 0114 >0</userinput 0115 >, <userinput 0116 >1</userinput 0117 >, <userinput 0118 >2</userinput 0119 >, <userinput 0120 >3</userinput 0121 >, <userinput 0122 >4</userinput 0123 >, <userinput 0124 >5</userinput 0125 >, etc. Les nombres négatifs : <userinput 0126 >-1</userinput 0127 >, <userinput 0128 >-2</userinput 0129 >, <userinput 0130 >-3</userinput 0131 >, etc. Enfin les nombres décimaux, où nombres à virgule, par exemple : <userinput 0132 >0.1</userinput 0133 >, <userinput 0134 >3.14</userinput 0135 >, <userinput 0136 >33.3333</userinput 0137 >, <userinput 0138 >-5.05</userinput 0139 >, <userinput 0140 >-1.0</userinput 0141 >. Le caractère <userinput 0142 >.</userinput 0143 > (point) est utilisé comme séparateur décimal. </para> 0144 <para 0145 >Les nombres peuvent être utilisés dans des <link linkend="mathematical-operators" 0146 >opérateurs mathématiques</link 0147 > et dans des <link linkend="comparing-operators" 0148 >opérateurs de comparaison</link 0149 >. Ils peuvent également être placés dans des <link linkend="assignment-of-variables" 0150 >variables</link 0151 >. Les nombres sont <glossterm 0152 >surlignés</glossterm 0153 > en rouge foncé.</para> 0154 </sect2> 0155 0156 <!-- constants like pi? --> 0157 0158 <sect2 id="string"> 0159 <title 0160 >Chaînes</title> 0161 <para 0162 >Tout d'abord un exemple : <screen> 0163 écris "Bonjour, je suis une chaîne." 0164 </screen 0165 > Dans cet exemple, <userinput 0166 >écris</userinput 0167 > est une commande et <userinput 0168 >Bonjour, je suis une chaîne.</userinput 0169 > est une chaîne. Les chaînes commencent et se terminent par un symbole <userinput 0170 >"</userinput 0171 >. Grâce à ces symboles, &kturtle; sait qu'il s'agit d'une chaîne.</para> 0172 <para 0173 >Les chaînes peuvent être placées dans des <link linkend="assignment-of-variables" 0174 >variables</link 0175 >, tout comme les <link linkend="number" 0176 >nombres</link 0177 >. Cependant, contrairement aux nombres, les chaînes ne peuvent pas être utilisées avec les <link linkend="mathematical-operators" 0178 >opérateurs mathématiques</link 0179 > ou avec les <link linkend="comparing-operators" 0180 >opérateurs de comparaison</link 0181 >. Les chaînes sont <glossterm 0182 >surlignées</glossterm 0183 > en rouge.</para> 0184 </sect2> 0185 0186 <sect2 id="boolean-value"> 0187 <title 0188 >Les valeurs booléennes (vrai / faux)</title> 0189 <para 0190 >Il y a deux types de valeurs booléennes : <userinput 0191 >vrai</userinput 0192 > et <userinput 0193 >faux</userinput 0194 >. Parfois on les appelle également on et off, oui et non, un et zéro. Mais en &turtlescript;, on les appelle toujours <userinput 0195 >vrai</userinput 0196 > et <userinput 0197 >faux</userinput 0198 >. Regardez cet extrait de &turtlescript; : <screen> 0199 $a = vrai 0200 </screen 0201 > Si vous regardez dans l'inspecteur, vous verrez que la <link linkend="the-inspector" 0202 >variable</link 0203 > <link linkend="assignment-of-variables" 0204 >$a</link 0205 > est réglée sur <userinput 0206 >vrai</userinput 0207 >, et a le type booléen.</para> 0208 <para 0209 >Souvent, les valeurs booléennes sont le résultat d'un <link linkend="comparing-operators" 0210 >opérateur de comparaison</link 0211 >, comme dans le morceau de &turtlescript; suivant : <screen> 0212 $reponse = 10 > 3 0213 </screen 0214 > La <link linkend="assignment-of-variables" 0215 >variable</link 0216 > <userinput 0217 >$reponse</userinput 0218 > est placée à <userinput 0219 >vrai</userinput 0220 > car <userinput 0221 >10</userinput 0222 > est plus grand que <userinput 0223 >3</userinput 0224 >.</para> 0225 <para 0226 >Les valeurs booléenne <userinput 0227 >vrai</userinput 0228 >et <userinput 0229 >faux</userinput 0230 > sont <glossterm 0231 >surlignées</glossterm 0232 > en rouge foncé.</para> 0233 </sect2> 0234 0235 </sect1> 0236 0237 0238 0239 <sect1 id="operators"> 0240 <title 0241 >Les opérateurs mathématiques, booléens et de comparaison</title> 0242 <para 0243 >Le titre de cette section peut sembler compliqué, mais ça ne l'est pas autant que ça en a l'air.</para> 0244 0245 <sect2 id="mathematical-operators"> 0246 <title 0247 >Les opérateurs mathématiques</title> 0248 <para 0249 >Il y a les symboles mathématiques de base connus comme : l'addition (<userinput 0250 >+</userinput 0251 >), la soustraction (<userinput 0252 >-</userinput 0253 >), la multiplication (<userinput 0254 >*</userinput 0255 >), division (<userinput 0256 >/</userinput 0257 >) et la puissance (<userinput 0258 >^</userinput 0259 >).</para> 0260 0261 <para 0262 >Voici un petit exemple sur les opérateurs mathématiques que vous pouvez utiliser dans &turtlescript; : <screen> 0263 $somme = 1 + 1 0264 $difference = 20 - 5 0265 $produit = 15 * 2 0266 $rapport = 30 / 30 0267 $puissance = 2 ^ 2 0268 </screen 0269 > Les valeurs résultant de ces opérateurs mathématiques sont <link linkend="assignment-of-variables" 0270 >assignées</link 0271 > aux différentes <link linkend="assignment-of-variables" 0272 >variables</link 0273 >. En utilisant l'<link linkend="the-inspector" 0274 >inspecteur</link 0275 >, vous pouvez voir ces valeurs.</para> 0276 <para 0277 >Si vous voulez faire simplement un calcul, vous pouvez le faire de la façon suivante : <screen 0278 >écris 2010-12 0279 </screen 0280 ></para> 0281 <para 0282 >Voici maintenant un exemple avec des parenthèses : <screen> 0283 écris ( ( 20 - 5 ) * 2 / 30 ) + 1 0284 </screen 0285 > Les expressions dans les parenthèses vont être calculées les premières. Dans cet exemple, 20-5 sera calculé, puis multiplié par 2, divisé par 30, puis 1 est ajouté (ce qui donne 2). Les parenthèses peuvent également être utilisées dans d'autres cas.</para> 0286 <para 0287 >&kturtle; dispose également de caractéristiques mathématiques plus avancées sous la forme de commandes. Jetez un œil aux commandes suivantes, mais gardez à l'esprit qu'il s'agit d'opérations avancées : <link linkend="round" 0288 >arrondi</link 0289 >, <link linkend="random" 0290 >hasard</link 0291 >, <link linkend="sqrt" 0292 >racine</link 0293 >, <link linkend="pi" 0294 >pi</link 0295 >, <link linkend="sin" 0296 >sin</link 0297 >, <link linkend="cos" 0298 >cos</link 0299 >, <link linkend="tan" 0300 >tan</link 0301 >, <link linkend="arcsin" 0302 >arcsin</link 0303 >, <link linkend="arccos" 0304 >arccos</link 0305 >, <link linkend="arctan" 0306 >arctan</link 0307 >.</para> 0308 </sect2> 0309 0310 <sect2 id="boolean-operators"> 0311 <title 0312 >Opérateurs booléens (vrai / faux)</title> 0313 <para 0314 >Tandis que les <link linkend="mathematical-operators" 0315 >opérateurs mathématiques</link 0316 > travaillent avec des <link linkend="number" 0317 >nombres</link 0318 >, les opérateurs booléens travaillent avec des <link linkend="boolean-value" 0319 >valeurs booléennes</link 0320 > (<userinput 0321 >vrai</userinput 0322 > et <userinput 0323 >faux</userinput 0324 >). Il y a seulement trois opérateurs booléens : <userinput 0325 >et</userinput 0326 >, <userinput 0327 >ou</userinput 0328 > et <userinput 0329 >non</userinput 0330 >. Le morceau de &turtlescript; suivant montre comment les utiliser : <screen> 0331 $et_1_1 = vrai et vrai # -> vrai 0332 $et_1_0 = vrai et faux # -> faux 0333 $et_0_1 = faux et vrai # -> faux 0334 $et_0_0 = faux et faux # -> faux 0335 0336 $ou_1_1 = vrai ou vrai # -> vrai 0337 $ou_1_0 = vrai ou faux # -> vrai 0338 $ou_0_1 = faux ou vrai # -> vrai 0339 $ou_0_0 = faux ou faux # -> faux 0340 0341 $non_1 = non vrai # -> faux 0342 $non_0 = non vrai # -> vrai 0343 </screen 0344 > En utilisant l'<link linkend="the-inspector" 0345 >inspecteur</link 0346 >, vous pouvez voir les valeurs, bien que nous fournissons ces résultats en petits commentaires à la fin de chaque ligne. <userinput 0347 >et</userinput 0348 > ne vaut <userinput 0349 >vrai</userinput 0350 > seulement si les deux côtés sont <userinput 0351 >vrais</userinput 0352 >. <userinput 0353 >ou</userinput 0354 > vaut <userinput 0355 >vrai</userinput 0356 > si l'un des deux côtés est <userinput 0357 >vrai</userinput 0358 >. Et <userinput 0359 >non</userinput 0360 > passe <userinput 0361 >vrai</userinput 0362 >en <userinput 0363 >faux</userinput 0364 >, et <userinput 0365 >faux</userinput 0366 > en <userinput 0367 >vrai</userinput 0368 >.</para> 0369 <para 0370 >Les opérateurs booléens sont <glossterm 0371 >surlignés</glossterm 0372 > en rose.</para> 0373 0374 <sect3 id="boolean-operators-advanced-examples"> 0375 <title 0376 >Quelques exemples plus complexes</title> 0377 <para 0378 >Considérons l'exemple suivant avec <userinput 0379 >et</userinput 0380 > : <screen> 0381 $a = 1 0382 $b = 5 0383 si (($a < 10) et ($b == 5)) et ($a < $b) { 0384 écris "bonjour" 0385 } 0386 </screen 0387 > Dans ce morceau de &turtlescript;, le résultat de trois <link linkend="comparing-operators" 0388 >opérateurs de comparaison</link 0389 > sont fusionnés en utilisant des opérateurs <userinput 0390 >et</userinput 0391 >. Ceci signifie que les trois opérateurs doivent donner vrai pour que le texte « bonjour » soit affiché.</para> 0392 0393 <para 0394 >Un exemple avec <userinput 0395 >ou</userinput 0396 > : <screen> 0397 $n = 1 0398 si ($n < 10) ou ($n == 2) { 0399 écris "bonjour" 0400 } 0401 </screen 0402 > Dans ce morceau de &turtlescript;, la partie gauche du <userinput 0403 >ou</userinput 0404 > donne « vrai », la partie droite donne « faux ». Comme un des deux côtés de l'opérateur <userinput 0405 >ou</userinput 0406 > est « vrai », l'opérateur <userinput 0407 >ou</userinput 0408 > vaut « vrai ». Ceci signifie que « bonjour » sera affiché.</para> 0409 0410 <para 0411 >Et pour terminer un exemple avec <userinput 0412 >non</userinput 0413 >, qui change « vrai » en « faux » et « faux » en « vrai ». Regardez : <screen 0414 >$n = 1 0415 si non ($n == 3) { 0416 écris "bonjour" 0417 } sinon { 0418 écris "pas bonjour ;-)" 0419 } 0420 </screen 0421 ></para> 0422 </sect3> 0423 </sect2> 0424 0425 <sect2 id="comparing-operators"> 0426 <title 0427 >Opérateurs de comparaison</title> 0428 <para 0429 >Considérons cette comparaison simple : <screen> 0430 $reponse = 10 > 0431 </screen 0432 > Ici, <userinput 0433 >10</userinput 0434 > est comparé à <userinput 0435 >trois</userinput 0436 > avec l'opérateur « plus grand que ». le résultat de cette comparaison, la <link linkend="boolean-value" 0437 >valeur booléenne</link 0438 > <userinput 0439 >vrai</userinput 0440 > est stockée dans la <link linkend="assignment-of-variables" 0441 >variable</link 0442 > <userinput 0443 >$reponse</userinput 0444 >.</para> 0445 <para 0446 >Tous les <link linkend="number" 0447 >nombres</link 0448 > et <link linkend="assignment-of-variables" 0449 >variables</link 0450 > (qui contiennent des nombres) peuvent être comparés entre eux avec les opérateurs de comparaison.</para> 0451 <para 0452 >Voici tous les opérateurs de comparaison possibles : <table 0453 > <title 0454 >Type de question</title 0455 > <tgroup cols="3" 0456 > <tbody 0457 > <row 0458 > <entry 0459 ><userinput 0460 >$A == $B</userinput 0461 ></entry 0462 > <entry 0463 >égal</entry 0464 > <entry 0465 >la réponse est <quote 0466 >vrai</quote 0467 > si <userinput 0468 >$A</userinput 0469 > est égal à <userinput 0470 >$B</userinput 0471 ></entry 0472 > </row 0473 > <row 0474 > <entry 0475 ><userinput 0476 >$A != $B</userinput 0477 ></entry 0478 > <entry 0479 >non égal</entry 0480 > <entry 0481 >la réponse est <quote 0482 >vrai</quote 0483 > si <userinput 0484 >$A</userinput 0485 > n'est pas égal à <userinput 0486 >$B</userinput 0487 ></entry 0488 > </row 0489 > <row 0490 > <entry 0491 ><userinput 0492 >$A > $B</userinput 0493 ></entry 0494 > <entry 0495 >plus grand que</entry 0496 > <entry 0497 >la réponse est <quote 0498 >vrai</quote 0499 > si <userinput 0500 >$A</userinput 0501 > est plus grand que <userinput 0502 >$B</userinput 0503 ></entry 0504 > </row 0505 > <row 0506 > <entry 0507 ><userinput 0508 >$A < $B</userinput 0509 ></entry 0510 > <entry 0511 >plus petit que</entry 0512 > <entry 0513 >la réponse est <quote 0514 >vrai</quote 0515 > si <userinput 0516 >$A</userinput 0517 > est plus petit que <userinput 0518 >$B</userinput 0519 ></entry 0520 > </row 0521 > <row 0522 > <entry 0523 ><userinput 0524 >$A >=$ B</userinput 0525 ></entry 0526 > <entry 0527 >supérieur ou égal</entry 0528 > <entry 0529 >la réponse est <quote 0530 >vrai</quote 0531 > si <userinput 0532 >$A</userinput 0533 > est plus grand ou égal à <userinput 0534 >$B</userinput 0535 ></entry 0536 > </row 0537 > <row 0538 > <entry 0539 ><userinput 0540 >$A <= $B</userinput 0541 ></entry 0542 > <entry 0543 >inférieur ou égal</entry 0544 > <entry 0545 >la réponse est <quote 0546 >vrai</quote 0547 > si <userinput 0548 >$A</userinput 0549 > est plus petit ou égal à <userinput 0550 >$B</userinput 0551 ></entry 0552 > </row 0553 > </tbody 0554 > </tgroup 0555 > </table 0556 > Notes que $A et $B doivent être des <link linkend="number" 0557 >nombres</link 0558 > ou des <link linkend="assignment-of-variables" 0559 >variables</link 0560 > qui contiennent ces nombres.</para> 0561 </sect2> 0562 0563 0564 </sect1> 0565 0566 0567 0568 <sect1 id="commands"> 0569 <title 0570 >Commandes</title> 0571 <para 0572 >En utilisant les commandes, vous dites à la tortue ou à &kturtle; de faire quelque chose. Certaines commandes ont besoin d'une entrée, d'autres donnent une sortie. Dans cette section, nous expliquons toutes les commandes internes de &kturtle;. Vous pouvez également créer vos propres commandes avec <link linkend="learn" 0573 >apprends</link 0574 >. Les commandes internes discutées ici sont <glossterm 0575 >surlignées</glossterm 0576 > en bleu foncé.</para> 0577 0578 <sect2 id="moving-the-turtle"> 0579 <title 0580 >Déplacer la tortue</title> 0581 <para 0582 >Il y a plusieurs commandes qui déplacent la tortue sur l'écran.</para> 0583 0584 <variablelist> 0585 <anchor id="forward"/> 0586 <varlistentry 0587 > 0588 <term 0589 >avance (av)<indexterm 0590 ><primary 0591 >avance (av)</primary 0592 ></indexterm 0593 ></term> 0594 <listitem 0595 ><para 0596 ><screen 0597 >avance X</screen> 0598 <userinput 0599 >avance</userinput 0600 > fait avancer la tortue sur l'écran de X pixels. Lorsque le crayon est baissé, la tortue laisse une trace (dessine une ligne). <userinput 0601 >avance</userinput 0602 > peut se contracter en <userinput 0603 >av</userinput 0604 ></para 0605 ></listitem> 0606 </varlistentry> 0607 </variablelist> 0608 <variablelist> 0609 <anchor id="backward"/> 0610 <varlistentry 0611 > 0612 <term 0613 >recule (re)<indexterm 0614 ><primary 0615 >recule (re)</primary 0616 ></indexterm 0617 ></term> 0618 <listitem 0619 ><para 0620 ><screen 0621 >recule X</screen> 0622 <userinput 0623 >recule</userinput 0624 > fait reculer la tortue sur l'écran de X pixels. Lorsque le crayon est baissé, la tortue laisse une trace (dessine une ligne). <userinput 0625 >recule</userinput 0626 > peut se contracter en <userinput 0627 >re</userinput 0628 >.</para 0629 ></listitem> 0630 </varlistentry> 0631 </variablelist> 0632 <variablelist> 0633 <anchor id="turnleft"/> 0634 <varlistentry 0635 > 0636 <term 0637 >tournegauche (tg)<indexterm 0638 ><primary 0639 >tournegauche (tg)</primary 0640 ></indexterm 0641 ></term> 0642 <listitem 0643 ><para 0644 ><screen 0645 >tournegauche X</screen> 0646 <userinput 0647 >tournegauche</userinput 0648 > dit à la tortue de se tourner vers la gauche de X degrés. <userinput 0649 >tournegauche</userinput 0650 > peut se contracter en <userinput 0651 >tg</userinput 0652 >.</para 0653 ></listitem> 0654 </varlistentry> 0655 </variablelist> 0656 <variablelist> 0657 <anchor id="turnright"/> 0658 <varlistentry 0659 > 0660 <term 0661 >tournedroite (td)<indexterm 0662 ><primary 0663 >tournedroite (td)</primary 0664 ></indexterm 0665 ></term> 0666 <listitem 0667 ><para 0668 ><screen 0669 >tournedroite X</screen> 0670 <userinput 0671 >tournedroite</userinput 0672 > dit à la tortue de se tourner vers la droite de X degrés. <userinput 0673 >tournedroite</userinput 0674 > peut se contracter en <userinput 0675 >td</userinput 0676 >.</para 0677 ></listitem> 0678 </varlistentry> 0679 </variablelist> 0680 <variablelist> 0681 <anchor id="direction"/> 0682 <varlistentry 0683 > 0684 <term 0685 >direction (dir)<indexterm 0686 ><primary 0687 >direction (dir)</primary 0688 ></indexterm 0689 ></term> 0690 <listitem 0691 ><para 0692 ><screen 0693 >direction X</screen> 0694 <userinput 0695 >direction</userinput 0696 > fixe la direction de la tortue de X degrés en comptant de zéro, et donc ne dépend pas de la position et de la direction précédentes de la tortue. <userinput 0697 >direction</userinput 0698 > peut se contracter en <userinput 0699 >dir</userinput 0700 >.</para 0701 ></listitem> 0702 </varlistentry> 0703 </variablelist> 0704 <variablelist> 0705 <anchor id="getdirection"/> 0706 <varlistentry 0707 > 0708 <term 0709 >obtenirdirection<indexterm 0710 ><primary 0711 >obtenirdirection</primary 0712 ></indexterm 0713 ></term> 0714 <listitem 0715 ><para 0716 ><screen 0717 >obtenirdirection</screen> 0718 <userinput 0719 >obtenirdirection</userinput 0720 > renvoie la direction de la tortue en degrés en partant de zéro, où zéro correspond à la tortue pointant vers le haut.</para 0721 ></listitem> 0722 </varlistentry> 0723 </variablelist> 0724 <variablelist> 0725 <anchor id="center"/> 0726 <varlistentry 0727 > 0728 <term 0729 >centre<indexterm 0730 ><primary 0731 >centre</primary 0732 ></indexterm 0733 ></term> 0734 <listitem 0735 ><para 0736 ><screen 0737 >centre</screen> 0738 <userinput 0739 >centre</userinput 0740 > déplace la tortue au centre du canevas.</para 0741 ></listitem> 0742 </varlistentry> 0743 </variablelist> 0744 <variablelist> 0745 <anchor id="go"/> 0746 <varlistentry 0747 > 0748 <term 0749 >va<indexterm 0750 ><primary 0751 >va</primary 0752 ></indexterm 0753 ></term> 0754 <listitem 0755 ><para 0756 ><screen 0757 >va X,Y</screen> 0758 <userinput 0759 >va</userinput 0760 > commande à la tortue d'aller à un certain endroit sur le canevas. Cet endroit est à X <glossterm linkend="pixels" 0761 >pixels</glossterm 0762 > depuis la gauche du canevas et à Y <glossterm linkend="pixels" 0763 >pixels</glossterm 0764 > depuis le haut du canevas.</para 0765 ></listitem> 0766 </varlistentry> 0767 </variablelist> 0768 <variablelist> 0769 <anchor id="gox"/> 0770 <varlistentry 0771 > 0772 <term 0773 >vax<indexterm 0774 ><primary 0775 >vax (vx)</primary 0776 ></indexterm 0777 ></term> 0778 <listitem 0779 ><para 0780 ><screen 0781 >vax X</screen> 0782 <userinput 0783 >vax</userinput 0784 > : en utilisant cette commande, la tortue va se déplacer de X <glossterm linkend="pixels" 0785 >pixels</glossterm 0786 > depuis la gauche du canevas tandis qu'elle restera à la même hauteur. <userinput 0787 >vax</userinput 0788 > peut être abrégé en <userinput 0789 >vx</userinput 0790 >.</para 0791 ></listitem> 0792 </varlistentry> 0793 </variablelist> 0794 <variablelist> 0795 <anchor id="goy"/> 0796 <varlistentry 0797 > 0798 <term 0799 >vay<indexterm 0800 ><primary 0801 >vay (vy)</primary 0802 ></indexterm 0803 ></term> 0804 <listitem 0805 ><para 0806 ><screen 0807 >vay Y</screen> 0808 <userinput 0809 >vay</userinput 0810 > : en utilisant cette commande, la tortue va se déplacer de Y <glossterm linkend="pixels" 0811 >pixels</glossterm 0812 > depuis le haut du canevas tandis qu'elle restera à la même distance de la bordure gauche du canevas. <userinput 0813 >vay</userinput 0814 > peut être abrégé en <userinput 0815 >vy</userinput 0816 >.</para 0817 ></listitem> 0818 </varlistentry> 0819 </variablelist> 0820 <note 0821 ><para 0822 >En utilisant les commandes <userinput 0823 >vas</userinput 0824 >, <userinput 0825 >vax</userinput 0826 >, <userinput 0827 >vay</userinput 0828 > et <userinput 0829 >centre</userinput 0830 > la tortue ne dessinera pas une ligne, peut importe si le crayon est levé ou baissé.</para> 0831 </note> 0832 </sect2> 0833 0834 <sect2 id="locate-the-turtle"> 0835 <title 0836 >Où est la tortue ?</title> 0837 <para 0838 >Il y a deux commandes qui donnent la position de la tortue sur l'écran.</para> 0839 0840 <variablelist> 0841 <anchor id="getx"/> 0842 <varlistentry 0843 > 0844 <term 0845 >positionx<indexterm 0846 ><primary 0847 >positionx</primary 0848 ></indexterm 0849 ></term> 0850 <listitem 0851 ><para 0852 ><userinput 0853 >positionx</userinput 0854 > retourne le nombre de pixels séparant la gauche du canevas de la position courante de la tortue.</para 0855 ></listitem> 0856 </varlistentry> 0857 </variablelist> 0858 <variablelist> 0859 <anchor id="gety"/> 0860 <varlistentry 0861 > 0862 <term 0863 >positiony<indexterm 0864 ><primary 0865 >positiony</primary 0866 ></indexterm 0867 ></term> 0868 <listitem 0869 ><para 0870 ><userinput 0871 >positiony</userinput 0872 > retourne le nombre de pixels séparant le haut du canevas de la position courante de la tortue.</para 0873 ></listitem> 0874 </varlistentry> 0875 </variablelist> 0876 </sect2> 0877 0878 <sect2 id="pen"> 0879 <title 0880 >La tortue a un crayon</title> 0881 <para 0882 >La tortue a un crayon qui trace une ligne lorsqu'elle se déplace. Il y a peu de commandes pour contrôler le crayon. Nous expliquons ces commandes dans ce paragraphe.</para> 0883 <variablelist> 0884 <anchor id="penup"/> 0885 <varlistentry 0886 > 0887 <term 0888 >lèvecrayon (lc)<indexterm 0889 ><primary 0890 >lèvecrayon (lc)</primary 0891 ></indexterm 0892 ></term> 0893 <listitem 0894 ><para 0895 ><screen 0896 >lèvecrayon</screen> 0897 <userinput 0898 >lèvecrayon</userinput 0899 > relève le crayon du canevas. Lorsque le crayon est <quote 0900 >levé</quote 0901 >, aucune ligne n'est tracée lorsque la tortue se déplace. Voir aussi <userinput 0902 >baissecrayon</userinput 0903 >. <userinput 0904 >lèvecrayon</userinput 0905 > peut se contracter en <userinput 0906 >lc</userinput 0907 >.</para 0908 ></listitem> 0909 </varlistentry> 0910 </variablelist> 0911 <variablelist> 0912 <anchor id="pendown"/> 0913 <varlistentry 0914 > 0915 <term 0916 >baissecrayon (bc)<indexterm 0917 ><primary 0918 >baissecrayon (bc)</primary 0919 ></indexterm 0920 ></term> 0921 <listitem 0922 ><para 0923 ><screen 0924 >baissecrayon</screen> 0925 <userinput 0926 >baissecrayon</userinput 0927 > abaisse le crayon sur le canevas. Lorsque le crayon est <quote 0928 >baissé</quote 0929 > sur le canevas, une ligne est tracée lorsque la tortue se déplace. Voir aussi <userinput 0930 >lèvecrayon</userinput 0931 >. <userinput 0932 >baissecrayon</userinput 0933 > peut se contracter en <userinput 0934 >bc</userinput 0935 >.</para 0936 ></listitem> 0937 </varlistentry> 0938 </variablelist> 0939 <variablelist> 0940 <anchor id="setpenwidth"/> 0941 <varlistentry 0942 > 0943 <term 0944 >largeurcrayon (lac)<indexterm 0945 ><primary 0946 >largeurcrayon (lac)</primary 0947 ></indexterm 0948 ></term> 0949 <listitem 0950 ><para 0951 ><screen 0952 >largeurcrayon X</screen> 0953 <userinput 0954 >largeurcrayon</userinput 0955 > fixe l'épaisseur (la largeur du trait) du crayon à X <glossterm linkend="pixels" 0956 >pixels</glossterm 0957 >. <userinput 0958 >largeurcrayon</userinput 0959 > peut se contracter en <userinput 0960 >lac</userinput 0961 >.</para 0962 ></listitem> 0963 </varlistentry> 0964 </variablelist> 0965 <variablelist> 0966 <anchor id="setfgcolor"/> 0967 <varlistentry 0968 > 0969 <term 0970 >couleurcrayon (cc)<indexterm 0971 ><primary 0972 >couleurcrayon (cc)</primary 0973 ></indexterm 0974 ></term> 0975 <listitem 0976 ><para 0977 ><screen 0978 >couleurcrayon R, G, B</screen> 0979 <userinput 0980 >couleurcrayon</userinput 0981 > fixe la couleur du crayon. <userinput 0982 >couleurcrayon</userinput 0983 > demande une <glossterm linkend="rgb" 0984 >combinaison RVB</glossterm 0985 > comme entrée. <userinput 0986 >couleurcrayon</userinput 0987 > peut se contracter en <userinput 0988 >cc</userinput 0989 >.</para 0990 ></listitem> 0991 </varlistentry> 0992 </variablelist> 0993 </sect2> 0994 0995 <sect2 id="canvas"> 0996 <title 0997 >Commandes pour contrôler le canevas</title> 0998 <para 0999 >Voici les différentes commandes pour contrôler le canevas.</para> 1000 <variablelist> 1001 <anchor id="resizecanvas"/> 1002 <varlistentry> 1003 <term 1004 >taillecanevas (tc)<indexterm 1005 ><primary 1006 >taillecanevas (tc)</primary 1007 ></indexterm 1008 ></term> 1009 <listitem 1010 ><para 1011 ><screen 1012 >taillecanevas X, Y</screen> 1013 Avec la commande <userinput 1014 >taillecanevas</userinput 1015 >, vous pouvez fixer la taille du canevas. Elle reçoit X et Y comme entrée, où X est la nouvelle largeur du canevas en <glossterm linkend="pixels" 1016 >pixels</glossterm 1017 >, et Y est la nouvelle hauteur du canevas en <glossterm linkend="pixels" 1018 >pixels</glossterm 1019 >. <userinput 1020 >taillecanevas</userinput 1021 > peut se contracter en <userinput 1022 >tc</userinput 1023 >.</para 1024 ></listitem> 1025 </varlistentry> 1026 </variablelist> 1027 <variablelist> 1028 <anchor id="setbgcolor"/> 1029 <varlistentry 1030 > 1031 <term 1032 >couleurcanevas (cca)<indexterm 1033 ><primary 1034 >couleurcanevas (cca)</primary 1035 ></indexterm 1036 ></term> 1037 <listitem 1038 ><para 1039 ><screen 1040 >couleurcanevas R, G, B</screen> 1041 <userinput 1042 >couleurcanevas</userinput 1043 > fixe la couleur du canevas. <userinput 1044 >couleurcanevas</userinput 1045 > reçoit une <glossterm linkend="rgb" 1046 >combinaison RVB</glossterm 1047 > comme entrée. <userinput 1048 >couleurcanevas</userinput 1049 > peut se contracter en <userinput 1050 >cca</userinput 1051 >.</para 1052 ></listitem> 1053 </varlistentry> 1054 </variablelist> 1055 </sect2> 1056 1057 <sect2 id="clean"> 1058 <title 1059 >Commandes pour nettoyer</title> 1060 <para 1061 >Il existe deux commandes pour nettoyer le canevas après avoir mis le désordre.</para> 1062 <variablelist> 1063 <anchor id="clear"/> 1064 <varlistentry 1065 > 1066 <term 1067 >nettoietout (ntt)<indexterm 1068 ><primary 1069 >nettoietout (ntt)</primary 1070 ></indexterm 1071 ></term> 1072 <listitem 1073 ><para 1074 ><screen 1075 >nettoietout</screen> 1076 Avec <userinput 1077 >nettoietout</userinput 1078 >, vous pouvez nettoyer tous les dessins sur le canevas. Toutes les autres choses restent : la position et l'angle de la tortue, la couleur du canevas, la visibilité de la tortue et la taille du canevas.</para 1079 ></listitem> 1080 </varlistentry> 1081 </variablelist> 1082 <variablelist> 1083 <anchor id="reset"/> 1084 <varlistentry 1085 > 1086 <term 1087 >initialise<indexterm 1088 ><primary 1089 >initialise</primary 1090 ></indexterm 1091 ></term> 1092 <listitem 1093 ><para 1094 ><screen 1095 >initialise</screen> 1096 <userinput 1097 >initialise</userinput 1098 > nettoie beaucoup plus profondément que la commande <userinput 1099 >nettoietout</userinput 1100 >. Après la commande <userinput 1101 >initialise</userinput 1102 >, tout redevient comme lorsque vous avez lancé &kturtle;. La tortue se place au milieu de l'écran, la couleur du canevas est blanche, la tortue trace une ligne noire sur le canevas et taillecanevas est défini à 400 x 400 pixels.</para 1103 ></listitem> 1104 </varlistentry> 1105 </variablelist> 1106 </sect2> 1107 1108 <sect2 id="sprites"> 1109 <title 1110 >La tortue est un lutin (<foreignphrase 1111 >sprite</foreignphrase 1112 >)</title> 1113 <para 1114 >La plupart des personnes ne savent pas ce qu'un lutin (<foreignphrase 1115 >sprite</foreignphrase 1116 >) est, voici donc une courte explication : les lutins sont de petites images qui peuvent se déplacer sur l'écran. (pour plus d'information, voir le glossaire sur <glossterm linkend="sprites" 1117 >lutins</glossterm 1118 >). Donc la tortue est un lutin ! </para> 1119 <para 1120 >Ce qui suit est un aperçu des commandes relatives aux lutins.</para> 1121 <para 1122 >[La version actuelle de &kturtle; ne gère pas encore l'utilisation des lutins autres que la tortue. Dans des versions futures vous pourrez remplacer la tortue par quelque chose de votre propre conception ! ]</para> 1123 <variablelist> 1124 <anchor id="spriteshow"/> 1125 <varlistentry 1126 > 1127 <term 1128 >montre (mo)<indexterm 1129 ><primary 1130 >montre (mo)</primary 1131 ></indexterm 1132 ></term> 1133 <listitem 1134 ><para 1135 ><screen 1136 >montre</screen> 1137 <userinput 1138 >montre</userinput 1139 > rend de nouveau la tortue visible après avoir été cachée.<userinput 1140 >montre</userinput 1141 > peut être abrégé par <userinput 1142 >mo</userinput 1143 >.</para 1144 ></listitem> 1145 </varlistentry> 1146 </variablelist> 1147 <variablelist> 1148 <anchor id="spritehide"/> 1149 <varlistentry 1150 > 1151 <term 1152 >cache (ca)<indexterm 1153 ><primary 1154 >cache (ca)</primary 1155 ></indexterm 1156 ></term> 1157 <listitem 1158 ><para 1159 ><screen 1160 >cache</screen> 1161 <userinput 1162 >cache</userinput 1163 > cache la tortue. Ceci peut être utilisé si la tortue ne s'adapte pas à votre dessin. <userinput 1164 >cache</userinput 1165 > peut se contracter en <userinput 1166 >ca</userinput 1167 >.</para 1168 ></listitem> 1169 </varlistentry> 1170 </variablelist> 1171 </sect2> 1172 1173 <sect2 id="writing"> 1174 <title 1175 >La tortue peut-elle écrire du texte ?</title> 1176 <para 1177 >La réponse est : <quote 1178 >oui</quote 1179 >. La tortue peut écrire, elle écrit tout ce que vous lui commander d'écrire.</para> 1180 <variablelist> 1181 <anchor id="print"/> 1182 <varlistentry 1183 > 1184 <term 1185 >écris<indexterm 1186 ><primary 1187 >écris</primary 1188 ></indexterm 1189 ></term> 1190 <listitem 1191 ><para 1192 ><screen 1193 >écris X</screen> 1194 La commande <userinput 1195 >écris</userinput 1196 > est utilisée pour commander à la tortue d'écrire quelque chose sur le canevas. <userinput 1197 >écris</userinput 1198 > reçoit des nombres et des chaînes de caractères comme entrée. Vous pouvez utiliser <userinput 1199 >écris</userinput 1200 > pour écrire plusieurs nombres et chaînes en utilisant le symbole <quote 1201 >+</quote 1202 >. Voici un petit exemple : <screen 1203 >$année = 2003 1204 $auteur = "Cies" 1205 écris $auteur + " a commencé de projet KTurtle en" + $année + "et prend 1206 toujours du plaisir à travailler dessus ! " 1207 </screen> 1208 </para 1209 ></listitem> 1210 </varlistentry> 1211 </variablelist> 1212 <variablelist> 1213 <anchor id="fontsize"/> 1214 <varlistentry 1215 > 1216 <term 1217 >taillepolice<indexterm 1218 ><primary 1219 >taillepolice</primary 1220 ></indexterm 1221 ></term> 1222 <listitem 1223 ><para 1224 ><screen 1225 >taillepolice X</screen> 1226 <userinput 1227 >taillepolice</userinput 1228 > fixe la taille de la police qui est utilisée par la commande <userinput 1229 >écris</userinput 1230 >. <userinput 1231 >taillepolice</userinput 1232 > reçoit une entrée qui doit être un nombre. La taille est fixée en <glossterm linkend="pixels" 1233 >pixels</glossterm 1234 >.</para 1235 ></listitem> 1236 </varlistentry> 1237 </variablelist> 1238 </sect2> 1239 1240 <sect2 id="math-commands"> 1241 <title 1242 >Commandes mathématiques</title> 1243 <para 1244 >Les commandes suivantes sont des commandes mathématiques de &kturtle; plus avancées.</para> 1245 <variablelist> 1246 <anchor id="round"/> 1247 <varlistentry> 1248 <term 1249 >arrondi<indexterm 1250 ><primary 1251 >arrondi</primary 1252 ></indexterm 1253 ></term> 1254 <listitem 1255 ><para 1256 ><screen 1257 >arrondi(x)</screen> 1258 <userinput 1259 >arrondi</userinput 1260 > le nombre donné à l'entier le plus proche. <screen> 1261 écris arrondi(10.8) 1262 avance 20 1263 écris arrondi(10.3) 1264 </screen 1265 > Avec ce code, la tortue écrira les nombre 11 et 10.</para 1266 ></listitem> 1267 </varlistentry> 1268 </variablelist> 1269 <variablelist> 1270 <anchor id="random"/> 1271 <varlistentry 1272 > 1273 <term 1274 >hasard (hsd)<indexterm 1275 ><primary 1276 >hasard (hsd)</primary 1277 ></indexterm 1278 ></term> 1279 <listitem 1280 ><para 1281 ><screen 1282 >hasard X, Y</screen> 1283 <userinput 1284 >hasard</userinput 1285 > est une commande qui demande une entrée et qui vous donne une sortie. Comme entrée sont requis deux nombres, le premier (X) donne la sortie minimale, et le second (Y) fixe le maximum. La sortie est un nombre choisi au hasard qui est égal ou plus grand que le minimum et égal ou plus petit que le maximum. Voici un petit exemple : <screen> 1286 répète 500 [ 1287 $x = hasard 1, 20 1288 avance $x 1289 tournedroite 10 - $x 1290 ] 1291 </screen 1292 > En utilisant la commande <userinput 1293 >hasard</userinput 1294 >, vous pouvez ajouter un peu de chaos dans votre programme.</para 1295 ></listitem> 1296 </varlistentry> 1297 </variablelist> 1298 <variablelist> 1299 <anchor id="mod"/> 1300 <varlistentry 1301 > 1302 <term 1303 >mod<indexterm 1304 ><primary 1305 >mod</primary 1306 ></indexterm 1307 ></term> 1308 <listitem 1309 ><para 1310 ><screen 1311 >mod X,Y</screen> 1312 La commande <userinput 1313 >mod</userinput 1314 > renvoie le reste de la division entière du premier nombre par le second.</para 1315 ></listitem> 1316 </varlistentry> 1317 </variablelist> 1318 <variablelist> 1319 <anchor id="sqrt"/> 1320 <varlistentry 1321 > 1322 <term 1323 >racine<indexterm 1324 ><primary 1325 >racine</primary 1326 ></indexterm 1327 ></term> 1328 <listitem 1329 ><para 1330 ><screen 1331 >racine X</screen> 1332 La commande <userinput 1333 >racine</userinput 1334 > est utilisée pour trouver la racine carrée d'un nombre X.</para 1335 ></listitem> 1336 </varlistentry> 1337 </variablelist> 1338 <!-- 1339 <variablelist> 1340 <anchor id="exp"/> 1341 <varlistentry 1342 > 1343 <term 1344 >exp<indexterm 1345 ><primary 1346 >exp</primary 1347 ></indexterm 1348 ></term> 1349 <listitem 1350 ><para 1351 ><screen 1352 >sqrt X</screen> 1353 </para 1354 ></listitem> 1355 </varlistentry> 1356 </variablelist> 1357 --> 1358 <variablelist> 1359 <anchor id="pi"/> 1360 <varlistentry 1361 > 1362 <term 1363 >pi<indexterm 1364 ><primary 1365 >pi</primary 1366 ></indexterm 1367 ></term> 1368 <listitem 1369 ><para 1370 ><screen 1371 >pi</screen> 1372 Cette commande renvoie la constante PI, <userinput 1373 >3,14159</userinput 1374 >.</para 1375 ></listitem> 1376 </varlistentry> 1377 </variablelist> 1378 <variablelist> 1379 <anchor id="sin"/> 1380 <anchor id="cos"/> 1381 <anchor id="tan"/> 1382 <varlistentry> 1383 <term 1384 >sin<indexterm 1385 ><primary 1386 >sin</primary 1387 ></indexterm 1388 >, cos<indexterm 1389 ><primary 1390 >cos</primary 1391 ></indexterm 1392 >, tan<indexterm 1393 ><primary 1394 >tan</primary 1395 ></indexterm 1396 ></term> 1397 <listitem 1398 ><para> 1399 <screen 1400 >sin X 1401 cos X 1402 tan X 1403 </screen> 1404 Ces trois commandes représentent les fameuses fonctions trigonométriques <userinput 1405 >sin</userinput 1406 >, <userinput 1407 >cos</userinput 1408 > et <userinput 1409 >tan</userinput 1410 >. L'argument en entrée pour ces trois commandes, X, est un <link linkend="number" 1411 >nombre</link 1412 >.</para 1413 ></listitem> 1414 </varlistentry> 1415 </variablelist> 1416 <variablelist> 1417 <anchor id="arcsin"/> 1418 <anchor id="arccos"/> 1419 <anchor id="arctan"/> 1420 <varlistentry> 1421 <term 1422 >arcsin<indexterm 1423 ><primary 1424 >arcsin</primary 1425 ></indexterm 1426 >, arccos<indexterm 1427 ><primary 1428 >arccos</primary 1429 ></indexterm 1430 >, arctan<indexterm 1431 ><primary 1432 >arctan</primary 1433 ></indexterm 1434 ></term> 1435 <listitem 1436 ><para> 1437 <screen 1438 >arcsin X 1439 arccos X 1440 arctan X 1441 </screen> 1442 Ces commandes sont les fonctions inverse des fonctions <link linkend="sin" 1443 >sin</link 1444 >, <link linkend="cos" 1445 >cos</link 1446 > et <link linkend="tan" 1447 >tan</link 1448 >. L'argument en entrée pour ces trois commandes, X, est un <link linkend="number" 1449 >nombre</link 1450 >.</para 1451 ></listitem> 1452 </varlistentry> 1453 </variablelist> 1454 </sect2> 1455 1456 <sect2 id="dialogs"> 1457 <title 1458 >Entrée et retour avec les boîtes de dialogue</title> 1459 <para 1460 >Une boîte de dialogue est une petite fenêtre contextuelle qui fournit du retour ou demande des choses en entrée. &kturtle; possède deux commandes pour les boîtes de dialogue : <userinput 1461 >message</userinput 1462 > et <userinput 1463 >demande</userinput 1464 ></para> 1465 <variablelist> 1466 <anchor id="message"/> 1467 <varlistentry 1468 > 1469 <term 1470 >message<indexterm 1471 ><primary 1472 >message</primary 1473 ></indexterm 1474 ></term> 1475 <listitem 1476 ><para 1477 ><screen 1478 >message X</screen> 1479 La commande <userinput 1480 >message</userinput 1481 > prend une <link linkend="string" 1482 >chaîne</link 1483 > en entrée. Elle affiche une boîte de dialogue contenant le texte de la <link linkend="string" 1484 >chaîne</link 1485 >. <screen 1486 >message "Cies a commencé à travailler sur KTurtle en 2003 et s'amuse toujours à travailler dessus ! " 1487 </screen> 1488 </para 1489 ></listitem> 1490 </varlistentry> 1491 </variablelist> 1492 <variablelist> 1493 <anchor id="ask"/> 1494 <varlistentry 1495 > 1496 <term 1497 >demande<indexterm 1498 ><primary 1499 >demande</primary 1500 ></indexterm 1501 ></term> 1502 <listitem 1503 ><para 1504 ><screen 1505 >demande X</screen> 1506 <userinput 1507 >demande</userinput 1508 > prend une <link linkend="string" 1509 >chaîne</link 1510 > en entrée. Elle affiche cette chaîne une boîte de dialogue (similaire à <link linkend="message" 1511 >message</link 1512 >), ainsi qu'un champ d'entrée. Après que l'utilisateur a saisi un <link linkend="number" 1513 >nombre</link 1514 > ou une <link linkend="string" 1515 >chaîne</link 1516 >, le résultat peut être stocké dans une <link linkend="assignment-of-variables" 1517 >variable</link 1518 > ou passé comme argument à une <link linkend="commands" 1519 >commande</link 1520 >. Par exemple : <screen 1521 > $entree = demande "quelle est votre année de naissance ? " 1522 $sortie = 2010 - $in 1523 écris "En 2010, vous avez eu " + $sortie + " ans à un moment donné." 1524 </screen 1525 >Si l'utilisateur annule la boîte de dialogue, ou ne met rien du tous, la <link linkend="assignment-of-variables" 1526 >variable</link 1527 > est vide.</para 1528 ></listitem> 1529 </varlistentry> 1530 </variablelist> 1531 </sect2> 1532 1533 </sect1> 1534 1535 1536 1537 <sect1 id="assignment-of-variables"> 1538 <title 1539 >Affectations des variables</title> 1540 <para 1541 >Nous devons d'abord regarder les variables, ensuite, nous verrons comment affecter des valeurs à ces variables. </para> 1542 1543 <para 1544 >Les variables sont des mots qui commencent par un <quote 1545 >$</quote 1546 >, dans l'<link linkend="the-editor" 1547 >éditeur</link 1548 >, elles sont <glossterm 1549 >surlignées</glossterm 1550 > en violet.</para> 1551 1552 <para 1553 >Les variables contiennent soit des <link linkend="number" 1554 >nombres</link 1555 >, des <link linkend="string" 1556 >chaînes</link 1557 > ou des <link linkend="boolean-value" 1558 >valeurs booléennes (vrai / faux)</link 1559 >. En utilisant une affectation, <userinput 1560 >=</userinput 1561 >, une variable reçoit son contenu. Elle le conservera jusqu'à ce que le programme se termine ou qu'on assigne quelque chose d'autre à la variable.</para> 1562 1563 <para 1564 >Vous pouvez utiliser les variables, une fois affectées, tout comme s'il s'agissait de leur contenu. Par exemple, dans le morceau de &turtlescript; : <screen 1565 > $x = 10 1566 $x = $x / 3 1567 écris $x 1568 </screen 1569 > Tout d'abord la variable <userinput 1570 >$x</userinput 1571 > se voit affecter la valeur <userinput 1572 >10</userinput 1573 >. Ensuite, <userinput 1574 >$x</userinput 1575 > se voit de nouveau affecter sa propre valeur divisée par <userinput 1576 >3</userinput 1577 > — ceci signifie en fait que <userinput 1578 >$x</userinput 1579 > est affectée du résultat de <userinput 1580 >10 + 3</userinput 1581 >. Enfin, <userinput 1582 >$x</userinput 1583 > est affichée. Dans les lignes deux et trois, vous voyez que <userinput 1584 >$x</userinput 1585 > est utilisé comme s'il s'agissait de son contenu.</para> 1586 1587 <para 1588 >Les variables doivent être affectées avant de pouvoir être utilisées. Par exemple : <screen> 1589 écris $n 1590 </screen 1591 > donnera un message d'erreur.</para> 1592 1593 <para 1594 >Regardez le morceau de &turtlescript; suivant : <screen> 1595 $a = 2004 1596 $b = 25 1597 1598 # la commande suivante affiche « 2029 » 1599 écris $a + $b 1600 recule 30 1601 # la commande suivante écrit "2004 plus 25 égal 2009" 1602 écris $a + " plus " + $b + " égal " + ($a + $b) 1603 </screen 1604 > Dans les deux premières lignes, les variables <userinput 1605 >$a</userinput 1606 > et <userinput 1607 >$b</userinput 1608 > sont initialisées à 2004 et 25. Ensuite viennent les deux commandes <userinput 1609 >écris</userinput 1610 > et un <userinput 1611 >recule 30</userinput 1612 > entre. Les commentaires avant les commandes <userinput 1613 >écris</userinput 1614 > expliquent ce que ces commandes font. La commande <userinput 1615 >recule 30</userinput 1616 > est ici pour s'assurer que chaque sortie se trouve sur une nouvelle ligne. Comme vous le voyez, les variables peuvent être utilisée comme s'il s'agissait de leur contenu, vous pouvez les utiliser avec n'importe quel type d'<link linkend="operators" 1617 >opérateurs</link 1618 > ou les passer en entrée lorsque vous appelez des <link linkend="commands" 1619 >commandes</link 1620 >.</para> 1621 1622 <para 1623 >Un autre exemple : <screen> 1624 $nom = demande "Quel est votre nom ? " 1625 écris "Salut " + $nom + " ! Bonne chance dans l'apprentissage de la programmation..." 1626 </screen 1627 > Plutôt direct. Encore une fois, vous voyez que la variable <userinput 1628 >$nom</userinput 1629 > est traitée comme une chaîne.</para> 1630 1631 <para 1632 >Lorsque vous utilisez des variables, l'<link linkend="the-inspector" 1633 >inspecteur</link 1634 > est très utile. Il vous montre le contenu de toutes les variables actuellement en cours d'utilisation.</para> 1635 </sect1> 1636 1637 1638 1639 <sect1 id="controlling-execution"> 1640 <title 1641 >Contrôler l'exécution</title> 1642 <para 1643 >Les contrôleurs d'exécution vous permettent, — comme leur nom l'indique — de contrôler l'exécution.</para> 1644 <para 1645 >Les commandes de contrôle d'exécution sont <glossterm 1646 >surlignées</glossterm 1647 > en vert foncé en utilisant une police en gras. Les accolades sont principalement utilisées avec les contrôleurs d'exécution et sont <glossterm 1648 >surlignées</glossterm 1649 > en noir.</para> 1650 1651 <sect2 id="wait"> 1652 <title 1653 >Faite attendre la tortue</title> 1654 <para 1655 >Si vous avez exécuté quelques programmes dans &kturtle; vous pouvez avoir remarqué que la tortue se déplace très rapidement pour dessiner. La commande suivante ralentit la tortue.</para> 1656 <variablelist> 1657 <varlistentry> 1658 <term 1659 >attends<indexterm 1660 ><primary 1661 >attends</primary 1662 ></indexterm 1663 ></term> 1664 <listitem 1665 ><para 1666 ><screen 1667 >attends X</screen> 1668 <userinput 1669 >attends</userinput 1670 > fait attendre la tortue pendant X secondes. <screen> 1671 répète 36 { 1672 avance 5 1673 tournedroite 10 1674 attends 0.5 1675 } 1676 </screen 1677 > Ce code dessine un cercle, mais la tortue va attendre une demi-seconde après chaque étape. Cela donne l'impression d'une tortue qui va moins vite.</para 1678 ></listitem> 1679 </varlistentry> 1680 </variablelist> 1681 </sect2> 1682 1683 <sect2 id="if"> 1684 <title 1685 >Exécute « si »</title> 1686 <variablelist> 1687 <varlistentry> 1688 <term 1689 >si<indexterm 1690 ><primary 1691 >si</primary 1692 ></indexterm 1693 ></term> 1694 <listitem 1695 ><para 1696 ><screen 1697 >si <link linkend="boolean-value" 1698 >booléen</link 1699 > { ... }</screen> 1700 Le code qui est placé entre les accolades sera exécuté seulement <userinput 1701 >si</userinput 1702 > la <link linkend="boolean-value" 1703 >valeur booléenne</link 1704 > vaut <quote 1705 >vrai</quote 1706 >. <screen> 1707 $x = 6 1708 si $x > 5 { 1709 écris "x est plus grand que cinq ! " 1710 } 1711 </screen 1712 > À la première ligne, <userinput 1713 >$x</userinput 1714 > est fixé à 6. À la seconde ligne, un <link linkend="comparing-operators" 1715 >opérateur de comparaison</link 1716 > est utilisé pour évaluer <userinput 1717 >$x > 5</userinput 1718 >. Comme le résultat est <quote 1719 >vrai</quote 1720 >, 6 est plus grand que 5, le contrôleur d'exécution <userinput 1721 >si</userinput 1722 > va permettre au code entre accolades d'être exécuté.</para 1723 ></listitem> 1724 </varlistentry> 1725 </variablelist> 1726 </sect2> 1727 1728 <sect2 id="else"> 1729 <title 1730 >Si non, en d'autres termes : « sinon »</title> 1731 <variablelist> 1732 <varlistentry> 1733 <term 1734 >sinon<indexterm 1735 ><primary 1736 >sinon</primary 1737 ></indexterm 1738 ></term> 1739 <listitem 1740 ><para 1741 ><screen 1742 >si <link linkend="boolean-value" 1743 >booléen</link 1744 > { ... } sinon { ... }</screen> 1745 <userinput 1746 >sinon</userinput 1747 > peut être utilisé en plus du contrôleur d'exécution <link linkend="if" 1748 ><userinput 1749 >si</userinput 1750 ></link 1751 >. Le code entre accolades après <userinput 1752 >sinon</userinput 1753 > n'est exécuté que si le <link linkend="boolean-value" 1754 >booléen</link 1755 > vaut <quote 1756 >faux</quote 1757 >. <screen> 1758 initialise 1759 $x = 4 1760 si $x > 5 { 1761 écris "x est plus grand que cinq ! " 1762 } sinon { 1763 écris "x est plus petit que six ! " 1764 } 1765 </screen 1766 > L'<link linkend="comparing-operators" 1767 >opérateur de comparaison</link 1768 > évalue l'expression <userinput 1769 >$x > 5</userinput 1770 >. Comme 4 n'est pas plus grand que 5, l'expression vaut <quote 1771 >faux</quote 1772 >. Cela signifie que le code entre accolades après <userinput 1773 >sinon</userinput 1774 > est exécuté.</para 1775 ></listitem> 1776 </varlistentry> 1777 </variablelist> 1778 </sect2> 1779 1780 <sect2 id="while"> 1781 <title 1782 >La boucle « tantque »</title> 1783 <variablelist> 1784 <varlistentry> 1785 <term 1786 >tantque<indexterm 1787 ><primary 1788 >tantque</primary 1789 ></indexterm 1790 ></term> 1791 <listitem 1792 ><para 1793 ><screen 1794 >tantque <link linkend="boolean-value" 1795 >booléen</link 1796 > { ... }</screen> 1797 Le contrôleur d'exécution <userinput 1798 >tantque</userinput 1799 > ressemble beaucoup à <link linkend="if" 1800 ><userinput 1801 >si</userinput 1802 ></link 1803 >. La différence est que <userinput 1804 >tantque</userinput 1805 > répète le code entre accolades jusqu'à ce que le <link linkend="boolean-value" 1806 >booléen</link 1807 > vaut <quote 1808 >faux</quote 1809 > <screen> 1810 $x = 1 1811 tantque $x < 5 { 1812 avance 10 1813 attends 1 1814 $x = $x + 1 1815 } 1816 </screen 1817 > À la première ligne, <userinput 1818 >$x</userinput 1819 > est fixé à 1. À la seconde ligne, <userinput 1820 >$x < 5</userinput 1821 > est évalué. Comme la réponse à cette question est <quote 1822 >vrai</quote 1823 >, le contrôleur d'exécution <userinput 1824 >tantque</userinput 1825 > commence à exécuter le code entre accolades jusqu'à ce que <userinput 1826 >$x < 5</userinput 1827 > soit <quote 1828 >faux</quote 1829 >. Dans ce cas, le code entre accolades sera exécuté quatre fois, à chaque fois que la cinquième ligne est exécutée, <userinput 1830 >$x</userinput 1831 > augmente de 1.</para 1832 ></listitem> 1833 </varlistentry> 1834 </variablelist> 1835 </sect2> 1836 1837 <sect2 id="repeat"> 1838 <title 1839 >La boucle « répète »</title> 1840 <variablelist> 1841 <varlistentry> 1842 <term 1843 >répète<indexterm 1844 ><primary 1845 >répète</primary 1846 ></indexterm 1847 ></term> 1848 <listitem 1849 ><para 1850 ><screen 1851 >répète <link linkend="number" 1852 >nombre</link 1853 > { ... }</screen> 1854 Le contrôleur d'exécution <userinput 1855 >répète</userinput 1856 > est similaire à <link linkend="while" 1857 ><userinput 1858 >tantque</userinput 1859 ></link 1860 >. La différence est que <userinput 1861 >répète</userinput 1862 > laisse en boucle le code entre accolades autant de fois que le nombre donné.</para 1863 ></listitem> 1864 </varlistentry> 1865 </variablelist> 1866 </sect2> 1867 1868 <sect2 id="for"> 1869 <title 1870 >La boucle « pour », une boucle de comptage</title> 1871 <variablelist> 1872 <varlistentry> 1873 <term 1874 >pour<indexterm 1875 ><primary 1876 >pour</primary 1877 ></indexterm 1878 ><indexterm 1879 ><primary 1880 >pas</primary 1881 ></indexterm 1882 ></term> 1883 <listitem 1884 ><para 1885 ><screen 1886 >pour <link linkend="assignment-of-variables" 1887 >variable</link 1888 > = <link linkend="number" 1889 >nombre</link 1890 > à <link linkend="number" 1891 >nombre</link 1892 > { ... }</screen> 1893 La boucle <userinput 1894 >pour</userinput 1895 > est une <quote 1896 >boucle de comptage</quote 1897 >, &cad; qu'elle compte à votre place. Le premier nombre règle la variable pour la première boucle. À chaque boucle, le nombre est incrémenté jusqu'à ce que la seconde valeur soit atteinte. <screen> 1898 pour $x = 1 à 10 { 1899 écris $x * 7 1900 avance 15 1901 } 1902 </screen 1903 > Chaque fois que le code entre accolades est exécuté, la valeur de <userinput 1904 >$x</userinput 1905 > augmente de 1, jusqu'à ce que <userinput 1906 >$x</userinput 1907 > atteigne la valeur 10. Le code entre les accolades écrit <userinput 1908 >$x</userinput 1909 > multiplié par 7. Après que ce programme a fini son exécution, vous allez voir la table de multiplication de 7 imprimée sur le canevas. </para> 1910 <para 1911 >La taille du pas par défaut de la boucle est 1, vous pouvez utiliser une autre valeur avec : <screen 1912 >pour <link linkend="assignment-of-variables" 1913 >variable</link 1914 > = <link linkend="number" 1915 >nombre</link 1916 > à <link linkend="number" 1917 >nombre</link 1918 > pas <link linkend="number" 1919 >nombre</link 1920 > { ... }</screen 1921 ></para 1922 ></listitem> 1923 </varlistentry> 1924 </variablelist> 1925 </sect2> 1926 1927 <sect2 id="break"> 1928 <title 1929 >Quitter la boucle</title> 1930 <variablelist> 1931 <varlistentry> 1932 <term 1933 >coupure<indexterm 1934 ><primary 1935 >coupure</primary 1936 ></indexterm 1937 ></term> 1938 <listitem 1939 ><para 1940 ><screen 1941 >coupure</screen> 1942 Termine immédiatement la boucle courante et transfert le contrôle à la déclaration qui suit la boucle.</para 1943 ></listitem> 1944 </varlistentry> 1945 </variablelist> 1946 </sect2> 1947 1948 <sect2 id="exit"> 1949 <title 1950 >Arrête l'exécution du programme</title> 1951 <variablelist> 1952 <varlistentry> 1953 <term 1954 >sortie<indexterm 1955 ><primary 1956 >sortie</primary 1957 ></indexterm 1958 ></term> 1959 <listitem 1960 ><para 1961 ><screen 1962 >sortie</screen> 1963 Termine l'exécution de votre programme.</para 1964 ></listitem> 1965 </varlistentry> 1966 </variablelist> 1967 </sect2> 1968 1969 <sect2 id="assert"> 1970 <title 1971 >Vérifier une assertion lors de l'exécution</title> 1972 <variablelist> 1973 <varlistentry> 1974 <term 1975 >assertion<indexterm 1976 ><primary 1977 >assertion</primary 1978 ></indexterm 1979 ></term> 1980 <listitem 1981 ><para 1982 ><screen 1983 >assertion <link linkend="boolean-value" 1984 >booléen</link 1985 ></screen> 1986 Peut être utilisé pour déterminer la conformité d'un programme ou d'une entrée. <screen 1987 >$in = demande "quel est votre année de naissance ? " 1988 # l'année doit être positive 1989 assertion $in 1990 > 0 1991 </screen 1992 ></para 1993 ></listitem> 1994 </varlistentry> 1995 </variablelist> 1996 </sect2> 1997 </sect1> 1998 1999 2000 <sect1 id="learn"> 2001 2002 2003 <!--<sect2 id="name"> 2004 <title 2005 >Names</title> 2006 <para 2007 >When using the &turtlescript; programming language you create new things. If you write a program you will often need <link linkend="containers" 2008 >containers</link 2009 > and in some cases you need <link linkend="learn" 2010 >learn</link 2011 > to create new commands. When making a new command with <link linkend="learn" 2012 >learn</link 2013 > you will have to specify a name.</para> 2014 <para 2015 >You can choose any name, as long as it does not already have a meaning. For instance you cannot name a function <link linkend="forward" 2016 >forward</link 2017 >, since that name is already used for an internal command. 2018 <screen 2019 > 2020 # here forward is used as a new command, 2021 # but it already has a meaning so 2022 # this will produce an error: 2023 learn forward { 2024 print "this is invalid" 2025 } 2026 2027 # this works: 2028 learn myforward { 2029 print "this is ok" 2030 } 2031 </screen> 2032 Names can contain only letters, numbers and underscores (_). Yet they have to start with a letter. Container names have to start with the container prefix ($). 2033 <screen 2034 > 2035 # here forward is used as a container, 2036 # starting with the $ prefix, so it does 2037 # not conflict with the forward command 2038 $forward = 20 2039 print $forward 2040 </screen> 2041 </para> 2042 <para 2043 >Containers are <glossterm 2044 >highlighted</glossterm 2045 > with bolded purple in the <link linkend="the-editor" 2046 >code editor</link 2047 >.</para> 2048 <para> 2049 Please read the documentation on <link linkend="containers" 2050 >containers</link 2051 > and the <link linkend="learn" 2052 >learn</link 2053 > command for a better explanation and more examples. 2054 </para> 2055 </sect2 2056 >--> 2057 2058 2059 2060 2061 2062 <title 2063 >Créez vos propres commandes avec <quote 2064 >apprends</quote 2065 ></title> 2066 <para 2067 ><userinput 2068 >apprends</userinput 2069 > est une commande très spéciale, car elle est utilisée pour créer vos propres commandes. La commande que vous créez peut recevoir des <glossterm linkend="input-output" 2070 >entrées</glossterm 2071 > et retourner des <glossterm linkend="input-output" 2072 >sorties</glossterm 2073 >. Regardons maintenant comment une nouvelle commande est créée : <screen> 2074 apprends cercle $x { 2075 répète 36 { 2076 avance $x 2077 tournegauche 10 2078 } 2079 } 2080 </screen 2081 > La nouvelle commande est appelée <userinput 2082 >cercle</userinput 2083 >. <userinput 2084 >cercle</userinput 2085 > reçoit un argument en <glossterm linkend="input-output" 2086 >entrée</glossterm 2087 >, qui fixe la taille du cercle. <userinput 2088 >cercle</userinput 2089 > ne retourne aucune <glossterm linkend="input-output" 2090 >sortie</glossterm 2091 >. La commande <userinput 2092 >cercle</userinput 2093 > peut maintenant être utilisée comme une commande normale dans la suite du programme. Voyez cet exemple : <screen 2094 >apprends cercle $X { 2095 répète 36 { 2096 avance $X 2097 tournegauche 10 2098 } 2099 } 2100 2101 va 30,30 2102 cercle 20 2103 2104 va 40,40 2105 cercle 50 2106 </screen> 2107 </para> 2108 <para 2109 >Dans l'exemple suivant, une commande avec une valeur de retour est créée. <screen> 2110 apprends factorielle $x { 2111 $r = 1 2112 pour $i = 1 à $x { 2113 $r = $r * $i 2114 } 2115 retourne $r 2116 } 2117 2118 écris factorielle 5 2119 </screen 2120 > Dans cet exemple, une nouvelle commande appelée <userinput 2121 >factorielle</userinput 2122 > est créée. Si l'entrée de la commande est <userinput 2123 >5</userinput 2124 >, alors la sortie sera <userinput 2125 >5*4*3*2*1</userinput 2126 >. En utilisant <userinput 2127 >retourne</userinput 2128 >, la valeur de <glossterm linkend="input-output" 2129 >sortie</glossterm 2130 > est spécifiée et le résultat est renvoyé.</para> 2131 <para 2132 >Les commandes peuvent avoir plus d'une <glossterm linkend="input-output" 2133 >entrée</glossterm 2134 >. Dans l'exemple suivant, une commande qui dessine un rectangle est créé.<screen> 2135 apprends boîte $x, $y { 2136 avance $y 2137 tournedroite 90 2138 avance $x 2139 tournedroite 90 2140 avance $y 2141 tournedroite 90 2142 avance $x 2143 tournedroite 90 2144 } 2145 </screen 2146 > Maintenant vous pouvez lancer <userinput 2147 >boîte 50, 100</userinput 2148 > et la tortue dessinera un rectangle sur le canevas. </para> 2149 2150 </sect1> 2151 2152 </chapter>