Você está na página 1de 42

Contedo

A Interface:

A janela principal O editor de procedimentos

Os Menus:

Tempo e data Uso de Rede Exemplos de programas


Menu "Arquivo'' Menu "Edio'' Menu "Ferramentas'' Menu "Ajuda'' Comandos e a interpretao Procedimentos O caracter especial \ Caixa alta Operadores e sintaxe As cores Mover Tat; configurar fonte, lpis e cor

Desenhar casas Desenhar um retngulo preenchido Fatorial O floco de neve Um pouco de escrita... ...E conjugao

Convenes Adotadas no XLOGO


Primeira verso Segunda tentativa Ou ainda: Um pequena recurso !

Uso de Primitivas

Tat no Espao

Tudo sobre cores

Primitivas mostre e escreva Operaes aritmticas e de lgica

Introduo Vamos praticar! E se voc desejar um negativo??

Operaes com listas

Booleanos

Um bom exemplo de uso de listas Uma linda roscea

Testar uma Expresso

Lidar com procedimentos e variveis Acessar arquivos Funes pinte e pintezona

Instalar/Desinstalar e Atualizar Lista de Primitivas Sobre esse documento ...

PreenchaPolgono

Comandos de parada Loops (Laos) Modo Tartarugas Mltiplas Tocar msica Receber entrada (input) do usurio

Interao pelo teclado Interao pelo mouse (rato) Interao por IG

ltima atualizao: 28/fev/2010

Interface Subsees

A janela principal O editor de procedimentos

Janela Principal No topo encontra-se os menus de costume: Arquivo Edio Ferramentas e Ajuda Logo abaixo aparece a linha de comando, onde escreve-se os comandos (instrues). Para a instruo ser executada basta dar "enter". No meio temos a rea de desenho. Na parte de baixo encontra-se o histrico de comandos. Ele mostra os comandos j executados bem como as respectivas respostas. Eventuais mensagens de erro aparecem em vermelho. Para chamar um comando j executado basta clicar nele no histrico de comandos, ou usar as setas de teclado (para baixo e para cima) na linha de comando. No canto direito inferior h dois botes: Editor e Pare. PARE interrompe a execuo do programa e EDITOR abre a janela do editor de procedimentos.

Figura 1: A janela principal do xLogo

Editor de Procedimentos H trs modos de abrir o editor:

Escrever ed na linha de comandos (na parte superior da tela). O editor abre para exibir todos os procedimentos j definidos. Se desejar editar apenas alguns dos procedimentos, escreva:: ed [procedimento_1 procedimento_2 ... Pressionar o boto Editor no canto inferior direito da janela do XLOGO. Usar as teclas de atalho: Alt+E

Esses so os botes que voc encontrar no Editor: Fecha o editor e guarda (salva) o que foi feito. Esse o boto que deve ser pressionado sempre que escrever novos comandos ou fizer alteraes nos procedimentos. Se preferir, use as teclas de atalho ALT+Q. Nas verses mais recentes do xLogo, a figura mostrada a roupa da tat em uso. Sai do editor sem salvar nenhuma das mudanas feitas. Voc tambm pode usar as teclas de atalho ALT+C. Imprime o contedo do editor. Copia o texto selecionado para o clipboard Esse boto aparece na base do editor com uma caixa de texto para definir um comando principal, ou seja, o comando que ser executado ao clicarmos no boto correspondente da janela principal. Esse comando principal ser salvo junto com o arquivo .lgo. Recorta o texto selecionado para o clipboard

ou

Cola o texto armazenado no clipboard Localiza e substitui termos no editor

IMPORTANTE: Note que clicar no boto de fechar (x) no canto direito superior (janela de ttulo) no far efeito algum! Somente os dois primeiros botes citados acima que permitem sair do editor.

Para apagar (eliminar) procedimentos, use as primitivas elimine e eliminetudo (et).

Figura 2: A janela do Editor de Procedimentos Desde a verso 0.9.93 o cone do pinguim foi substitudo por um tringulo (o mesmo usado para representar a Tat em diversos programas de linguagem Logo).

Menus Subsees Menu "Arquivo" Menu "Edio" Menu "Ferramentas" Menu "Ajuda"

Menu Arquivo

Arquivo -> Abrir: para abrir (carregar) algum arquivo logo j existente. Arquivo -> Guardar: guarda os procedimentos do arquivo em uso. Arquivo -> Guardar como ...: Pode ser usado para guardar (salvar) os procedimentos atuais em um arquivo com outro nome. Arquivo -> Sair: sai (fecha) o xLogo. Arquivo -> Capturar imagem -> Guardar imagem como... : permite guardar o desenho exibido na tela do XLOGO como uma imagem nos formatos jpg ou png. Se desejar gravar somente uma parte do desenho, use o mouse conforme as intrues que aparecero numa caixa de dilogo (um clique no canto superior esquerdo, outro clique no canto inferior direito). Arquivo -> Capturar imagem -> Imprimir imagem: Imprime o desenho exibido na tela do xLogo. Tambm possvel imprimir somente parte do desenho da mesma forma descrita acima.

Menu Edio

Edio -> Copiar: copia o texto selecionado para o clipboard. Edio -> Recortar: recorta o texto selecionado para o clipboard. Edio -> Colar: cola na linha de comando o texto armazenado no clipboard.

Menu Ferramentas Ferramentas -> Mudar cor do lpis: escolha uma cor para o lpis da tartaruga. Tambm possvel faz-lo com o comando mudecl. Ferramentas -> Mudar cor do fundo: escolha uma cor para o fundo da tela. Tambm possvel faz-lo com o comando mudecf. Ferramentas -> Arquivo inicial: Informe o caminho para os arquivos de inicializao. Qualquer procedimento contido em arquivos no formato *.lgo se tornaro "pseudo-primitivas'' para o xLogo (algo como os procedimentos de biblioteca do SuperLogo ou MSWLogo). Elas no podero ser editadas ou alteradas pelo usurio. Desse modo voc pode criar primitivas personalizadas. Ferramentas -> Traduzir procedimentos: Traduza automaticamente qualquer procedimento de um idioma para outro. Pode ser til, por exemplo, ao copiar na internet algum projeto em outro idioma. Ferramentas -> Apaga procedimentos: Escolha que procedimentos deseja eliminar. Veja a primitiva elimine. Ferramentas -> Preferncias: Abre uma caixa de dilogo na qual voc pode configurar vrias coisas: Idioma : escolha entre Francs, Espanhol, Ingls ou Portugus. Note que as primitivas so diferentes em cada idioma. Aparncia: Escolha uma aparncia para o seu XLogo. Metal, Windows e Motif so as opes. Velocidade da Tartaruga. Se desejar ver todos os movimentos da Tat, voc pode torn-la mais lenta usando a barra deslizante. Na segunda aba, voc pode escolher uma "roupa" para a Tat (uma figura para a tartaruga). Nas abas seguintes, pode-se controlar nmero de tartarugas, estilo do lpis, instrumentos de som (mudeinstrumento nmero) e fonte (tipo e tamanho).

Menu Ajuda Menu -> Licena: exibe a licena pblica geral (GPL) sob a qual esse programa distribudo. Menu -> Traduo da Licena: exibe uma traduo da licena acima. Essa traduo no oficial (apenas a verso em ingls o ) e est aqui apenas para ajudar no entendimento. Menu -> Traduza o xLogo: Ajude a traduzir o xLogo. O arquivo gerado deve ser enviado para ns. Menu - > Sobre...: O de sempre ....e o endereo http://xlogo.tuxfamily.org para o marcador do seu navegador (bookmarks) !! o:)

Convenes Adotadas Essa seo aborda alguns pontos essenciais da linguagem LOGO, e tambm do xLogo. Subsees Comandos e a interpretao Procedimentos O caracter Especial "\" Caixa alta Operadores e sintaxe Uso de Cores

Comandos e sua Interpretao A linguagem LOGO permite que certos eventos sejam disparado por comandos internos - esses comandos so chamados primitivas. Cada primitiva pode ter um certo nmero de parmetros os quais so chamados argumentos. Por exemplo, a primitiva ld, que limpa a tela de desenho, no exige nenhum argumento, enquanto que a primitiva soma exige dois argumentos. mostre soma 2 3 retornar 5. Os argumentos no LOGO so de trs tipos:

Nmeros: algumas primitivas exigem nmeros como argumento: pf 100 um exemplo. Palavras: So marcadas pela inicial ". Um exemplo de primitiva com argumento a mostre. mostre "Ol devolve Ol. Note que se voc esquecer o ", o interpretador retornar uma mensagem de erro. De fato, mostre espera um argumento, ou para o interpretador, Ol no significar nada, uma vez que no um nmero, uma palavra, uma lista, ou qualquer outra coisa definida em um procedimento.

Listas: So definidas entre colchetes. Nmeros so tratados em algumas instncias como um valor numrico (por exemplo: pf 100), e em outras, como uma palavra (por exemplo: mostre vazio? 12 escrever falso).

Procedimentos Alm das primitivas j existentes, voc pode criar seus prprios comandos. Eles so chamados procedimentos. Procedimentos comeam pela palavra aprenda e terminam com a palavra fim. Eles podem ser criados usando o editor interno do XLOGO (clique no boto "Editor" no canto direito inferior do programa). Eis um exemplo simples: aprenda quadrado repita 4[parafrente 100 paradireita 90] fim Agora, escreva a palavra quadrado na caixa de comandos e d enter. A Tat desenha um quadrado. Os procedimentos tambm podem trabalhar com argumentos. Para isso, usamos variveis. Uma varivel uma palavra que pode assumir um valor. Eis um exemplo simples: aprenda dobro :palavra mostre :palavra mostre :palavra fim dobro [1 2 3] -----> 1 2 3 123 dobro "viva -----> viva viva dobro [viva a vida] -----> viva a vida viva a vida Veja outros exemplos de procedimentos nesse manual.

O Caracter Especial "\" O caracter \ (barra invertida ou "backslash") permite em particular colocar espao entre palavras ou ainda uma nova linha. \n faz a quebra de linha enquanto que \ seguido de um espao indica espao numa palavra. Exemplo: mo "xlogo\ xlogo xlogo xlogo mo "xlogo\nxlogo xlogo xlogo Se desejar escrever o caracter \ser necessrio escrev-lo duas vezes (\\). mo "\\xlogo \xlogo mo "\\ \ Da mesma forma, os caracteres ( ) [ ] # so reservados para a linguagem Logo, sendo assim, se necessitar represent-los bastar colocar um caractere \ antes. mo "\(xlogo\) (xlogo) Todos os caracteres \ so ignorados. Este aspecto especialmente importante em particular para o gerenciamento de arquivos. Exemplo no Windows: Para definir (mudar) o diretrio atual para C:\Meus Documentos, escreva: mudediretrio "c:\\Meus\ Documentos Exemplo no Linux: Para definir (mudar) o diretrio atual para /local/aluno/Meus Documentos, escreva: mudediretrio "/local/aluno/Meus\ Documentos Note o uso do \ para indicar o espao entre Meus e Documentos . No exemplo do Windows, se voc omitisse a dupla barra invertida, o caminho seria definido como c:Meus Documentos e o xLogo devolveria uma mensagem de erro (diretrio invlido).

Caixa Alta XLOGO no faz distino entre maisculas e minsculas para procedimentos e primitivas. Assim, no procedimento quadrado, definido anteriormente, tanto faz escrever QUADRADO ou qUADdRAdO, o interpretador de comandos o "traduzir" e executar corretamente. Por outro lado, XLOGO faz distino para listas e palavras: mostre "BelEzA ----> "BelEzA (as letras maisculas e minsculas so mantidas como escritas)

Operadores e Sintaxe H dois modos de escrever certos comandos. Por exemplo, para somar 4 e 7, h duas possibilidades: voc tanto pode usar a primitiva soma que exige dois argumentos: soma 4 7, ou voc pode usar o operador +: 4+7. Ambos tm o mesmo efeito. A tabela abaixo mostra a equivalncia entre operadores e primitivas: soma + diferena produto * quociente / ou | e &
3=4 e 7=49/7 3=4 & 7=49/7

so iguais? =
3+4 = 7-1

soma 4 7 diferena 4 7 produto 4 7 quociente 4 7 3=4 ou (7 <= 49/7) 4 + 7 4 + 7 4 + 7 4 / 7 3=4 | (7 <= 49/7)

Os operadores | e & so especficos do xLogo. Eles no existem nas verses tradicionais de LOGO. Desde a verso 0.9.92 temos dois novos operadores (sem primitivas associadas): <= ("menor que") >= ("maior que") Eis alguns exemplos de seus usos: mo 3+4=7-1 ----> verd mo 3=4 | ( 7 <= 49/7 ) ----> verd mo 3=4 & 7=49/7 ----> falso

Uso de Cores As cores so definidas no XLogo com a ajuda de 3 nmeros entre 0 e 255. Esse o sistema de cdigo RGB (Red, Green, Blue). Cada nmero corresponde respectivamente a uma intensidade de vermelho (Red), de verde (Green) e de azul (Blue) para a cor considerada. Uma vez que esse sistema no intuitivo o XLogo proporciona 16 cores pr-definidas acessveis por um nmero ou um nome: nmero primitiva 0 1 2 3 4 5 6 7 8 preto vermelho verde amarelo azul magenta ciano [R G B] [0 0 0] [255 0 0] [0 255 0] [255 255 0] [0 0 255] [255 0 255] [0 255 255] Cor nmero 9 10 11 12 13 14 15 16 primitiva cinzaclaro vermelhoescuro verdeescuro azulescuro laranja rosa violeta marrom [R G B] [192 192 192] [128 0 0] [0 128 0] [0 0 128] [255 200 0] [255 175 175] [128 0 255] [153 102 0] Cor

branco [255 255 255] cinza [128 128 128]

# Eis trs comandos que daro o mesmo efeito. mudecf laranja mudecf 13 mudecf [255 200 0] Note que o nome da cor (laranja) ou seu nmero (13) no precedido de aspa.

Primitivas A tartaruga ("Tat") controlada por comandos chamados "primitivas". Elas so apresentadas nas sees a seguir: Subsees

Movimento da Tat; configuraes de fonte, lpis e cor Tat no Espao

Loops

Um cubo e algo mais


Um loop com repita Um loop com para Um loop com enquanto

Primitivas mostre e escreva Aritmtica e operaes lgicas Operaes com listas Booleanos Testar uma Expresso Lidar com procedimentos e variveis Acesso a arquivos Funo pinte e pintezona Comandos de parada

Modo Tartarugas Mltiplas Tocar msica Receber entrada (input) do usurio


Interao com teclado e exemplos Interao com mouse e exemplos

Tempo e data Uso de Rede


Como usar As primitivas de Rede

Movimento da Tat e Configuraes Nesta primeira tabela voc encontra as primitivas que coordenam os movimentos da tartaruga. Primitivas paradireita, pd Argumentos n: ngulo Uso Gira a Tat n graus para a direita em relao direo que ela aponta. Gira a Tat n graus para a esquerda em relao direo que ela aponta.

paraesquerda, pe n:ngulo parafrente, pf paratrs, pt arco

n: nmero de passos Move a Tat para frente n passos na direo que ela est apontando. n: nmero de passos Move a Tat para trs n passos na direo que ela est apontando. pif arco a b c desenha um arco de crculo de p passos ao redor da Tat entre os ngulos i (inicial) e f (final) dela (a Tat o centro do crculo). Exemplo: arco 200 20 80 Carrega uma imagem na tela do XLogo. A posio da Tat ser o canto superior esquerda da imagem. So aceitas apenas imagens .png e .jpg. O caminho no pode conter espaos e ser absoluto (no relativo), ou seja, tem que ser completo desde o topo da rvore. Por exemplo: carimg [ C:\\diretrio_das_minhas_imagens\turtle.jpg] Coloca a Tat na posio inicial, isto , na origem (coordenadas [0 0]) e com direo 0 grau (aponta para cima na tela). Desenha um crculo de raio R (a Tat o centro do crculo). Orienta a tartaruga para a direo especificada. 0 (zero) corresponde a Tat apontado para cima na tela. A orientao da tartaruga corresponde aos valores lidos em um transferidor. Move a Tat para as coordenadas especificadas pelos dois nmeros na lista (x especifica o eixo x, e y o eixo y) Move a Tat horizontalmente para o ponto x no eixo x Idntica a mudepos [x y] (a diferena que os valores no esto em uma lista, ou seja, no esto entre colchetes). Move a Tat verticalmente para o ponto y no eixo y Coloca um ponto nas coordenadas indicadas. Desenha uma palavra ou lista a partir da posio da Tat na mesma orientao (V. mudedireo). Por exemplo: rotule [Que beleza!] escrever a sentena "Que beleza!" onde quer a Tat esteja. Retorna o comprimento (em passos de tartaruga) necessrio para escrever a palavra ou a lista desejada na rea de desenho usando a fonte selecionada.

carregueimagem, carimg

a: lista

centro crculo, circ mudedireo, muded mudepos mudex mudexy mudey ponto rotule

nenhum R: raio

n: orientao [x y]: lista com 2 nmeros x: eixo x x y: abscissa x seguida pela ordenada y y: eixo y a: lista a: palavra ou lista

tamanhorotule, tr

a: palavra ou lista

Esta segunda tabela mostra as primitivas que ajustam as propriedades da Tat. Por exemplo, a tartaruga est visvel na tela? Que cor est em uso pelo lpis? Primitivas animado Argumentos verd ou falso Uso Passa ao modo animado. A Tat no desenha mais na rea grfica, apenas na memria. Para transferir o desenho para a tela, utilize a primitiva "veranimado". Muito til para criar animaes ou desenhar mais rapidamente. A Tat confinada rea de desenho. Aparecer uma mensagem de erro se a Tat for movida para alm do campo de desenho e o informar o nmero mximo de passos que a Tat ainda pode dar at o limite de sua rea.

cercar

nenhum

comlimite cordofundo, cf cordolpis, cl cordoponto, cdp direo, d direopara, dpara distncia, dist eixo eixox eixoy eixo? eixox? eixoy? escondetat, dt fonte grade grade? invertelpis, il lpispinta, lp limpedesenho, ld lt, limpetexto mensagem, msg mostretat, at mudecordoeixo mudecordofundo, mudecf

nenhum a: lista a: lista a: lista nenhum a: lista

A Tat no pode ultrapassar o campo de viso na tela, ela reaparece no lado oposto! Informa a cor de fundo (da tela). A cor indicada por uma lista [r g b] em que r "vermelho", g "verde" e b "azul". Informa a cor do lpis em uso. A cor indicada por uma lista [r g b] em que r "vermelho", g "verde" e b "azul". Informa a cor do pixel no ponto a. A cor indicada por uma lista [r g b] em que r "vermelho", g "verde" e b "azul". Informa a direo da Tat (confira mudedireo) A lista deve conter dois nmeros (coordenadas). Informa o valor a ser usado por mudedireo para que a Tat aponte para as coordenadas indicadas nessa lista. A lista deve conter dois nmeros representando as coordenadas. Informa o nmero de passos entre a posio atual e a indicada pelas coordenadas na lista. Traa dois eixos com espaamento n (passos de tartaruga). Contrrio de semeixo. Traa eixo horizontal com espaamento n (passos de tartaruga). Exemplo: eixox 30 Traa eixo vertical com espaamento n (passos de tartaruga).

a: lista n: inteiro n: inteiro n: inteiro nenhum nenhum nenhum nenhum nenhum ab nenhum nenhum nenhum nenhum nenhum a: lista nenhum

Informa verd (o eixo est em exibio) ou falso

Torna a Tat invisvel na tela. Devolve o tamanho da fonte a usar pela primitiva rotule. Exibe uma grade na rea de desenho com quadrculas de largura a e altura b. Para remov-la, use semgrade. Exemplo: grade 10 10 Devolve verd (a grade est em exibio) ou falso (a grade no est em exibio). A Tat usa lpis no modo inverso, isto , risca onde no tiver nada e apaga se j tiver. A Tat usa lpis a riscar com sua cor clssica (preta). Limpa todos os desenhos na tela e restaura a Tat (coloca-a no centro). Limpa (apaga) tudo que estiver escrito na linha de comandos e no histrico. Exibe uma caixa de dilogo com a mensagem escrita na lista. O programa interrompido at que o usurio clique no boto "OK" Torna a Tat visvel na tela.
Muda a cor do eixo segundo a conveno de cores abaixo (mudecordofundo): mudecordoeixo [125 64 23] eixo 30 0: preto, 1: vermelho, 2: verde, 3: amarelo, 4: azul, 5: magenta, 6: ciano,7: branco. Para valores acima de 7, a escala de cores se repete. Muda a cor da grade (veja acima, em mudecordofundo, para a conveno de cores). Exemplo: grade 30 30 mudecordagrade [125 64 23] Muda a cor do lpis. (mesma conveno de mudecordofundo)

a: nmero inteiro ou lista [verm verde mudecordagrade, mudecdg azul] mudecordolpis, mudecl

mudeespessuradolpis, mudeel mudefonte, mudef mudenomefonte, mudenf

n: nmero

Define a espessura (grossura) do lpis em pixels. O valor padro 1. A ponta do lpis um quadrado. (Pode ser alterado para circular no menu Ferramentas, Preferncias) Ao usar a primitiva rotule para escrever na rea de desenho, possvel modificar o tamanho da fonte com mudefonte. O tamanho padro da fonte 12. Escolha um nmero de fonte a usar pela primitiva rotule. A equivalncia entre nmero e tipo de fonte est no Menu -> Ferramentas -> Preferncias -> Guia Fonte. Altera a ponta do lpis. 0 (quadrada) e 1 (redonda). Altera a qualidade do desenho. 0 (normal), 1 (alta) e 2 (baixa). Escolha sua Tat preferida na segunda guia do menu FerramentasPreferncias.... Ou ainda,use a primitiva muderoupa com nmeros entre 0 e 6 (0 um tringulo). Determine a proporo entre a janela de desenho e a janela de histrico de comandos. O nmero a um valor entre 0 e 1. Se valer 1, a janela de desenho ocupar toda a rea. Se valer 0, a janela de histrico que ocupar toda a rea. Altera as dimenses da rea de desenho. Exemplo mudetamanhodajanela [650 850]. Devolve uma lista com dois elementos. O primeiro o nmero que corresponde fonte em uso; o ltimo uma lista contendo nome da fonte. Interrompe o modo animado (veja essa primitiva), volta ao modo clssico. A Tat volta a desenhar na rea grfica, apenas na memria. A animao tambm pode ser interrompida clicando na figura de cmara que aparece esquerda da janela de comandos j escritos. Informa a forma da ponta do lpis. 0 (quadrada) e 1 (redonda). Informa a posio da Tat. Por exemplo: pos devolve [10 -100] Devolve a qualidade do desenho. 0 (normal), 1 (alta) e 2 (baixa). Informa o nmero que representa a roupa da Tat. Elimina o(s) eixo(s) da rea de desenho criado(s) por eixo, eixox ou eixoy. Exemplo: eixo 30 Elimina a grade da rea de desenho. Experimente grade 10 10 A Tat pode ultrapassar o campo de viso da tela. Devolve a proporo entre as janelas de desenho e de histrico de comandos. Devolve uma lista informando as dimenses da rea de desenho. Devolve uma lista formada pelas coordenadas do canto superior esquerdo da rea de desenho e do canto direito inferior. A Tat apagar o que ela encontrar ao passar por cima. A Tat riscar a tela ao se mover. A Tat no riscar a tela ao se mover. No modo animado, a imagem ser atualizada na rea grfica. Devolve o fator de zoom usado na rea de desenho Amplia (ou reduz) a rea de desenho de acordo com o fator a escolhido. Exemplo: mudezoom 2.5

n: nmero

n: nmero

mudepontadolpis, mudepl 0 ou 1 mudequalidadedaimagem, mudeqi muderoupa 0 ou 1 ou 2 n: nmero

mudeseparao mudetamanhodajanela, mudetamjan nomefonte

a: nmero

lista nenhum

pareanimado

nenhum

pontadolpis, pl pos qualidadedaimagem, qi roupa semeixo semgrade semlimite separao tamanhodajanela, tamjan tamanhojanela, tj useborracha, ub uselpis, ul usenada, un veranimado zoom mudezoom

nenhum nenhum nenhum nenhum nenhum nenhum nenhum a: nmero nenhum nenhum nenhum nenhum nenhum nenhum nenhum a

Tat no Espao Desde a verso 0.9.92, a Tat pode escapar-se do plano para deslocar-se no espao. Para isto, utiliza-se a primitiva perspectiva (ou logo3d). Bem-vindo ao mundo da perspectiva 3D! A Tcnica da Perspectiva

Para representar o espao em trs dimenses quanto temos apenas duas (um plano), fazemos uso da perspectiva de projeo. Uma cmara observa a cena 3D e a viso projetada sobre um plano intermedirio. Ao lado, um esquema dessa situao:

Figura 3: Tcnica da Perspectiva Certas primitivas nos permitem posicionar a cmara ao nosso modo, a tela de projeo situada numa distncia igual metade da distncia cmara-origem do marcador. No plano, a direo da Tat est definida apenas para onde aponta seu "nariz". No espao, a orientao da Tat dada por 3 valores de ngulos: (1) Rolagem (Roulis ou Roll): Giro longitudinal da Tat (eixo 0y); (2) Arfada (Tangage ou Pitch): Giro da Tat sobre sua largura (eixo 0x); (3) Guinada (Cap ou Yaw): Giro da Tat em torno do eixo 0z. Para tentar entender melhor, fazemos uma comparao com os giros ou manobras em um avio nas figuras abaixo (os nomes entre parentses acima so os seus nomes em francs e ingls, respectivamente): Figura 4: Analogias com avio:

Pode parecer complexo numa primeira vista mas voc poder notar muitas coisas continuam as mesmas [ou parecidas] do mundo plano. Eis aqui o que fazem as primitivas bsicas para nos movermos no mundo 3D:

parafrente (pf) e paratrs (pt): desloca a Tat do mesmo jeito que no plano 2D. paradireita (pd), paraesquerda (pe): gira a Tat como no plano 2D. roleparadireita (rolepd): a Tat gira n graus para a direita em seu eixo longitudinal (figura 4.a) roleparaesquerda (rolepe): a Tat gira n graus para a esquerda em seu eixo longitudinal (figura 4.a) levantenariz: a Tat ergue seu nariz n graus, ou seja, em seu eixo transversal (figura 4.b) baixenariz: a Tat gira seu nariz n graus para baixo, ou seja, em seu eixo transversal (figura 4.b)

No plano 2D, quando queremos desenhar um quadrado de 100 passos de lado, fazemos: repita 4 [fd 100 rt 90] Essas instrues ainda so vlidas no mundo 3D, e o quadrado pode ser desenhado em perspectiva. Se a Tat baixar o nariz 90 graus, poderemos desenhar outro quadrado: Figura 5: Quadrados em Perspectiva ld repita 4 [pf 100 pd 90] baixenariz 90 repita 4 [pf 100 pd 90] medida que voc experimentar alguns exemplos, ir entender mais e mais a orientao 3D e tornar-se um especialista! Entenda que as 3 primitivas de rotao so interligadas. Por exemplo, tente o seguinte: ld roleparaesquerda 90 levantenariz 90 roleparadireita 90

Primitivas para 2D e 3D As seguintes primitivas podem ser usadas tanto no plano quanto em 3D. A nica diferena seriam os argumentos recebidos por essas primitivas. Por exemplo, a primitiva mudepos continuam a esperar por uma lista de argumentos, mas desta vez precisaria de uma lista contendo 3 nmeros (x; y; z) os quais representam os 3 pontos coordenados. Eis todas essas primitivas: arco distncia ponto centro mudepos pos, posio crculo mudedireo rotule direopara mudex tamanhorotule, tr direo mudey

Primitivas exclusivas para o modo 3D

mudexyz: essa primitiva desloca a Tat at o ponto escolhido. Essa primitiva exige 3 argumentos que representam as coordenadas do ponto. Essa primitva similar a mudepos exceto que as coordenadas no so fornecidas em uma lista. Exemplo: mudexyz -100 200 50 mover a Tat para o ponto x = -100; y = 200; z = 50. mudez: essa primitiva desloca a Tat pelo eixo z de modo equivalente a mudex e mudey. mudeorientao: muda a orientao da Tat. Essa primitva exige uma lista contendo 3 nmeros (os ngulos de rolagem, levanta/baixa nariz e de guinada). Exemplo: com mudeorientao [100 10 58] a Tat rolar 100 graus, o nariz ficar 10 graus para cima (nariz empinado), e a cabea apontar 58 graus para a direita. orientao: devolve a orientao da Tat em uma lista do tipo [rolagem nariz cabea]. Note essa ordem de nmeros. se por exemplo, a lista de valores for [100 20 90], significar que se voc desejar a mesma orientao a partir da posio original (aps um limpedesenho), voc dever escrever a seguinte sequncia: roleparadireita 100 levantenariz 20 paradireita 90. Se voc inverter a ordem dessa instruo, voc no obter a orientao desejada! mudedireorolagem: a Tat gira em torno de seu eixo longitudinal at atingir o ngulo indicado direorolagem: informa o valor em graus da rolagem atual. mudeDireoNariz: a Tat gira em torno de seu eixo transversal , apontando o nariz tantos graus para cima ou para baixo. direonariz: informa o valor em graus da direo atual do nariz (erguido ou abaixado).

Visor 3D O xLogo possui um visor 3D desde a verso 0.9.92 que permite visualizarmos desenhos 3D. Esse mdulo usa bibliotecas JAVA3D, de modo que necessrio ter o java3D completamente instalado. Eis as regras a respeito de seu uso: Ao criarmos uma figura geomtrica na rea de desenho, temos que indicar ao visor 3D aquelas formas que desejamos registrar para uma futura visualizao.. possvel guardar polgonos (superfcies), linhas, pontos ou textos. Para usar esse recurso, temos as seguintes primitivas:

iniciepolgono: far com que os prximos movimentos da Tat sejam usados para criar um polgono. terminepolgono: encerra o polgono iniciado por iniciepolgono. O polgono desenhado poder ser exibido pelo visor3d. inicielinha: far com que os prximos movimentos da Tat sejam usados para criar uma linha representvel no visor3d. terminelinha: finaliza a linha iniciada por inicielinha. Essa linha representvel no visor3d. inicieponto: far com que os prximos movimentos da Tat sejam representado como um ponto no visor3d. termineponto: finaliza o ponto iniciado por inicieponto. inicietexto: permite que seja representado no visor3d qualquer texto escrito na rea de desenho com a primitiva rotule. terminetexto: finaliza o texto iniciado por inicietexto para ser representado no visor3d. visor3d ou mostrepolgono: exibe o visor3d. Sero exibidos todos os objetos gravados na memria do xLogo por meio das primitivas apresentadas acima. Voc poder controlar o movimento da cmara com as seguintes opes: 1) a cena ser rotacionada se mover o mouse com o boto esquerdo pressionado. 2) a cena ser translada se mover o mouse com o boto direito pressionado. 3) use o boto de rolagem do mouse para controlar a ampliao da cena (zoom).

Um Cubo e Algo Mais Podemos imaginar o cubo em que cada face um quadrado com 400 passos de tartaruga de lado. Eis uma soluo: aprenda quadrado # o quadrado desenhado e registrado como polgono iniciepolgono repita 4 [parafrente 400 paradireita 90] terminepolgono fim aprenda cuboSimples limpedesenho logo3d mudecordolpis amarelo # desenhar as primeiras 4 faces repita 4 [quadrado usenada paradireita 90 parafrente 400 paraesquerda 90 roleparadireita 90 uselpis] # desenhar a face inferior baixenariz 90 quadrado levantenariz 90 # desenhar a face superior parafrente 400 baixenariz 90 quadrado # visualizar mostrepolgono fim

Figura 6: Um cubo Digite o comando cuboSimples. Agora, interagir com o cubo (lembre-se que cada boto do mouse ou rato tem a sua finalidade no visor 3d!). O que ocorre se substituirmos as primitivas iniciepolgono e terminepolgono por, respectivamente, inicielinha e terminelinha? Finalmente, o que ocorre se substituirmos essas primitivas por, respectivamente, inicieponto e termineponto? Experimente essas alteraes. Um exemplo simples do que foi mostrado at agora nesse manual: logo3d iniciepolgono repita 5 [pf 45 pd 72] terminepolgono un pf 45 ul inicielinha pf 45 pd 45 pf 45 terminelinha inicietexto rotule "ok terminetexto mostrepolgono Eis algo com efeito interessante: ld mudecf preto dt #limpa a tela, muda a cor de fundo e esconde a Tat inicielinha repita 6 [repita 24 [ul mudecl jf 125 lista cv 2 * cv crculo 45 rolepd 2 un pf 2 ul]] terminelinha mostrepolgono

Figura 7: Uma figura interessante

Luz & Neblina

* Luz
Voc pode especificar 4 luzes no visor 3D. Por padro, o cenrio 3D possui apenas 2 pontos de luz habilitados ("duas lmpadas"). Clique em um dos 4 botes com desenho de lmpada disponveis no visor 3D e uma caixa de dilogo aparecer:

Figura 8a: Janela de dilogo para Luz Vrios tipos de luz esto disponveis:
Luz Ambiente: luz uniforme, voc necessita apenas especificar sua cor. Luz Unidirecional: difusa de acordo com uma contante de direo. o mesmo caso que Ponto de Luz, em

que a fonte est muito muito distante do observador, como o Sol. Ponto de Luz: possui uma posio especfica. semelhante ao farol dianteiro de um carro. Foco: tambm como o Ponto de Luz, exceto que se apresenta como um cone de luz. Voc deve especificar um valor do ngulo para esse cone.

* Neblina
Voc pode adicionar um efeito de neblina ao visor 3D. Clique no boto da nuvem que aparece no visor 3D que exibir a seguinte caixa de dilogo:

Figura 8b: Janela de dilogo para Neblina H dois tipos de neblina disponveis:
Neblina Progressiva: a opacidade da neblina progressiva.

Necessita de dois parmetros: A distncia em que a neblina inicia; A distncia em que a neblina termina;
Neblina Densa: Uma neblina uniforme para toda a cena. Voc

necessita apenas especificar sua densidade Figura 9: Exemplo de neblina progressiva

Escrever Escrever na rea de texto com as primitivas mostre ou escreva Na tabela abaixo esto organizadas as primitivas que permitem ajustar as propriedades de texto. Tais primitivas controlam a cor e o tamanho na rea de histrico, so disponveis somente para as primitivas mostre ou escreva Primitivas cdt, cordotexto escreva, esc estilo ftexto, fontetexto lt, limpetexto mostre, mo mudect, mudecordotexto mudeestilo mudeft, mudefontetexto Argumentos nenhum palavra, lista ou nmero nenhum nenhum nenhum palavra, lista ou nmero a:nmero ou lista lista ou palavra a: nmero Uso Devolve a cor da fonte no histrico de comandos. Idntica primitiva mostre porm sem retorno de linha. Exemplo: esc "almo escreva "fada. Compare com mo "almo mo "fada Devolve uma lista composta pelos diferentes estilos em uso pela primitiva mostre. Devolve o tamanho da fonte. Limpa o histrico de comandos. Idntica primitiva escrita porm com retorno de linha. Exemplo: esc "almo escreva "fada. Compare com mo "almo mo "fada Define a cor da fonte no histrico de comandos. Muda o estilo em uso pela primitva mostre. Os diferentes estilos possveis so: nenhum, negrito, itlico, riscado, subescrito, sobreescrito, ou sublinhado. Define o tamanho da fonte no histrico de comandos. Seleciona o nmero da fonte n ao escrever no histrico de comandos. A equivalncia de nmero e fonte encontra-se no Menu -> Ferramentas -> Preferncias -> Guia Fonte. Devolve uma lista com 2 elementos. O primeiro o nmero que corresponde fonte usada no histrico de comandos. O ltimo elemento uma lista contendo o nome da fonte.

mudenft, n: nmero mudenomefontetexto nft, nomefontetexto nenhum

Alguns exemplos de formatao de texto com a primitiva mostre: mudeestilo [negrito sublinhado] mostre "beleza beleza mudeestilo "riscado escreva [meu texto] mudeestilo "itlico escreva "\ x mudeestilo "sobreescrito escreva 2 meu texto x2.

Aritmtica e Operaes Lgicas Eis uma lista de operadores lgicos: Primitivas Argumentos Uso ou predicado1 predicado2 Retorna verd se uma das entradas for verdadeira. Caso contrrio retorna falso. Todas as entradas (predicados) precisam retornar ou verd ou falso. Retorna verd se os parmetros de entrada forem verdadeiros. Caso contrrio, retorna a palavra falso. Todas as entradas (predicados) precisam retornar ou verd ou falso. Exemplos mo ou 2 > 3 2 < 3

predicado1 predicado2

mostre (e [a]=[a] [a]=[b])

no

predicado

Retorna verd se os parmetros de entrada forem falsos. Caso mostre no 2 > 3 contrrio, retorna a palavra verd. A entrada (predicado) precisa retornar ou verd ou falso.

Eis uma lista de comandos relacionados a nmeros:


Primitiva absoluto abs aleatrio arredonde diferena exp ln log10 menos pi potncia produto quociente raizq resto soma sorteie mudepreciso preciso acos, arccoseno asen, arcseno Parmetro absoluto a aleatrio n arredonde a diferena a b exp a ln a log10 a menos a nenhum potncia a b produto a b raizq a resto a b soma a b sorteie n Uso Devolver o valor absoluto de a Devolve o inteiro de a Devolve a diferena dos nmeros a e b Devolve o valor do nmero natural (2.7182...) elevado ao expoente a Devolve o logaritmo natural de a Devolve o logaritmo de a na base 10 Troca o sinal de a Devolve o valor 3.141592653589793 Devolve a elevado potncia b Devolve o produto dos nmeros a e b Devolve a raiz quadrada de a Devolve o resto de a e b Devolve a soma dos nmeros a e b Sorteia um inteiro positivo menor que n. V. primitiva aleatrio Exemplo abs -23 arredonde 23.4 diferena 23 43 exp 2 ln 100 log10 100 menos 23 mo pi potncia 2 3 produto 23 43 quociente 23 43 raizq 9 resto 2 3 soma 23 43 sorteie 23 mudepreciso 8

Sorteia um nmero inteiro positivo menor ou igual a n. V. primitiva sorteie aleatrio 23

quociente a b Devolve o quociente dos nmeros a e b

Define o nmero de decimais a operar nos clculos. Por padro usa 16 nmero inteiro decimais. Se usar um nmero negativo, xLogo adotar o padro. Se por positivo engano voc fornecer uma decimal, o xLogo arredondar. nenhum acos a asen a

Devolve o nmero de decimais em uso nos clculos. O valor padro -1 mostre preciso (corresponde ao limite de 16 algarismos aps a vrgula decimal). Devolve o ngulo cujo coseno a Devolve o ngulo (em graus) cujo seno a Devolve o ngulo cuja tangente e a Devolve o coseno de a Devolve o seno de a ("a" em graus) Devolve a tangente de a acos 0.8 asen 0.5 atan 0.8 cos 45 sen 45 tan 45

atan, arctangente atan a cos, coseno sen, seno tan, tangente cos a sen a tan a

Importante: Cuidado com primitivas que requerem dois parmetros! Por exemplo: em mudexy a b, se b for negativo, o interpretador logo far a operao 200-10 (ie, ele subtrair 10 de 200). Disso resulta que h somente um parmetro (190) e no dois, gerando uma mensagem de erro. Para evitar esse tipo de problema, use a primitiva "menos" para especificar o nmero negativo - mudexy 200 menos 10.

Operaes com Listas


Primitiva apague conte elemento, elem escolhe inverte juntenofim, jf juntenoincio, ji lista palavra pri, primeiro sentena, sn Parmetro ab a ab a a ab ab ab ab a ab Uso Remove (apaga) o elemento a da lista b Retorna o nmero de elementos de uma lista ou palavra Devolve o "asimo" elemento de uma lista ou palavra Se a for palavra, devolver uma de suas letras. Sendo lista, devolver um de seus elementos Inverte a ordem dos elementos na lista a Coloca "a" no fim da lista b Coloca "a" no incio da lista b Retorna a lista [a b] Retorna uma palavra composta pela concatenao de a e b. Retorna o primeiro elemento de uma lista ou palavra Retorna uma lista formada pela concatenao ab. Os argumentos podem ser palavras ou listas Retorna a lista ou palavra sem o seu primeiro elemento Retorna a lista ou palavra sem o seu ltimo elemento Retorna o ltimo elemento de uma lista ou palavra Exemplo mo apague 2 [1 2 3 2 4] mostre conte [2 3 oi] mo conte "vila mo elem 2 "vila mo elem 3 [2 4 6] mo escolhe "vila mo escolhe [1 2 oi] mo inverte [1 2 3] mo jf 3 [7 oi] mo ji 3 [7 oi] mo lista "oi 3 mo pal "Xlo "go mo pri [2 3 oi] mo pri "vila mo sn [oi] "oi mo sp [2 3 4 oi] mo sp "cidado mo su [2 3 4 oi] mo su "cidado mo ult [2 3 oi] mo ult "vila

semprimeiro, sp a su, semltimo ult, ltimo a a

Booleanos Um booleano uma primitiva que devolve a palavra "verd ou a palavra "falso. Essas primitivas terminam com ponto de interrogao.
Primitiva eant? anterior? inteiro? elista? lista? membro? emembro? enum? nmero? eprim? primitiva? eproc? procedimento? uselpis? varivel? evar? evazio? vazio? falso membro Parmetro Uso ab a a ab a a a nenhum a a nenhum ab Retorna verd se "a" for nmero, letra, ou palavra anterior a "b" (em ordem numrica ou alfabtica). Exemplo: mo anterior? 23 42 Retorna verd se a for um nmero inteiro; falso, se no Retorna verd se a for uma lista Retorna verd se "a" pertencer lista ou palavra "b". Se a for um nmero, retornar verd. Do contrrio, retornar falso. Informa verd se "a" for uma primitiva do xLogo. mo eprim? "parafrente Informa verd se "a" for um procedimento. Exemplo: mo eproc? "quadrado Informa verd se o lpis estiver sendo usado (a Tat desenha ao se mover?) Retorna verd se a for uma varivel definida Retorna verd se a for uma palavra ou lista vazia Retorna falso Se "b" for uma lista (ou palavra), localizar o elemento "a" na lista. H duas possibilidades: -Se a pertencer a b, devolve uma sublista (ou palavra) contendo todos os elementos a partir da posio de a. -Se a no pertencer a b, devolve falso. mo membro "a "cidado mo membro 3 [1 2 3 oi 5]] Se a for uma palavra, retornar verd. Do contrrio, retornar falso Retorna verd se a e b forem iguais. Eg.: mo soiguais? "c "C mo soiguais? "c "c Retorna verd Informa se Tat aparece (se est visvel)

epal?, palavra? soiguais?

a ab

verd visvel?

nenhum nenhum

Testar uma Expresso Como em toda a linguagem de programao, Logo lhe permite verificar se uma condio satisfeita e ento executar o cdigo desejado se ele for verdadeiro ou falso. Com a primitiva se voc pode realizar tais testes. Eis a sintaxe: se expresso_a_testar [ lista1 ] [ lista2 ] Se a expresso_a_testar for verdadeira, as instrues da lista1 sero executadas. De outro modo, se a expresso_a_testar for falsa, as instrues na lista2 sero executadas. A segunda lista opcional (nesse caso, nada ser feito quando a expresso for falsa). Exemplos: se 1+2=3 [escreva "verdadeiro][escreva "falso] se "Y = (primeiro "XLOGO) [pf 100 pd 90] [esc [ XLOGO inicia com um X!] ] se (3*4)=6+6 [mo 12]

Lidar com Procedimentos e Variveis Procedimentos so como um "programa". Quando um procedimentos chamado, as instrues em seu corpo so executadas. Um procedimento definido sempre pela palavra-chave aprenda e encerrado pela palavra-chave fim.
aprenda nome_do_procedimento :v1 :v2 :v3 .... Corpo do procedimento fim

nome_do_procedimento o nome dado ao procedimento. :v1 :v2 :v3 aguardam por variveis usadas internamente por esse procedimento (variveis locais). Corpo do procedimento representa os comandos a serem executados ao chamarmos o procedimento. Por exemplo: O procedimento chamado quadrado e leva um parmetro chamado s. aprenda quadrado :s repita 4[pf :s pd 90] quadrado 100 desenhar um quadrado de comprimento 100 (veja mais exemplos de procedimentos no final desse manual). fim

Desde a verso 0.7c, possvel inserir comentrios no corpo dos procedimentos desde que precedidos pelo smbolo #. Outros programas LOGO, tais como Superlogo, Megalogo e Micromundos usam o smbolo ; (ponto e vrgula). Nada do que escrito direita de # ser executado pelo interpretador.
aprenda quadrado :s

#esse procedimento desenha um quadrado de lado igual a :s. repita 4[pf :s pd 90] # til, no?
fim
IMPORTANTE:

No possvel incluir comentrios na mesma linha de aprenda nem de fim.

Conceito de variveis - H dois tipos de variveis: Variveis Globais: aquelas que so acessveis em qualquer parte do seu projeto (programa). Variveis Locais: acessveis somente no procedimento em que foram definidos.

Mais Primitivas Nessa verso de LOGO, variveis locais no so acessveis em subprocedimentos. Ao final de um procedimento, as variveis locais so apagadas. Primitivas
adeus atr, atribua atrlocal

Parmetros Uso
nenhum ab ab Fecha o programa xLogo Atribui o valor b para a varivel a. Exemplo: atr "var 3 mo :var Cria a varivel local "a" e lhe atribui o valor "b". atrlocal "a 2 atrlocal "r [oi, povo] Executa um comando de sistema. A lista deve conter sublistas que faam sentido para o seu sistema operacional. No Linux: comandoexterno [[gedit] [/home/xlogo/file.txt]] No Windows: comandoexterno [[notepad] [c:/file.txt]] Mostra o valor da varivel a. Define o procedimento pal1, que requer a(s) varivel(is) da lista2. As instrues do procedimento esto contido na lista3. def "poligono [[lados tam] [repita :lados [pf :tam pd 360 / :lados]]] O exemplo acima cria o procedimento poligono que desenhar um polgono regular quando escrever na linha de comandos algo como poligono 6 45 Note que lista1 dever ser constituda por pelo menos 2 sub-listas. A primeira define as variveis. As demais representam cada linha do procedimento. defina "tarefa [[a b][escreva :a][escreva :b]] tarefa "msica "dana msicadana mostre texto "tarefa [a b][escreva :a][escreva :b] Dvida? Faa os exemplos acima e confira como aparece no Editor do xLogo. Lista o procedimento pal1 na forma esperada por Defina (confira esse procedimento logo acima) defina "tarefa [[a b][mostre :a][mostre :b] tarefa "msica "dana msica dana mostre texto "tarefa [[a b][mostre :a][mostre :b]] Deleta (apaga) o procedimento de nome "a": el "poligono Deleta (apaga) todas as variveis e procedimentos atuais. Executa a lista de instrues contidas em a. Lista todos os procedimentos atuais. Devolve uma lista contendo as variveis que voc definiu Usada em procedimentos, cria a varivel local "a". Para que ela tenha um valor, usa-se a primitiva atribua local "a atr "a 2 Pode-se tambm criar vrias de uma s vez colocando-as entre colchetes: local [a b r] atr "a 2 atr "r [oi, povo] Consire tambm usar a primitiva atrlocal (ver no incio dessa tabela). Deleta (apaga) a varivel Retorna uma lista formados de trs outras. A primeira contm todos os procedimentos definidos; a segunda, todas as variveis e a ltima todas as listas de propriedades.

comandoexterno lista

objeto def defina

a: palavra pal1 lista1

texto

pal1

el, elimine et, eliminetudo execute imts listevar local

a: palavra nenhum a nenhum nenhum ab

mate contedo

a nenhum

Rastreie

possvel acompanhar o desenrolar de um procedimento. Este modo tambm permite ver que os comandos retornam com ajuda da primitiva sada. Para ativar este modo, basta escrever: rastreie Naturalmente, parerastreie desativar o modo rastreie. Ao lado, temos um pequeno exemplo com o fatorial.

rastreie mo fac 4
fac fac fac fac fac fac fac fac 24 4 3 2 1 devolva devolva devolva devolva

1 2 6 24

Acesso a Arquivos Primitivas


abra Argumentos Uso w: palavra Abre e l o arquivo w. Por exemplo, para apagar todos os procedimentos definidos a abrir (carregar) o arquivo teste.lgo, voc escreveria: eliminetudo abra "teste.lgo. A palavra especificada um caminho relativo de inicializao do diretrio atual. Esse comando no funcionar com caminho absoluto. Permite ler ou escrever arquivo que foi chamado ("arq"). O argumento arq deve ser o nome do arquivo desejado. Pode-se utilizar uma lista para indicar o caminho absoluto ou uma palavra para indicar o nome do arquivo no diretrio corrente. O argumento id o nmero que atribumos ao fluxo a fim de poder identific-lo. Carrega o arquivo de imagem contida na lista. Seu canto mais elevado esquerdo ser colocado onde a tartaruga est. Os formatos suportados so o png e o jpg. O caminho especificado deve ser parente ao diretrio atual. Ex: carimg "tortue.jpg Fornece o diretrio atual. O padro o diretrio do usurio, ou seja, /home/seu_login no Linux, C:\WINDOWS no Windows. Escreve no arquivo indicado por id a linha de texto contida em lista. Ateno, a escrita efectiva apenas quando fecha-se o fluxo com a primitiva fechefluxo. Abre o Editor com todos os procedimentos especificados na lista (ou por palavra). Abre o Editor com todos os procedimentos existentes. Fecha o fluxo identificado pelo nmero id. Retorna "verd (verdadeiro) se chegar no fim do arquivo. Caso contrrio, retorna "falso. guardado "teste.lgo guarda no arquivo teste.lgo (que j foi salvo no diretrio em uso) todos os procedimentos definidos. Se a extenso .lgo for omitida, ela ser adicionada automaticamente. A palavra especificada um caminho relativo de inicializao do diretrio atual. Esse comando no funcionar com caminho absoluto. Um bom exemplo para explicar isso: guarde "teste.lgo [proc1 proc2 proc3] guarda no arquivo teste.lgo no diretrio atual os procedimentos proc1, proc2 e proc3. Se a extenso .lgo for omitida, ela ser adicionada automaticamente. A palavra especificada um caminho relativo de inicializao do diretrio atual. Esse comando no funcionar com caminho absoluto.

abrafluxo

id arq

carregueimagem carimg dir, diretrio escrevalinha eslfx edite edtudo fechefluxo fimarq? fimfluxo? guardado

a: palavra

nenhum id lista lista ou palavra nenhum id id w: palavra

guarde

w: palavra l:lista

guardeimagem

"arquivo Guarda em arquivo a imagem da rea de desenho. [xmin ymin - Se o arquivo terminar em ".png", a imagem ser gravada no formato png xmax ymax] - Se o arquivo terminar em ".jpg" ou ".jpeg", a imagem ser gravada no formato jpeg - Se no escrever nada, a imagem ser gravada no formato png e ".png" ser adicionado no final do nome do arquivo. "xmin xmax ymin ymax" permite escolher os dois cantos opostos do retngulo que corresponde rea de seleo. Se a lista estiver vazia ou conter erros, ser usada toda a rea da imagem. id lista id id nenhum nenhum Escreve no fim do arquivo ("junta") a linha de texto contida em lista. Ateno, a escrita efetiva apenas aps fechar o fluxo com a primitiva fechefluxo. Abre o fluxo indicado pelo nmero id e l um caracter neste arquivo. Esta primitiva retorna um nmero que representa o valor do carcter (semelhante leiacar). L o contedo da linha do arquivo identificado por id (l somente uma linha de cada vez. necessrio repetir o comando para passar para a prxima linha). Lista os diferentes fluxos abertos e seus respectivos identificadores. Por padro, lista o contedo do diretrio. Equivalente ao comando ls no Linux e o comando dir no DOS

juntelfx leiacarfx leiacaracterfluxo leialinha listefluxo marq, mostrearquivos

mudedir, mudediretrio comandoexterno

l: lista lista1

Especifica o diretrio a usar. O caminho deve ser absoluto. O diretrio tem que ser especificado dentro de uma lista e o caminho no pode conter espaos. Permite executar um comando de sistema atravs do xLogo. lista1 deve conter vrias listas contendo cada uma as palavras que constituem o comando. Alguns exemplos: comandoexterno [[gedit] [/home/xlogo/arquivo.txt]] lana o aplicativo gedit (editor de texto comum ao Gnome do Linux) e carrega o arquivo /home/xlogo/arquivo.txt comandoexterno [[notepad] [C: /arquivo.txt]] lana o aplicativo notepad ("bloco de notas" do Windows) e carrega o arquivo nomeado C: /arquivo.txt Esta sintaxe ligeiramente especfica permite nomeadamente a utilizao de espaos nos caminhos de arquivos.

Segue um exemplo de utilizao das primitivas que permitem ler e escrever em arquivos. Apresentaremos este exemplo para uma arquitetura de tipo Windows. Os outros utilizadores sabero adapt-lo, pois a ideia a mesma. O objetivo criar o arquivo c:\exemplo.txt contendo as trs linhas:
ABCDEFGHIJKLMNOPQRSTUVWXYZ

abcdefghijklmnopqrstuvwxyz 0123456789 # Abrimos um fluxo para o arquivo desejado. O fluxo ser identificado pelo nmero 2 abrafluxo 2 [c:\exemplo.txt] # Escrevemos as linhas desejadas escrevalinha 2 [ABCDEFGHIJKLMNOPQRSTUVWXYZ] escrevalinha 2 [abcdefghijklmnopqrstuvwxyz] escrevalinha 2 [0123456789] # Fechamos o fluxo para que seja registrado ("gravado") o que escrevemos fechefluxo 2 Vejamos se a escrita foi bem feita: # Abrimos um fluxo para ler. Dessa vez, o fluxo ser identificado pelo nmero 0 (apenas para mostrar que esse nmero tambm pode ser usado): abrafluxo 0 [c:\exemplo.txt] # L-se as linhas dos arquivos sucessivamente: mo leialinha 0 mo leialinha 0 mo leialinha 0 # Fechamos o fluxo fechefluxo 0 Se desejarmos acrescentar a linha "Formidvel!": abrafluxo 1 [c:\exemplo.txt] juntelfx 1 [Formidvel !] fechefluxo 1 Lembramos mais uma vez que os exemplos acima foram feitos para Windows. No Linux (ou outros sistemas operacionais), a ideia ser a mesma. Em vez de c:\exemplo.txt, teremos algo como [/home/logindousuario/exemplo.txt] Pinte e Pintezona A tartaruga no deve estar sobre um pixel (ponto) de cor da figura que se deseja preencher (se quiser pintar de vermelho, no dever estar sobre o vermelho). Vejamos na forma de exemplo para explicar a diferenas entre aquelas duas primitivas: a Tat est sobre um ponto de cor branca.
Figura 10: Um desenho a ser pintado

A primitiva pinte colorir todos os pixels brancos com a cor do lpis que a Tat est a usar. Se, por exemplo, escrevermos: mudecl 1 pinte Voltemos ao primeiro caso (a figura 10): se a cor do lpis da Tat for preta, a primitiva pintezona colorir toda a regio at encontrar cores diferentes daquela ela estava sobre (neste exemplo, ao atingir as linhas Figura 11: Uso da primitiva pinte preta ou verde).

A primitiva pinte permite preencher uma rea delimitada. Ela pode ser comparada com o "baldinho" disponvel em muitos editores de imagem (paint, tuxpaint, gimp, etc.). H duas regras a considerar ao usar essa primitiva: 1. O lpis deve estar em uso (ul). 2. A Tat no pode estar sobre um pixel com a mesma cor que ser usada para preencher a rea (se desejar pintar algo de vermelho, a Tat no pode estar sobre um ponto vermelho...)

Figura 12: Uso da primitiva pintezona Eis um exemplo:


aprenda rainbow :c se :c<100 [pare] semicirc :c pd 180 pf 20 pe 90 rainbow :c-40 fim

aprenda semicirc :c # desenha um semi-crculo com dimetro :c repita 180 [pf :c*tan 0.5 pd 1] pf :c*tan 0.5 pd 90 pf :c fim

aprenda dep un pd 90 pf 20 pe 90 ul fim

aprenda vai dt rainbow 400 20 pt 120 lp un pd 90 pf mudecl 0 pinte mudecl 1 pinte mudecl 2 pinte mudecl 3 pinte mudecl 4 pinte mudecl 5 pinte mudecl 6 pinte fim vai ub pe 90 pf 20 ul dep dep dep dep dep dep dep

Figura 13: Arco-em-LOGO

PreenchaPolgono Essa primitiva preenche (pinta) uma srie de tringulos. Assim, cada vez que desenhar o segundo segmento de reta, o xLogo pintar o tringulo formado pelos 3 vrtices. Uma lista conter as instrues a desenhar a forma a ser preenchida. Vejamos na forma de exemplos. 1. Para preencher um quadrado: ld PrenchaPolgono [repita 4 [parafrente 100 paradireita 90]]

Figura 12a: Pintar um quadrado (passo a passo) 2. Para preencher uma estrela de 5 pontas: repita 5 [parafrente 100 PrenchaPolgono [paratrs 100 paradireita 144 parafrente 100 ] paratrs 100 paraesquerda 72]

Figura 12b: Pintar um estrela (passo a passo)

Comandos de Parada xLogo possui trs comandos de parada: pare, paretudo e sada.

pare pode ter dois resultados. Se incluso em um loop repita ou enquanto, o programa sai do loop. Se isso ocorrer em um procedimento, o programa interrompe o procedimento de imediato. paretudo interrompe definitivamente a execuo de todos os procedimentos em curso.

sada (ou devolva) permite parar um procedimento com um valor a ser devolvido. Veja vrias situaes de uso dessas primitivas nos exemplos no final dessa documentao.

Loops xLogo possui 7 primitivas que permitem construi loops (laos): repita, para, enquanto, paracada, parasempre, repitaenquanto e repitaat. "Loop" um termo usado em programao para indicar um procedimento ou conjunto de instrues em um programa de computador que so executadas repetidamente at que uma condio especfica seja satisfeita ou at que o programa seja concludo. Subsees Um loop com repita Um loop com para Um loop com enquanto

Um loop com paracada Um loop com parasempre

Um loop com repitaat Um loop com repitaenquanto

Repita
repita n listadecomandos

n um nmero inteiro e listadecomandos uma lista contendo os comandos a executar. O interpretador LOGO ir implementar os comandos na lista n vezes: isso evita ter que escrever n vezes os mesmos comandos! Por exemplo:
repita 4 [parafrente 100 paraesquerda 90] # Um quadrado de lado 100 repita 6 [parafrente 100 paraesquerda 60] # Um hexgono de lado 100 repita 360 [parafrente 2 paraesquerda 1] # Um, digamos, "360-gono" de lado 2

# De certa forma, quase um crculo! Em laos com a primitiva repita podemos usar a varivel interna contevezes. Ela designa o nmero de iteraes em andamento (comeando pelo nmero 1). Por exemplo:
repita 3 [escreva contevezes]

1 2 3 Para A sintaxe de para: para [lista1] [lista2] A primitiva "para" equivale ao comando "for" de outras linguagens de programao. Ela consiste em atribuir a uma varivel diversos valores compreendidos num intervalo dado de acordo com um incremento definido. A lista 1 contm trs parmetros: o nome da varivel, o limite inicial, o limite final. Pode-se acrescentar um quarto argumento opcional que designa o incremento (de quanto em quanto a varivel ser incrementada). Se for omitido, o valor do incremento ser 1. Um exemplo: # No exemplo abaixo faz-se variar i entre 7 e 2 para [i 1 4][mo :i*2] decrescendo de 1.5 cada ve 2 # note que o incremento usado negativo 4 # Na lista 2, pede para exibir uma lista com o valor de I e 6 seu valor elevado potncia 2. 8 7 49 5.5 30.25 4 16 2.5 6.25

para [i 7 2 -1.5 ][mo lista :i potncia :i 2]

Enquanto Eis a sintaxe para enquanto: enquanto [listaaseravaliada] [listadecomandos] listaaseravaliada uma lista contendo um conjunto de instrues o qual pode ser avaliado como booleano (verdadeiro ou falso). listadecomandos uma lista contendo os comandos a serem executados. O interpretador LOGO continuar implementando listadecomandos enquanto a listaaseravaliada retonar verd (verdadeiro). Por exemplo:
enquanto ["verd] [pd 1] # A Tat ficar dando voltas # Um exemplo que permite soletrar o alfabeto de trs para diante atr "lista "abcdefghijklmnopqrstuvwxyz enquanto [no vazio? :lista] [mo ltimo :lista atr "lista semltimo :lista]

Parasempre Eis a sintaxe de parasempre:


parasempre [listadecomandos]

Repete indefinidamente uma lista de instrues (executa para sempre o que for pedido). Exemplo:
parasempre [pf 1 pd 1] # A Tat dar voltas indefinidamente [sem ficar tonta, rs, rs].

Para interromper a execuo, clique no boto Pare do xLogo (aquele que fica na parte inferior direita da janela). Paracada Eis a sintaxe para paracada: paracada nomedavariavel listaoupalavra listadecomandos A varivel assume um valor de cada item de uma lista, ou o caracter de uma palavra. Os comandos (intrues) sero repetidos para cada valor que a varivel assumir. Exemplos: paracada "i [a b c] [mostre :i] a b c paracada "i ["XLOGO] [mostre :i]
X L O G O

Repitaat FaaAt Eis a sintaxe para essa primitiva: RepitaAt [listadecomandos] [condio] Repete instrues at a condio ser verdadeira. Os comandos (instrues) sero repetidos enquanto a condio for falsa. Confira o exemplo ao lado. atribua "i 0 RepitaAt [mostre :i atribua "i :i+1] [:i>4] 0 1 2 3 4

RepitaEnquanto FaaEnquanto Eis a sintaxe para essa primitiva: Por exemplo: atribua "i 0 RepitaEnquanto [listadecomandos] [condio] RepitaEnquanto [mostre :i atribua "i Repete instrues enquanto uma condio for verdadeira. :i+1] [:i<4] Os comandos (instrues) sero repetidos enquanto a 0 condio for verdadeira. A principal diferena para a primitiva 1 enquanto que o bloco de instrues pelo menos uma vez 2 mesmo que a condio seja falsa. 3 4

Mltiplas Tartarugas possvel ativar vrias tartarugas na tela. Por padro, ao iniciar o Xlogo h somente uma Tat. Seu nmero 0. Se desejar "criar" outra Tat, voc pode usar a primitiva atat seguido pelo nmero da tartaruga. Para evitar estorvos, a Tat criada no centro e invisvel. (voc pode usar at ou mostretat para exibi-la). Ento, a nova Tat estar ativa e obedecer todas as primitivas enquanto voc no mudar a tartaruga ativa com atat. Voc define o nmero mximo de tartarugas no menu Ferramentas - Preferncias - Guia opes ou com a primitiva mudemximodetartarugas. Eis as primitivas para o modo mltiplas tartarugas: Primitivas atat, atenotat
Argumentos Uso

a: nmero A Tat nmero a a que est ativa agora. Por padro, a Tat ativa ao iniciar o Xlogo a de nmero 0. Defina o nmero mximo de tartarugas na tela no modo multitartarugas. a: nmero Devolve o nmero mximo de tartarugas na tela no modo multitartarugas. inteiro nenhum nenhum Devolve o nmero da tartaruga ativa. Devolve uma lista com nmeros de todas as tartarugas existentes.

mximodetartarugas, maxtat nenhum mudemximodetartarugas, mudemaxtat tatativa tartarugas semtat, semtartaruga

a: nmero Elimina a Tat nmero a

Tocar Msica Primitivas


seq, sequncia delseq, deletesequncia indseq, ndicesequncia instr, instrumento mudeinstr, mudeinstrumento mudeindseq, mudendicesequncia toque toquemp3

Argumentos Uso
a: lista nenhum nenhum nenhum a: nmero a: nmero nenhum arquivo Coloca na memria a sequncia da lista. Leia aps essa tabela sobre como escrever uma sequncia. A sequncia deletada (apagada) da memria. Devolve a posio do cursor na sequncia em uso. Devolve o nmero que corresponde ao intrumento em uso. O instrumento em uso passa a ser o de numero a. Veja a lista completa de instrumentos no menu Ferramentas-Preferncias-Guia Som. Pe o cursor no ndice a na sequncia memorizada. Toca a(s) sequncia(s) memorizadas. Toca um arquivo mp3 que estiver no diretrio atual ou na internet: toquemp3 "arquivo.mp3 toquemp3 "http://meusite.com.br/arquivo.mp3 Interrompe (para) de tocar o arquivo chamado por toquemp3

paremp3

nenhum

Se deseja tocar uma msica, voc deve colocar as notas na memria por meio de uma lista chamada "sequncia". Para criar a sequncia, voc pode usar a primitiva seq ou sequncia. Eis as regras para criar uma sequncia vlida: d r mi f sol l si: as notas da primeira oitava. Para um"r" mais agudo, escreve-se r +. Para um"r" mais grave, escreve-se r -. Para subir ou descer uma oitava, use o smbolo ":" seguido por + ou -. Por exemplo, aps :++ na sequncia, todas as notas sero tocadas duas oitavas acima (dois ++) . Por padro, as notas so tocadas com durao um (1). Se desejar alter-la, escreva o nmero qua corresponde durao das notas. Por exemplo, seq [sol 0.5 l si] toque, tocar sol com a durao 1 e l e si com durao 0.5 (duas vezes mais rpido). Que tal experimentar o seguinte exemplo?
aprenda tabac

# cria uma sequncia de notas


seq [0.5 sol l si sol 1 1 l 0.5 l si seq [:+ 1 r 0.5 r d 1 seq [:+ 1 r 0.5 r d 1 seq [0.5 sol l si sol 1 1 l 0.5 l si fim l 0.5 l si 1 :+ d r 2 :- si 0.5 l :- si 0.5 l l 0.5 l si 1 :+ d r 2 1 :+ d d :- sol ] si 1 :+ d si 1 :+ d 1 :+ d d :- sol ] :- si si 0.5 sol l si sol r 2 :- l ] r 2 :- l ] :- si si 0.5 sol l si sol

Para escutar a msica, escreva na caixa de comandos: tabac toque

Agora, veremos uma aplicao interessante da primitiva mudeindseq. Escreva os comandos: delseq # Deleta a sequncia memorizada tabac # Coloca as notas na memria mudeindseq 2 # Pula as duas primeira notas (depois do "l", nesse exemplo). tabac # Coloca na memria a mesma sequncia porm puladas as 2 primeiras notas. toque # Toque a msica para ver o efeito! Voc pode escolher o instrumento com a primitiva mudeinstr ou no menu Ferramentas-Preferncias-Guia Som. Nessa guia voc encontra a lista completa dos instrumentos disponveis e seus respectivos nmeros.

Figura 14: Uma partitura

Receber Entrada de Usurio Subsees Interao com o teclado e alguns exemplos de aplicao; Interao com o mouse e alguns exemplos de aplicao Interao por IG

Interao com Teclado No momento, textos do usurio so recebidos por meio de 3 primitivas: tecla?, leiacar e leia. tecla?: l verdadeiro (verd) se uma tecla for pressionada, ou falso (falso) se no for pressionada. leiacar: Se for falso, o programa interrompido at que o usurio pressione uma tecla. Se leiacar for verdadeiro, informa a tecla que foi pressionada por ltimo. Cada tecla possui um valor: Tabela 1: Valores de teclas
A --> 62 --> 38 ou 224 F1 --> 112 B --> 63 --> 39 ou 227 F2 --> 113 C --> 64 --> 40 ou 225 etc ... etc ... Esc --> 27 F12 --> 123 Z --> 90 Shift --> 16 Espao --> 32 --> 37 ou 226 (NumPad) Ctrl --> 17 Enter --> 10

Se voc no estiver certo sobre o valor de uma tecla, voc pode digitar: mo leiacar. O interpretador esperar que voc pressione uma tecla para lhe fornecer o seu valor correspondente. leia lista_ttulo "palavra: Apresenta uma caixa de dilogo com ttulo lista_ttulo. O usurio pode ento entrar com uma resposta no campo texto. A resposta ser armazenada na forma de uma lista na varivel :palavra, e ser avaliada ao clicar em OK. Exemplo
leia lista [Gosta de logo?] [Sim ou no] "var mo :var aprenda vintage leia [Qual a sua idade?] "idade atr "idade pri :idade se :idade<18 [mo [voc de menor]] se ou :idade=18 :idade>18 [mo [voc de maior]] se :idade>99 [mo [Respeito bom!!]] fim aprenda rali se tecla? [atr "car leiacar se :car=37 [pe 90] se :car=39 [pd 90] se :car=38 [pf 10] se :car=40 [pt 10] se :car=27 [pare]] rali fim

# Voc pode controlar a Tat com as setas do teclado e parar com a tecla Esc

Interao com Mouse No momento, h duas primitivas que tratam eventos com mouse: leiamouse, mouse? e posmouse. leiamouse: o procedimento interrompido at o usurio movimente o mouse ou clique em um de seus botes. Ento, devolver um nmero que representa o evento. Esses eventos so representados pelos valores: 0 -> O mouse foi movido 1 -> O boto 1 foi pressionado 2 -> O boto 2 foi pressionado. etc. O boto 1 o esquerdo; o boto 2, o direito ... (os botes so numerados da esquerda para a direita, em princpio). posmouse: Devolve uma lista que contm a posio do mouse. mouse? ou rato?: Devolve verdadeiro (verd) ou falso conforme agiu-se ou no sobre o mouse (rato) desde o incio da execuo do programa. Nesse primeiro exemplo, a Tat segue o mouse quando movido na tela.
aprenda exemplo

# verifica a posio do mouse (leiamouse). A Tat se desloca (mudepos) para a posio do mouse (posmouse)
se leiamouse = 0 [mudepos posmouse] exemplo fim

Nesse segundo exemplo, mas voc dever clicar com o boto esquerdo do mouse para que a Tat se mova.
aprenda exemplo2 se leiamouse = 1 [mudepos posmouse] exemplo2 fim

No terceiro exemplo, criamos dois botes (em cor-de-rosa). Ao clicar com o boto esquerdo, desenha-se um quadrado de lado 40. Ao clicar com o boto esquerdo no boto direito, desenha-se um pequeno crculo. Por fim, as clicar com o boto direito no boto da direita, o procedimento ser interrompido.
aprenda vai limpedesenho boto un mudepos [150 0] ul boto un mudepos [22 20] ul rotule "Quadrado un mudepos [180 20] ul rotule "Crculo un mudepos [0 -100] ul mouse fim aprenda boto

#cria boto retangular cor-de-rosa (altura 50 - largura 100)


repita 2[pf 50 pd 90 pf 100 pd 90] pd 45 un pf 10 ul mudecl [255 153 153] pinte pt 10 pe 45 ul mudecl 0 fim aprenda mouse

Figura 15: Uso do mouse


aprenda circule repita 90 [pf 1 pe 4] pe 90 un pf 40 pd 90 ul fim aprenda quadrado repita 4 [pf 40 pd 90] pd 90 pf 40 pe 90 fim

# o valor de leiamouse armazenado na varivel ev


atr "ev leiamouse

# o primeiro valor da coordenada da posio do mouse armazenada na varivel x


atr "x elem 1 posmouse

# o segundo valor da coordenada da posio do mouse armazenada na varivel y


atr "y elem 2 posmouse

# O que acontece ao clicar com o boto esquerdo do mouse:


se :ev=1 & :x>0 & :x<100 & :y>0 & :y<50 [quadrado]

# O que acontece ao clicar com o boto direito do mouse:


se :x>150 & :x<250 & :y>0 & :y<50 [ se :ev=1 [circule] se :ev=3 [pare]] mouse fim

Interao por IG (Interface Grfica) XLogo lhe d a possibilidade de criar alguns componentes grficos na rea de desenho (Boto, menu, ...). Esses componentes esto associados s interfaces grficas e, para facilitar, todas essas primitivas iniciam por IG(Interface Grfica). So as primitivas igboto e igmenu e iglocal, e suas complementares igfaz, igapague e igdesenhe. Para criar um componente: Para usar esses objetos grficos necessrio cri-los e definir alguns parmetros. Para criar um boto utilizamos a primitiva igboto. # Este comando cria um boto identificado pelo nome b # No boto aparecer escrito: Clique igboto "b "Clique Para criar um menu de rolagem utilizamos a primitiva igmenu. # Este comando cria um menu de rolagem identificado pelo nome m # e conter 3 entradas: item1, item2 e item3 igmenu "m [item1 item2 item3] Como atribuir propriedades a esses componentes? iglocal: Permite posicionar (localizar) o elemento grfico onde desejar na rea de desenho. Por exemplo, para posicionar o boto definido acima no ponto (20, 100), escrevemos: iglocal "b [20 100] Se o local do componente no for indicado, ele ser localizado, por padro, no canto superior esquerdo da rea de desenho. igapague: Apaga (suprime, deleta) um elemento grfico. Por exemplo, para apagar o boto acima: igapague "b igfaz: Define o que o elemento grfico faz quando o usurio clicar sobre ele. # A Tat avanar 100 passos se clicarmos sobre o boto "b igfaz "b [pf 100 ] # Para o menu de rolagem, cada item contm sua prpria ao igfaz "m [[mostre "item1] [mostre "item2] [mostre "item3]] igdesenhe: Mostrar o componente grfico na rea de desenho. importante, pois no xLogo o boto ou menu s ser exibido com este comando. Por exemplo, para vermos o boto b: igdesenhe "b Como exemplo, vamos reescrever os procedimentos criados em Interao com o mouse. Note que dessa vez o projeto fica bem mais econmico, por assim dizer.
aprenda vai limpedesenho boto un mudepos [0 -100] ul fim aprenda circule repita 90 [pf 1 pe 4] pe 90 un fim aprenda boto

#cria a boto "bQ" com o rtulo "Quadrado"


igboto "bQ "Quadrado

#Posiciona o boto "bQ


iglocal "bQ [-80 100]

#Informa ao boto bQ que ele executar o


pf 40 pd 90 ul procedimento quadrado ao ser clicado igfaz "bQ [quadrado]

#Exibe o boto bQ
igdesenhe "bQ

aprenda quadrado repita 4 [pf 40 pd 90] pd 90 pf 40 pe 90 fim

#A seguir, a mesma ideia geral para o boto "bC" que desenhar um crculo:
igboto "bC "Crculo iglocal "bC [80 100] igfaz "bC [circule] igdesenhe "bC fim

Tempo e Data XLogo possui muitas primitivas para data, tempo ou contadores. espere contador n: nmero Interrompe o programa por n/60 segundos. n: inteiro Inicia um contador de n segundos. Sabemos se ele terminou por meio da primitiva fimcontador? As primitivas contador e fimcontador? funcionam como um cronmetro. Devolve "verd se no h contador ativo. Devolve "falso se o contador est ativo. Devolve uma lista contendo 3 inteiros a representar a data. O primeiro inteiro indica o dia do ms; o segundo, o ms; o terceiro, o ano. --> [dia ms ano] Devolve uma lista de inteiros no formato--> [hora minuto segundo] Devolve o tempo decorrido (em segundos) desde que o XLOGO foi iniciado.

fimcontador? data

nenhum nenhum

tempo

nenhum

tempodec tempodecorrido nenhum

A diferena entre espere e contador que o contador no interrompe o programa.

Um exemplo:
aprenda relogio

# Exibe o tempo no formato numrico # Atualiza a cada 5 segundos


se fimcontador? [ ld mudefonte 75 dt atr "hora tempo atr "h pri :hora atr "m elem 2 :hora

# Exibir dois algarismos para segundos e minutos. (adiciona um 0)


se :m-10<0 [atr "m pal 0 :m] atr "s ult :hora

# Exibir dois algarismos para segundos e minutos. (adiciona um 0)


se :s-10<0 [atr "s pal 0 :s] rotule pal pal pal pal :h ": :m ": :s contador 5 ] relogio fim

Uso de Rede Uso de rede ("network") com xLogo: voc pode inclusive iniciar um bate-papo (chat) em rede! Subsees

Como usar As primitivas para Rede

Como Usar Antes de usarmos as primitivas de rede do xLogo, precisamos de uma pequena introduo aos princpios da comunicao em rede.

Figura 16: Uma rede simples Dois ou mais computadores podem se comunicar em rede se ambos tiverem uma placa ethernet. Cada computador identificado por um endereo particular chamado de endereo IP. Esse endereo IP consiste de 4 nmeros inteiros, cada um entre 0 e 255 e separados por pontos. Por exemplo, O endereo IP do primeiro computador na ilustrao acima 192.168.1.1

Uma vez que no fcil lembrar esses nmeros, tambm possvel identificar cada nmero por um nome. Como podemos ver na figura, podemos nos comunicar com o computador da direita usando o endereo IP: 192.168.1.2, ou pelo seu nome: tartaruga Por enquanto, acrescentarei s mais uma coisa. O computador local no qual voc est trabalhando localizado pelo endereo: 127.0.0.1. Nome geral localhost. Veremos isso mais adiante na prtica.

Primitivas de Rede XLogo possui 4 primitivas que lhe permitem se comunicar via rede (network): escutetcp, executetcp, chattcp e envietcp. Nos prximos exemplos, usaremos o caso de dois computadores conforme foi mostrado na figura anterior.

escutetcp: essa primitiva a base de toda a comunicao por rede. No necessita nenhum argumento. Ao executar essa primitiva em um computador, ele ficar a espera de instrues enviadas por outros computadores na rede (ficar na "escuta", por assim dizer).

executetcp: essa primitiva permite a execuo de instrues por um computador em rede. Sintaxe: executetcp palavra lista. A palavra pode ser o endereo IP ou nome do computador, a lista contm instrues a serem executadas. Exemplo: Estou no computador lebre e quero desenhar um quadrado de lado 100 em outro computador. Assim, no computador tartaruga, deverei usar o comando escutetcp. No computador lebre, eu escrevo: executetcp "192.168.1.2 [repita 4[pf 100 pd 90]] ou ainda executetcp "tartaruga [repita 4[pf 100 pd 90]] chattcp: Permite bate-papo ("chat") entre dos computadores em uma rede. Em cada computador mostrar uma janela de bate-papo. Sintaxe: chattcp palavra lista. A palavra pode ser o endereo IP ou nome do computador, a lista contm a sentena (frase) a exibir. Exemplo: lebre quer falar com tartaruga. Primeiro tartaruga executa escutetcp para que aguarde instrues de computadores em rede. Ento lebre escreve: chattcp "192.168.1.2 [Ol, tartaruga!]. As janelas de bate-papo sero abertas em ambos os computadores, permitindo que se converse por meio deles. envietcp: Envia dados por um computador em rede e retorna sua resposta. Sintaxe: envietcp palavra lista. A palavra pode ser o endereo IP ou nome do computador, a lista contm os dados a enviar. Quando o Xlogo for iniciado no outro computador, ser respondido OK. possvel com essa primitiva se comunicar com um rob por meio de sua interface de rede. Ento, a resposta do rob poder ser diferente.

Exemplo: tartaruga quer enviar para lebre a sentena ("frase") "pi vale 3.14159". Primeiro executamos em lebre a primitiva escutetcp de modo que fica a espera da comunicao de outro computador. Ento, escrevemos em tartaruga: mostre envietcp "lebre [pi vale 3.14159]. Uma pequena dica: inicie duas vezes o xLogo no mesmo computador. - Na primeira janela, execute escutetcp. - Na segunda, escreva executetcp "127.0.0.1 [pf 100 pd 90] Assim, voc mover a tartaruga em outra janela! (rs, rs, isso possvel porque 127.0.0.1 designa seu endereo local, ou seja, o seu prprio computador...).

Exemplos de Programas Subsees


Desenhar casas Desenhar um retngulo preenchido Fatorial O floco de neve (agradecimento a Georges Nol) Um pouco de escrita... E conjugao... Primeira verso Segunda tentativa Ou ainda: Uma pequena recurso ! Tudo sobre cores Vamos praticar!

E se quiser um negativo?? Um bom exemplo de uso de listas (agradecimento a Olivier SC) Uma linda roscea

Desenhar Casas aprenda casa :c repita 4[pf 20*:c pd 90] pf 20*:c pd 30 repita 3[pf 20*:c pd 120] fim aprenda place :c un pe 30 pt :c*20 pd 90 pf :c*22 pe 90 ul fim aprenda hut limpedesenho un pe 90 pf 200 pd 90 ul dt casa 3 place 3 casa 5 place 5 casa 7 place 7 casa 10 fim

Figura 17: Casas

Desenhar um Retngulo Preenchido

Figura 18: Retngulo aprenda rect :lo :la se :lo=0 | :la=0 [pare] repita 2 [pf :lo pd 90 pf :la pd 90] rect :lo -1 :la -1 fim O smbolo | na segunda linha equivale primitiva ou. Uma forma mais simples (talvez menos elegante) seria: aprenda rect1 :lo :la repita 2 [pf :lo pd 90 pf :la pd 90] un pd 45 pf 1 ul pinte fim aprenda rect :lo :la se ou :lo=0 :la=0 [pare] repita 2 [pf :lo pd 90 pf :la pd 90] rect :lo -1 :la -1 fim

Fatorial Lembre-se que: 5! = 5 x 4 x 3 x 2 x 1 = 120 aprenda fac :n se :n=1[sada 1][sada :n*fac :n-1] fim mostre fac 5 120.0 mo fac 6 720.0

Floco de Neve (agradecimento a Georges Nol) aprenda koch :ordem :len se :ordem < 1 | :len <1 [parafrente :len pare] koch :ordem-1 :len/3 pe 60 koch :ordem-1 :len/3 pd 120 koch :ordem-1 :len/3 pe 60 koch :ordem-1 :len/3 fim aprenda flocokoch :ordem :len repita 3 [pd 120 koch :ordem :len] fim flocokoch 5 450

Figura 19: um fractal (o floco de neve)

Um Pouco de Escrita aprenda escrever dt repita 40[pf 30 pd 9 mudecl sorteie 7 rotule [XLogo show de bola!]] fim

Figura 20: XLogo show de bola!

E Conjugao... Subsees Primeira verso Segunda verso Ou ainda: Uma pequena recurso !

Primeira Verso Conjugar um verbo em francs aprenda Fr_futuro :pal mo sn "je palavra :pal "ai mo sn "tu palavra :pal "as mo sn "il palavra :pal "a mo sn "nous palavra :pal "ons mo sn "vous palavra :pal "ez mo sn "elles palavra :pal "ont fim Fr_futuro "parler je parlerai tu parleras il parlera nous parlerons vous parlerez elles parleront

Segunda Verso Conjugao de verbos (exemplo em francs) aprenda fut :pal atr "pronomes [je tu il nous vous elles] atr "terminaes [ai as a ons ez ont] atr "i 0 repita 6[atr "i :i+1 mo sn elem :i :pronomes pal :pal elem :i :terminaes] fim fut "parler je parlerai tu parleras il parlera nous parlerons vous parlerez elles parleront Conjugao de verbos (exemplo em portugus) aprenda PTfut :pal atr "pronomes [eu tu ele ns vs eles] atr "terminaes [ei s emos eis o] atr "i 0 repita 6[atr "i :i+1 mo sn elem :i :pronomes pal :pal elem :i :terminaes] fim PTfut "falar eu falarei tu falars ele falar ns falaremos vs falareis eles falaro

Uma Pequena Recurso! aprenda fu :verbo atr "pronome [je tu il nous vous elles] atr "terminao [ai as a ons ez ont] conjugar :verbo :pronome :terminao fim aprenda conjugar :verbo :pronome :terminao se vazio? :pronome [pare] mo sn pri :pronome pal :verbo pri :terminao conjugar :verbo semprimeiro :pronome semprimeiro :terminao fim fu "parler je parlerai tu parleras il parlera nous parlerons vous parlerez elles parleront

Tudo Sobre Cores Primeiro, algumas explicaes: voc notar que o comandos mudecl aceita tanto uma lista quanto um nmero. Aqui estamos interessados em valores do cdigo RGB (iniciais em ingls para vermelho, verde e azul). Cada cor no XLOGO codificado usando valores (de 0 a 255) para vermelho, verde e azul. Cada uma dessas trs cores recebe um valor de 0 a 255 para formar uma lista para a primitiva mudecl. As cores exibidas no monitor do computador so uma mistura dessas trs cores em diferentes intensidades. Talvez no seja muito intuitivo, mas basicamente assim que as coisas funcionam. Pense que todas as cores possveis de serem exibidas pelo computador so formadas pela combinao do vermelho, verde e azul em diferentes intensidades. Valores quanto mais prximos de 0 do tonalidades mais intensas. O azul puro, por exemplo, seria mudecl [0 0 255]. Para o preto, mudecl [0 0 0]. Para o branco, mudecl [255 255 255]. Voc tambm pode escolher cores pelo menu Ferramentas--> Mudar cor do lpis. H trs modos de faz-lo nesse menu. Por meio desse cdigo, fcil transformar uma imagem. Por exemplo, se desejar que uma foto colorida se transforme em uma imagem em preto e branco, voc pode trocar cada pixel da imagem pela mdia aritmtica dos valores desses 3 componentes [r g b]. Imagine que a cor de um ponto da imagem corresponda a [0 100 800]. Voc pode calcular a mdia desses 3 nmeros:

, e a cor [60 60 60] dever ser atribuda a esse pixel. Essa operao dever ser repetida para cada ponto da imagem.

Subsees

Vamos praticar! E se desejar um negativo??

Vamos Praticar! Transformaremos em tons de cinza uma imagem de 100 x 100 pixels. Isso significa que teremos 100 x 100 = 10000 pixels a serem modificados. Vamos tarefa: primeiro, nos referiremos ao canto esquerdo superior da imagem como sendo [0 0]. A Tat examinar os primeiros 100 pixels da primeira linha, seguidos pelos primeiros 100 pixels da segunda linha, e assim por diante. Cada vez, a cor do pixel ser rastreada com cordoponto e substituda pela mdia dos 3 valores rgb ([verm verde azul]). Eis o principal do cdigo: (No esquea de alterar o caminho do arquivo no procedimento!) aprenda pixelar :lista # devolve a mdia aritmtica dos 3 nmeros [r g b] atr "r pri :lista atr "lista semprimeiro :lista atr "g primeiro :lista atr "lista semprimeiro :lista atr "b pri :lista atr "b arredonde (:r+:g+:b)/3 sada sn lista :b :b :b fim aprenda acinzentar :c se :y=-100 [pare] se :c=100 [atr "c 0 atr "y :y-1] # Atribumos ao lpis a "cor mdia" do pixel seguinte mudecl pixelar cordoponto lista :c :y # Mudamos o ponto para tom de cinza ponto lista :c :y acinzentar :c+1 fim

aprenda transformar # Note que voc deve alterar o endereo de sua imagem (transform.png) logo aps carregueimagem # Por exemplo: carregueimagem [c:\my_images\transform.png] # XLogo s trabalha com imagens no formato png e jpg limpedesenho dt carregueimagem [/home/alex/transform.png] atr "y 0 acinzentar 0 fim

Figura 21: xLogo retoca imagens...

E Se Quisermos um Negativo? Para fazer o negativo de uma imagem, voc deve usar o mesmo processo anterior, exceto que, em vez de usar a mdia dos nmeros r g b, voc deve substituir os nmeros substraindo 255. Por exemplo, Se um ponto (pixel) tiver a cor [2 100 200], ela ser trocada pela cor [253 155 55]. Somente o procedimento pixelar deve ser modificado no programa anterior: aprenda acinzentar :c # 121 deve ser substitudo pela largura da imagem que usar se :y=-121 [pare] # 149 deve ser substitudo pela altura da imagem que usar se :c=149 [atr "c 0 atr "y :y-1] mudecl pixelar cordoponto lista :c :y ponto lista :c :y acinzentar :c+1 fim aprenda transformar # Voc dever escrever corretamente o caminho de sua imagem # Eg: carregueimagem [c:\my_images\nte.png] dt ld carregueimagem [/home/meulogin/nte.png] atr "y 0 acinzentar 0 fim aprenda pixelar :lista atr "r pri :lista atr "lista sp :lista atr "g pri :lista atr "lista sp :lista atr "b pri :lista sada sn lista 255-:r 255-:g 255-:b fim Figu ra 22: xLogo se fazendo de Gimp... (pretencioso, no? : - ))

Uso de Listas Um bom exemplo de uso de listas (agradecimento a Olivier SC) Espero que aprecie esse procedimento maravilhoso: aprenda invertep :p se vazio? :p [sada "] sada pal ult :p invertep su :p fim aprenda palindromo :p se soiguais? :p invertep :p [sada "verd] [sada "falso] fim aprenda palin :n se palindromo :n [mo :n pare] mostre sn sn sn sn :n "mais invertep :n [ igual a] soma :n invertep :n palin :n + invertep :n fim palin 78 78 mais 87 igual a 165 165 mais 561 igual a 726 726 mais 627 igual a 1353 1353 mais 3531 igual a 4884 4884

Uma Linda Roscea aprenda rosacea repita 6 [ repita 60 [pf 2 pd 1] pd 60 repita 120 [pf 2 pd 1] pd 60] fim aprenda lindarosacea rosacea repita 30 [pf 2 pd 1] rosacea repita 15 [pf 2 pd 1] rosacea repita 30 [pf 2 pd 1] rosacea fim ul ld mudecf 0 mudecl 5 dt rosacea un mudepos [-300 0] ul mudedireo 0 lindarosacea

Figura 23: Melhor do que usar um compasso!

Instalar, Desinstalar e Atualizar Instalar Para instalar o xLogo necessrio que voc tenha instalado em seu micro o Java Runtime Environment" (JRE) produzido pela Sun. IMPORTANTE: Este pode ser copiado gratuitamente em: java.sun.com/products/archive/j2se/1.4.2/index.htm ou em java.sun.com/j2se/1.5.0/download.jsp No Windows, uma forma de voc saber se voc tem o java instalado e em funcionamento ir no menu iniciar, clicar em executar, escrever javaw e dar OK. Se nenhuma mensagem de erro aparecer porque est OK. Para saber mais detalhes sobre como instalar o xLogo em Linux ou Windows, leia instrues em projetologo.webs.com/xlogo.html Desinstalar Para desinstalar XLogo, basta deletar o arquivo xlogo.jar (ou xlogo-new.jar) e o arquivo de configurao .xlogo que est: * localizado no diretrio home (/home/seu_login) para usurios Linux. * na mesma pasta do arquivo xlogo.jar (ou xlogo-new.jar) ou ainda c:\windows\.xlogo. Atualizar Confira a ltima verso e correo de "bugs" no stio do xLogo com frequncia (http://xlogo.tuxfamily.org). Sinta-se a vontade para contactar o autor do programa quanto a instalao ou uso (ingls ou francs). Todas as sugestes so bem-vindas. Para suporte em portugus, acesse http://xlogo.tuxfamily.org/pt

Lista de Primitivas
Apndice A: Lista de Primitivas Portugus abra abrafluxo Francs ramene ouvreflux abs bye aurevoir animation enleve pour arc arrondi fixetortue, ftortue donne donnelocale pique Espanhol carga abreflujo absoluto adios animacion quita para arco redondea pontortuga, ptortuga haz hazlocal cabeceaabajo cargaimagen, ci centro modojaula chattcp circulo Ingls load openflow abs bye anim remove to arc rnd setturtle, sturtle globalmake, make localmake downpitch loadimage, li home close chattcp circle Alemo lade oeffnefluss ovz ade animation entf lerne arc rnd
setzeschildkroete, ssk

absoluto, abs adeus animado


apague

aprenda
arco arredonde

atenotat, atat atribua, atr


atrlocal baixenariz

setze lokalsetze runter ladebild, lb heim schl chattcp kr

carregueimagem, carimg chargeimage, ci


centro cercar origine clos chattcp cercle

chattcp
crculo

comandoexterno
comlimite contador conte contedo enr debuttemps compte contenu compteur couleurfond, cf couleurcrayon, cc trouvecouleur, tc couleurtexte date modovuelta crono cuenta contenido cuentarepite, contador colorpapel colorlapiz, cl encuentracolor, ec colortexto fecha borrasecuencia, bos def, define diferencia rumbo hacia directorio, dir distancia y antes?, anterior? entero? ed edtodo ejes wrap countdown count contents repcount screencolor, sc pencolor, pc findcolor, fc textcolor date rspr zr zaehle inhalt wiederholungszahl bildfarbe, bf stiftfarbe, sf findefarbe, ff farbtext datum

contevezes, cv cordofundo, cdf cordolpis, cdl cordoponto, cdp cordotexto


data

deletesequncia, delseq effacesequence, efseq


defina def diferena def, definis difference cap vers repertoire, rep distance et precede? entier? ed edtout axes

deletesequence, delseqloeschefolge, lschfol def, define diff heading towards directory, dir distance and before?, beforep integer? ed edall axis def, definiere diff kurs richtung, ri ordner, ord abstand, abst und vorher? ganzzahl? ed edalles achsen

direo, d direopara, dpara diretrio, dir distncia, dist


e

anterior?, eant?
inteiro? edite editetudo eixo

eixox eixoy eixo? eixox? eixoy?

axex axey axes? axex? axey? item effacenom effacenoms, efns liste? membre? nombre? tantque envoietcp mot? primtive?, prim? choix cachetortue, ct tape ecrisligneflux ecoutetcp attends taillecrayon, tc touche? baissecrayon? exec executetcp vide? exp faux fermeflux fin finflux? fintemps? taillepolice tpt, taillepolicetexte grille grille? sauved sauve sauveimage guienleve guibouton guidessine guiaction guiposition guimenu

ejex ejey ejes? ejex? ejey? elemento borra borratodo, bot lista? miembro? numero? mientras enviatcp palabra? primitiva?, prim? procedimiento?, proc? elige ocultatortuga, ot tipea escribelineaflujo escuchatcp espera grosorlapiz, gl tecla? bajalapiz? ejecuta ejecutatcp vacio? exp falso cierraflujo fin finflujo? fincrono? fuente fuentetexto, ftexto cuadricula cuadricula? guardatodo guarda guardaimagen eliminaigu botonigu dibujaigu accionigu posicionigu menuigu

xaxis yaxis axis? xaxis? yaxis? item erase erall list?, listp member?, memberp numberp , number? while sendtcp word?, wordp primitive?, prim? procedure?, proc? pick hideturtle, ht write writelineflow listentcp wait penwidth, pw key? pendown? run executetcp emptyp, empty? exp false closeflow end endflow? endcountdown? fontsize textsize, ts grid grid? saved save saveimage guiremove guibutton guidraw guiaction guilocation guimenu

xachse yachse achsen? xachse? yachse? element vergiss vergissalles, vga liste? element? zahl? solange sendetcp wort? grundwort?, gw? prozedur?, proz? nimmwas versteckeschildkroete schreibe schreibezeilenfluss wartetcp warte taste? stiftab? starte ausfuehrentcp leer? exp falsch schliessefluss? ende endefluss? ezr? schrfa schriftgroesse gitter gitter? gespeichert speicher

elemento, elem elimine


eliminetudo, et

lista?, elista? membro?, emembro? nmero?, enum?


enquanto envietcp

palavra?, epal? primitiva?, eprim?


escolhe

procedimento?, eproc? procedure?, proc? escondetat, dt escreva, esc escrevalinha, eslfx


escutetcp espere

espessuradolpis, el
tecla? uselpis? execute executetcp

vazio?, evazio?
exp falso fechefluxo fim

fimarq?, fimfluxo?
fimcontador? fonte

fontetexto, ftexto grade grade? guardado


guarde guardeimagem

igapague igboto igdesenhe igfaz iglocal igmenu

entfernegui guitaste zeichnegui guiaktion guiposition guimenue

imts

imts indexsequence, indseq lignedef polydef pointdef instrument, instr inverse inversecrayon, ic ajouteligneflux metsdernier, md metspremier, mp lis liscar liscarflux lisligneflux lissouris cabre videecran, ve videtexte, vt liste listeflux lvars log locale log10 efv maxtortues membre moins message, msg ecris, ec catalogue, cat montretortue, mt

imts indicesecuencia, indsec empiezalnea empiezapolgono empiezapunto instrumento, instr invierte inviertelapiz, ila agregalineaflujo ponultimo, pu ponprimero, pp leeteclado leecar leecarflujo leelineaflujo leeraton cabeceaarriba borrapantalla, bp borratexto, bt lista listaflujos imvars ln local log10 bov maximastortugas miembro cs mensaje, msj escribe, es catalogo, cat muestratortuga, mt

poall indexsequence, indseq linestart polystart pointstart instrument, instr reverse penreverse, px appendlineflow lput fput read readchar readcharflow readlineflow readmouse uppitch clearscreen, cs cleartext, ct list listflow variables log local log10 kill turtlesmax member minus message, msg print, pr files showturtle, st setscreencolor, setsc setpencolor, setpc settextcolor, stc setheading setdirectory, changedirectory setpenwidth, setpw setfontsize, setfs settextsize,

zga indexfolge, indfol linienanfang vieleckanfang punkteanfang instrument, instr umdrehenliste umkehrstift, us haengezeileanfluss mitletzem, ml miterstem, me lies lz lesebuchstabenfluss lesezeilefluss liesmaus rauf loeschebild, lschb loeschetext, lt liste listefluss lvarn log lokal log10 vgv schildkrtenmax ela minus nachricht, nrcht druckezeile, dz zeigedateien, zd zeigeschildkroete, zs setzebildfarbe, sbf setzestiftfarbe, ssf setzeschriftfarbe, sschrffar aufkurs, ak setzeordner, wechsleordner stiftdicke, sd setzeschriftart, sschrfa setzeschriftarttext,

ndicesequncia,
indseq

inicielinha iniciepolgono inicieponto instrumento, instr


inverte

invertelpis, il
juntelfx

juntenofim, jf juntenoincio, ji
leia leiacar leiacarfx leialinha leiamouse

levantenariz limpedesenho, ld limpetexto, lt


lista listefluxo listevar ln local log10 mate mximodetartarugas, maxtat membro menos

mensagem, msg mostre, mo mostrearquivos, marq mostretat, at mudecordofundo,


mudecf

fixecouleurfondgraphique, poncolorpapel, fcfg poncp fixecouleurcrayon, fcc fixecouleurtexte, fct fixecap fixerepertoire, cd poncolorlapiz, poncl poncolortexto, pctexto ponrumbo, ponr pondirectorio, cambiadirectorio pongrosor ponfuente, pf ponfuentetexto,

mudecordolpis,
mudecl

mudecordotexto,
mudect

mudedireo, muded mudediretrio,


mudedir mudeel mudef

mudeespessuradolpis, fixetaillecrayon, ftc mudefonte, mudefontetexto,


ftp, fixetaillepolice ftpt,

mudeft

fixetaillepolicetexte fixeindexsequence findseq fixeinstrument, finstr

pft ponindicesecuencia pindsec poninstrumento pinstr ponmaximastortugas, pmt ponnombrefuente pnf

sts setixeindexsequence sindseq setinstrument sinstr setturtlesmax, stm setfontname setfn

sschrfat findefolge, findfol setzeinstrument sinstr setzeschildkrtenmax setzeschriftname sschrfna setzeschriftnametext, sschrfnat setzestiftform spos setzeziffern szeichnungsqualitt sform sx sxy sy nicht schrfna
schriftartname, schrfana

mudendicesequncia,
mudeindseq

mudeinstrumento,
mudeinstr

mudemximodetartarugas, fixemaxtortues, mudemaxtat fmt

mudenomefonte
mudenf

fixenompolice fnp fixenompolicetexte, fnpt fpos fixedecimales fixequalitedessin fforme fixetailledessin fixex fixexy fixey non nompolice, np nompolicetexte, npt

mudenomefontetexto
mudenft mudepos

ponnombrefuentetexto, settextname, pnft stn ponformalapiz ponpos pondecimales poncalidaddibujo pforma pontamaopantalla ponx ponxy pony no nombrefuente, nf setpenshape setpos setdigits setdrawingquality setshape setscreensize setx setxy sety not fontname

mudepontadolpis mudepl fixeformecrayon

mudepreciso
mudequalidadedaimagem,

mudeqi
muderoupa mudetamanhodajanela mudex mudexy mudey no

nomefonte nomefontetexto, nft

nombrefuentetexto, nft textname, tn

objeto ou

chose ou mot repetepour tournedroite, td tournegauche, tg avance, av recule, re stop stopanimation stopmp3 stoptout perspective pi remplis rempliszone point pos possouris puissance

objeto o palabra repitepara giraderecha, gd giraizquierda, gi avanza, av retrocede, re alto detieneanimacion detienemp3 detienetodo perspectiva pi rellena rellenazona punto pos posraton potencia

thing or word for right, rt left, lt forward, fd back, bk stop stopanim mp3stop stopall 3d pi fill fillzone dot pos posmouse power

wert oder wort fuer rechts, re links, li vorwaerts, vw rueckwaerts, rw stop stoppeanimation mp3stoppe hoerauf perspektivisch pi fuelle formfuellen punkt pos posmaus pot

palavra, pal
para

paradireita, pd paraesquerda, pe parafrente, pf paratrs, pt


pare pareanimado paremp3 paretudo

perspectiva
pi pinte pintezona ponto pos posmouse potncia

preciso primeiro, pri


produto premier, prem produit primero, pr producto first product erstes produkt

qualidadedaimagem
quociente raizq rastreie

qualitedessin quotient racine, rac trace repete reste roulisdroite

calidaddibujo cociente raizcuadrada, rc trazado repite resto balanceaderecha balanceaizquierda rotula forma dev iguales? si detieneejes detienecuadricula modoventana menosprimero, mp eliminatortuga menosultimo, mu frase, fr secuencia, sec suma azar tamaopantalla, tpant tamaoventana, tv tortugas tortuga hora tiempo finlnea finpolgono finpunto

drawingquality quotient squareroot, sqrt trace repeat remainder rightroll leftroll label shape op equalp if stopaxis stopgrid window butfirst, bf killturtle butlast, bl sentence, se sequence, seq sum ran

zeichnungsqualitt quotient wurzel, wrzl verfolge wh rest rollerechts rollelinks sktext form rg gleich? wenn stoppeachsen stoppegitter fen ohneerstes, oe loescheschildkroete ohneletztes, ol satz folge, fol plus zuf bildgrsse, bildgroesse . skn sk zeit vergangenezeit, vz linienende vieleckende punkteende

repita
resto

roleparadireita rolepd
rotule roupa sada soiguais? se

roleparaesquerda rolepe roulisgauche


etiquette forme ret egal? si stopaxes stopgrille fen saufpremier, sp tuetortue saufdernier, sd phrase, ph sequence, seq somme hasard

semeixo semgrade
semlimite

semprimeiro, sp semtartaruga, semtat semltimo, su sentena, sn sequncia, seq soma sorteie tamanhodajanela,
tamjan

tailledessin taillefenetre, tf tortues tortue heure temps lignefin polyfin pointfin texte joue jouemp3 der, dernier gomme, go baissecrayon, bc levecrayon, lc rafraichis, rf vrai

screensize zonesize turtles turtle time pasttime lineend polyend pointend text

tamanhojanela, tj
tartarugas

tatativa
tempo

tempodecorrido,
tempodec

terminelinha terminepolgono termineponto texto


toque toquemp3

tocamusica escuchamp3 ultimo goma, go bajalapiz, bl subelapiz, sl refrescar cierto

play mp3play last penerase, pe pendown, pd penup, pu refresh true

Spiele mp3spiele letzes radiere, rd stiftab, sa stifthoch, sh neumalen wahr

ltimo, ult useborracha, ub uselpis, ul usenada, un


veranimado verd

visvel?

visible? zoom

visible? zoom

visible? zoom

sichtbar? zoom

zoom

Trigonometria: acos, arccoseno asen, arcseno atan, arctangente cos, coseno sen, seno tan, tangente acos, arccosinus asin, arcsinus atan cos, cosinus sin, sinus tan, tangente acos, arcocoseno asen, arcoseno atan cos sen tan tangente acos, arccosine asin, arcsine atan cos, cosine sin, sine tan, tangent acos, acosinus asin, asinus atan cos, cosinus sin, sinus tan, tangenz

Lista de figuras Apndice B: Lista de figuras nesse manual figura 1: A janela principal do xLogo figura 2: A janela do Editor de Procedimentos figura 3: Tcnica da Perspectiva figuras 4a, 4b e 4.c: Analogias com Avio figura 5: Quadrados em Perspectiva figura 6: Um Cubo (3D) figura 7: Uma figura interessante (3D) figuras 8a 8b: Janelas de dilogo para luz e neblina figura 9: Exemplo com neblina figura 10: Um desenho a ser pintado figura 11: Uso da primitiva pinte figura 12: Uso da primitiva pintezona figura 13: Arco-em-Logo figura 14: Uma partitura figura 15: Uso do mouse figura 16: Uma rede simples figura 17: Casas figura 18: Retngulo figura 19: Um fractal (o floco de neve) figura 20: xLogo show de bola! figura 21: xLogo retoca imagens... figura 22: xLogo se fazendo de Gimp... figura 23: Melhor do que usar um compasso!

Sobre esse Documento


XLOGO: Manual do Usurio Essa documentao foi originalmente gerada usando LaTeX2HTML translator Verso 2002-2-1 (1.70) Copyright 1993, 1994, 1995, 1996, Nikos Drakos, Computer Based Learning Unit, University of Leeds. Copyright 1997, 1998, 1999, Ross Moore, Mathematics Department, Macquarie University, Sydney. Argumentos de linhas de comando usados: latex2html -local_icons manuel-xlogo-en.tex Esse arquivo mantido com BrOffice. Traduo para o ingls iniciada por Loc em 2005-fev-15 Traduo para o portugus do Brasil por Alexandre R Soares iniciada em 2005-abr-04 Visite as pginas do xLogo (http://xlogo.tuxfamily.org)

Você também pode gostar