diff options
Diffstat (limited to 'tde-i18n-pt/docs/kdeedu/kturtle/programming-reference.docbook')
-rw-r--r-- | tde-i18n-pt/docs/kdeedu/kturtle/programming-reference.docbook | 1724 |
1 files changed, 0 insertions, 1724 deletions
diff --git a/tde-i18n-pt/docs/kdeedu/kturtle/programming-reference.docbook b/tde-i18n-pt/docs/kdeedu/kturtle/programming-reference.docbook deleted file mode 100644 index a075038a995..00000000000 --- a/tde-i18n-pt/docs/kdeedu/kturtle/programming-reference.docbook +++ /dev/null @@ -1,1724 +0,0 @@ -<!--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 > 5 [ - print "olá" -] -</screen -> Neste exemplo, a pergunta é <userinput ->x > 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 > 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 < 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 >= 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 <= 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 < 5) and (b == 5) [ - print "olá" -] -</screen -> Neste exemplo, a palavra de colagem <userinput ->and</userinput -> é usada para colar 2 perguntas (<userinput ->a < 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 < 10) and (b == 5)) and (a < 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 < 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 < 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 — como o nome deles indica — 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 > 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 > 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 < 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 < 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 > 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> |