summaryrefslogtreecommitdiffstats
path: root/tde-i18n-pt/docs/tdeedu/kturtle/programming-reference.docbook
diff options
context:
space:
mode:
authorTimothy Pearson <kb9vqf@pearsoncomputing.net>2011-12-03 11:05:10 -0600
committerTimothy Pearson <kb9vqf@pearsoncomputing.net>2011-12-03 11:05:10 -0600
commitf7e7a923aca8be643f9ae6f7252f9fb27b3d2c3b (patch)
tree1f78ef53b206c6b4e4efc88c4849aa9f686a094d /tde-i18n-pt/docs/tdeedu/kturtle/programming-reference.docbook
parent85ca18776aa487b06b9d5ab7459b8f837ba637f3 (diff)
downloadtde-i18n-f7e7a923aca8be643f9ae6f7252f9fb27b3d2c3b.tar.gz
tde-i18n-f7e7a923aca8be643f9ae6f7252f9fb27b3d2c3b.zip
Second part of prior commit
Diffstat (limited to 'tde-i18n-pt/docs/tdeedu/kturtle/programming-reference.docbook')
-rw-r--r--tde-i18n-pt/docs/tdeedu/kturtle/programming-reference.docbook1724
1 files changed, 1724 insertions, 0 deletions
diff --git a/tde-i18n-pt/docs/tdeedu/kturtle/programming-reference.docbook b/tde-i18n-pt/docs/tdeedu/kturtle/programming-reference.docbook
new file mode 100644
index 00000000000..a075038a995
--- /dev/null
+++ b/tde-i18n-pt/docs/tdeedu/kturtle/programming-reference.docbook
@@ -0,0 +1,1724 @@
+<!--Dear translator: please NEVER translate the id or anything inside the tags as they are needed in english by the application
+ Thanks a lot in advance.-->
+<chapter id="reference">
+<title
+>Referência de Programação em &logo; do &kturtle;</title>
+<para
+>Esta é a referência para o &logo; do &kturtle;. Neste capítulo iremos tocar brevemente em todos os <link linkend="different-instructions"
+>tipos de instruções diferentes</link
+>. Depois, serão explicados os <link linkend="commands"
+>comandos</link
+>, um por um. De seguida, serão explicados os <link linkend="containers"
+>contentores</link
+>, a <link linkend="math"
+>matemática</link
+>, as <link linkend="questions"
+>questões</link
+> e os <link linkend="controlling-execution"
+>controladores de execução</link
+>. Por último, ser-lhe-á mostrado como criar os seus próprios comandos com o <link linkend="learn"
+>learn</link
+>.</para>
+
+<sect1 id="different-instructions">
+<title
+>Tipos Diferentes de Instruções</title>
+<para
+>Como em qualquer linguagem, o LOGO tem diferentes tipos de palavras e símbolos. Aqui, será explicada a diferença entre os vários tipos.</para>
+
+<sect2 id="command">
+<title
+>Comandos</title>
+<para
+>Ao usar os comandos, você diz à tartaruga ou ao &kturtle; para fazer algo. Alguns comandos precisam de dados introduzidos, enquanto outros trazem resultados. <screen
+># o 'forward' é um comando que necessita de dados de entrada, neste caso o número 100:
+forward 100
+</screen>
+</para>
+<para
+>Para uma ideia geral de todos os comandos que o &kturtle; suporta, venha <link linkend="commands"
+>aqui</link
+>.</para>
+</sect2>
+
+<sect2 id="number">
+<title
+>Números</title>
+<para
+>O mais provável é que você já conheça alguma coisa sobre os números. A forma como estes são usados no &kturtle; não é muito diferente da língua falada ou da matemática. </para>
+<para
+>Temos então os números conhecidos por naturais: <userinput
+>0</userinput
+>, <userinput
+>1</userinput
+>, <userinput
+>2</userinput
+>, <userinput
+>3</userinput
+>, <userinput
+>4</userinput
+>, <userinput
+>5</userinput
+>, etc. Os números negativos: <userinput
+>-1</userinput
+>, <userinput
+>-2</userinput
+>, <userinput
+>-3</userinput
+>, etc. Finalmente, os números decimais ou fraccionários, como por exemplo: <userinput
+>0.1</userinput
+>, <userinput
+>3.14</userinput
+>, <userinput
+>33.3333</userinput
+>, <userinput
+>-5.05</userinput
+>, <userinput
+>-1.0</userinput
+>. </para>
+<para
+>Os números podem ser usados em <link linkend="math"
+>cálculos matemáticos</link
+> e <link linkend="questions"
+>perguntas</link
+>. Também podem ser colocados em <link linkend="containers"
+>contentores</link
+>.</para>
+<para
+>Os números ficam <glossterm
+>realçados</glossterm
+> a azul no <link linkend="the-code-editor"
+>editor de código</link
+>.</para>
+</sect2>
+
+<sect2 id="string">
+<title
+>Cadeias de caracteres</title>
+<para
+>Primeiro um exemplo: <screen>
+print "Olá, sou uma cadeia de caracteres."
+</screen
+> Neste exemplo, o <userinput
+>print</userinput
+> é um comando, enquanto o <userinput
+>"Olá, sou uma cadeia de caracteres."</userinput
+> é, de facto, uma cadeia de caracteres. Estas começam e terminam com o símbolo <userinput
+>"</userinput
+>; com estes símbolos, o &kturtle; sabe que é uma cadeia de caracteres.</para>
+<para
+>As cadeias de caracteres podem ser colocadas em <link linkend="containers"
+>contentores</link
+>. Porém, não podem ser usadas em <link linkend="math"
+>cálculos matemáticos</link
+> nem em <link linkend="questions"
+>questões</link
+>.</para>
+<para
+>As cadeias de caracteres ficam <glossterm
+>realçadas</glossterm
+> a vermelho escura no <link linkend="the-code-editor"
+>editor de código</link
+>.</para>
+</sect2>
+
+
+<sect2 id="name">
+<title
+>Nomes</title>
+<para
+>Ao usar a linguagem de programação &logo;, pode criar coisas novas. Se criar um programa irá necessitar normalmente de <link linkend="containers"
+>contentores</link
+> e, em alguns casos, do <link linkend="learn"
+>learn</link
+> para criar novos comandos. Ao criar um <link linkend="containers"
+>contentor</link
+> ou um novo comando com o <link linkend="learn"
+>learn</link
+>, terá de indicar um nome.</para>
+<para
+>Poderá escolher qualquer nome, desde que este não tenha já algum significado. Por exemplo, não poderá chamar a um contentor <link linkend="forward"
+>forward</link
+>, dado que esse nome já é usado para um comando e, como tal, já tem um significado.<screen>
+# Aqui o forward é usado como contentor, mas já tem um significado
+# pelo que irá produzir um erro:
+forward = 20
+
+# isto funciona:
+forward 20
+</screen
+> Os nomes só poderão conter letras, números e sublinhados (_). De qualquer forma, têm de começar por uma letra. </para>
+<para
+>Por favor, leia a documentação sobre os <link linkend="containers"
+>contentores</link
+> e o comando <link linkend="learn"
+>learn</link
+> para uma melhor explicação e mais exemplos. </para>
+</sect2>
+
+<sect2 id="assignment">
+<title
+>Atribuições</title>
+<para
+>As atribuições são feitas com o símbolo <userinput
+>=</userinput
+>. Nas linguagens de programação é melhor ler o <userinput
+>=</userinput
+> simples não como um 'é igual a' mas sim como um 'fica igual a'. O termo 'é igual a' é mais apropriado para o <userinput
+>==</userinput
+>, que é uma <link linkend="questions"
+>pergunta</link
+>.</para>
+<para
+>As atribuições são usadas normalmente por duas razões, (1) para adicionar conteúdo aos <link linkend="containers"
+>contentores</link
+> e (2) para modificar o conteúdo de um contentor. Por exemplo: <screen
+>x = 10
+# o contentor 'x' contém agora o número 10
+W = "A minha idade é: "
+# o contentor W contém agora o texto "A minha idade: "
+# isto imprime o conteúdo dos contentores 'W' e 'x' na área de desenho
+print W + x
+</screen>
+</para>
+<para
+>Para mais exemplos, veja a secção que explica os <link linkend="containers"
+>contentores</link
+>.</para>
+</sect2>
+
+<sect2 id="math-symbols">
+<title
+>Símbolos Matemáticos</title>
+<para
+>O &kturtle; suporta todos os símbolos matemáticos básicos: a adição (<userinput
+>+</userinput
+>), a subtracção (<userinput
+>-</userinput
+>), a multiplicação (<userinput
+>*</userinput
+>), a divisão (<userinput
+>/</userinput
+>) e os parêntesis <userinput
+>(</userinput
+> e <userinput
+>)</userinput
+>.</para>
+<para
+>Para uma explicação completa e mais exemplos, veja a secção de <link linkend="math"
+>matemática</link
+>.</para>
+</sect2>
+
+<sect2 id="question">
+<title
+>Perguntas</title>
+<para
+>Podem ser feitas algumas perguntas simples, onde nesse caso a resposta será 'true' (verdadeira) ou 'false' (falsa).</para>
+<para
+>A utilização das perguntas é explicada de forma extensa na secção de <link linkend="questions"
+>perguntas</link
+>.</para>
+</sect2>
+
+<sect2 id="questions-glue">
+<title
+>Palavras de Colagem de Perguntas</title>
+<para
+>As perguntas podem ser coladas em conjunto com o que se denomina por 'cola das perguntas'. As palavras de colagem são o <userinput
+>and</userinput
+> (e), o <userinput
+>or</userinput
+> (ou) e uma palavra especial: a <userinput
+>not</userinput
+> (não).</para>
+<para
+>A utilização da colagem de perguntas é explicada na secção de <link linkend="question-glue"
+>Colagem de Perguntas</link
+>.</para>
+</sect2>
+
+
+<sect2 id="comment">
+<title
+>Comentários</title>
+<para
+>Os comentários são linhas que começam por um <userinput
+>#</userinput
+>. Por exemplo: <screen>
+# isto é um comentário!
+print "isto não é um comentário"
+# a linha anterior não é um comentário, mas a próxima é:
+# print "isto não é um comentário"
+</screen
+> Nas linhas comentadas, poderão ser adicionadas notas ao código, para nós ou para outra pessoa ler. Os comentários são usados para: (1) adicionar uma pequena descrição ao programa, (2) para explicar como é que funciona um determinado excerto de código se este for ligeiramente complicado e (3) para 'desactivar' linhas de código que deverão ser (temporariamente) ignoradas (veja a última linha do exemplo).</para>
+<para
+>As linhas comentadas ficam <glossterm
+>realçadas</glossterm
+> com um amarelo escuro no <link linkend="the-code-editor"
+>editor de código</link
+>.</para>
+</sect2>
+
+</sect1>
+
+
+<sect1 id="commands">
+<title
+>Comandos</title>
+<para
+>Ao usar os comandos, você diz à tartaruga ou ao &kturtle; para fazer algo. Alguns comandos precisam de dados introduzidos, enquanto outros trazem resultados. Nesta secção iremos explicar todos os comandos que podem ser usados no &kturtle;. Repare que todos os comandos incorporados ficam <glossterm
+>realçados</glossterm
+> a verde escuro no <link linkend="the-code-editor"
+>editor de código</link
+>, para que possa ajudar a distingui-los.</para>
+
+<sect2 id="moving-the-turtle">
+<title
+>Mover a tartaruga</title>
+<para
+>Existem vários comandos para mover a tartaruga pelo ecrã.</para>
+
+<sect3 id="forward">
+ <title
+>forward (fw)</title>
+ <variablelist>
+ <varlistentry
+>
+ <term
+>forward</term>
+ <listitem
+><para
+><screen
+>forward X</screen>
+O <userinput
+>forward</userinput
+> move a tartaruga para a frente X pixels. Quando o traço está em baixo, a tartaruga irá deixar um rasto. O <userinput
+>forward</userinput
+> pode ser abreviado para <userinput
+>fw</userinput
+></para
+></listitem>
+ </varlistentry>
+ </variablelist>
+</sect3>
+<sect3 id="backward">
+ <title
+>backward (bw)</title>
+ <variablelist>
+ <varlistentry
+>
+ <term
+>backward</term>
+ <listitem
+><para
+><screen
+>backward X</screen>
+O <userinput
+>backward</userinput
+> move a tartaruga para trás X pixels. Quando o traço está em baixo, a tartaruga irá deixar um rasto. O <userinput
+>backward</userinput
+> pode ser abreviado para <userinput
+>bw</userinput
+>.</para
+></listitem>
+ </varlistentry>
+ </variablelist>
+</sect3>
+<sect3 id="turnleft">
+ <title
+>turnleft (tl)</title>
+ <variablelist>
+ <varlistentry
+>
+ <term
+>turnleft</term>
+ <listitem
+><para
+><screen
+>turnleft X</screen>
+O <userinput
+>turnleft</userinput
+> diz à tartaruga para se virar X graus para a esquerda. O <userinput
+>turnleft</userinput
+> pode ser abreviado para <userinput
+>tl</userinput
+>.</para
+></listitem>
+ </varlistentry>
+ </variablelist>
+</sect3>
+<sect3 id="turnright">
+ <title
+>turnright (tr)</title>
+ <variablelist>
+ <varlistentry
+>
+ <term
+>turnright</term>
+ <listitem
+><para
+><screen
+>turnright X</screen>
+O <userinput
+>turnright</userinput
+> diz à tartaruga para se virar X graus para a direita. O <userinput
+>turnright</userinput
+> pode ser abreviado para <userinput
+>tr</userinput
+>.</para
+></listitem>
+ </varlistentry>
+ </variablelist>
+</sect3>
+<sect3 id="direction">
+ <title
+>direction (dir)</title>
+ <variablelist>
+ <varlistentry
+>
+ <term
+>direction</term>
+ <listitem
+><para
+><screen
+>direction X</screen>
+O <userinput
+>direction</userinput
+> configura a direcção da tartaruga para um ângulo de X graus a contar do zero, e isto não é relativo à direcção anterior da tartaruga. O <userinput
+>direction</userinput
+> pode ser abreviado para <userinput
+>dir</userinput
+>.</para
+></listitem>
+ </varlistentry>
+ </variablelist>
+</sect3>
+<sect3 id="center">
+ <title
+>center</title>
+ <variablelist>
+ <varlistentry
+>
+ <term
+>center</term>
+ <listitem
+><para
+><screen
+>center</screen>
+O <userinput
+>center</userinput
+> move a tartaruga para o centro da área de desenho.</para
+></listitem>
+ </varlistentry>
+ </variablelist>
+</sect3>
+<sect3 id="go">
+ <title
+>go</title>
+ <variablelist>
+ <varlistentry
+>
+ <term
+>go</term>
+ <listitem
+><para
+><screen
+>go X,Y</screen>
+O <userinput
+>go</userinput
+> manda a tartaruga ir para um dado local da área de desenho. Este local está a X <glossterm linkend="pixels"
+>pixels</glossterm
+> do lado esquerdo da área de desenho e a Y <glossterm linkend="pixels"
+>pixels</glossterm
+> do topo da área. Lembre-se que, ao usar o comando <userinput
+>go</userinput
+>, a tartaruga não irá desenhar nenhuma linha.</para
+></listitem>
+ </varlistentry>
+ </variablelist>
+</sect3>
+<sect3 id="gox">
+ <title
+>gox</title>
+ <variablelist>
+ <varlistentry
+>
+ <term
+>gox</term>
+ <listitem
+><para
+><screen
+>gox X</screen>
+Ao usar o comando <userinput
+>gox</userinput
+>, a tartaruga irá mover-se X <glossterm linkend="pixels"
+>pixels</glossterm
+> a partir da esquerda da área de desenho, mantendo à mesma a sua altura.</para
+></listitem>
+ </varlistentry>
+ </variablelist>
+</sect3>
+<sect3 id="goy">
+ <title
+>goy</title>
+ <variablelist>
+ <varlistentry
+>
+ <term
+>goy</term>
+ <listitem
+><para
+><screen
+>goy Y</screen>
+Ao usar o comando <userinput
+>goy</userinput
+>, a tartaruga irá mover-se Y <glossterm linkend="pixels"
+>pixels</glossterm
+> a partir do topo da área de desenho, mantendo à mesma a sua distância ao lado esquerdo da área de desenho.</para
+></listitem>
+ </varlistentry>
+ </variablelist>
+</sect3>
+</sect2>
+
+<sect2 id="pen">
+<title
+>A tartaruga tem um traço</title>
+<para
+>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 secção iremos explicar estes comandos.</para>
+<sect3 id="penup">
+ <title
+>penup (pu)</title>
+ <variablelist>
+ <varlistentry
+>
+ <term
+>penup</term>
+ <listitem
+><para
+><screen
+>penup</screen>
+O <userinput
+>penup</userinput
+> levanta o traço da área de desenho. Quando o traço está <quote
+>em cima</quote
+>, não é desenhada nenhuma linha à medida que a tartaruga se move. Veja também o <userinput
+>pendown</userinput
+>. O <userinput
+>penup</userinput
+> pode ser abreviado para <userinput
+>pu</userinput
+>.</para
+></listitem>
+ </varlistentry>
+ </variablelist>
+</sect3>
+<sect3 id="pendown">
+ <title
+>pendown (pd)</title>
+ <variablelist>
+ <varlistentry
+>
+ <term
+>pendown</term>
+ <listitem
+><para
+><screen
+>pendown</screen>
+O <userinput
+>pendown</userinput
+> carrega no traço para baixo na área de desenho. Quando o traço está <quote
+>em baixo</quote
+>, é desenhada uma linha à medida que a tartaruga se move. Veja também o <userinput
+>penup</userinput
+>. O <userinput
+>pendown</userinput
+> pode ser abreviado para <userinput
+>pd</userinput
+>.</para
+></listitem>
+ </varlistentry>
+ </variablelist>
+</sect3>
+<sect3 id="setpenwidth">
+ <title
+>penwidth (pw)</title>
+ <variablelist>
+ <varlistentry
+>
+ <term
+>penwidth</term>
+ <listitem
+><para
+><screen
+>penwidth X</screen>
+O <userinput
+>penwidth</userinput
+> configura a espessura do traço para X <glossterm linkend="pixels"
+>pixels</glossterm
+>. O <userinput
+>penwidth</userinput
+> pode ser abreviado para <userinput
+>pw</userinput
+>.</para
+></listitem>
+ </varlistentry>
+ </variablelist>
+</sect3>
+<sect3 id="setfgcolor">
+ <title
+>pencolor (pc)</title>
+ <variablelist>
+ <varlistentry
+>
+ <term
+>pencolor</term>
+ <listitem
+><para
+><screen
+>pencolor R,G,B</screen>
+O <userinput
+>pencolor</userinput
+> configura a cor do traço. O <userinput
+>pencolor</userinput
+> recebe uma <glossterm linkend="rgb"
+>combinação de RGB</glossterm
+> como parâmetro. O <userinput
+>pencolor</userinput
+> pode ser abreviado para <userinput
+>pc</userinput
+>.</para
+></listitem>
+ </varlistentry>
+ </variablelist>
+</sect3>
+</sect2>
+
+<sect2 id="canvas">
+<title
+>Comandos para controlar a área de desenho</title>
+<para
+>Existem vários comandos para controlar a área de desenho.</para>
+<sect3 id="resizecanvas">
+ <title
+>canvassize (cs)</title>
+ <variablelist>
+ <varlistentry>
+ <term
+>canvassize</term>
+ <listitem
+><para
+><screen
+>canvassize X,Y</screen>
+Com o comando <userinput
+>canvassize</userinput
+> você poderá alterar o tamanho da área de desenho. Ele recebe dois parâmetros X e Y à entrada, em que o X é a nova largura da área de desenho em <glossterm linkend="pixels"
+>pixels</glossterm
+>, e o Y é a nova altura da mesma área em <glossterm linkend="pixels"
+>pixels</glossterm
+>. O <userinput
+>canvassize</userinput
+> pode ser abreviado para <userinput
+>cs</userinput
+>.</para
+></listitem>
+ </varlistentry>
+ </variablelist>
+</sect3>
+<sect3 id="setbgcolor">
+ <title
+>canvascolor (cc)</title>
+ <variablelist>
+ <varlistentry
+>
+ <term
+>canvascolor</term>
+ <listitem
+><para
+><screen
+>canvascolor R,G,B</screen>
+O <userinput
+>canvascolor</userinput
+> define a cor da área de desenho. O <userinput
+>canvascolor</userinput
+> recebe uma <glossterm linkend="rgb"
+>combinação RGB</glossterm
+> como parâmetro. O <userinput
+>canvascolor</userinput
+> pode ser abreviado para <userinput
+>cc</userinput
+>.</para
+></listitem>
+ </varlistentry>
+ </variablelist>
+</sect3>
+<sect3 id="wrapon">
+ <title
+>wrapon</title>
+ <variablelist>
+ <varlistentry
+>
+ <term
+>wrapon</term>
+ <listitem
+><para
+><screen
+>wrapon</screen>
+Com o comando <userinput
+>wrapon</userinput
+> você poderá activar a <glossterm linkend="wrapping"
+>envolvência</glossterm
+> para a área de desenho. Por favor veja o glossário para saber o que é a <glossterm linkend="wrapping"
+>envolvência</glossterm
+>.</para
+></listitem>
+ </varlistentry>
+ </variablelist>
+</sect3>
+<sect3 id="wrapoff">
+ <title
+>wrapoff</title>
+ <variablelist>
+ <varlistentry
+>
+ <term
+>wrapoff</term>
+ <listitem
+><para
+><screen
+>wrapoff</screen>
+Com o comando <userinput
+>wrapoff</userinput
+> você poderá desactivar a <glossterm linkend="wrapping"
+>envolvência</glossterm
+> para a área de desenho. Isto significa que a tartaruga poder-se-á mover para fora da área de desenho e <quote
+>perder-se</quote
+>. Por favor veja o glossário se quiser saber o que é a <glossterm linkend="wrapping"
+>envolvência</glossterm
+>.</para
+></listitem>
+ </varlistentry>
+ </variablelist>
+</sect3>
+</sect2>
+
+<sect2 id="clean">
+<title
+>Comandos para limpar</title>
+<para
+>Existem dois comandos para limpar a área de desenho, depois de você ter deixado tudo confuso.</para>
+<sect3 id="clear">
+ <title
+>clear (cr)</title>
+ <variablelist>
+ <varlistentry
+>
+ <term
+>clear</term>
+ <listitem
+><para
+><screen
+>clear</screen>
+Com o <userinput
+>clear</userinput
+>, você poderá limpar todos os desenhos da área respectiva. Tudo 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. O <userinput
+>clear</userinput
+> pode ser abreviado para <userinput
+>cr</userinput
+>.</para
+></listitem>
+ </varlistentry>
+ </variablelist>
+</sect3>
+<sect3 id="reset">
+ <title
+>reset</title>
+ <variablelist>
+ <varlistentry
+>
+ <term
+>reset</term>
+ <listitem
+><para
+><screen
+>reset</screen>
+O <userinput
+>reset</userinput
+> limpa tudo de forma mais abrangente que o comando <userinput
+>clear</userinput
+>. Depois de um comando <userinput
+>reset</userinput
+>, tudo fica tal e qual estava quando você iniciou o &kturtle;. A tartaruga é posicionada no meio do ecrã, a cor da área de desenho é branca e a tartaruga irá desenhar uma linha preta na área de desenho.</para
+></listitem>
+ </varlistentry>
+ </variablelist>
+</sect3>
+</sect2>
+
+<sect2 id="sprites">
+<title
+>A tartaruga é uma imagem móvel</title>
+<para
+>Muitas das pessoas não sabem o que são as imagens móveis ('sprites'), daí uma breve explicação: as imagens móveis são pequenas imagens que podem percorrer o ecrã (para mais informações, veja o glossário sobre as <glossterm linkend="sprites"
+>imagens móveis</glossterm
+>). </para>
+<para
+>A seguir você irá encontrar uma apresentação completa de todos os comandos que lidam com imagens móveis.</para>
+<para
+>[A versão actual do &kturtle; não suporta ainda o uso de imagens móveis que não apenas a tartaruga. Nas versões futuras, você poderá mudar a tartaruga para outra coisa ao seu gosto]</para>
+<sect3 id="spriteshow">
+ <title
+>show</title>
+ <variablelist>
+ <varlistentry
+>
+ <term
+>show (ss)</term>
+ <listitem
+><para
+><screen
+>show</screen>
+O <userinput
+>show</userinput
+> torna a tartaruga visível de novo depois de ter ficado escondida. O <userinput
+>show</userinput
+> pode ser abreviado para <userinput
+>ss</userinput
+>.</para
+></listitem>
+ </varlistentry>
+ </variablelist>
+</sect3>
+<sect3 id="spritehide">
+ <title
+>hide (sh)</title>
+ <variablelist>
+ <varlistentry
+>
+ <term
+>hide</term>
+ <listitem
+><para
+><screen
+>hide</screen>
+O <userinput
+>hide</userinput
+> esconde a tartaruga. Isto pode ser usado se a tartaruga não couber no seu desenho. O <userinput
+>hide</userinput
+> pode ser abreviado para <userinput
+>sh</userinput
+>.</para
+></listitem>
+ </varlistentry>
+ </variablelist>
+</sect3>
+</sect2>
+
+<sect2 id="writing">
+<title
+>Será que as tartarugas escrevem texto?</title>
+<para
+>A resposta é: <quote
+>sim</quote
+>. A tartaruga sabe escrever e pode escrever tudo o que lhe disser para escrever.</para>
+<sect3 id="print">
+ <title
+>print</title>
+ <variablelist>
+ <varlistentry
+>
+ <term
+>print</term>
+ <listitem
+><para
+><screen
+>print X</screen>
+O comando <userinput
+>print</userinput
+> é usado para dizer à tartaruga para escrever algo na área de desenho. O <userinput
+>print</userinput
+> recebe números e texto como parâmetros. Você poderá executar o <userinput
+>print</userinput
+> para vários parâmetros com o sinal <quote
+>+</quote
+>. Veja aqui um pequeno exemplo: <screen
+>ano = 2004
+autor = "Ze"
+print "O " + autor + " iniciou o projecto do KTurtle em " + ano + " e ainda continua a gostar de trabalhar nele!"
+</screen>
+ </para
+></listitem>
+ </varlistentry>
+ </variablelist>
+</sect3>
+<sect3 id="fontsize">
+ <title
+>fontsize</title>
+ <variablelist>
+ <varlistentry
+>
+ <term
+>fontsize</term>
+ <listitem
+><para
+><screen
+>fontsize X</screen>
+O <userinput
+>fontsize</userinput
+> configura o tamanho da letra que é usado pelo <userinput
+>print</userinput
+>. O <userinput
+>fontsize</userinput
+> recebe um parâmetros que deverá ser um número. O tamanho é definido em <glossterm linkend="pixels"
+>pixels</glossterm
+>.</para
+></listitem>
+ </varlistentry>
+ </variablelist>
+</sect3>
+</sect2>
+
+<sect2 id="random">
+<title
+>Um comando que joga aos dados por si</title>
+<para
+>Existe um comando que lança os dados para si, que se chama <userinput
+>random</userinput
+> e é muito útil para alguns resultados inesperados.</para>
+ <variablelist>
+ <varlistentry
+>
+ <term
+>random</term>
+ <listitem
+><para
+><screen
+>random X,Y</screen>
+O <userinput
+>random</userinput
+> é um comando que recebe parâmetros e devolve resultados. Como parâmetros são necessários dois números, em que 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>
+ repeat 500 [
+ x = random 1,20
+ forward x
+ turnleft 10 - x
+ ]
+ </screen
+> Com o comando 'random', você poderá adicionar um pouco de confusão ao seu programa.</para
+></listitem>
+ </varlistentry>
+ </variablelist>
+</sect2>
+
+<sect2 id="dialogs">
+<title
+>Entrada de dados e reacção através de janelas</title>
+<para
+>Uma janela poderá pedir alguma alguma reacção em especial ou a introdução de determinados dados. O &kturtle; tem dois comandos para janelas, nomeadamente o <userinput
+>message</userinput
+> e o <userinput
+>inputwindow</userinput
+></para>
+<sect3 id="message">
+ <title
+>message</title>
+ <variablelist>
+ <varlistentry
+>
+ <term
+>message</term>
+ <listitem
+><para
+><screen
+>message X</screen>
+O comando <userinput
+>message</userinput
+> recebe uma <link linkend="string"
+>cadeia de caracteres</link
+> à entrada. Mostra então uma janela que contém o texto da <link linkend="string"
+>cadeia de caracteres</link
+>. <screen
+>ano = 2004
+autor = "Ze"
+print "O " + autor + " iniciou o projecto do KTurtle em " + ano + " e ainda continua a gostar de trabalhar nele!"
+</screen>
+ </para
+></listitem>
+ </varlistentry>
+ </variablelist>
+</sect3>
+<sect3 id="inputwindow">
+ <title
+>inputwindow</title>
+ <variablelist>
+ <varlistentry
+>
+ <term
+>inputwindow</term>
+ <listitem
+><para
+><screen
+>inputwindow X</screen>
+O <userinput
+>inputwindow</userinput
+> recebe uma <link linkend="string"
+>cadeia de caracteres</link
+> à entrada. Mostra uma janela que contém o texto da cadeia de caracteres, tal como acontece no <link linkend="message"
+>message</link
+>. Contudo, para além disso, também mostra um campo de texto na janela. Através deste campo, o utilizador poderá introduzir um <link linkend="number"
+>número</link
+> ou uma <link linkend="string"
+>cadeia de caracteres</link
+> que poderá ser guardada num <link linkend="containers"
+>contentor</link
+>. Por exemplo <screen>
+in = inputwindow "Que idade tem?"
+out = 2003 - in
+print "Em 2003, você tinha " + out + " anos a dada altura."
+</screen
+> Quando um utilizador cancelar a janela ou não introduzir nada de todo, o <link linkend="containers"
+>contentor</link
+> fica vazio.</para
+></listitem>
+ </varlistentry>
+ </variablelist>
+</sect3>
+</sect2>
+
+</sect1>
+
+
+
+<sect1 id="containers">
+<title
+>Contentores</title>
+<para
+>Os contentores são letras ou palavras que podem ser usadas pelo programador para guardar algum número ou algum texto. Os contentores que contêm um número chamam-se <link linkend="variables"
+>variáveis</link
+>, enquanto que os que contêm texto chamam-se <link linkend="strings"
+>cadeias de caracteres</link
+>.</para>
+
+<para
+>Os contentores que não são usados não contêm nada. Por exemplo, um: <screen>
+print N
+</screen
+> Isto não irá imprimir nada. Se tentar fazer <link linkend="math"
+>operações matemáticas</link
+> com contentores vazios, irá obter erros. </para>
+
+<sect2 id="variables">
+<title
+>Variáveis: contentores de números</title>
+<para
+>Vamos começar com um exemplo: <screen>
+x = 3
+print x
+</screen
+> Na primeira linha, a letra <userinput
+>x</userinput
+> passou a ser uma variável (um contentor de números). Como poderá ver, o valor da variável <userinput
+>x</userinput
+> passou a 3. Na segunda linha, o valor é impresso.</para>
+<para
+>Lembre-se que, se quisesse imprimir um <quote
+>x</quote
+>, então deveria ser escrito <screen
+>print "x"
+</screen>
+</para>
+<para
+>Isso foi fácil, mas agora há um exemplo um pouco mais difícil: <screen>
+A = 2004
+B = 25
+C = A + B
+
+# o próximo comando imprime "2029"
+print C
+backward 30
+# o próximo comando imprime "2004 mais 25"
+print A + " mais " + B
+backward 30
+# o próximo comando imprime "1979"
+print A - B
+</screen
+> Nas duas primeiras linhas, as variáveis <userinput
+>A</userinput
+> e <userinput
+>B</userinput
+> são configuradas como sendo iguais a 2004 e 25. Na terceira linha, a variável <userinput
+>C</userinput
+> fica igual a <userinput
+>A + B</userinput
+>, o que dá 2029. O resto do exemplo consiste em 3 comandos <userinput
+>print</userinput
+> com <userinput
+>backward 30</userinput
+> no meio. O <userinput
+>backward 30</userinput
+> está lá para garantir que cada resultado fica numa linha diferente. Neste exemplo, você vê também que as variáveis podem ser usadas nos <link linkend="math"
+>cálculos matemáticos</link
+>.</para>
+</sect2>
+
+<sect2 id="strings">
+<title
+>Contentores de texto (cadeias de caracteres)</title>
+<para
+>No código do programa, o texto normal é iniciado e termina normalmente com aspas. Como já foi visto: <screen>
+print "Olá programador!"
+</screen
+> O texto fica delimitado com as aspas. Estes pedaços de texto normal são chamados então de <link linkend="strings"
+>cadeias de caracteres</link
+>.</para>
+<para
+>As cadeias de caracteres são bastante parecidas com as variáveis. A maior diferença é que as cadeias de caracteres não podem ser usadas em <link linkend="math"
+>cálculos matemáticos</link
+> e <link linkend="questions"
+>perguntas</link
+>. Um exemplo da utilização das cadeias de caracteres: <screen>
+x = "Olá "
+nome = inputwindow "por favor indique o seu nome..."
+print x + nome + ", como é que está?
+</screen
+> Na segunda linha, a cadeia de caracteres <userinput
+>x</userinput
+> fica igual a <quote
+>Olá </quote
+>. Na segunda linha, a cadeia de caracteres <userinput
+>nome</userinput
+> é configurada como o resultado do comando <userinput
+>inputwindow</userinput
+>. Na terceira linha, o programa imprime uma composição de três cadeias de caracteres na área de desenho.</para>
+<para
+>Este programa pede-lhe para introduzir o seu nome. Quando você, por exemplo, introduzir o nome <quote
+>Zé</quote
+>, o programa irá imprimir <quote
+>Olá Zé, como é que está?</quote
+>. Lembre-se que o sinal de mais (+) é o único símbolo matemático que você poderá usar com as cadeias de caracteres.</para>
+</sect2>
+</sect1>
+
+<sect1 id="math">
+<title
+>Será que a Tartaruga Pode Fazer Contas?</title>
+<para
+>Sim, o &kturtle; sabe fazer contas para si. Você poderá somar (+), subtrair (-), multiplicar (*) e dividir (/). Aqui está um exemplo no qual iremos usar todas as operações: <screen>
+a = 20 - 5
+b = 15 * 2
+c = 30 / 30
+d = 1 + 1
+print "a: "+a+", b: "+b+", c: "+c+", d: "+d
+</screen
+> Será que sabe o valor de 'a', 'b', 'c' e 'd'? Repare por favor no uso do símbolo <userinput
+>=</userinput
+> de <link linkend="assignment"
+>atribuição</link
+>.</para>
+<para
+>Se você somente queria fazer um cálculo simples, você poderá fazer algo semelhante a isto: <screen
+>print 2004-12
+</screen
+></para>
+<para
+>Agora, um exemplo com parêntesis: <screen>
+print ( ( 20 - 5 ) * 2 / 30 ) + 1
+</screen
+> O que estiver entre parêntesis 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).</para>
+</sect1>
+
+<sect1 id="questions">
+<title
+>Fazer perguntas, obter respostas...</title>
+<para
+>O <link linkend="if"
+><userinput
+>if</userinput
+></link
+> e o <link linkend="while"
+><userinput
+>while</userinput
+></link
+> são <link linkend="controlling-execution"
+>controladores de execução</link
+> que iremos discutir na próxima secção. Nesta secção iremos usar o comando <userinput
+>if</userinput
+> para explicar as perguntas.</para>
+<sect2 id="q">
+<title
+>Perguntas</title>
+<para
+>Um exemplo simples de perguntas: <screen>
+x = 6
+if x &gt; 5 [
+ print "olá"
+]
+</screen
+> Neste exemplo, a pergunta é <userinput
+>x &gt; 5</userinput
+>, se a resposta a esta pergunta for <quote
+>true</quote
+> (verdadeira), o código entre parêntesis rectos será executado. As perguntas são uma parte importante da programação e são usadas normalmente em conjunto com os <link linkend="controlling-execution"
+>controladores de execução</link
+>, como o <link linkend="if"
+><userinput
+>if</userinput
+></link
+>. Todos os números e <link linkend="variables"
+>variáveis</link
+> (contentores de números) poderão ser comparados uns com os outros nas perguntas.</para>
+<para
+>Aqui estão todas as perguntas possíveis: <table>
+<title
+>Tipos de perguntas</title>
+<tgroup cols="3">
+<tbody>
+<row>
+<entry
+><userinput
+>a == b</userinput
+></entry>
+<entry
+>igual a</entry>
+<entry
+>a resposta é <quote
+>true</quote
+> (verdadeira) se o <userinput
+>a</userinput
+> for igual ao <userinput
+>b</userinput
+></entry>
+</row>
+<row>
+<entry
+><userinput
+>a != b</userinput
+></entry>
+<entry
+>é diferente de</entry>
+<entry
+>a resposta é <quote
+>true</quote
+> (verdadeira) se o <userinput
+>a</userinput
+> não for igual ao <userinput
+>b</userinput
+></entry>
+</row>
+<row>
+<entry
+><userinput
+>a &gt; b</userinput
+></entry>
+<entry
+>maior que</entry>
+<entry
+>a resposta é <quote
+>true</quote
+> (verdadeira) se o <userinput
+>a</userinput
+> for maior que o <userinput
+>b</userinput
+></entry>
+</row>
+<row>
+<entry
+><userinput
+>a &lt; b</userinput
+></entry>
+<entry
+>menor que</entry>
+<entry
+>a resposta é <quote
+>true</quote
+> (verdadeira) se o <userinput
+>a</userinput
+> for menor que o <userinput
+>b</userinput
+></entry>
+</row>
+<row>
+<entry
+><userinput
+>a &gt;= b</userinput
+></entry>
+<entry
+>maior ou igual a</entry>
+<entry
+>a resposta é <quote
+>true</quote
+> (verdadeira) se o <userinput
+>a</userinput
+> for maior ou igual ao <userinput
+>b</userinput
+></entry>
+</row>
+<row>
+<entry
+><userinput
+>a &lt;= b</userinput
+></entry>
+<entry
+>menor ou igual a</entry>
+<entry
+>a resposta é <quote
+>true</quote
+> (verdadeira) se o <userinput
+>a</userinput
+> for menor ou igual ao <userinput
+>b</userinput
+></entry>
+</row>
+</tbody>
+</tgroup>
+</table>
+</para>
+<para
+>As perguntas ficam <glossterm
+>realçadas</glossterm
+> com azul claro no <link linkend="the-code-editor"
+>editor de código</link
+>.</para
+>
+</sect2>
+
+<sect2 id="question-glue">
+<title
+>Colagem de Perguntas</title>
+<para
+>As perguntas também podem ser coladas umas às outras com <quote
+>palavras de colagem de perguntas</quote
+> onde, desta forma, algumas perguntas tornam-se uma pergunta maior. <screen>
+a = 1
+b = 5
+if (a &lt; 5) and (b == 5) [
+ print "olá"
+]
+</screen
+> Neste exemplo, a palavra de colagem <userinput
+>and</userinput
+> é usada para colar 2 perguntas (<userinput
+>a &lt; 5</userinput
+>, <userinput
+>b == 5</userinput
+>) em conjunto. Se um lado do <userinput
+>and</userinput
+> der uma resposta <quote
+>false</quote
+> (falsa), a pergunta toda irá responder <quote
+>false</quote
+>, porque, com a palavra de colagem <userinput
+>and</userinput
+>, ambos os lados precisam de ser <quote
+>true</quote
+> para que a resposta seja <quote
+>true</quote
+> (verdadeira). Por favor não se esqueça de usar os parêntesis à volta das perguntas!</para>
+
+<para
+>Segue-se uma vista esquemática; pode encontrar uma explicação mais detalhada de seguida: <table>
+<title
+>Palavras de colagem de perguntas</title>
+<tgroup cols="2">
+<tbody>
+<row>
+<entry
+><userinput
+>and</userinput
+></entry>
+<entry
+>ambos os lados têm de ser <quote
+>true</quote
+> (verdadeiros) para a resposta ser <quote
+>true</quote
+> (verdadeira)</entry>
+</row>
+<row>
+<entry
+><userinput
+>or</userinput
+></entry>
+<entry
+>se um dos lados for <quote
+>true</quote
+> (verdadeiros) a resposta é <quote
+>true</quote
+> (verdadeira)</entry>
+</row>
+<row>
+<entry
+><userinput
+>not</userinput
+></entry>
+<entry
+>Caso especial: só funciona com uma pergunta! Muda o 'true' para 'false' e o 'false' para 'true'.</entry>
+</row>
+</tbody>
+</tgroup>
+</table>
+</para>
+<para
+>As palavras de colagem ficam <glossterm
+>realçadas</glossterm
+> a púrpura no <link linkend="the-code-editor"
+>editor de código</link
+>.</para>
+
+<sect3 id="and">
+<title
+>and</title>
+<para
+>Quando são coladas duas perguntas em conjunto com o <userinput
+>and</userinput
+>, ambos os lados do <userinput
+>and</userinput
+> terão ser 'true' para que o resultado também seja 'true' (verdadeiro). Por exemplo: <screen>
+a = 1
+b = 5
+if ((a &lt; 10) and (b == 5)) and (a &lt; b) [
+ print "olá"
+]
+</screen
+> Nestes exemplo, poderá ver uma pergunta colada a outra pergunta também colada.</para>
+</sect3>
+
+<sect3 id="or">
+<title
+>or</title>
+<para
+>Se uma das duas perguntas coladas em conjunto com o <userinput
+>or</userinput
+> for 'true' (verdadeira), o resultado será também 'true'. Por exemplo: <screen>
+a = 1
+b = 5
+if ((a &lt; 10) or (b == 10)) or (a == 0) [
+ print "olá"
+]
+</screen
+> Neste exemplo, irá ver uma pergunta colada a outra pergunta, também esta colada.</para>
+</sect3>
+
+<sect3 id="not">
+<title
+>not</title>
+<para
+>O <userinput
+>not</userinput
+> é uma palavra de colagem de perguntas especial que só funciona para uma pergunta de cada vez. O <userinput
+>not</userinput
+> muda o 'true' para 'false' e o 'false' para 'true'. Por exemplo: <screen>
+a = 1
+b = 5
+if not ((a &lt; 10) and (b == 5)) [
+ print "olá"
+]
+else
+[
+ print "não olá ;-)"
+]
+</screen
+> Neste exemplo, a pergunta colada é igual a 'true', embora o <userinput
+>not</userinput
+> a mude para 'false'. Como tal, no fim, será impresso o <userinput
+>"não olá ;-)"</userinput
+> na <link linkend="the-canvas"
+>área de desenho</link
+>.</para>
+</sect3>
+
+</sect2>
+
+</sect1>
+
+<sect1 id="controlling-execution">
+<title
+>Controlar a execução</title>
+<para
+>Os controladores de execução permitem-lhe &mdash; como o nome deles indica &mdash; controlar a execução.</para>
+<para
+>Os comandos de controlo da execução ficam <glossterm
+>realçados</glossterm
+> a verde escuro e a negrito. Os parêntesis rectos, que são mais usados em conjunto com os controladores de execução, ficam <glossterm
+>realçados</glossterm
+> a verde claro.</para>
+
+<sect2 id="wait">
+<title
+>Fazer a tartaruga esperar</title>
+<para
+>Se já tentou programar um pouco no &kturtle;, você já poderá ter reparado que a tartaruga pode ser bastante rápida a desenhar. Este comando faz a tartaruga andar um pouco mais devagar.</para>
+ <variablelist>
+ <varlistentry>
+ <term
+>wait</term>
+ <listitem
+><para
+><screen
+>wait X</screen>
+O <userinput
+>wait</userinput
+> faz a tartaruga esperar X segundos. <screen>
+repeat 36 [
+ forward 5
+ turnright 10
+ wait 0.5
+]
+</screen
+> 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
+></listitem>
+ </varlistentry>
+ </variablelist>
+</sect2>
+
+<sect2 id="if">
+<title
+>Executar o "if"</title>
+ <variablelist>
+ <varlistentry>
+ <term
+>if</term>
+ <listitem
+><para
+><screen
+>if <link linkend="questions"
+>pergunta</link
+> [ ... ]</screen>
+O código que é colocado no <quote
+>...</quote
+> só será executado se (<userinput
+>if</userinput
+>) a resposta à <link linkend="questions"
+>pergunta</link
+> for <quote
+>true</quote
+> (verdadeira). Por favor leia, para obter mais informações sobre perguntas, a <link linkend="questions"
+>secção de perguntas</link
+>. <screen>
+x = 6
+if x &gt; 5 [
+ print "O x é maior que cinco!"
+]
+</screen
+> Na primeira linha, o <userinput
+>x</userinput
+> é inicializado a 6. Na segunda linha, a <link linkend="questions"
+>pergunta</link
+> <userinput
+>x &gt; 5</userinput
+> é feita. Dado que a resposta a esta pergunta é verdadeira, o controlador de execução <userinput
+>if</userinput
+> irá permitir que o código entre parêntesis rectos seja executado</para
+></listitem>
+ </varlistentry>
+ </variablelist>
+</sect2>
+
+<sect2 id="while">
+<title
+>O ciclo "while"</title>
+ <variablelist>
+ <varlistentry>
+ <term
+>while</term>
+ <listitem
+><para
+><screen
+>while <link linkend="questions"
+>pergunta</link
+> [ ... ]</screen>
+O controlador de execução <userinput
+>while</userinput
+> é um pouco como o <link linkend="if"
+><userinput
+>if</userinput
+></link
+>. A diferença é que o <userinput
+>while</userinput
+> continua a repetir o código entre parêntesis até que a resposta à <link linkend="questions"
+>pergunta</link
+> seja <quote
+>false</quote
+> (falsa). <screen>
+x = 1
+while x &lt; 5 [
+ forward 10
+ wait 1
+ x = x + 1
+]
+</screen
+> Na primeira linha, o <userinput
+>x</userinput
+> fica igual a 1. Na segunda, a <link linkend="questions"
+>pergunta</link
+> <userinput
+>x &lt; 5</userinput
+> é feita. Dado que a resposta a esta pergunta é <quote
+>true</quote
+> (verdadeira), o controlador de execução <userinput
+>while</userinput
+> começa a execução do código entre parêntesis até que a resposta à <link linkend="questions"
+>pergunta</link
+> seja <quote
+>false</quote
+> (falsa). Neste caso, o código entre parêntesis será executado 4 vezes, dado que, de cada vez que a quinta linha é executada, o <userinput
+>x</userinput
+> fica um número acima.</para
+></listitem>
+ </varlistentry>
+ </variablelist>
+</sect2>
+
+<sect2 id="else">
+<title
+>Se não, por outras palavras: "else"</title>
+ <variablelist>
+ <varlistentry>
+ <term
+>else</term>
+ <listitem
+><para
+><screen
+>if pergunta [ ... ] else [ ... ]</screen>
+O <userinput
+>else</userinput
+> pode ser usado para além do controlador de execução <link linkend="if"
+><userinput
+>if</userinput
+></link
+>. O código entre parêntesis a seguir ao <userinput
+>else</userinput
+> só é executado se a resposta à <link linkend="questions"
+>pergunta</link
+> que é feita for <quote
+>false</quote
+> (falsa). <screen>
+x = 4
+if x &gt; 5 [
+ print "O x é maior que cinco!"
+] else [
+ print "O x é menor que seis!"
+]
+</screen
+> A <link linkend="questions"
+>pergunta</link
+> testa se o <userinput
+>x</userinput
+> é maior que 5. Dado que o <userinput
+>x</userinput
+> fica igual a 4 na primeira linha, a resposta à pergunta é <quote
+>false</quote
+> (falsa). Isto significa que o código entre parêntesis a seguir ao <userinput
+>else</userinput
+> é executado.</para
+></listitem>
+ </varlistentry>
+ </variablelist>
+</sect2>
+
+<sect2 id="for">
+<title
+>O ciclo "for", um ciclo de contagem</title>
+ <variablelist>
+ <varlistentry>
+ <term
+>for</term>
+ <listitem
+><para
+><screen
+>for <userinput
+>ponto inicial</userinput
+> a <userinput
+>ponto final</userinput
+> [ ... ]</screen>
+O ciclo <userinput
+>for</userinput
+> é um <quote
+>ciclo de contagem</quote
+>, ou seja, faz de contador para si. <screen>
+for x = 1 to 10 [
+ print x * 7
+ forward 15
+]
+</screen
+> De cada vez que o código entre parêntesis é executado, o <userinput
+>x</userinput
+> é incrementado de uma unidade, até que o valor do <userinput
+>x</userinput
+> chegue a 10. O código entre parêntesis imprime o valor de <userinput
+>x</userinput
+> multiplicado por 7. Depois de este programa terminar a sua execução, você irá ver a tabuada dos 7 na área de desenho.</para
+></listitem>
+ </varlistentry>
+ </variablelist>
+</sect2>
+
+</sect1>
+
+
+<sect1 id="learn">
+<title
+>Crie os seus próprios comandos com o <quote
+>learn</quote
+></title>
+<para
+>O <userinput
+>learn</userinput
+> é um comando muito especial, porque é usado para criar os seus próprios comandos. O comando que criar poderá receber <glossterm linkend="input-output"
+>parâmetros</glossterm
+> e devolver <glossterm linkend="input-output"
+>resultados</glossterm
+>. Vamos ver como é que é criado um novo comando. <screen>
+learn circunferencia x [
+ repeat 36 [
+ forward x
+ turnleft 10
+ ]
+]
+</screen
+> O novo comando chama-se <userinput
+>circunferencia</userinput
+>. O <userinput
+>circunferencia</userinput
+> recebe um <glossterm linkend="input-output"
+>parâmetro</glossterm
+>, um número, para definir o tamanho da circunferência. O <userinput
+>circunferencia</userinput
+> não devolve nenhum <glossterm linkend="input-output"
+>resultado</glossterm
+>. O comando <userinput
+>circunferencia</userinput
+> pode agora ser usado como um comando normal. Veja este exemplo: <screen
+>learn circunferencia X [
+ repeat 36 [
+ forward X
+ turnleft 10
+ ]
+]
+
+go 30,30
+circunferencia 20
+
+go 40,40
+circunferencia 50
+</screen>
+</para>
+<para
+>No próximo exemplo, vai ser criado um comando com um valor de resultado devolvido. <screen>
+learn multiplicarPeloProprio n [
+ r = n * 1
+ r = n * n
+ return r
+]
+i = inputwindow "Por favor indique um número e carregue em OK"
+print "O " + i + " multiplicado por ele próprio é igual a: " + multiplicarPeloProprio i
+</screen
+> Neste exemplo, existe agora um comando novo chamado <userinput
+>multiplicarPeloProprio</userinput
+>. O parâmetro deste comando é multiplicado por ele próprio e é então devolvido, usando o comando <anchor id="return"/><userinput
+>return</userinput
+>. O comando <userinput
+>return</userinput
+> é a forma de devolver um resultado de uma função criada. </para>
+</sect1>
+
+</chapter>