Ferramenta
O que Logo?
uma linguagem de programao que foi desenvolvida para ser utilizada com finalidades educacionais. uma linguagem de propsito geral, isto , pode ser utilizada em vrios domnios de conhecimento. Por ser uma linguagem de programao de propsito geral, permite ao usurio resolver problemas de vrios domnios do conhecimento: msica, artes, matemtica, lnguas, etc.. Apresentaremos uma verso da linguagem Logo denominada SuperLogo para Windows 95.
Conhecendo o Ambiente Logo Neste material ser utilizado o ambiente SuperLogo1 que uma das verses da Linguagem Logo em portugus. Abrir o Logo:
203
Ferramenta
Sero abertas duas janelas, a Janela Grfica e a Janela de Comandos, que constituem o ambiente do SuperLogo. No centro da Janela Grfica aparece a figura de uma tartaruga, um cursor grfico que, a partir de comandos especficos movimenta-se na tela permitindo a construo de desenhos. Esta janela alm de permitir a execuo dos desenhos elaborados pelo usurio permite acessar o menu de opes do ambiente. A Janela de Comandos permite ao usurio digitar as instrues a serem executadas pelo Logo e acionar os botes do ambiente. As duas janelas podem ser arrastadas, maximizadas e minimizadas mas somente a Janela Grfica pode ser fechada.
O ambiente dispe de alguns recursos que podem ser ativados pelo menu de opes e por meio dos botes existentes da Janela de Comandos. Por exemplo, para mudar a cor do fundo da tela aciona-se o menu Formatar da Janela Grfica, opo Cor do Fundo.
204
Ferramenta
A seleo da cor feita com o mouse. A cor ativada fica aparente direita da caixa de cores. A seleo de cores pode tambm ser programada, isto , pode ser efetuada por meio de um comando especfico (ex: mudecf azul)
Os botes da Janela de Comandos podem ser acessados clicando o mouse sobre eles. Por exemplo: Tat
apaga a Janela Grfica e retorna a Tartaruga na posio e direo iniciais
Estado
mostra informaes referentes ao estado da Tartaruga na Janela Grfica (visibilidade, posio, direo, do lpis (espessura), e dados relacionados ao estado da Janela grfica (cor de fundo, cor do lpis).
Parar
interrompe a execuo de um procedimento
Pausa
interrompe temporariamente a execuo de um procedimento
Executar
Executa a instruo digitada na linha de comandos. Funo similar tecla Enter.
Consultar o item ndice do menu Ajuda sempre que houver alguma dvida. Desta forma pode-se obter maiores detalhes sobre os componentes do ambiente: lista dos comandos Logo, menu de opes, janelas e botes.
205
Ferramenta
Conhecendo a Linguagem Logo H quatro comandos bsicos que permitem movimentar a tartaruga. Os comandos parafrente (ou pf) e paratrs (ou pt) fazem a tartaruga andar e os comandos paradireita (ou pd) e paraesquerda (ou pe) giram a tartaruga na tela.
Para usar estes comandos necessrios especificar o nmero de passos ou o grau do giro. Por exemplo: pf 50 pd 90 pt 50 pe 45. Os comandos pf e pt alteram a posio da tartaruga e os comandos pd e pe a sua orientao na tela grfica. Uma outra maneira de movimentar a tartaruga usar o sistema de coordenadas cartesianas para desloc-la na tela e usar um eixo imaginrio (que permite o giro no sentido horrio) para alterar sua orientao.
Por exemplo, para deslocar a tartaruga para o ponto 20 20 das coordenadas xy pode-se utilizar o comando mudexy 20 20.
206
Ferramenta
Supondo-se que a Tartaruga esteja reta, isto , na sua direo inicial 0, pode-se utilizar, por exemplo, o comando muded 90, para mudar sua direo:
Explorando alguns comandos A seguir sero apresentados alguns comandos a partir do desenho de uma escada e de um vitral. Desenhando uma escada
comando mudeel <lista> descrio exemplo altera a espessura do lpis de acordo mudeel [3 3] com os nmeros contidos na lista. Os dois nmeros devem ser iguais. desloca a tartaruga para a frente um pf 20 determinado nmero de passos
pf <nmero>
pd <nmero>
direita
um pd 90
mudecl <objeto>
muda a cor do lpis de acordo com o mudecl "vermelho contedo de objeto que pode ser um nmero ou uma palavra correspondente cor desejada. utilizado para desenhar contornos de diferentes cores. pf 20
207
Ferramenta
pe <nmero>
mudecl verdeclaro pf 40
ub pt <nmero>
coloca uma borracha sob a tartaruga ub possibilitando apagar linhas j desenhadas desloca a tartaruga para trs um pt 20 determinado nmero de passos
pd 90
ul
coloca um lpis sob a tartaruga ul possibilitando o desenho de linhas por onde ela passar. mudecl " rosachoque pf 20
pe 90
un
retira o lpis ou a borracha da un tartaruga possibilitando desloc-la sem deixar rastros visveis.
208
Ferramenta
movimenta a tartaruga na tela segundo mudexy -10 80 o sistema de coordenadas cartesianas. O primeiro nmero corresponde a posio da tartaruga no eixo x e o segundo no eixo y.
rotule <objeto>
imprime na tela grfica o objeto rotule [cores] especificado a partir da posio da tartaruga
Desenhando vitral
tat apaga a tela grfica, colocando a tat tartaruga na sua posio e direo originais. mudeel [ 3 3] mudecl "marrom utilizado quando se deseja repetir repita 4 [pf 40 pd 90] uma mesma lista de instrues um determinado nmero de vezes
muded <nmero>
gira a tartaruga o ngulo especificado muded 45 (a mudana de direo considera o sentido horrio)
209
Ferramenta
un mudexy 80 -80
210
Ferramenta
un mudexy 60 60
mudecp <objeto>
Pinte
muda a cor de preenchimento de mudecp "amarelo acordo com o contedo de objeto. Este comando utilizado para preencher reas delimitadas. pinta uma regio com a cor Pinte especificada no comando mudecp <objeto>.
O Logo, como pode ser observado, permite a programao de diversos tipos de ilustraes com formatos livres ou geomtricos, com cores, efeitos de preenchimentos, escrita, etc.. At o momento a explorao dos comandos Logo foi realizada no modo direto de uso, ou seja, as instrues para movimentao da tartaruga foram digitadas na linha de comandos. Neste modo de trabalho cada comando dado pelo usurio imediatamente executado pelo computador. Assim, o usurio pode constatar o efeito das instrues dadas para movimentar a Tartaruga na Janela Grfica. Porm, este modo de trabalho no permite que as instrues sejam armazenadas na memria do computador para possveis reutilizaes ou reformulaes. Para armazenar as informaes dadas pelo usurio necessrio usar o Editor. nesse modo de trabalho que so definidos os procedimentos em Logo, possibilitando assim que uma seqncia de instrues fique armazenada na memria do computador para ser executada no momento que o usurio desejar.
211
Ferramenta
Definindo procedimentos Um procedimento um conjunto de comandos organizados numa determinada seqncia e referenciados por um determinado nome. Todo procedimento precisa ter um nome que o identifica. Um procedimento inicia pelo comando aprenda e termina com o comando fim. Por exemplo:
aprenda sol repita 12 [pf 30 pt 30 pd 30] fim
Nome do procedimento instrues
Uma vez definido um procedimento no Logo ele poder ser utilizado na definio de outros procedimentos. Quando um procedimento usado como comando de outro procedimento diz-se que o primeiro sub-procedimento do segundo. Por exemplo, o procedimento sol poderia ser um sub-procedimento do procedimento paisagem.
aprenda paisagem sol un pt 90 ul repita 4 [pf 40 pd 90] fim
Para definir procedimento no Logo necessrio acessar a Janela Editor que acionada o item Editar do menu Procedimento da Janela grfica. Ao selecionar o item Editar aparecer uma caixa de dilogo na qual dever ser digitado um nome para o procedimento e acionado o boto OK.
212
Ferramenta
Em seguida, aparecer a janela do editor onde os comandos devero ser digitados entre as linhas dos comandos aprenda e fim.
Para abrir uma linha no Editor posicione o cursor (com o mouse ou as teclas de navegao ) no final do nome do procedimento e tecle Enter . Para executar o que foi definido no editor necessrio voltar para as Janela Grfica e de Comandos. Para tal dever ser acionada a opo Sair do menu rea de Trabalho da Janela Editor. Neste momento aparecer uma caixa de dilogo informando que o contedo do editor foi modificado. Acione o boto SIM para confirmar a atualizao feita no Editor.
Um procedimento definido funciona de forma anloga aos comandos primitivos do Logo: basta digitar o nome do procedimento na Janela de Comandos e acionar o boto executar (ou teclar <enter>) para que as instrues sejam executadas.
213
Ferramenta
Salvando arquivos A definio de procedimentos no Editor permite o armazenamento temporrio na rea de trabalho do Logo. Isto significa que se o ambiente Logo for fechado as informaes contidas no editor sero apagadas. Para o armazenamento permanente dos procedimentos editados necessrio gerar um arquivo com extenso .lgo. Para tanto acionar a opo Salvar Como do menu Arquivo, existente na Janela Grfica e especificar o nome e o local que ser armazenado:
Concluda esta ao aparecer na barra de ttulo da Janela Grfica o nome do arquivo e o local em que est armazenado.
Caso seja necessrio modificar as informaes existentes no editor atualize o arquivo .lgo acionando a opo Salvar do menu Arquivo da Janela grfica. O arquivo .lgo armazena apenas os procedimentos e variveis definidas pelo usurio. Para salvar as imagens existentes na Janela Grfica acione a opo Salvar como do menu Bitmap. Concluda esta ao ser gerado um arquivo .bmp que ocupa bastante espao de disco mesmo quando o desenho parece pequeno na tela do computador. Isto porque toda a rea de desenho, mesmo em branco, considerada parte da imagem.
214
Ferramenta
Carregando arquivos Para acessar arquivos j armazenados, no disquete ou no Winchester, necessrio carreg-lo para a rea de trabalho do Logo. Para isso, acione o item Abrir do menu Arquivo da Janela grfica:
Imprimindo Imagens ou Procedimentos Para imprimir as imagens da Janela Grfica, selecionar a opo Imprimir do menu Bitmap. Para imprimir os procedimentos de um determinado arquivo .lgo necessrio utilizar um editor de texto para abrir o arquivo Logo e, posteriormente, efetuar a impresso das informaes contidas no mesmo.
Desenhando e animando a rua da escola Para mostrar algumas possibilidades da programao Logo apresentaremos um exemplo detalhando os conceitos computacionais mais utilizados na elaborao do mesmo. Este programa desenha a rua de uma escola e faz animao de um carro a partir de um dilogo com o usurio.
215
Ferramenta
Para movimentar o carro na Janela Grfica o usurio tem que dar a velocidade que ele deseja que o carro assuma. Dependendo do valor dado pelo usurio o programa dispara efeitos diferentes na tela do computador. Se a velocidade for maior que 60, por exemplo, o carro se deslocar rapidamente e ser emitido um alerta para o usurio. Veja ilustrao abaixo:
Caso contrrio, o carro se deslocar lentamente e o usurio visualizar uma outra mensagem. A seguir sero detalhados alguns conceitos desta linguagem de programao que so utilizados para a implementao deste programa.
Desenhando retngulos
Definindo procedimentos com parmetros Observe que os desenhos que constituem este programa, tais como: quadra, praa, escola (parede, porta e telhado), utilizam retngulos de vrios tamanhos. Pode-se definir um retngulo genrico que possibilita o desenho de todos estes elementos. Para tanto, necessrio usar o conceito de parmetro. A idia que vai ser desenvolvida a seguir a definio de um procedimento genrico para desenhar retngulos de diferentes tamanhos.
216
Ferramenta
Antes, porm, vejamos como definir um procedimento2 para desenhar um retngulo de lados 40 e 100.
aprenda retngulopequeno repita 2 [pf 40 pd 90 pf 100 pd 90]
; desenha um retngulo com lados de tamanho 40 e 100
fim
A generalizao deste procedimento implica a declarao de dois parmetros, um para o lado menor e outro para o lado maior.
aprenda retngulo :lado1 :lado2 repita 2 [pf :lado1 pd 90 pf :lado2 pd 90] ; desenha retngulo com lados de qualquer tamanho fim
Neste caso o tamanho do retngulo no est definido no procedimento. Observe que os valores, 40 e 100, assumidos pelos comandos pf, no procedimento retngulopequeno, foram substitudos pelos parmetros :lado1 e :lado2.
A utilizao de parmetro no Logo envolve um processo de nomeao: o nome do parmetro deve ser precedido de dois pontos (como por exemplo :tamanho). A definio de procedimento com parmetro requer a colocao do nome do parmetro na linha ttulo do procedimento e no corpo do procedimento. Por exemplo:
aprenda risco :tamanho pf :tamanho un pf :tamanho ul fim
Na execuo do procedimento, na janela de comandos, necessrio que seja especificado o valor que cada parmetro dever assumir. (ex: risco 100 ou risco 500) .
217
Ferramenta
O tamanho do retngulo depender do valor dado como entrada do procedimento na janela de comandos, por exemplo:
Este procedimento geral pode ser utilizado para compor as seguintes partes do cenrio:
A disposio destes retngulos na Janela Grfica depende da posio e orientao da tartaruga. Isto pode ser feito de duas maneiras: uma em relao prpria tartaruga e outra em relao ao sistema cartesiano. No primeiro caso o deslocamento feito pelos comandos pf e pt e a orientao pelos comandos pd e pe.
218
Ferramenta
pd 90 pf 55 pe 90
; desloca a tartaruga em relao ao seu ltimo estado, isto , posio e direo
retngulo 40 30
O deslocamento da tartaruga em relao ao sistema cartesiano pode ser feito por meio dos comandos: mudexy, mudex, mudey e sua orientao pelo sistema polar: muded
muded 90
; muda a direo da tartaruga na janela independente do seu ltimo estado
retangulo 300 20
Criando animao Para criar a animao neste programa a figura da Tartaruga foi substituda pela figura de um carro (imagem do tipo .bmp). A obteno do efeito de movimento do carro gerado pela repetio de uma seqncia de comandos que faz o carro andar um valor determinado em funo da escolha feita pelo usurio. Portanto, o movimento do carro depender de um parmetro dado pelo usurio podendo, cada vez que o programa chamado, surtir um efeito diferente.
219
Ferramenta
Usando operaes A operao leiap permite que o usurio d uma informao qualquer para o Logo. Esta operao aciona uma caixa (Modo de Entrada) de dilogo e fica aguardando a digitao de uma palavra/valor pelo usurio.
A operao leiap apenas retorna o valor/palavra dado pelo usurio. Para que o valor retornado pela operao seja executado preciso relacion-lo a algum comando da linguagem Logo ou procedimento definido pelo usurio. Veja um exemplo de utilizao da operao leiap em um procedimento que faz o clculo da idade a partir do ano de nascimento dado pelo usurio durante a execuo do programa:
aprenda idade rotule [ Em que ano voc nasceu?]
; rotula na janela grfica uma frase
un pt 20
; desloca a tartaruga
fim
Neste exemplo a operao aritmtica subtrao utiliza dois parmetros: um o valor do ano atual (1999) e o valor referente ao ano de nascimento que dado pelo usurio durante a execuo do programa, por meio da operao leiap. O resultado das operaes (subtrao e leiap) passa a ser um dos parmetros da operao sentena. Por exemplo:
Sentena [Voc tem] 37 "anos Retorna [Voc tem 37 anos ]
No exemplo aqui apresentado, os valores retornados pelas operaes leiap, subtrao e sentena foram executados pelo comando rotule.
220
Ferramenta
Em Logo existem dois tipos de primitivas: comandos e operaes. A diferena bsica entre elas que um comando executa uma ao e uma operao retorna um valor. Este valor pode ser utilizado por outra operao e/ou por um comando.
Usando variveis A funo da varivel armazenar valores para serem utilizados quantas vezes forem necessrias por diversos comandos e operaes. Para definir uma varivel utiliza-se o comando coloque. Este comando necessita de dois parmetros: um objeto (que pode ser do tipo palavra, nmero ou lista) e um nome. A sintaxe deste comando : coloque <objeto> <nome> Exemplo:
coloque 100 velocidade
; a varivel velocidade criada e armazena o valor 100
Para referenciar o contedo da varivel usa-se o sinal de dois pontos ( : ) seguido do nome da varivel. Exemplo: rotule :velocidade, pf :velocidade Para armazenar um valor dado pelo usurio durante a execuo do programa utiliza-se a operao leiap na definio da varivel. Exemplo coloque leiap "dados Usando condicionais Para avaliar uma determinada condio a fim de desencadear diferentes efeitos pode-se utilizar o comando se. Este comando executa uma determinada instruo, caso a condio seja verdadeira ou falsa. A condio sempre constituda por uma operao do tipo predicado. Um predicado em Logo, retorna valores booleanos, ou seja, verdadeiro ou falso. A sintaxe do comando se : Se <predicado>. <lista1> <lista2>
221
Ferramenta
Quando o resultado do predicado for verdadeiro o comando Se executar as instrues da lista1, caso seja falso executar as instrues da lista2. O comando Se tem a funo de controlar o fluxo de execuo do programa. No programa em questo, a condicional utilizada para produzir diferentes efeitos de animao:
Se
:velocidade > 60
[moverapido]
Primeira lista de instrues
[movenormal]
segunda lista de instrues
condio
A condio neste caso avaliar se um determinado nmero (valor armazenado em :velocidade) maior que outro (60).
Isto significa que se o valor da velocidade dado pelo usurio (durante a execuo do programa) for maior que 60 ser executado o procedimento moverpido. O efeito desse procedimento de produzir o deslocamento rpido do carro na Janela Grfica e emitir um aviso de alerta. Caso o valor dado seja menor que 60 ser executado o procedimento movenormal que provocar um deslocamento mais lento do carro e emitir uma outra mensagem. Estruturando procedimentos Uma vez definidos os procedimentos no Logo eles podem ser utilizados na definio de outros procedimentos. No programa exemplo, os procedimentos porta, parede, telhado so utilizados como parte do procedimento escola. O procedimento escola por sua vez parte do procedimento bairro. Em Logo, quando um procedimento usado como comando de outro procedimento diz-se que o primeiro sub-procedimento do segundo. Veja a seguir a estruturao dos procedimentos utilizados neste exemplo:
222
Ferramenta
bairro
quadra
escola
jardim
praa
retngulo
movecarro
carronarua movenormal
moverpido
223
Ferramenta
aprenda telhado mudecl "marrom pe 90 pf 20 pd 90 retngulo 20 180 un mudexy -85 93 mudecl "vermelho muded 90 rotule [Escola "Carlos Gomes"] fim aprenda rvore3 un mudexy -90 4 muded 0 mudecl "marrom mudeel [5 5] ul pf 30 mudecl "verde mudeel [ 3 3] repita 20 [pf 10 pt 10 pd 18] dt fim aprenda tringulo :lado ul repita 3 [ pf :lado pe 120] fim
aprenda praa un mudexy -200 -50 mudecl "cinzaclaro mudeel [5 5] pd 90 retngulo 300 80 un pd 45 pf 10 mudecp "verde pinte mudexy -70 -75 muded 90 mudecl "vermelho rotule [Praa da Paz] fim
aprenda rvore1 un mudexy -170 4 muded 0 mudeel [ 7 7 ] mudecl "marrom ul pf 30 un pd 90 pt 15 mudecl "verde mudeel [6 6] tringulo 30 fim
aprenda rvore2 un mudexy -125 4 muded 0 mudeel [ 6 6 ] mudecl "marrom ul pf 40 mudecl "verde mudeel [ 7 7] un pd 90 pt 20 tringulo 40 fim
aprenda movenormal un repita 40 [pf 5 espere 20 ] mostrecaixamensagem [Ditado Popular] ["De vagar se vai ao longe] fim aprenda carronarua un mudexy -230 -40 at carreguebitmap "carro.bmp recortebitmap 95 35 tartarugabitmap fim aprenda moverpido un repita 40 [pf 5 espere 2] mostrecaixamensagem [CUIDADO] [Cuidado voc est em uma rea escolar] fim
aprenda movecarro carronarua mostrecaixamensagem [Velocidade do carro] [Digite uma velocidade para o carro] coloque leiap "velocidade (se :velocidade > 60 [moverpido] [movenormal]) fim
224
Ferramenta
Apresentao novos Comandos e Operaes3 A seguir mais algumas operaes e comandos do Logo que foram utilizados no programa apresentado neste material e podero ser teis no item "atividades Logo".
descrio exemplo carrega um arquivo carreguebitmap "carro.bmp do tipo .bmp para a janela grfica. Caso o arquivo a ser carregado no esteja no diretrio ativo, a localizao do arquivo dever ser especificada: carreguebitmap c:/windows/carro.bmp
tartarugabitmap
"recorta" uma parte da imagem ativa na tela e a coloca na rea de transferncia do computador. A rea a ser recortada (bitmap) demarcada a partir da posio da tartaruga e assume a largura do primeiro parmetro e a altura do segundo argumento do comando . Substitui a imagem da tartaruga ativa pelo bitmap que estiver na rea de transferncia do computador.
recortebitmap 50 35
utilizando o comando colebit a imagem alocada na rea de transferncia pode ser recolocada na tela grfica: colebitmap
tartarugabitmap
A linguagem Logo possui um grande nmero de comandos e operaes. Neste material apresentamos apenas alguns deles. O usurio pode consultar o menu ajuda na Janela Grfica para verificar outras primitivas Logo.
225
Ferramenta
mostrecaixamensagem [Velocidade] Mostrecaixamensagem pra o processamento e [a velocidade permitida 100 Km] <ttulo> <corpo> mostra uma janela de mensagem usando ttulo e corpo especificados. O processamento continua a partir do momento que o usurio clica o boto ok. coloque <objeto><nome> define uma varivel coloque100 velocidade para armazenar um dado valor. Este comando tem dois parmetros: um objeto (que pode ser um nmero, palavra, lista) e um nome se :velocidade > 60 [pf 10] [pd 90] (se <predicado> <lista1> Executa a lista 1 quando o retorno do <lista2> ) predicado for verdadeiro ou executa a lista2 quando o retorno for falso
descrio Retorna a palavra dada como entrada pelo usurio. uma operao que concatena objetos e os retorna em uma lista. Esta operao tem 2 parmetros: <objeto1>, < objeto2>
exemplo rotule leiap rotule sentena [Hoje est fazendo] "frio > Hoje est fazendo frio
Quando a operao sentena tiver mais de 2 parmetros rotule (sentena "Dia 23 [comea a deve-se abrir um primavera] ) parnteses antes do > Dia 23 comea a primavera nome da operao e fechar aps o ltimo parmetro dado.
226
Ferramenta
retorna o resultado rotule da diferena entre >40 nmero1 e nmero2. ou rotule >40 retorna o quociente rotule da diviso inteira de >500 nmero1 por nmero2. retorna o produto rotule dos nmeros especificado retorna verd se rotule nmero1 for maior >falso que nmero2. Caso contrrio, retorna ou falso.
diferena 50 10
50 - 10 quociente 1000 2
cv
rotule 5 > 6 >falso esta operao pode Repita 2 [pf 10 un pf 10+cv ul] ser usada apenas dentro do lao de um comando repita. Retorna o nmero de repeties que foram efetuadas, incluindo o atual. Retorna uma palavra rotule (pal "a "pren "der) composta pela concatenao de palavra1 e palavra2.
execuo do programa)
condicional (possibilita a alterao do fluxo de execuo, por meio da
avaliao de uma determinada condio ser verdadeira ou falsa) de procedimentos (organizao das instrues em procedimentos e subprocedimentos)
estruturao
227