Warning, /education/kturtle/po/pt_BR/docs/kturtle/programming-reference.docbook is written in an unsupported language. File is not indexed.
0001 <chapter id="reference"> 0002 <title 0003 >Referência de programação do &turtlescript;</title> 0004 <para 0005 >Esta é a referência para o &turtlescript; do &kturtle;. Na primeira seção deste capítulo dê uma olhada em alguns aspectos da <link linkend="grammar" 0006 >gramática</link 0007 > dos programas em &turtlescript;. A segunda seção lida exclusivamente com os <link linkend="mathematical-operators" 0008 >operadores matemáticos</link 0009 >, os <link linkend="boolean-operators" 0010 >operadores booleanos (verdadeiro/falso)</link 0011 > e os <link linkend="comparing-operators" 0012 >operadores de comparação</link 0013 >. A terceira seção é uma lista enorme com todos os <link linkend="commands" 0014 >comandos</link 0015 >, explicando-os um-a-um. A quarta seção explica como <link linkend="assignment-of-variables" 0016 >atribuir</link 0017 > valores às <link linkend="assignment-of-variables" 0018 >variáveis</link 0019 >. Finalmente, é explicado como organizar a execução dos comandos com as <link linkend="controlling-execution" 0020 >instruções de controle da execução</link 0021 > na quinta seção e como criar os seus próprios comandos com o <link linkend="learn" 0022 >aprender</link 0023 >, na última seção.</para> 0024 0025 <sect1 id="grammar"> 0026 <title 0027 >A Gramática do &turtlescript;</title> 0028 <para 0029 >Como em qualquer linguagem, o &turtlescript; possui diferentes tipos de palavras e símbolos. No Português, é feita a distinção entre os verbos (como 'andar' ou 'cantar') e os substantivos (como 'irmã' ou 'casa'), sendo usados para diferentes fins. O &turtlescript; é uma linguagem de programação, sendo usada para indicar ao &kturtle; o que fazer.</para> 0030 <para 0031 >Nesta seção, alguns dos diferentes tipos de palavras e símbolos do &turtlescript; são explicados de forma breve. Serão explicados os <link linkend="comment" 0032 >comentários</link 0033 >, os <link linkend="command" 0034 >comandos</link 0035 > e os três diferentes tipos de literais: <link linkend="number" 0036 >números</link 0037 >, <link linkend="string" 0038 >cadeias de caracteres</link 0039 > e os <link linkend="boolean-value" 0040 >valores booleanos (verdadeiro/falso)</link 0041 >.</para> 0042 0043 0044 <sect2 id="comment"> 0045 <title 0046 >Comentários</title> 0047 <para 0048 >Um programa contém instruções que são executadas quando o programa é executado e outros itens, chamados de comentários. Os comentários não são executados; o &kturtle; simplesmente ignora-os ao executar o seu programa. Os comentários estão lá para que os outros programadores possam compreender melhor o seu programa. Tudo o que estiver após um símbolo <userinput 0049 >#</userinput 0050 > é considerado um comentário no &turtlescript;. Por exemplo, este pequeno programa não faz nada: <screen> 0051 # este pequeno programa não faz nada, é apenas um comentário! 0052 </screen 0053 > É um pouco inútil, mas explica bem o conceito.</para> 0054 <para 0055 >Os comentários tornam-se bastante úteis quando o programa se torna um pouco mais complexo. Ele poderá ajudar a fornecer alguns conselhos aos outros programadores. No programa a seguir, irá ver os comentários a serem usados juntamente com o comando <link linkend="print" 0056 >imprimir</link 0057 >. <screen> 0058 # este programa foi feito pelo Cies Breijs. 0059 mostre "este texto será impresso na área de desenho" 0060 # a linha anterior não é um comentário, mas a seguinte é: 0061 # mostre "este texto não será impresso!" 0062 </screen 0063 > A primeira linha descreve o programa. A segunda é executada pelo &kturtle; e imprime a mensagem <userinput 0064 >este texto será impresso na área de desenho</userinput 0065 > na área de desenho propriamente dita. A terceira linha é um comentário. A quarta linha é um comentário que contém um pedaço de &turtlescript;, se for retirado o símbolo <userinput 0066 >#</userinput 0067 > da quarta linha, a instrução 'imprimir' será executada pelo &kturtle;. Os programadores dizem: a instrução da quarta linha está 'comentada'.</para> 0068 <para 0069 >As linhas comentadas ficam <glossterm 0070 >realçadas</glossterm 0071 > em cinza claro no <link linkend="the-editor" 0072 >editor</link 0073 >.</para> 0074 </sect2> 0075 0076 <sect2 id="command"> 0077 <title 0078 >Comandos</title> 0079 <para 0080 >Ao usar os comandos, você diz à tartaruga ou ao &kturtle; para fazerem algo. Alguns comandos precisam de dados de entrada, enquanto outros geram resultados.<screen> 0081 # o 'parafrente' é um comando que necessita de dados de entrada, neste caso do número 100: 0082 parafrente 100 0083 </screen 0084 > A primeira linha é um <link linkend="comment" 0085 >comentário</link 0086 >. A segunda linha contém o comando <userinput 0087 >avancar</userinput 0088 > e o <link linkend="number" 0089 >número</link 0090 > <userinput 0091 >100</userinput 0092 >. O número não faz parte do comando, mas é considerada uma 'entrada' para o comando.</para> 0093 <para 0094 >Alguns comandos como ⪚ <userinput 0095 >vápara</userinput 0096 > precisam de mais de um valor de entrada. Valores múltiplos devem ser separados usando o caracter <userinput 0097 >,</userinput 0098 > (vírgula).</para> 0099 <para 0100 >Para uma ideia geral de todos os comandos que o &kturtle; suporta, veja <link linkend="commands" 0101 >aqui</link 0102 >. Os comandos incorporados são <glossterm 0103 >realçados</glossterm 0104 > em azul-escuro</para> 0105 </sect2> 0106 0107 <sect2 id="number"> 0108 <title 0109 >Números</title> 0110 <para 0111 >Muito provavelmente você já conhece alguma coisa sobre os números. A forma como eles são usados no &kturtle; não é muito diferente do idioma falado ou da matemática. </para> 0112 <para 0113 >Temos então os números conhecidos por naturais: <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. Os números negativos: <userinput 0126 >-1</userinput 0127 >, <userinput 0128 >-2</userinput 0129 >, <userinput 0130 >-3</userinput 0131 >, etc. Finalmente, os números decimais ou fracionários, como por exemplo: <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 >. O caractere <userinput 0142 >.</userinput 0143 > (ponto) é usado como separador decimal. </para> 0144 <para 0145 >Os números poderão ser usados nos <link linkend="mathematical-operators" 0146 >operadores matemáticos</link 0147 > e nos <link linkend="comparing-operators" 0148 >operadores de comparação</link 0149 >. Também poderão ser guardados em <link linkend="assignment-of-variables" 0150 >variáveis</link 0151 >. Os números são <glossterm 0152 >realçados</glossterm 0153 > em vermelho escuro.</para> 0154 </sect2> 0155 0156 <!-- constants like pi? --> 0157 0158 <sect2 id="string"> 0159 <title 0160 >Cadeias de caracteres</title> 0161 <para 0162 >Primeiro um exemplo: <screen> 0163 mostre "Olá, sou uma cadeia de caracteres." 0164 </screen 0165 > Neste exemplo, o <userinput 0166 >mostre</userinput 0167 > é um comando, enquanto o <userinput 0168 >"Olá, sou uma cadeia de caracteres."</userinput 0169 > é, de fato, uma cadeia de caracteres. Elas começam e terminam com o símbolo <userinput 0170 >"</userinput 0171 >; através destes símbolos, o &kturtle; sabe que é uma cadeia de caracteres.</para> 0172 <para 0173 >As cadeias de caracteres poderão ser colocadas em <link linkend="assignment-of-variables" 0174 >variáveis</link 0175 >, como acontece com os <link linkend="number" 0176 >números</link 0177 >. Contudo, ao contrário dos números, as cadeias de caracteres não podem ser usadas nos <link linkend="mathematical-operators" 0178 >operadores matemáticos</link 0179 > ou nos <link linkend="comparing-operators" 0180 >operadores de comparação</link 0181 >. As cadeias de caracteres são <glossterm 0182 >realçadas</glossterm 0183 > em vermelho.</para> 0184 </sect2> 0185 0186 <sect2 id="boolean-value"> 0187 <title 0188 >Valores booleanos (verdadeiro/falso)</title> 0189 <para 0190 >Existem apenas dois valores booleanos: <userinput 0191 >verdadeiro</userinput 0192 ><indexterm 0193 ><primary 0194 >verdadeiro</primary 0195 ></indexterm 0196 > e <userinput 0197 >falso</userinput 0198 ><indexterm 0199 ><primary 0200 >falso</primary 0201 ></indexterm 0202 >. Algumas vezes também são chamados de: ligado e desligado, um e zero. Contudo, no &turtlescript; são sempre chamados de <userinput 0203 >verdadeiro</userinput 0204 > e <userinput 0205 >falso</userinput 0206 >. Dê uma olhada neste trecho de &turtlescript;: <screen> 0207 $a = verdadeiro 0208 </screen 0209 > Se olhar para o <link linkend="the-inspector" 0210 >inspetor</link 0211 >, poderá ver que a <link linkend="assignment-of-variables" 0212 >variável</link 0213 > <userinput 0214 >$a</userinput 0215 > está igual a <userinput 0216 >verdadeiro</userinput 0217 >, tendo um tipo booleano.</para> 0218 <para 0219 >Normalmente, os valores booleanos são o resultado de um <link linkend="comparing-operators" 0220 >operador de comparação</link 0221 >, como acontece no seguinte trecho de &turtlescript;: <screen> 0222 $resposta = 10 > 3 0223 </screen 0224 > A <link linkend="assignment-of-variables" 0225 >variável</link 0226 > <userinput 0227 >$resposta</userinput 0228 > é configurada como <userinput 0229 >verdadeiro</userinput 0230 >, uma vez que <userinput 0231 >10</userinput 0232 > é maior que <userinput 0233 >3</userinput 0234 >.</para> 0235 <para 0236 >Os valores booleanos, <userinput 0237 >true</userinput 0238 > (verdadeiro) e <userinput 0239 >false</userinput 0240 > (falso), estão <glossterm 0241 >realçados</glossterm 0242 > a vermelho escuro.</para> 0243 </sect2> 0244 0245 </sect1> 0246 0247 0248 0249 <sect1 id="operators"> 0250 <title 0251 >Operadores matemáticos, booleanos e de comparação</title> 0252 <para 0253 >O título deste seção poderá soar muito complicado, mas não é tão difícil de compreender como parece.</para> 0254 0255 <sect2 id="mathematical-operators"> 0256 <title 0257 >Operadores matemáticos</title> 0258 <para 0259 >Estes são os símbolos matemáticos básicos conhecidos: a adição (<userinput 0260 >+</userinput 0261 >), a subtração (<userinput 0262 >-</userinput 0263 >), a multiplicação (<userinput 0264 >*</userinput 0265 >), a divisão (<userinput 0266 >/</userinput 0267 >) e a potenciação (<userinput 0268 >^</userinput 0269 >).</para> 0270 0271 <para 0272 >Aqui está um pequeno exemplo dos operadores matemáticos que poderá usar no &turtlescript;: <screen> 0273 $somar = 1 + 1 0274 $subtrair = 20 - 5 0275 $multiplicar = 15 * 2 0276 $dividir = 30 / 30 0277 $elevar = 2 ^ 2 0278 </screen 0279 > Os valores que resultam das operações matemáticas serão <link linkend="assignment-of-variables" 0280 >atribuídos</link 0281 > às diversas <link linkend="assignment-of-variables" 0282 >variáveis</link 0283 >. Se utilizar o <link linkend="the-inspector" 0284 >inspetor</link 0285 >, poderá ver os valores.</para> 0286 <para 0287 >Se você somente queria fazer um cálculo simples, você poderá fazer algo semelhante a isto: <screen 0288 >mostre 2010-12 0289 </screen 0290 ></para> 0291 <para 0292 >Agora, um exemplo com parênteses: <screen> 0293 mostre ( ( 20 - 5 ) * 2 / 30 ) + 1 0294 </screen 0295 > O que estiver entre parênteses será calculado em primeiro lugar. Neste exemplo, o 20-5 será calculado, depois será multiplicado por 2, dividido por 30 e depois é adicionado 1 (o que dá 2). Parênteses podem ser usados em outros casos.</para> 0296 <para 0297 >O &kturtle; também possui mais funcionalidades sob a forma de comandos. Dê uma olhada nos seguintes comandos, mas tenha em mente o que diz respeito a operações avançadas: <link linkend="round" 0298 >arredonda</link 0299 >, <link linkend="random" 0300 >aleatório</link 0301 >, <link linkend="sqrt" 0302 >raizquadrada</link 0303 >, <link linkend="pi" 0304 >pi</link 0305 >, <link linkend="sin" 0306 >seno</link 0307 >, <link linkend="cos" 0308 >cosseno</link 0309 >, <link linkend="tan" 0310 >tangente</link 0311 >, <link linkend="arcsin" 0312 >arcoseno</link 0313 >, <link linkend="arccos" 0314 >arcocosseno</link 0315 >, <link linkend="arctan" 0316 >arcotangente</link 0317 >.</para> 0318 </sect2> 0319 0320 <sect2 id="boolean-operators"> 0321 <title 0322 >Operadores booleanos (verdadeiro/falso)</title> 0323 <para 0324 >Enquanto os <link linkend="mathematical-operators" 0325 >operadores matemáticos</link 0326 > são usados principalmente para os <link linkend="number" 0327 >números</link 0328 >, os operadores booleanos são para os <link linkend="boolean-value" 0329 >valores booleanos</link 0330 > (<userinput 0331 >verdadeiro</userinput 0332 > e <userinput 0333 >falso</userinput 0334 >). Existem apenas três operadores booleanos e são chamados de: <userinput 0335 >e</userinput 0336 ><indexterm 0337 ><primary 0338 >e</primary 0339 ></indexterm 0340 >, <userinput 0341 >ou</userinput 0342 ><indexterm 0343 ><primary 0344 >ou</primary 0345 ></indexterm 0346 >, e <userinput 0347 >não</userinput 0348 ><indexterm 0349 ><primary 0350 >não</primary 0351 ></indexterm 0352 >. O seguinte exemplo de &turtlescript; mostra como usá-los: <screen> 0353 $e_1_1 = verdadeiro e verdadeiro # -> verdadeiro 0354 $e_1_0 = verdadeiro e falso # -> falso 0355 $e_0_1 = falso e verdadeiro # -> falso 0356 $e_0_0 = falso e falso # -> falso 0357 0358 $ou_1_1 = verdadeiro ou verdadeiro # -> verdadeiro 0359 $ou_1_0 = verdadeiro ou falso # -> verdadeiro 0360 $ou_0_1 = falso ou verdadeiro # -> verdadeiro 0361 $ou_0_0 = falso ou falso # -> falso 0362 0363 $not_1 = nao verdadeiro # -> falso 0364 $not_0 = nao falso # -> verdadeiro 0365 </screen 0366 > Se usar o <link linkend="the-inspector" 0367 >inspetor</link 0368 >, poderá ver os valores; contudo, fornecemos estes resultados como pequenos comentários no fim das linhas. O <userinput 0369 >e</userinput 0370 > é avaliado como <userinput 0371 >verdadeiro</userinput 0372 > apenas se ambos os lados forem <userinput 0373 >verdadeiro</userinput 0374 >. O <userinput 0375 >ou</userinput 0376 > é avaliado como <userinput 0377 >verdadeiro</userinput 0378 > se qualquer um dos lados for <userinput 0379 >verdadeiro</userinput 0380 >. Finalmente, o <userinput 0381 >nao</userinput 0382 > transforma um <userinput 0383 >verdadeiro</userinput 0384 > num <userinput 0385 >falso</userinput 0386 > e um <userinput 0387 >falso</userinput 0388 > num <userinput 0389 >verdadeiro</userinput 0390 >.</para> 0391 <para 0392 >Os operadores booleanos são <glossterm 0393 >realçados</glossterm 0394 > em rosa.</para> 0395 0396 <sect3 id="boolean-operators-advanced-examples"> 0397 <title 0398 >Alguns exemplos mais avançados</title> 0399 <para 0400 >Veja o exemplo a seguir com o <userinput 0401 >e</userinput 0402 >: <screen> 0403 $a = 1 0404 $b = 5 0405 se (($a < 10) e ($b == 5)) e ($a < $b) { 0406 mostre "olá" 0407 } 0408 </screen 0409 > Neste trecho de &turtlescript;, o resultado dos três <link linkend="comparing-operators" 0410 >operadores de comparação</link 0411 > é reunido com os operadores <userinput 0412 >e</userinput 0413 >. Isto significa que todos os três têm de ser avaliados como "verdadeiro" para imprimir o "olá".</para> 0414 0415 <para 0416 >Um exemplo com o <userinput 0417 >ou</userinput 0418 >: <screen> 0419 $n = 1 0420 se ($n < 10) ou ($n == 2) { 0421 mostre "olá" 0422 } 0423 </screen 0424 > Neste trecho de &turtlescript;, o lado esquerdo do <userinput 0425 >ou</userinput 0426 > é avaliado como 'verdadeiro', enquanto o direito é avaliado como 'falso'. Uma vez que um dos dois lados do operador <userinput 0427 >ou</userinput 0428 > é 'verdadeiro', o operador <userinput 0429 >ou</userinput 0430 > é avaliado como 'verdadeiro'. Isto significa que o 'olá' é impresso.</para> 0431 0432 <para 0433 >Finalmente, um exemplo com o <userinput 0434 >não</userinput 0435 >, que muda o 'verdadeiro' para 'falso' e o 'falso' para 'verdadeiro'. Dê uma olhada: <screen 0436 >$n = 1 0437 se nao ($n == 3) { 0438 mostre "olá" 0439 } senao { 0440 mostre "não olá ;-)" 0441 } 0442 </screen 0443 ></para> 0444 </sect3> 0445 </sect2> 0446 0447 <sect2 id="comparing-operators"> 0448 <title 0449 >Operadores de comparação</title> 0450 <para 0451 >Considere esta simples comparação: <screen> 0452 $resposta = 10 > 3 0453 </screen 0454 > Aqui o <userinput 0455 >10</userinput 0456 > é comparado com o <userinput 0457 >3</userinput 0458 >, através do operador 'maior que'. O resultado desta comparação, o <link linkend="boolean-value" 0459 >valor booleano</link 0460 > <userinput 0461 >verdadeiro</userinput 0462 > é guardado na <link linkend="assignment-of-variables" 0463 >variável</link 0464 > <userinput 0465 >$resposta</userinput 0466 >.</para> 0467 <para 0468 >Todos os <link linkend="number" 0469 >números</link 0470 > e <link linkend="assignment-of-variables" 0471 >variáveis</link 0472 > (que contenham números) poderão ser comparados entre si, com os operadores de comparação.</para> 0473 <para 0474 >Aqui estão todos os possíveis operadores de comparação: <table 0475 > <title 0476 >Tipos de perguntas</title 0477 > <tgroup cols="3" 0478 > <tbody 0479 > <row 0480 > <entry 0481 ><userinput 0482 >$A == $B</userinput 0483 ></entry 0484 > <entry 0485 >é igual</entry 0486 > <entry 0487 >a resposta é <quote 0488 >verdadeira</quote 0489 > se o <userinput 0490 >$A</userinput 0491 > for igual a <userinput 0492 >$B</userinput 0493 ></entry 0494 > </row 0495 > <row 0496 > <entry 0497 ><userinput 0498 >$A != $B</userinput 0499 ></entry 0500 > <entry 0501 >é diferente</entry 0502 > <entry 0503 >a resposta é <quote 0504 >verdadeira</quote 0505 > se o <userinput 0506 >$A</userinput 0507 > não for igual ao <userinput 0508 >$B</userinput 0509 ></entry 0510 > </row 0511 > <row 0512 > <entry 0513 ><userinput 0514 >$A > $B</userinput 0515 ></entry 0516 > <entry 0517 >maior que</entry 0518 > <entry 0519 >a resposta é <quote 0520 >verdadeira</quote 0521 > se o <userinput 0522 >$A</userinput 0523 > for maior que o <userinput 0524 >$B</userinput 0525 ></entry 0526 > </row 0527 > <row 0528 > <entry 0529 ><userinput 0530 >$A < $B</userinput 0531 ></entry 0532 > <entry 0533 >menor que</entry 0534 > <entry 0535 >a resposta é <quote 0536 >verdadeira</quote 0537 > se <userinput 0538 >$A</userinput 0539 > for menor que <userinput 0540 >$B</userinput 0541 ></entry 0542 > </row 0543 > <row 0544 > <entry 0545 ><userinput 0546 >$A >= $B</userinput 0547 ></entry 0548 > <entry 0549 >maior ou igual a</entry 0550 > <entry 0551 >a resposta é <quote 0552 >verdadeira</quote 0553 > se <userinput 0554 >$A</userinput 0555 > for maior ou igual ao <userinput 0556 >$B</userinput 0557 ></entry 0558 > </row 0559 > <row 0560 > <entry 0561 ><userinput 0562 >$A <= $B</userinput 0563 ></entry 0564 > <entry 0565 >menor ou igual a</entry 0566 > <entry 0567 >a resposta é <quote 0568 >verdadeira</quote 0569 > se <userinput 0570 >$A</userinput 0571 > for menor ou igual a <userinput 0572 >$B</userinput 0573 ></entry 0574 > </row 0575 > </tbody 0576 > </tgroup 0577 > </table 0578 > Lembre-se que o $A e o $B têm de ser <link linkend="number" 0579 >números</link 0580 > ou <link linkend="assignment-of-variables" 0581 >variáveis</link 0582 > que contenham números.</para> 0583 </sect2> 0584 0585 0586 </sect1> 0587 0588 0589 0590 <sect1 id="commands"> 0591 <title 0592 >Comandos</title> 0593 <para 0594 >Ao usar os comandos, você diz à tartaruga ou ao &kturtle; para fazer algo. Alguns comandos precisam de dados introduzidos, enquanto outros trazem resultados. Nesta seção iremos explicar todos os comandos incorporados que podem ser usados no &kturtle;. Em alternativa, usando o <link linkend="learn" 0595 >aprenda</link 0596 >, poderá criar os seus próprios comandos. Os comandos incorporados ficam <glossterm 0597 >realçados</glossterm 0598 > em azul escuro.</para> 0599 0600 <sect2 id="moving-the-turtle"> 0601 <title 0602 >Movendo a tartaruga</title> 0603 <para 0604 >Existem vários comandos para mover a tartaruga pela tela.</para> 0605 0606 <variablelist> 0607 <anchor id="forward"/> 0608 <varlistentry 0609 > 0610 <term 0611 >parafrente (pf)<indexterm 0612 ><primary 0613 >parafrente (pf)</primary 0614 ></indexterm 0615 ></term> 0616 <listitem 0617 ><para 0618 ><screen 0619 >parafrente X</screen 0620 >O <userinput 0621 >parafrente</userinput 0622 > move a tartaruga para a frente X pontos. Quando o traço está em baixo, a tartaruga irá deixar um rastro. O <userinput 0623 >parafrente</userinput 0624 > pode ser abreviado para <userinput 0625 >pf</userinput 0626 ></para 0627 ></listitem> 0628 </varlistentry> 0629 </variablelist> 0630 <variablelist> 0631 <anchor id="backward"/> 0632 <varlistentry 0633 > 0634 <term 0635 >paratrás (pt)<indexterm 0636 ><primary 0637 >paratrás (pt)</primary 0638 ></indexterm 0639 ></term> 0640 <listitem 0641 ><para 0642 ><screen 0643 >paratrás X</screen 0644 >O <userinput 0645 >paratrás</userinput 0646 > move a tartaruga para trás X pontos. Quando o traço está em baixo, a tartaruga irá deixar um rastro. O <userinput 0647 >paratrás</userinput 0648 > pode ser abreviado para <userinput 0649 >pt</userinput 0650 >.</para 0651 ></listitem> 0652 </varlistentry> 0653 </variablelist> 0654 <variablelist> 0655 <anchor id="turnleft"/> 0656 <varlistentry 0657 > 0658 <term 0659 >paraesquerda (pe)<indexterm 0660 ><primary 0661 >paraesquerda (pe)</primary 0662 ></indexterm 0663 ></term> 0664 <listitem 0665 ><para 0666 ><screen 0667 >paraesquerda X</screen 0668 >O <userinput 0669 >paraesquerda</userinput 0670 > diz à tartaruga para se virar X graus para a esquerda. O <userinput 0671 >paraesquerda</userinput 0672 > pode ser abreviado para <userinput 0673 >pe</userinput 0674 >.</para 0675 ></listitem> 0676 </varlistentry> 0677 </variablelist> 0678 <variablelist> 0679 <anchor id="turnright"/> 0680 <varlistentry 0681 > 0682 <term 0683 >paradireita (pd)<indexterm 0684 ><primary 0685 >paradireita (pd)</primary 0686 ></indexterm 0687 ></term> 0688 <listitem 0689 ><para 0690 ><screen 0691 >paradireita X</screen 0692 >O <userinput 0693 >paradireita</userinput 0694 > diz à tartaruga para se virar X graus para a direita. O <userinput 0695 >paradireita</userinput 0696 > pode ser abreviado para <userinput 0697 >pd</userinput 0698 >.</para 0699 ></listitem> 0700 </varlistentry> 0701 </variablelist> 0702 <variablelist> 0703 <anchor id="direction"/> 0704 <varlistentry 0705 > 0706 <term 0707 >direção (dir)<indexterm 0708 ><primary 0709 >direção (dir)</primary 0710 ></indexterm 0711 ></term> 0712 <listitem 0713 ><para 0714 ><screen 0715 >direção X</screen 0716 >A <userinput 0717 >direção</userinput 0718 > configura a direção da tartaruga para um ângulo de X graus a contar do zero, e isto não é relativo à direção anterior da tartaruga. A <userinput 0719 >direção</userinput 0720 > pode ser abreviado para <userinput 0721 >dir</userinput 0722 >.</para 0723 ></listitem> 0724 </varlistentry> 0725 </variablelist> 0726 <variablelist> 0727 <anchor id="getdirection"/> 0728 <varlistentry 0729 > 0730 <term 0731 >lerdireção<indexterm 0732 ><primary 0733 >lerdireção</primary 0734 ></indexterm 0735 ></term> 0736 <listitem 0737 ><para 0738 ><screen 0739 >lerdireção</screen 0740 >O <userinput 0741 >lerdireção</userinput 0742 > retorna a direção da tartaruga para um ângulo de X graus a contar do zero, onde zero é a direção quando a tartaruga está apontando para frente.</para 0743 ></listitem> 0744 </varlistentry> 0745 </variablelist> 0746 <variablelist> 0747 <anchor id="center"/> 0748 <varlistentry 0749 > 0750 <term 0751 >centralize<indexterm 0752 ><primary 0753 >centralize</primary 0754 ></indexterm 0755 ></term> 0756 <listitem 0757 ><para 0758 ><screen 0759 >centralize</screen 0760 >O <userinput 0761 >centralize</userinput 0762 > move a tartaruga para o centro da área de desenho.</para 0763 ></listitem> 0764 </varlistentry> 0765 </variablelist> 0766 <variablelist> 0767 <anchor id="go"/> 0768 <varlistentry 0769 > 0770 <term 0771 >vápara<indexterm 0772 ><primary 0773 >vápara</primary 0774 ></indexterm 0775 ></term> 0776 <listitem 0777 ><para 0778 ><screen 0779 >vápara X,Y</screen 0780 >O <userinput 0781 >vápara</userinput 0782 > manda a tartaruga ir para um determinado local da área de desenho. Este local está a X <glossterm linkend="pixels" 0783 >pontos</glossterm 0784 > do lado esquerdo da área de desenho e a Y <glossterm linkend="pixels" 0785 >pontos</glossterm 0786 > do topo da área de desenho.</para 0787 ></listitem> 0788 </varlistentry> 0789 </variablelist> 0790 <variablelist> 0791 <anchor id="gox"/> 0792 <varlistentry 0793 > 0794 <term 0795 >váparax<indexterm 0796 ><primary 0797 >váparax (vx)</primary 0798 ></indexterm 0799 ></term> 0800 <listitem 0801 ><para 0802 ><screen 0803 >váparax X</screen 0804 >Ao usar o comando <userinput 0805 >váparax</userinput 0806 >, a tartaruga irá mover-se X <glossterm linkend="pixels" 0807 >pontos</glossterm 0808 > a partir da esquerda da área de desenho, mantendo-se na mesma altura. O <userinput 0809 >váparax</userinput 0810 > pode ser abreviado como <userinput 0811 >vx</userinput 0812 >.</para 0813 ></listitem> 0814 </varlistentry> 0815 </variablelist> 0816 <variablelist> 0817 <anchor id="goy"/> 0818 <varlistentry 0819 > 0820 <term 0821 >váparay<indexterm 0822 ><primary 0823 >váparay (vy)</primary 0824 ></indexterm 0825 ></term> 0826 <listitem 0827 ><para 0828 ><screen 0829 >váparay Y</screen 0830 >Ao usar o comando <userinput 0831 >váparay</userinput 0832 >, a tartaruga irá mover-se Y <glossterm linkend="pixels" 0833 >pontos</glossterm 0834 > a partir do topo da área de desenho, mantendo-se na mesma distância do lado esquerdo da área de desenho. O <userinput 0835 >váparay</userinput 0836 > pode ser abreviado como <userinput 0837 >vy</userinput 0838 >.</para 0839 ></listitem> 0840 </varlistentry> 0841 </variablelist> 0842 <note 0843 ><para 0844 >Ao usar os comandos <userinput 0845 >vápara</userinput 0846 >, <userinput 0847 >váparax</userinput 0848 >, <userinput 0849 >váparay</userinput 0850 > e <userinput 0851 >centralize</userinput 0852 > a tartaruga não irá desenhar uma linha, não importa se usado com <userinput 0853 >usenada</userinput 0854 > ou <userinput 0855 >uselápis</userinput 0856 >.</para> 0857 </note> 0858 </sect2> 0859 0860 <sect2 id="locate-the-turtle"> 0861 <title 0862 >Onde está a tartaruga?</title> 0863 <para 0864 >Existem dois comandos que devolvem a posição da tartaruga na tela.</para> 0865 0866 <variablelist> 0867 <anchor id="getx"/> 0868 <varlistentry 0869 > 0870 <term 0871 >pegax<indexterm 0872 ><primary 0873 >pegax</primary 0874 ></indexterm 0875 ></term> 0876 <listitem 0877 ><para 0878 ><userinput 0879 >pegax</userinput 0880 > devolve o número em pontos a partir da esquerda da área de desenho até a posição atual da tartaruga.</para 0881 ></listitem> 0882 </varlistentry> 0883 </variablelist> 0884 <variablelist> 0885 <anchor id="gety"/> 0886 <varlistentry 0887 > 0888 <term 0889 >pegay<indexterm 0890 ><primary 0891 >pegay</primary 0892 ></indexterm 0893 ></term> 0894 <listitem 0895 ><para 0896 ><userinput 0897 >pegay</userinput 0898 > devolve o número em pontos a partir do topo da área de desenho até a posição atual da tartaruga.</para 0899 ></listitem> 0900 </varlistentry> 0901 </variablelist> 0902 </sect2> 0903 0904 <sect2 id="pen"> 0905 <title 0906 >A tartaruga tem um traço</title> 0907 <para 0908 >A tartaruga tem um traço e vai desenhando uma linha à medida que a tartaruga se move. Existem alguns comandos para controlar o traço. Nesta seção iremos explicar estes comandos.</para> 0909 <variablelist> 0910 <anchor id="penup"/> 0911 <varlistentry 0912 > 0913 <term 0914 >usenada (un)<indexterm 0915 ><primary 0916 >usenada (un)</primary 0917 ></indexterm 0918 ></term> 0919 <listitem 0920 ><para 0921 ><screen 0922 >usenada</screen 0923 >O <userinput 0924 >usenada</userinput 0925 > levanta o traço da área de desenho. Quando o traço está <quote 0926 >em cima</quote 0927 >, não é desenhada nenhuma linha à medida que a tartaruga se move. Veja também o <userinput 0928 >uselápis</userinput 0929 >. O <userinput 0930 >usenada</userinput 0931 > pode ser abreviado para <userinput 0932 >un</userinput 0933 >.</para 0934 ></listitem> 0935 </varlistentry> 0936 </variablelist> 0937 <variablelist> 0938 <anchor id="pendown"/> 0939 <varlistentry 0940 > 0941 <term 0942 >uselápis (ul)<indexterm 0943 ><primary 0944 >uselápis (ul)</primary 0945 ></indexterm 0946 ></term> 0947 <listitem 0948 ><para 0949 ><screen 0950 >uselápis</screen 0951 >O <userinput 0952 >uselápis</userinput 0953 > pressiona o traço para baixo na área de desenho. Quando o traço está <quote 0954 >em baixo</quote 0955 >, é desenhada uma linha à medida que a tartaruga se move. Veja também o <userinput 0956 >usenada</userinput 0957 >. O <userinput 0958 >uselápis</userinput 0959 > pode ser abreviado para <userinput 0960 >ul</userinput 0961 >.</para 0962 ></listitem> 0963 </varlistentry> 0964 </variablelist> 0965 <variablelist> 0966 <anchor id="setpenwidth"/> 0967 <varlistentry 0968 > 0969 <term 0970 >larguradolápis (ll)<indexterm 0971 ><primary 0972 >larguradolápis (ll)</primary 0973 ></indexterm 0974 ></term> 0975 <listitem 0976 ><para 0977 ><screen 0978 >larguradolápis X</screen 0979 >A <userinput 0980 >larguradolápis</userinput 0981 > configura a espessura do traço para X <glossterm linkend="pixels" 0982 >pontos</glossterm 0983 >. A <userinput 0984 >larguradolápis</userinput 0985 > pode ser abreviado para <userinput 0986 >ll</userinput 0987 >.</para 0988 ></listitem> 0989 </varlistentry> 0990 </variablelist> 0991 <variablelist> 0992 <anchor id="setfgcolor"/> 0993 <varlistentry 0994 > 0995 <term 0996 >cordolápis (cl)<indexterm 0997 ><primary 0998 >cordolápis (cl)</primary 0999 ></indexterm 1000 ></term> 1001 <listitem 1002 ><para 1003 ><screen 1004 >cordolápis R,G,B</screen 1005 >A <userinput 1006 >cordolápis</userinput 1007 > configura a cor do traço. A <userinput 1008 >cordolápis</userinput 1009 > recebe uma <glossterm linkend="rgb" 1010 >combinação de RGB</glossterm 1011 > como parâmetro. A <userinput 1012 >cordolápis</userinput 1013 > pode ser abreviado para <userinput 1014 >cl</userinput 1015 >.</para 1016 ></listitem> 1017 </varlistentry> 1018 </variablelist> 1019 </sect2> 1020 1021 <sect2 id="canvas"> 1022 <title 1023 >Comandos para controlar a área de desenho</title> 1024 <para 1025 >Existem vários comandos para controlar a área de desenho.</para> 1026 <variablelist> 1027 <anchor id="resizecanvas"/> 1028 <varlistentry> 1029 <term 1030 >tamanhodatela (tt)<indexterm 1031 ><primary 1032 >tamanhodatela (tt)</primary 1033 ></indexterm 1034 ></term> 1035 <listitem 1036 ><para 1037 ><screen 1038 >tamanhodatela X,Y</screen 1039 >Com o comando <userinput 1040 >tamanhodatela</userinput 1041 > você poderá alterar o tamanho da área de desenho. Ele recebe dois parâmetros (X e Y) de entrada, em que o X é a nova largura da área de desenho em <glossterm linkend="pixels" 1042 >pontos</glossterm 1043 >, e o Y é a nova altura da mesma área em <glossterm linkend="pixels" 1044 >pontos</glossterm 1045 >. O <userinput 1046 >tamanhodatela</userinput 1047 > pode ser abreviado para <userinput 1048 >tt</userinput 1049 >.</para 1050 ></listitem> 1051 </varlistentry> 1052 </variablelist> 1053 <variablelist> 1054 <anchor id="setbgcolor"/> 1055 <varlistentry 1056 > 1057 <term 1058 >cordofundor (cf)<indexterm 1059 ><primary 1060 >cordofundor (cf)</primary 1061 ></indexterm 1062 ></term> 1063 <listitem 1064 ><para 1065 ><screen 1066 >cordofundo R,G,B</screen 1067 >A <userinput 1068 >cordofundo</userinput 1069 > define a cor da área de desenho. A <userinput 1070 >cordofundor</userinput 1071 > recebe uma <glossterm linkend="rgb" 1072 >combinação RGB</glossterm 1073 > como parâmetro. A <userinput 1074 >cordofundo</userinput 1075 > pode ser abreviado para <userinput 1076 >cf</userinput 1077 >.</para 1078 ></listitem> 1079 </varlistentry> 1080 </variablelist> 1081 </sect2> 1082 1083 <sect2 id="clean"> 1084 <title 1085 >Comandos para limpar</title> 1086 <para 1087 >Existem dois comandos para limpar a área de desenho, depois de você ter deixado tudo bagunçado.</para> 1088 <variablelist> 1089 <anchor id="clear"/> 1090 <varlistentry 1091 > 1092 <term 1093 >limpetela (lt)<indexterm 1094 ><primary 1095 >limpetela (lt)</primary 1096 ></indexterm 1097 ></term> 1098 <listitem 1099 ><para 1100 ><screen 1101 >limpetela</screen 1102 >Com o <userinput 1103 >limpetela</userinput 1104 >, você poderá limpar todos os desenhos da área de desenho. Todo o resto permanece igual: a posição e o ângulo da tartaruga, a cor da área de trabalho, a visibilidade da tartaruga e o tamanho da área de desenho.</para 1105 ></listitem> 1106 </varlistentry> 1107 </variablelist> 1108 <variablelist> 1109 <anchor id="reset"/> 1110 <varlistentry 1111 > 1112 <term 1113 >apague<indexterm 1114 ><primary 1115 >apague</primary 1116 ></indexterm 1117 ></term> 1118 <listitem 1119 ><para 1120 ><screen 1121 >apague</screen 1122 >O <userinput 1123 >apague</userinput 1124 > limpa tudo de forma mais abrangente que o comando <userinput 1125 >limpetela</userinput 1126 >. Depois de um comando <userinput 1127 >apague</userinput 1128 >, tudo fica como estava quando você iniciou o &kturtle;. A tartaruga é posicionada no meio do tela, a cor da área de desenho é branca e a tartaruga irá desenhar uma linha preta na área de desenho e o tamanho da tela é definido para 400 x 400 pontos.</para 1129 ></listitem> 1130 </varlistentry> 1131 </variablelist> 1132 </sect2> 1133 1134 <sect2 id="sprites"> 1135 <title 1136 >A tartaruga é uma imagem móvel</title> 1137 <para 1138 >Muitas pessoas não sabem o que são as imagens móveis ('sprites' em inglês), daí uma breve explicação: as imagens móveis são pequenas imagens que podem percorrer a tela (para mais informações, veja o glossário sobre as <glossterm linkend="sprites" 1139 >imagens móveis</glossterm 1140 >). </para> 1141 <para 1142 >A seguir você irá encontrar uma apresentação completa de todos os comandos que lidam com imagens móveis.</para> 1143 <para 1144 >[A versão atual do &kturtle; não suporta ainda o uso de imagens móveis além da tartaruga. Nas versões futuras, você poderá mudar a tartaruga para outra coisa que desejar]</para> 1145 <variablelist> 1146 <anchor id="spriteshow"/> 1147 <varlistentry 1148 > 1149 <term 1150 >apareça (ap)<indexterm 1151 ><primary 1152 >apareça (ap)</primary 1153 ></indexterm 1154 ></term> 1155 <listitem 1156 ><para 1157 ><screen 1158 >apareça</screen 1159 >O <userinput 1160 >apareça</userinput 1161 > torna a tartaruga visível de novo depois de ter ficado escondida. O <userinput 1162 >apareça</userinput 1163 > pode ser abreviado para <userinput 1164 >ap</userinput 1165 >.</para 1166 ></listitem> 1167 </varlistentry> 1168 </variablelist> 1169 <variablelist> 1170 <anchor id="spritehide"/> 1171 <varlistentry 1172 > 1173 <term 1174 >desapareça (da)<indexterm 1175 ><primary 1176 >desapareça (da)</primary 1177 ></indexterm 1178 ></term> 1179 <listitem 1180 ><para 1181 ><screen 1182 >desapareça</screen 1183 >O <userinput 1184 >desapareça</userinput 1185 > esconde a tartaruga. Isto pode ser usado se a tartaruga não couber no seu desenho. O <userinput 1186 >desapareça</userinput 1187 > pode ser abreviado para <userinput 1188 >da</userinput 1189 >.</para 1190 ></listitem> 1191 </varlistentry> 1192 </variablelist> 1193 </sect2> 1194 1195 <sect2 id="writing"> 1196 <title 1197 >A tartaruga sabe escrever?</title> 1198 <para 1199 >A resposta é: <quote 1200 >sim</quote 1201 >. A tartaruga sabe escrever e pode escrever tudo o que lhe disser para escrever.</para> 1202 <variablelist> 1203 <anchor id="print"/> 1204 <varlistentry 1205 > 1206 <term 1207 >mostre<indexterm 1208 ><primary 1209 >mostre</primary 1210 ></indexterm 1211 ></term> 1212 <listitem 1213 ><para 1214 ><screen 1215 >mostre X</screen 1216 >O comando <userinput 1217 >mostre</userinput 1218 > é usado para dizer à tartaruga para escrever algo na área de desenho. O <userinput 1219 >mostre</userinput 1220 > recebe números e texto como parâmetros. Você poderá executar o <userinput 1221 >mostre</userinput 1222 > para vários parâmetros com o sinal <quote 1223 >+</quote 1224 >. Veja aqui um pequeno exemplo: <screen 1225 >$ano = 2003 1226 $autor = "Cies Breijs" 1227 mostre $autor + " iniciou o projeto do KTurtle em " + $ano + " e ainda continua gostando de trabalhar nele!" 1228 </screen> 1229 </para 1230 ></listitem> 1231 </varlistentry> 1232 </variablelist> 1233 <variablelist> 1234 <anchor id="fontsize"/> 1235 <varlistentry 1236 > 1237 <term 1238 >tamanhodafonte<indexterm 1239 ><primary 1240 >tamanhodafonte</primary 1241 ></indexterm 1242 ></term> 1243 <listitem 1244 ><para 1245 ><screen 1246 >tamanhodafonte X</screen 1247 >O <userinput 1248 >tamanhodafonte</userinput 1249 > configura o tamanho da letra que é usado pelo <userinput 1250 >mostre</userinput 1251 >. O <userinput 1252 >tamanhodafonte</userinput 1253 > recebe um parâmetro que deverá ser um número. O tamanho é definido em <glossterm linkend="pixels" 1254 >pontos</glossterm 1255 >.</para 1256 ></listitem> 1257 </varlistentry> 1258 </variablelist> 1259 </sect2> 1260 1261 <sect2 id="math-commands"> 1262 <title 1263 >Comandos matemáticos</title> 1264 <para 1265 >Os seguintes comandos são as instruções matemáticas mais avançadas do &kturtle;.</para> 1266 <variablelist> 1267 <anchor id="round"/> 1268 <varlistentry> 1269 <term 1270 >arredonda<indexterm 1271 ><primary 1272 >arredonda</primary 1273 ></indexterm 1274 ></term> 1275 <listitem 1276 ><para 1277 ><screen 1278 >arredonda(x)</screen 1279 >O <userinput 1280 >arredonda</userinput 1281 > arredonda o número indicado ao inteiro mais próximo. <screen> 1282 mostre arredonda 10.8 1283 parafrente 20 1284 mostre arredonda 10.3 1285 parafrente 20 1286 </screen 1287 > Com este código, a tartaruga iria apresentar os números 11 e 10.</para 1288 ></listitem> 1289 </varlistentry> 1290 </variablelist> 1291 <variablelist> 1292 <anchor id="random"/> 1293 <varlistentry 1294 > 1295 <term 1296 >aleatório (al)<indexterm 1297 ><primary 1298 >aleatório (al)</primary 1299 ></indexterm 1300 ></term> 1301 <listitem 1302 ><para 1303 ><screen 1304 >aleatório X,Y</screen 1305 >O <userinput 1306 >aleatório</userinput 1307 > é um comando que recebe parâmetros e devolve resultados. Como parâmetros são necessários dois números, onde o primeiro define o resultado mínimo (X) e o segundo o máximo (Y). O resultado é um número escolhido aleatoriamente que é maior ou igual ao mínimo e menor ou igual ao máximo. Aqui está um pequeno exemplo: <screen> 1308 repita 500 { 1309 $x = aleatório 1,20 1310 parafrente $x 1311 paraesquerda 10 - $x 1312 } 1313 </screen 1314 > Com o comando <userinput 1315 >aleatório</userinput 1316 >, você poderá adicionar um pouco de confusão ao seu programa.</para 1317 ></listitem> 1318 </varlistentry> 1319 </variablelist> 1320 <variablelist> 1321 <anchor id="mod"/> 1322 <varlistentry 1323 > 1324 <term 1325 >resto<indexterm 1326 ><primary 1327 >resto</primary 1328 ></indexterm 1329 ></term> 1330 <listitem 1331 ><para 1332 ><screen 1333 >resto X,Y</screen 1334 >O comando <userinput 1335 >resto</userinput 1336 > retorna o resto da divisão do primeiro número pelo segundo.</para 1337 ></listitem> 1338 </varlistentry> 1339 </variablelist> 1340 <variablelist> 1341 <anchor id="sqrt"/> 1342 <varlistentry 1343 > 1344 <term 1345 >raizquadrada<indexterm 1346 ><primary 1347 >raizquadrada</primary 1348 ></indexterm 1349 ></term> 1350 <listitem 1351 ><para 1352 ><screen 1353 >raizquadrada X</screen 1354 >O comando <userinput 1355 >raizquadrada</userinput 1356 > é usado para descobrir a raiz quadrada de um número X.</para 1357 ></listitem> 1358 </varlistentry> 1359 </variablelist> 1360 <!-- 1361 <variablelist> 1362 <anchor id="exp"/> 1363 <varlistentry 1364 > 1365 <term 1366 >exp<indexterm 1367 ><primary 1368 >exp</primary 1369 ></indexterm 1370 ></term> 1371 <listitem 1372 ><para 1373 ><screen 1374 >sqrt X</screen> 1375 </para 1376 ></listitem> 1377 </varlistentry> 1378 </variablelist> 1379 --> 1380 <variablelist> 1381 <anchor id="pi"/> 1382 <varlistentry 1383 > 1384 <term 1385 >pi<indexterm 1386 ><primary 1387 >pi</primary 1388 ></indexterm 1389 ></term> 1390 <listitem 1391 ><para 1392 ><screen 1393 >pi</screen 1394 >Este comando devolve a constante Pi, <userinput 1395 >3,14159...</userinput 1396 >.</para 1397 ></listitem> 1398 </varlistentry> 1399 </variablelist> 1400 <variablelist> 1401 <anchor id="sin"/> 1402 <anchor id="cos"/> 1403 <anchor id="tan"/> 1404 <varlistentry> 1405 <term 1406 >seno<indexterm 1407 ><primary 1408 >seno</primary 1409 ></indexterm 1410 >, cosseno<indexterm 1411 ><primary 1412 >cosseno</primary 1413 ></indexterm 1414 >, tangente<indexterm 1415 ><primary 1416 >tangente</primary 1417 ></indexterm 1418 ></term> 1419 <listitem 1420 ><para> 1421 <screen 1422 >seno X 1423 cosseno X 1424 tangente X 1425 </screen 1426 >Estes três comandos representam as conhecidas funções trigonométricas <userinput 1427 >seno</userinput 1428 >, <userinput 1429 >cosseno</userinput 1430 > e <userinput 1431 >tangente</userinput 1432 >. O argumento de entrada destes comandos, X, deve ser a medida de um ângulo em graus.</para 1433 ></listitem> 1434 </varlistentry> 1435 </variablelist> 1436 <variablelist> 1437 <anchor id="arcsin"/> 1438 <anchor id="arccos"/> 1439 <anchor id="arctan"/> 1440 <varlistentry> 1441 <term 1442 >arcsin<indexterm 1443 ><primary 1444 >arcsin</primary 1445 ></indexterm 1446 >, arccos<indexterm 1447 ><primary 1448 >arccos</primary 1449 ></indexterm 1450 >, arctan<indexterm 1451 ><primary 1452 >arcotangente</primary 1453 ></indexterm 1454 ></term> 1455 <listitem 1456 ><para> 1457 <screen 1458 >arcoseno X 1459 arcocosseno X 1460 arcotangente X 1461 </screen 1462 >Estes comandos são as funções inversas do <link linkend="sin" 1463 >seno</link 1464 >, <link linkend="cos" 1465 >cosseno</link 1466 > e <link linkend="tan" 1467 >tangente</link 1468 >. O argumento de entrada destes comandos, X, é um <link linkend="number" 1469 >número</link 1470 >.</para 1471 ></listitem> 1472 </varlistentry> 1473 </variablelist> 1474 </sect2> 1475 1476 <sect2 id="dialogs"> 1477 <title 1478 >Entrada de dados e reação através de janelas</title> 1479 <para 1480 >Um diálogo é uma pequena janela que fornece algum retorno ou pergunta por alguma entrada. O &kturtle; tem dois comandos para diálogos, chamados<userinput 1481 >mensagem</userinput 1482 > e o <userinput 1483 >perguntar</userinput 1484 ></para> 1485 <variablelist> 1486 <anchor id="message"/> 1487 <varlistentry 1488 > 1489 <term 1490 >mensagem<indexterm 1491 ><primary 1492 >mensagem</primary 1493 ></indexterm 1494 ></term> 1495 <listitem 1496 ><para 1497 ><screen 1498 >mensagem X</screen 1499 >O comando <userinput 1500 >mensagem</userinput 1501 > recebe uma <link linkend="string" 1502 >cadeia de caracteres</link 1503 > como entrada. Exibe então uma janela que contém o texto da <link linkend="string" 1504 >cadeia de caracteres</link 1505 >. <screen 1506 >mensagem "Cies iniciou o projeto do KTurtle em 2003 e ainda continua gostando de trabalhar nele!" 1507 </screen> 1508 </para 1509 ></listitem> 1510 </varlistentry> 1511 </variablelist> 1512 <variablelist> 1513 <anchor id="ask"/> 1514 <varlistentry 1515 > 1516 <term 1517 >perguntar<indexterm 1518 ><primary 1519 >perguntar</primary 1520 ></indexterm 1521 ></term> 1522 <listitem 1523 ><para 1524 ><screen 1525 >perguntar X</screen 1526 >O <userinput 1527 >perguntar</userinput 1528 > recebe uma <link linkend="string" 1529 >cadeia de caracteres</link 1530 > como entrada. Ele mostra o texto da cadeia de caracteres em uma janela (de maneira similar ao <link linkend="message" 1531 >mensagem</link 1532 >), mostrando também um campo de entrada de texto. Após o usuário inserir um <link linkend="number" 1533 >número</link 1534 > ou uma <link linkend="string" 1535 >cadeia de caracteres</link 1536 > nesta caixa, o resultado poderá ser guardado numa <link linkend="assignment-of-variables" 1537 >variável</link 1538 > ou passado como argumento a um <link linkend="commands" 1539 >comando</link 1540 >. Por exemplo <screen> 1541 $entrada = perguntar "Qual o ano do seu nascimento?" 1542 $saida = 2003 - $entrada 1543 mostre "Em 2003, você tinha " + $saida + " anos em determinado momento." 1544 </screen 1545 > Quando um usuário cancelar a janela ou não inserir nada, a <link linkend="assignment-of-variables" 1546 >variável</link 1547 > fica vazia.</para 1548 ></listitem> 1549 </varlistentry> 1550 </variablelist> 1551 </sect2> 1552 1553 </sect1> 1554 1555 1556 1557 <sect1 id="assignment-of-variables"> 1558 <title 1559 >Atribuição de variáveis</title> 1560 <para 1561 >Vejamos primeiro as variáveis, e depois iremos ver como atribuir valores a essas variáveis. </para> 1562 1563 <para 1564 >As variáveis são palavras que começam por um <quote 1565 >$</quote 1566 >; no <link linkend="the-editor" 1567 >editor</link 1568 >, são <glossterm 1569 >realçadas</glossterm 1570 > em púrpura.</para> 1571 1572 <para 1573 >As variáveis poderão conter qualquer <link linkend="number" 1574 >número</link 1575 >, <link linkend="string" 1576 >texto</link 1577 > ou <link linkend="boolean-value" 1578 >valor booleano (verdadeiro/falso)</link 1579 >. Ao usar a atribuição <userinput 1580 >=</userinput 1581 >, uma variável ficará com conteúdo associado. Irá manter esse conteúdo até que o programa termine a execução ou até a variável ser atribuída de novo a outra coisa qualquer.</para> 1582 1583 <para 1584 >Você poderá usar as variáveis, uma vez atribuídas, como se fossem o seu próprio conteúdo. Por exemplo, no seguinte trecho de &turtlescript;: <screen> 1585 $x = 10 1586 $x = $x / 3 1587 mostre $x 1588 </screen 1589 > Primeiro, é atribuído à variável <userinput 1590 >$x</userinput 1591 > o valor <userinput 1592 >10</userinput 1593 >. Depois, o <userinput 1594 >$x</userinput 1595 > terá como novo valor o seu próprio valor dividido por <userinput 1596 >3</userinput 1597 > — isto significa na prática que o <userinput 1598 >$x</userinput 1599 > terá atribuído o valor do produto <userinput 1600 >10 / 3</userinput 1601 >. Finalmente, é impresso o valor do <userinput 1602 >$x</userinput 1603 >. Nas linhas 2 e 3, irá ver que o <userinput 1604 >$x</userinput 1605 > é usado como se fosse o seu próprio conteúdo.</para> 1606 1607 <para 1608 >As variáveis têm que estar atribuídas para poderem ser usadas. Por exemplo, um: <screen> 1609 mostre $n 1610 </screen 1611 > Irá resultar numa mensagem de erro.</para> 1612 1613 <para 1614 >Considere o pequeno trecho de código em &turtlescript;: <screen> 1615 $a = 2004 1616 $b = 25 1617 1618 # o próximo comando imprime "2029" 1619 mostre $a + $b 1620 paratrás 30 1621 # o próximo comando imprime "2004 mais 25 é igual a 2029" 1622 mostre $a + " mais " + $b + " é igual a " + ($a + $b) 1623 paratrás 30 1624 </screen 1625 > Nas duas primeiras linhas, as variáveis <userinput 1626 >$a</userinput 1627 > e <userinput 1628 >$b</userinput 1629 > são configuradas como sendo iguais a 2004 e 25. Depois nos dois comandos <userinput 1630 >mostre</userinput 1631 > existe um comando <userinput 1632 >paratrás 30</userinput 1633 > no meio são executados. Os comentários antes dos comando <userinput 1634 >mostre</userinput 1635 > explicam o que ele está fazendo. O comando <userinput 1636 >paratrás 30</userinput 1637 > está ai para garantir que cada saída está numa nova linha. Como poderá ver, as variáveis poderão ser usadas como se fossem o valor que contêm, podendo usá-las com qualquer tipo de <link linkend="operators" 1638 >operadores</link 1639 > ou fornecendo-os como entradas na invocação dos <link linkend="commands" 1640 >comandos</link 1641 >.</para> 1642 1643 <para 1644 >Mais um exemplo: <screen> 1645 $nome = perguntar "Como se chama?" 1646 mostre "Olá " + $nome + "! Boa sorte ao aprender a arte da programação..." 1647 </screen 1648 > É bastante simples. Mais uma vez, poderá ver que a variável <userinput 1649 >$nome</userinput 1650 >, é tratada apenas como texto.</para> 1651 1652 <para 1653 >Ao usar as variáveis, o <link linkend="the-inspector" 1654 >inspetor</link 1655 > torna-se bastante útil. Ele mostra o conteúdo de todas as variáveis que estão sendo usadas atualmente.</para> 1656 </sect1> 1657 1658 1659 1660 <sect1 id="controlling-execution"> 1661 <title 1662 >Controlando a execução</title> 1663 <para 1664 >Os controladores de execução permitem-lhe — como o nome deles indica — controlar a execução.</para> 1665 <para 1666 >Os comandos de controle de execução são <glossterm 1667 >realçados</glossterm 1668 > em verde escuro e negrito. As chaves são frequentemente usadas juntamente com os controladores de execução e eles são <glossterm 1669 >realçados</glossterm 1670 > em preto.</para> 1671 1672 <sect2 id="wait"> 1673 <title 1674 >Fazendo a tartaruga esperar</title> 1675 <para 1676 >Se você já tentou programar um pouco no &kturtle;, você já poderá ter reparado que a tartaruga pode ser bastante rápida desenhando. Este comando faz a tartaruga andar um pouco mais devagar.</para> 1677 <variablelist> 1678 <varlistentry> 1679 <term 1680 >aguarde<indexterm 1681 ><primary 1682 >aguarde</primary 1683 ></indexterm 1684 ></term> 1685 <listitem 1686 ><para 1687 ><screen 1688 >aguarde X</screen 1689 >O <userinput 1690 >aguarde</userinput 1691 > faz a tartaruga esperar X segundos. <screen> 1692 repita 36 { 1693 parafrente 5 1694 paradireita 10 1695 aguarde 0.5 1696 } 1697 </screen 1698 > Este código irá desenhar uma circunferência, mas a tartaruga irá esperar meio segundo a cada passo. Isto dá a noção de uma tartaruga vagarosa.</para 1699 ></listitem> 1700 </varlistentry> 1701 </variablelist> 1702 </sect2> 1703 1704 <sect2 id="if"> 1705 <title 1706 >Executar o "se"</title> 1707 <variablelist> 1708 <varlistentry> 1709 <term 1710 >se<indexterm 1711 ><primary 1712 >se</primary 1713 ></indexterm 1714 ></term> 1715 <listitem 1716 ><para 1717 ><screen 1718 >se <link linkend="boolean-value" 1719 >booleano</link 1720 > { ... }</screen 1721 >O código que é colocado entre os parênteses só será executado <userinput 1722 >se</userinput 1723 > o <link linkend="boolean-value" 1724 >valor booleano</link 1725 > for <quote 1726 >verdadeiro</quote 1727 >. <screen> 1728 $x = 6 1729 se $x > 5 { 1730 mostre "O x é maior que cinco!" 1731 } 1732 </screen 1733 > Na primeira linha, o <userinput 1734 >$x</userinput 1735 > é inicializado a 6. Na segunda linha, a <link linkend="comparing-operators" 1736 >operador de comparação</link 1737 > é usado para avaliar <userinput 1738 >x > 5</userinput 1739 >. Uma vez que a resposta a esta pergunta é <quote 1740 >verdadeira</quote 1741 >, o controlador de execução <userinput 1742 >se</userinput 1743 > irá permitir que o código entre chaves seja executado.</para 1744 ></listitem> 1745 </varlistentry> 1746 </variablelist> 1747 </sect2> 1748 1749 <sect2 id="else"> 1750 <title 1751 >Se não, em outras palavras: "senão"</title> 1752 <variablelist> 1753 <varlistentry> 1754 <term 1755 >senão<indexterm 1756 ><primary 1757 >senão</primary 1758 ></indexterm 1759 ></term> 1760 <listitem 1761 ><para 1762 ><screen 1763 >se <link linkend="boolean-value" 1764 >booleano</link 1765 > { ... } senao { ... }</screen 1766 >O <userinput 1767 >senao</userinput 1768 > pode ser usado além do controlador de execução <link linkend="if" 1769 ><userinput 1770 >se</userinput 1771 ></link 1772 >. O código entre chaves a seguir ao <userinput 1773 >senao</userinput 1774 > só é executado se o <link linkend="boolean-value" 1775 >valor booleano</link 1776 > for <quote 1777 >falso</quote 1778 >. <screen> 1779 apague 1780 $x = 4 1781 se $x > 5 { 1782 mostre "O x é maior que cinco!" 1783 } senao { 1784 mostre "O x é menor que seis!" 1785 } 1786 </screen 1787 > O <link linkend="comparing-operators" 1788 >operador de comparação</link 1789 > testa a expressão <userinput 1790 >x > 5</userinput 1791 >. Uma vez que o <userinput 1792 >x</userinput 1793 > fica igual a 4 na primeira linha, a resposta à pergunta é <quote 1794 >falso</quote 1795 >. Isto significa que o código entre chaves a seguir ao <userinput 1796 >senao</userinput 1797 > é executado.</para 1798 ></listitem> 1799 </varlistentry> 1800 </variablelist> 1801 </sect2> 1802 1803 <sect2 id="while"> 1804 <title 1805 >O ciclo "enquanto"</title> 1806 <variablelist> 1807 <varlistentry> 1808 <term 1809 >enquanto<indexterm 1810 ><primary 1811 >enquanto</primary 1812 ></indexterm 1813 ></term> 1814 <listitem 1815 ><para 1816 ><screen 1817 >enquanto <link linkend="boolean-value" 1818 >booleano</link 1819 > { ... }</screen 1820 >O controlador de execução <userinput 1821 >enquanto</userinput 1822 > é um pouco como o <link linkend="if" 1823 ><userinput 1824 >se</userinput 1825 ></link 1826 >. A diferença é que o <userinput 1827 >enquanto</userinput 1828 > continua a repetir o código entre parênteses até que a resposta à <link linkend="boolean-value" 1829 >valor booleano</link 1830 > seja <quote 1831 >falso</quote 1832 >. <screen> 1833 $x = 1 1834 enquanto $x < 5 { 1835 parafrente 10 1836 aguarde 1 1837 $x = $x + 1 1838 } 1839 </screen 1840 > Na primeira linha, o <userinput 1841 >$x</userinput 1842 > fica igual a 1. Na segunda, a expressão <userinput 1843 >x < 5</userinput 1844 > é avaliada. Uma vez que a resposta a esta pergunta é <quote 1845 >verdadeiro</quote 1846 >, o controlador de execução <userinput 1847 >enquanto</userinput 1848 > começa a execução do código entre chaves até que a condição <userinput 1849 >$x < 5</userinput 1850 > seja <quote 1851 >falso</quote 1852 >. Neste caso, o código entre parênteses será executado 4 vezes, uma vez que, cada vez que a quinta linha é executada, o <userinput 1853 >$x</userinput 1854 > fica um número acima.</para 1855 ></listitem> 1856 </varlistentry> 1857 </variablelist> 1858 </sect2> 1859 1860 <sect2 id="repeat"> 1861 <title 1862 >O ciclo "repita"</title> 1863 <variablelist> 1864 <varlistentry> 1865 <term 1866 >repita<indexterm 1867 ><primary 1868 >repita</primary 1869 ></indexterm 1870 ></term> 1871 <listitem 1872 ><para 1873 ><screen 1874 >repita <link linkend="number" 1875 >número</link 1876 > { ... }</screen 1877 >O controlador de execução <userinput 1878 >repita</userinput 1879 > funciona um pouco como o <link linkend="while" 1880 ><userinput 1881 >enquanto</userinput 1882 ></link 1883 >. A diferença é que o <userinput 1884 >repita</userinput 1885 > repete o código entre parênteses um número fixo de vezes, igual ao número dado.</para 1886 ></listitem> 1887 </varlistentry> 1888 </variablelist> 1889 </sect2> 1890 1891 <sect2 id="for"> 1892 <title 1893 >O ciclo "para", um ciclo de contagem</title> 1894 <variablelist> 1895 <varlistentry> 1896 <term 1897 >para<indexterm 1898 ><primary 1899 >para</primary 1900 ></indexterm 1901 ><indexterm 1902 ><primary 1903 >até</primary 1904 ></indexterm 1905 ><indexterm 1906 ><primary 1907 >passo</primary 1908 ></indexterm 1909 ></term> 1910 <listitem 1911 ><para 1912 ><screen 1913 >para <link linkend="assignment-of-variables" 1914 >variável</link 1915 > = <link linkend="number" 1916 >número</link 1917 > até <link linkend="number" 1918 >número</link 1919 > { ... }</screen 1920 >O ciclo <userinput 1921 >para</userinput 1922 > é um <quote 1923 >ciclo de contagem</quote 1924 >, &ie;, faz uma contagem para você. O primeiro membro configura a variável com o valor do primeiro ciclo. Em cada iteração, o número é aumentado até atingir o segundo número. <screen> 1925 para $x = 1 ate 10 { 1926 mostre $x * 7 1927 avancar 15 1928 } 1929 </screen 1930 > Cada vez que o código entre chaves é executado, o <userinput 1931 >$x</userinput 1932 > é incrementado de uma unidade, até que o valor do <userinput 1933 >$x</userinput 1934 > chegue a 10. O código entre chaves imprime o valor de <userinput 1935 >$x</userinput 1936 > multiplicado por 7. Depois deste programa terminar a sua execução, você irá ver a tabuada dos 7 na área de desenho. </para> 1937 <para 1938 >O passo padrão para um ciclo é 1, você pode usar um outro valor com <screen 1939 >para <link linkend="assignment-of-variables" 1940 >variável</link 1941 > = <link linkend="number" 1942 >número</link 1943 > até <link linkend="number" 1944 >number</link 1945 > passo <link linkend="number" 1946 >número</link 1947 > { ... }</screen 1948 ></para 1949 ></listitem> 1950 </varlistentry> 1951 </variablelist> 1952 </sect2> 1953 1954 <sect2 id="break"> 1955 <title 1956 >Deixar um ciclo</title> 1957 <variablelist> 1958 <varlistentry> 1959 <term 1960 >quebre<indexterm 1961 ><primary 1962 >quebre</primary 1963 ></indexterm 1964 ></term> 1965 <listitem 1966 ><para 1967 ><screen 1968 >quebre</screen 1969 >Termina imediatamente o ciclo atual e transfere o controle para a instrução imediatamente após esse ciclo.</para 1970 ></listitem> 1971 </varlistentry> 1972 </variablelist> 1973 </sect2> 1974 1975 <sect2 id="exit"> 1976 <title 1977 >Interrompe a execução do seu programa</title> 1978 <variablelist> 1979 <varlistentry> 1980 <term 1981 >sair<indexterm 1982 ><primary 1983 >sair</primary 1984 ></indexterm 1985 ></term> 1986 <listitem 1987 ><para 1988 ><screen 1989 >sair</screen 1990 >Termina a execução do seu programa.</para 1991 ></listitem> 1992 </varlistentry> 1993 </variablelist> 1994 </sect2> 1995 1996 <sect2 id="assert"> 1997 <title 1998 >Verificar os testes durante a execução</title> 1999 <variablelist> 2000 <varlistentry> 2001 <term 2002 >declara<indexterm 2003 ><primary 2004 >declara</primary 2005 ></indexterm 2006 ></term> 2007 <listitem 2008 ><para 2009 ><screen 2010 >declara <link linkend="boolean-value" 2011 >booleano</link 2012 ></screen 2013 >Pode ser usado para confirmar a correção do programa ou seus parâmetros. <screen 2014 >$entrada = perguntar "Qual é a sua data de nascimento?" 2015 # o ano deve ser positivo 2016 declara $entrada 2017 > 0 2018 </screen 2019 ></para 2020 ></listitem> 2021 </varlistentry> 2022 </variablelist> 2023 </sect2> 2024 </sect1> 2025 2026 2027 <sect1 id="learn"> 2028 2029 <title 2030 >Crie os seus próprios comandos com o <quote 2031 >aprenda</quote 2032 ></title> 2033 <para 2034 >O <userinput 2035 >aprenda</userinput 2036 ><indexterm 2037 ><primary 2038 >aprenda</primary 2039 ></indexterm 2040 > é um comando muito especial, porque é usado para criar os seus próprios comandos. O comando que criar poderá receber <glossterm linkend="input-output" 2041 >parâmetros</glossterm 2042 > e devolver <glossterm linkend="input-output" 2043 >resultados</glossterm 2044 >. Vamos ver como é criado um novo comando. <screen> 2045 aprenda circunferência $x { 2046 repita 36 { 2047 parafrente $x 2048 paraesquerda 10 2049 } 2050 } 2051 </screen 2052 > O novo comando chama-se <userinput 2053 >circunferencia</userinput 2054 >. O <userinput 2055 >circunferencia</userinput 2056 > recebe um <glossterm linkend="input-output" 2057 >parâmetro</glossterm 2058 >, um número, para definir o tamanho da circunferência. O <userinput 2059 >circunferencia</userinput 2060 > não devolve nenhum <glossterm linkend="input-output" 2061 >resultado</glossterm 2062 >. O comando <userinput 2063 >circunferencia</userinput 2064 > pode agora ser usado como um comando normal. Veja este exemplo: <screen 2065 >aprenda círculo $X { 2066 repita 36 { 2067 parafrente $X 2068 paraesquerda 10 2069 } 2070 } 2071 2072 vápara 200,200 2073 círculo 20 2074 2075 vápara 300,200 2076 círculo 40 2077 </screen> 2078 </para> 2079 <para 2080 >No próximo exemplo, vai ser criado um comando com um valor de resultado<indexterm 2081 ><primary 2082 >resultado</primary 2083 ></indexterm 2084 > devolvido. <screen> 2085 aprender faculdade $x { 2086 $r = 1 2087 para $i = 1 ate $x { 2088 $r = $n * $i 2089 } 2090 devolver $r 2091 } 2092 2093 imprimir faculdade 5 2094 </screen 2095 > Neste exemplo, existe agora um comando novo chamado <userinput 2096 >faculdade</userinput 2097 >. Se o parâmetro deste comando for <userinput 2098 >5</userinput 2099 >, então o resultado é igual a <userinput 2100 >5*4*3*2*1</userinput 2101 >. Ao usar o <userinput 2102 >devolver</userinput 2103 >, o valor do <glossterm linkend="input-output" 2104 >resultado</glossterm 2105 > é indicado e a execução é devolvida.</para> 2106 <para 2107 >Os comandos poderão ter mais de uma <glossterm linkend="input-output" 2108 >entrada</glossterm 2109 >. No seguinte exemplo, é criado um comando que desenha um retângulo. <screen> 2110 aprenda caixa $X, $Y { 2111 parafrente $Y 2112 paradireita 90 2113 parafrente $X 2114 paradireita 90 2115 parafrente $Y 2116 paradireita 90 2117 parafrente $X 2118 paradireita 90 2119 } 2120 </screen 2121 > Agora, você poderá usar o <userinput 2122 >caixa 50, 100</userinput 2123 > para que a tartaruga desenhe um retângulo na área de desenho. </para> 2124 2125 </sect1> 2126 2127 </chapter>