Вы находитесь на странице: 1из 34

Ncleo de Informtica Aplicada Educao

Universidade Estadual de Campinas


RESUMO
Como o prprio ttulo sugere este texto apresenta um panorama geral da linguagem de
programao Logo. Neste, so mostradas de forma conjunta vrias primitivas relacionadas
programao grfica e simblica, com o intuito de minimizar a segmentao existente entre o
"universo da Tartaruga" e o "universo das listas". Embora o material possua um carter amplo,
a abordagem de cada primitiva procura caracterizar suas peculiaridades, sua funcionalidade,
incorporando um linguajar mais tcnico que auxilia o entendimento de alguns aspectos da
atividade de programao. O material possui o contedo acima descrito em forma de texto e,
tambm algumas sugestes de projetos sem, no entanto, esgot-los. Estes servem para
desencadear, no leitor, idias de novos projetos. Embora os exemplos do material utilizem a
implementao do Superlogo verso 3.0, todos eles podem ser definidos usando-se outras
verses do Logo.
NIED - Memo N
o
35
2000
Tartaruga, Figuras, Palavras, Listas e Procedimento:
Um primeiro passeio pelo Logo SuperLogo 3.0
Helosa Vieira da Rocha (e-mail: heloisa@dcc.unicamp.br)
Fernanda M. P. Freire (e-mail: ffreire@unicamp.br)
Maria Elisabette B.B. Prado (e-mail: bprado@unicamp.br)
Ncleo de Informtica Aplicada Educao - Nied
Universidade Estadual de Campinas - Unicamp
Cidade Universitria "Prof. Zeferino Vaz"
Prdio V da Reitoria 2
o
Piso
13083-970 - Campinas - SP
Telefones: ++ 55 (19) 788-8136 ou 788-7350
Fac-smile: ++ 55 (19) 788-8136 ou 788-7350 (Ramal 30)
http://www.nied.unicamp.br
CONTEDO
Manipulando a tartaruga 2
Repetindo uma seqncia de aes 5
Outras possibilidades do Logo 6
Escrevendo na tela 6
Compreendendo a natureza dos parmetros 7
Conhecendo as operaes 8
Separando elementos 10
Buscando e contando elementos 13
Construindo estruturas 14
Concatenando elementos 16
Conhecendo os predicados 17
Conhecendo os operadores lgicos e relacionais 18
Definindo procedimentos 20
Estruturando um projeto simples 23
Consideraes Finais 30
Bibliografia 31
Tartaruga, Figuras, Palavras, Listas e Procedimento:
Um primeiro passeio pelo Logo
APRESENTAO
Este texto resultado de nossa experincia no fornecimento de diversos cursos de
programao Logo aos mais distintos usurios.
fato conhecido que o aprendizado de programao Logo visto como necessariamente
dividido em duas etapas: Logo grfico e Logo simblico. Isto tem conduzido uma estrutura de
cursos bastante interessante. Existe um curso de Logo onde somente se trabalha no universo
grfico da linguagem, e quando muito se introduz objetos de animao. Em seguida, quando
solicitado, apresentado um curso denominado Logo Avanado, onde so trabalhadas as
operaes com palavras e listas. Isto tem gerado um senso comum de que a linguagem Logo
dividida em partes bastante diferentes e raramente, pode-se ver projetos englobando os assim
divididos universos da linguagem, que na realidade so um s. E com isso, uma programao
mais avanada de Logo raramente possvel.
tambm fato conhecido a extrema dificuldade de se transpor a barreira criada entre as
duas partes da linguagem. A maioria das pessoas que programam Logo dificilmente
programam problemas que no sejam grficos. Assim, obtm-se uma viso distorcida do
potencial de Logo enquanto uma linguagem de programao de propsito geral.
Por esta razo, iniciamos em nossos cursos, com bastante sucesso, uma abordagem
integrada da linguagem. O curso inicial de Logo no se restringe mais a comandos grficos e,
sim, oferece um "passeio" significativo por todos os comandos e operaes da linguagem.
Neste "passeio" procuramos ressaltar as diferenas conceituais entre as primitivas sem,
contudo, separ-las em dois grandes conjuntos.
Outro aspecto que tambm acrescentamos aos nossos cursos foi um tratamento mais
tcnico da linguagem. Por ser Logo uma linguagem essencialmente dirigida a aprendizes,
comum verificar que ela, mesmo em cursos de formao de profissionais, tratada com muita
informalidade e, muitas vezes, com uma certa infantilidade. Acreditamos que no se pode
ignorar que Logo computacional, e portanto formal e tcnica. Ignorar esses aspectos dificulta
Tartarugas, Figuras, Palavras, Listas e Procedimento : Um primeiro passeio pelo Logo 2
o entendimento de muitos conceitos inerentes a qualquer linguagem de programao. Por
exemplo, muito comum programadores de Logo terem como conceito de varivel somente o
de parmetro. Comprovamos que a introduo precoce de conceitos como a natureza da
primitiva, natureza dos parmetros, ordem de execuo de operaes, etc. no dificultam em
nada o iniciante em programao, pelo contrrio, facilitam o entendimento do funcionamento da
linguagem em que esto aprendendo a se expressar.
Este texto a primeira parte do material de apoio que estamos utilizando para atender
estes objetivos. importante frisar que simplesmente o uso do texto no ir viabilizar o que
pretendemos. Existe associada toda uma postura pedaggica, pois de forma alguma
pretendemos menosprezar a dificuldade que programar com autonomia em uma linguagem
que possui, pelo menos, dois diferentes paradigmas.
Manipulando a Tartaruga
A tartaruga um cursor grfico que aparece no centro da tela grfica. Para fazer
desenhos basta moviment-la na tela de modo que ela deixe traos pelo seu caminho. H
quatro comandos bsicos que movimentam a tartaruga. Os comandos PARAFRENTE n
o
(PF
n
o
) e PARATRS n
o
(PT n
o
) fazem a tartaruga andar e os comandos PARADIREITA n
o
(PD n
o
)
e PARAESQUERDA n
o
(PE n
o
) giram a tartaruga
1
. Ao usar esses comandos necessrio
especificar o nmero de passos ou a medida do grau do giro.

1
A maior parte dos comandos do Logo possui uma forma abreviada que simplifica a digitao. Aps a apresentao de cada
comando adotaremos a forma abreviada do mesmo. Para maiores detalhes consulte o manual de referncia da implementao
usada.
Helosa Vieira da Rocha, Fernanda M. P. Freire & Maria Elisabette Brisola Brito Prado 3
Observe a seqncia dos comandos e acompanhe o efeito da mesma
2
.
TAT
PF 50 PD 90
PF 50 PE 45
PT 25 PD 45
A tartaruga definida por uma posio em relao a um sistema de coordenadas
cartesianas (x, y) cujo ponto [0 0] representa o centro da tela grfica e por uma orientao em
relao a um eixo imaginrio cujo ponto inicial 0. Os comandos PF e PT alteram a posio
da tartaruga e os comandos PD e PE a sua orientao.
Os nmeros que seguem os comandos PF, PT, PD, PE so chamados de parmetros ou
entradas. Existem comandos em Logo que no precisam de parmetro como o comando
TARTARUGA (TAT). Da mesma forma, h comandos que precisam de mais de um parmetro.
No exemplo mostrado os parmetros usados so nmeros mas, um parmetro pode ser
tambm uma palavra ou uma lista como veremos adiante. A omisso de um parmetro quando
ele necessrio produz uma mensagem de erro.
Para movimentar a tartaruga sem deixar traos usa-se o comando USENADA (UN)
seguido de um comando que desloca a tartaruga. Analogamente, para apagar um trao na tela
existe o comando USEBORRACHA (UB). Para retornar ao trao digita-se o comando
USELPIS (UL). O comando DESAPAREATAT (DT) torna a tartaruga invisvel e o comando
APAREATAT (AT) faz retornar a sua figura. Ambos so teis durante a realizao de um
desenho. Se for necessrio recomear um desenho ou iniciar um novo pode-se usar o
comando TAT que limpa a tela e recoloca a tartaruga na sua posio e orientao originais.

2
Os exemplos que sero apresentados usam como referncia o software SuperLogo verso 3.0. As primitivas acentuadas
devero ser digitadas com letras minsculas.
Tartarugas, Figuras, Palavras, Listas e Procedimento : Um primeiro passeio pelo Logo 4
As figuras abaixo mostram o uso desses comandos.
TAT
PF 10
UN
PF 20
-----------------------------------------------------------------------------------------------------------------------
DT
UL
PF20
-----------------------------------------------------------------------------------------------------------------------
UB
PT 20
AT
-----------------------------------------------------------------------------------------------------------------------
TAT
--------------------------------------------------------------------------------------------------
A cor do trao da tartaruga pode ser mudada alterando-se a cor do lpis da tartaruga
atravs do comando MUDECL n
o
que significa mude a cor do lpis. Para se obter um melhor
contraste pode-se modificar a cor da tela por meio do comando MUDECF n
o
que significa mude
a cor do fundo. Cada nmero usado como parmetro desses comandos corresponde a uma cor
pr-estabelecida pelas diferentes implementaes da linguagem Logo.
Helosa Vieira da Rocha, Fernanda M. P. Freire & Maria Elisabette Brisola Brito Prado 5
Repetindo uma seqncia de aes
Um comando bastante til do repertrio do Logo o comando REPITA. Ele usado
quando se quer efetuar uma mesma ao, ou seqncia de aes, um determinado nmero de
vezes. O REPITA precisa de dois parmetros: um nmero e uma lista. O nmero refere-se ao
nmero de vezes que a lista deve ser repetida e a lista refere-se a ao que deve ser realizada.
Portanto, a forma genrica desse comando :
REPITA <nmero> <lista>
O comando REPITA pode ser usado em vrios contextos, entre eles, para desenhar
figuras geomtricas.
REPITA 4 [ PF 50 PD 90 ]
---------------------------------------------------------------------------------------------------------------------
REPITA 4 [ REPITA 4 [ PF 50 PD 90 ] PD 90 ]
---------------------------------------------------------------------------------------------------------------------
Outro exemplo de uso do comando REPITA a execuo do comando
REPITA 4 [ MUDECF 5 ESPERE 200 MUDECF 0 ESPERE 200 ]
que provoca mudanas alternadas da cor do fundo da tela.
Tartarugas, Figuras, Palavras, Listas e Procedimento : Um primeiro passeio pelo Logo 6
Outras Possibilidades do Logo
Como vimos o lpis da tartaruga pode assumir diferentes cores. Com este recurso pode-
se pintar reas perfeitamente delimitadas da tela, atravs do comando PINTE. Para pintar
necessrio seguir alguns passos. Veja um exemplo de como proceder para pintar o interior de
um quadrado:
REPITA 4 [ PF 60 PD 90 ]
UN PD 45 PF 20
UL MUDECP 0 PINTE
Observe que para pintar a tartaruga deve ser levada, sem lpis, para dentro da regio a
ser pintada. Em seguida para pintar ela deve estar usando lpis com a cor de preenchimento
desejada. Para mudar somente a cor da linha de uma figura, a tartaruga deve estar sobre a
mesma.
Escrevendo na Janela Grfica
Pode-se escrever na tela atravs do comando ROTULE. Este comando precisa de um
parmetro que pode ser um nmero, ou uma palavra ou uma lista. Por exemplo, os comandos:
ROTULE "LOGO
UN PT 20
ROTULE [ Maria gosta de Jos ]
PT 20
ROTULE 1998
produziriam como resultado:
LOGO
Maria gosta de Jos
1998
Observe que quando a entrada do comando ROTULE uma lista os colchetes no
aparecem impressos na Janela Grfica. O comando ROTULE s imprime o contedo da lista
usada como parmetro.
Helosa Vieira da Rocha, Fernanda M. P. Freire & Maria Elisabette Brisola Brito Prado 7
Compreendendo a natureza dos parmetros
Como j foi dito, existem comandos que precisam de parmetro. Esses parmetros
possuem diferentes naturezas: podem ser nmeros, palavras ou listas.
Palavra uma seqncia de caracteres precedida por aspas ( " ). Como por exemplo:
"casa "123 "dx40 "345F
Nmero um tipo especial de palavra, que dispensa o uso de aspas para facilitar as
operaes aritmticas. Um nmero constitudo somente por dgitos, podendo ser um valor
inteiro ou real (com ponto decimal). Exemplo:
123 354.5 1.5 48
Lista um conjunto de palavras, nmeros ou listas escrito entre colchetes ( [ ] ). Como
por exemplo:
[ abacaxi casa 32 ]
Esta lista possui 3 elementos: os dois primeiros so palavras e o ltimo nmero;
ou, todos so palavras. Observe que quando uma palavra elemento de uma lista
no precisa vir precedida por aspas.
[ [pastel] hamburger pizza ]
O elemento de uma lista tambm pode ser uma lista como o caso do primeiro
elemento desse exemplo.
[ [coca cola] guaran suco ]
Esta lista possui 3 elementos: o primeiro uma lista e os dois ltimos so palavras.
Neste caso o primeiro elemento da lista tambm uma lista de dois elementos que
so palavras.
Existe a definio de lista vazia que denotada por [ ] e palavra vazia que
denotada por aspas seguida por um espao em branco: " .
Tartarugas, Figuras, Palavras, Listas e Procedimento : Um primeiro passeio pelo Logo 8
Conhecendo as Operaes
Operaes so primitivas que possibilitam a passagem de informaes. As operaes
retornam valores que so utilizados por comandos ou por outras operaes. H operaes que
lidam com o universo da Tartaruga, outras que manipulam exclusivamente nmeros e que so
denominadas de operaes aritmticas, e outras ainda, que lidam com palavras e listas.
Vejamos alguns exemplos de cada uma delas:
MOSTRE CF
O comando MOSTRE (MO) imprime na Janela de Comandos o resultado da
operao CORDOFUNDO (CF) que um nmero que corresponde cor do fundo
da Janela Grfica.
MOSTRE CL
O comando MOSTRE imprime na Janela de Comandos o resultado da operao
CORDOLPIS (CL) que uma lista com nmero correspondentes ltima cor
assumida pelo lpis da tartaruga.
MOSTRE D
O comando MOSTRE imprime na Janela de Comandos o resultado da operao
DIREO (D) que um nmero que corresponde ltima orientao da
tartaruga.
MOSTRE POS
O comando MOSTRE imprime na Janela de Comandos o resultado da operao
POSIO (POS) que uma lista que corresponde posio adotada pela tartaruga
de acordo com o sistema de coordenadas cartesianas (eixo x e eixo y
respectivamente).
As operaes aritmticas como: + - * / precisam de parmetros sempre numricos
e produzem como resultado, tambm, um nmero. Por exemplo:
PF 50 * 2
Helosa Vieira da Rocha, Fernanda M. P. Freire & Maria Elisabette Brisola Brito Prado 9
O comando PF desloca a tartaruga 100 passos que corresponde ao resultado da
operao de multiplicao de 50 por 2
REPITA 6 [PT 50 PE 360/6]
O comando PE gira a tartaruga 60 graus que corresponde ao resultado da
operao de diviso.
PT 5 + 6 + 15 + 5
O comando PT desloca a tartaruga 31 passos que o resultado das trs operaes
de adio.
PD 3 * D
O comando PD gira a tartaruga um determinado nmero. Este nmero o resultado
da operao de multiplicao que, por sua vez, usa como um dos parmetros o
resultado da operao D.
3
Observe como o interpretador Logo faz a avaliao dessa instruo, supondo-se que a
tartaruga estivesse orientada em 30.
H um extenso conjunto de operaes que lidam com palavras e listas. Ele pode ser
subdividido de acordo com diferentes funes: operaes que separam elementos, que
buscam e contam elementos, que constrem estruturas e que concatenam elementos. A
seguir apresentaremos as diferentes operaes de acordo com as suas funes:

3
Geralmente em Logo, usa-se parnteses para modificar a ordem de prioridade dos operadores.
Tartarugas, Figuras, Palavras, Listas e Procedimento : Um primeiro passeio pelo Logo 10
Separando Elementos
Existe, basicamente, dois tipos de operaes que facilitam a separao de elementos de
palavras e listas. Operaes que retornam o primeiro ou o ltimo elemento de uma palavra ou
de uma lista: PRIMEIRO (PRI) e LTIMO (ULT). E, operaes que retornam o restante de uma
palavra ou de uma lista sem o primeiro ou sem o ltimo elemento da palavra ou da lista:
SEMPRIMEIRO (SP) e SEMLTIMO (SU). Essas operaes no aceitam palavras ou listas
vazias como parmetro. Veja alguns exemplos:
MOSTRE PRI "abacaxi
O comando MOSTRE imprime na Janela de Comandos o resultado da operao
PRI que a palavra a
MOSTRE PRI [ a b c ]
O comando MOSTRE imprime na Janela de Comandos o resultado da operao
PRI que a palavra a
MOSTRE SP "abacaxi
O comando MOSTRE imprime na Janela de Comandos o resultado da operao SP
que a palavra bacaxi
MOSTRE SP [a b c ]
O comando MOSTRE imprime na Janela de Comandos o resultado da operao SP
que a lista [ b c]
MOSTRE SU amora
O comando MOSTRE imprime na tela o resultado da operao SU que a palavra
amor
MOSTRE PRI 5476
O comando MOSTRE PRI 5476 imprime na Janela de Comandos o resultado da
operao PRI que o nmero 5
Helosa Vieira da Rocha, Fernanda M. P. Freire & Maria Elisabette Brisola Brito Prado 11
MOSTRE SU 6791
O comando MOSTRE imprime na Janela de Comandos o resultado da operao SU
que o nmero 679
MOSTRE SU [2 4 6]
O comando MOSTRE imprime na Janela de Comandos o resultado da operao SU
que a lista [ 2 4 ]
Observe que as operaes SP e SU retornam valores que so sempre da mesma
natureza do seus parmetros. Isto , se o parmetro da operao SP for uma palavra o
resultado ser uma palavra e se o parmetro for uma lista, o resultado ser uma lista.
Pode-se tambm, combinar essas operaes para obter operaes mais sofisticadas.
Suponha que se queira imprimir a letra m da palavra ameixa. Pode-se combinar as operaes
da seguinte forma:
MOSTRE PRI SP "ameixa
A forma de execuo deste comando pode ser descrita pela seguinte seqncia de
passos:
l. O interpretador reconhece o comando MOSTRE e sabendo que ele precisa de
um parmetro continua lendo a instruo...
2. Em seguida o interpretador encontra a operao PRI e reconhece que o seu
resultado ser o parmetro do comando MOSTRE.
3. O interpretador sabe que a operao PRI precisa de um parmetro e continua
ento lendo a instruo sob o controle da operao PRI.
4. A prxima palavra encontrada SP que reconhecida como o nome de uma
operao que tambm precisa de um parmetro. O interpretador continua lendo
sob o controle da operao SP. "Observe que MOSTRE e PRI esto suspensos
aguardando os seus parmetros."
5. encontrada a palavra ameixa que reconhecida como parmetro da
operao SP.
6. A operao SP resolvida retornando a palavra meixa.
7. Este valor passado para a operao PRI como seu parmetro. A operao
PRI efetivada retornando o valor m.
Tartarugas, Figuras, Palavras, Listas e Procedimento : Um primeiro passeio pelo Logo 12
8. Este valor o parmetro de MOSTRE que ento executado imprimindo na
Janela de Comandos a palavra m.
Veja a representao dessa avaliao:
Pode-se obter o valor da coordenada y
4
da tartaruga atravs da operao POS. Para
tanto necessria uma combinao de operaes do tipo:
MOSTRE ULT POS
Esquematicamente e supondo-se que a tartaruga esteja na posio [30 50], a
avaliao do comando seria feita pelo interpretador Logo da seguinte maneira:
Ou ainda, para se obter a letra c da lista [a b [ c d e ] f] pode-se fazer:
MOSTRE PRI PRI SP SP [a b [c d e] f]
ou
MOSTRE PRI SU SU ULT SU [a b [c d e] f]
MO
imprime mna janela de comandos
MO
imprime 50na janela de comandos
Helosa Vieira da Rocha, Fernanda M. P. Freire & Maria Elisabette Brisola Brito Prado 13
Um aspecto importante dessa forma de notao o mecanismo de avaliao que precisa
ser bem compreendido para se operar com palavras e listas de modo geral. Observe que todas
as operaes em Logo, com exceo das aritmticas, so pr-fixas, ou seja, o operador
escrito antes dos respectivos operandos.
Buscando e Contando Elementos
Para selecionar um determinado elemento de uma palavra ou de uma lista usa-se a
operao ELEMENTO. Essa operao precisa de dois parmetros: um nmero e uma palavra
ou lista. O nmero indica a posio do elemento desejado da palavra ou da lista.
ELEMENTO nmero <palavra ou lista>
O nmero indica a posio do elemento desejado da palavra ou da lista. Veja alguns
exemplos:
MOSTRE ELEMENTO 2 [casa [pneu carro]]
O comando MOSTRE imprime na Janela de Comandos o resultado da operao
ELEMENTO que a lista [pneu carro]
MOSTRE ELEMENTO 5 "boneca
O comando MOSTRE imprime na Janela de Comandos o resultado da operao
ELEMENTO que a palavra c
Quando se deseja saber o nmero total de elementos de uma palavra ou lista pode-se
usar a operao NUMELEM. Essa operao s tem um parmetro que o prprio objeto.
MOSTRE NUMELEM [[abc]]
O comando MOSTRE imprime na Janela de Comandos o resultado da operao
NUMELEM que o nmero 1
MOSTRE NUMELEM "abc

4
A operao COORY n retorna o valor da coordenada y da tartaruga .
Tartarugas, Figuras, Palavras, Listas e Procedimento : Um primeiro passeio pelo Logo 14
O comando MOSTRE imprime na Janela de Comandos o resultado da operao
NUMELEMENTO que o nmero 3.
Construindo Estruturas
Pode-se construir estruturas do tipo palavras atravs da operao PALAVRA (PAL) e do
tipo listas atravs das operaes LISTA e SENTENA (SN). Todas essas operaes precisam
de pelo menos dois parmetros
5.
A seguir apresentamos exemplos de cada uma dessas
operaes:
MOSTRE PAL "cachorro "quente
O comando MOSTRE imprime na Janela de Comandos o resultado da operao
PAL que a palavra cachorroquente
MOSTRE (PAL 34 57 28)
O comando MOSTRE imprime na Janela de Comandos o resultado da operao
PAL que a palavra 345728
A operao PAL precisa de parmetros que sejam palavras.
A diferena entre as operaes LISTA e SN bastante sutil. Por essa razo
apresentaremos o mesmo exemplo para as duas operaes para facilitar a comparao entre
elas. Ambas as operaes aceitam tanto listas quanto palavras como entrada.
MOSTRE LISTA 45 80
O comando MOSTRE imprime na Janela de Comandos o resultado da operao
LISTA que a lista [45 80]
MOSTRE SN 45 80
O comando MOSTRE imprime na Janela de Comandos o resultado da operao
SN que a lista [45 80]

5
Pode-se aumentar o nmero de entradas dessas operaes usando-se parnteses antes de digitar o nome da operao e aps a
ltima entrada.
Helosa Vieira da Rocha, Fernanda M. P. Freire & Maria Elisabette Brisola Brito Prado 15
A operao LISTA coloca em uma lista os parmetros usados mantendo a natureza dos
mesmos. Nesse exemplo, a operao SN idntica. O seu resultado uma lista cujos
elementos so as palavras usadas como entradas. Veja outros exemplos:
MOSTRE (LISTA [tudo] [bem] [Jos])
O comando MOSTRE imprime na Janela de Comandos o resultado da operao
LISTA que a lista [[tudo] [bem] [ Jos]]
MOSTRE (SN [tudo] [bem] [Jos])
O comando MOSTRE imprime na Janela de Comandos o resultado da operao
SN que a lista [tudo bem Jos]
MOSTRE LISTA [Bom] "Dia
O comando MOSTRE imprime na Janela de Comandos o resultado da operao
LISTA que a lista [[Bom] Dia]
MOSTRE SN [Bom] "Dia
O comando MOSTRE imprime na Janela de Comandos o resultado da operao
SN que a lista [Bom Dia]
Observe que nestes exemplos operao LISTA no altera a natureza das entradas; nesse
exemplo, elas continuam sendo lista e palavra enquanto elementos do resultado final. O
mesmo no acontece com a operao SN; o resultado final apresenta elementos que so
palavras, independentemente da natureza original dos parmetros. Mais exemplos:
MOSTRE LISTA [ 8 ] [3 [6] ]
O comando MOSTRE imprime na Janela de Comandos o resultado da operao
LISTA que a lista [[8] [3 [6]]]
MOSTRE SN [ 8 ] [3 [6] ]
O comando MOSTRE imprime na Janela de Comandos o resultado da operao
SN que a lista [8 3 [6]]
Tartarugas, Figuras, Palavras, Listas e Procedimento : Um primeiro passeio pelo Logo 16
Note como a operao SN trata os parmetros quando esses so listas constitudas por
sub-listas. A operao retorna uma lista cujos elementos so palavras e listas. O parmetro
que originariamente era lista torna-se uma palavra da lista final. A sub-lista do parmetro
original torna-se uma lista na lista final.
Resumindo, a operao LISTA retorna uma lista de suas entradas e a operao SN
retorna uma lista dos elementos de suas entradas.
Concatenando Elementos
Qualquer palavra ou lista pode ser adicionada a uma outra lista. A operao
JUNTENOINCIO (JI) adiciona uma palavra ou lista no incio de uma determinada lista e a
operao JUNTENOFIM (JF) adiciona uma palavra ou lista no fim de uma dada lista. Portanto,
o primeiro parmetro dessas operaes pode ser uma palavra ou lista e o segundo sempre
uma lista. O resultado final dessas operaes sempre uma lista. Vejamos alguns exemplos:
MOSTRE JF [coca] [[cachorro quente] hamburger pastel]
O comando MOSTRE imprime na Janela de Comandos o resultado da operao
JF que a lista [[cachorro quente] hamburger pastel [coca]]
MOSTRE JI "fim [[comeo]]
O comando MOSTRE imprime na Janela de Comandos o resultado da operao JI
que a lista [ fim [comeo]]
MOSTRE JF "incio [ ]
O comando MOSTRE imprime na Janela de Comandos o resultado da operao
JF que a lista [incio]
MOSTRE JI 30 [ de maro de 1961]
O comando MOSTRE imprime na Janela de Comandos o resultado da operao JI
que a lista [30 de maro de 1961]
MOSTRE JF PRI D SP POS
Helosa Vieira da Rocha, Fernanda M. P. Freire & Maria Elisabette Brisola Brito Prado 17
O comando MOSTRE imprime na Janela de Comandos o resultado da operao JF que
uma lista.
Veja a avaliao desta instruo supondo que a tartaruga est na posio [10 20] com a
direo de 90:
Conhecendo os Predicados
So denominados de predicados as operaes que retornam valores booleanos
identificados pelas palavras VERD e FALSO que representam verdadeiro e falso
respectivamente. Por exemplo VISVEL uma operao que retorna a palavra VERD se a
tartaruga est visvel na tela e FALSO caso contrrio e, portanto, um predicado.
Dentre as operaes de manipulao de palavras e listas existem predicados definidos
para saber se um determinado objeto uma palavra, uma lista, um elemento de uma estrutura
etc.
Por exemplo, LISTA um predicado que tem um parmetro que pode ser uma palavra
ou uma lista e retorna VERD se for lista e FALSO caso contrrio.
MO
Imprime [20 9]
90
Tartarugas, Figuras, Palavras, Listas e Procedimento : Um primeiro passeio pelo Logo 18
PALAVRA outro predicado que tem um parmetro, que pode ser uma palavra ou lista.
Retorna VERD se o parmetro for uma palavra e FALSO se for uma lista. Com funcionamento
anlogo existe o predicado NMERO que verifica se o parmetro um nmero ou no.
VAZIA tambm um predicado que tem como parmetro uma palavra ou lista. Retorna
VERD se o parmetro for uma palavra vazia ou uma lista vazia e FALSO caso contrrio.
MOSTRE (LISTA [abacaxi])
Imprime na Janela de comandos o resultado da operao LISTA [abacaxi], que Verd
MOSTRE (LISTA abacaxi)
Imprime na Janela de comandos o resultado da operao LISTA abacaxi, que Falso
Conhecendo os Operadores Lgicos e Relacionais
Os operadores lgicos: OU, E e NO operam sobre os predicados e produzem VERD ou
FALSO de acordo com a seguinte tabela, denominada Tabela Verdade:
PRED 2 PRED 1 OU E NO PRED 1
F F F F V
F V V F V
V F V F F
V V V V F
A leitura desta tabela se faz da seguinte maneira: considerando a primeira linha, tem-se
que se PRED 1 (predicado 1) FALSO e PRED 2 (predicado 2) tambm FALSO, a operao
OU aplicada aos dois predicados retorna o valor FALSO, a operao E tambm retorna FALSO
e a operao NO PRED 1 retorna VERD. Observe que as operaes OU e E so binrias, ou
seja, precisam de dois operandos, e a operao NO unria, precisa de um operando.
MOSTRE E (NMERO 123) (PALAVRA PRI [ 123 456])
O comando MOSTRE imprime na Janela de Comandos a o resultado do operador
lgico E que a palavra VERD. Neste caso os parnteses servem para clarificar a
operao desejada.
Helosa Vieira da Rocha, Fernanda M. P. Freire & Maria Elisabette Brisola Brito Prado 19
Acompanhe este esquema de avaliao:
MOSTRE OU (LISTA "ana) (NMERO [680])
O comando MOSTRE imprime na Janela de Comandos o resultado do operador
lgico OU que a palavra FALSO
MOSTRE NO LISTA [5 6 7]
O comando MOSTRE imprime na Janela de Comandos o resultado do operador
lgico NO que a palavra FALSO
Os operadores relacionais: maior ( > ), menor ( < ) e igual ( = ) so usados na construo
de expresses lgicas que retornam VERD ou FALSO. Por exemplo:
MOSTRE 738 > 725
O comando MOSTRE imprime na Janela de Comandos o resultado do operador
relacional > que a palavra VERD
MO
imprime verd na janela de comandos
Tartarugas, Figuras, Palavras, Listas e Procedimento : Um primeiro passeio pelo Logo 20
MOSTRE 7 = 7.0
O comando MOSTRE imprime na Janela de Comandos o resultado do operador
relacional = que a palavra VERD
MOSTRE "Paulo = [Paulo]
O comando MOSTRE imprime na Janela de Comandos o resultado do operador
relacional = que a palavra FALSO
O operador relacional = possui tambm uma notao prfixa que SOIGUAIS.
Veja mais exemplos:
MOSTRE SOIGUAIS " [ ]
O comando MOSTRE imprime na Janela de Comandos o resultado do operador
relacional SOIGUAIS que a palavra FALSO
MOSTRE SOIGUAIS [ ] [ elemento]
O comando MOSTRE imprime na Janela de Comandos o resultado do operador
relacional SOIGUAIS que a palavra FALSO
MOSTRE SOIGUAIS (PRI POS ) COORX
O comando MOSTRE imprime na Janela de Comandos o resultado do operador
relacional SOIGUAIS comparando o resultado da operao PRI POS e da
operao COORX , que VERD.
Definindo Procedimentos
Os comandos e operaes vistos at aqui fazem parte do conjunto de primitivas da
linguagem Logo e podem ser usados na definio de novas palavras, isto , na criao de
procedimentos que expandem o conjunto inicial de primitivas da linguagem de programao. A
criao de novas palavras possvel graas atividade de programao.
Embora o mecanismo de definir programas em Logo seja bastante simples, a atividade
de programao extremamente interessante porque obriga o usurio a pensar no processo
de soluo de um problema e no domnio de conhecimento que ser utilizado neste processo.
Helosa Vieira da Rocha, Fernanda M. P. Freire & Maria Elisabette Brisola Brito Prado 21
Alm disso a nica maneira de se ter controle sobre o computador, de modo a faz-lo
produzir qualquer resultado que se deseje.
Na maioria das implementaes da linguagem Logo, para se definir um procedimento
necessrio estar no modo de edio ou no editor de programas.
Suponha que se queira definir um tringulo equiltero com o lado de tamanho 100. A
seqncia de comandos a serem dados a Tartaruga poderia ser:
PF 100
PD 120
PF 100
PD 120
PF 100
PD 120
ou
REPITA 3 [ PF 100 PD 120 ]
Se desejssemos definir um procedimento Logo que desenhasse este tringulo
deveramos, dentro do modo de edio, teclar:
APRENDA TRINGULO
PF 100
PD 120
PF 100
PD 120
PF 100
PD 120
FIM
ou
APRENDA TRINGULO
REPITA 3 [ PF 100 PD 120 ]
FIM
Tartarugas, Figuras, Palavras, Listas e Procedimento : Um primeiro passeio pelo Logo 22
Ao sairmos do modo de edio e retornarmos ao modo direto de uso podemos dar o
comando TRINGULO para a Tartaruga, obtendo-se o resultado desejado, como pode ser
visto na figura:
Neste caso, dizemos que TRINGULO passa a fazer parte do elenco de comandos que a
Tartaruga conhece assim como: UB, TAT etc..
Todo procedimento em Logo tem:
1. Uma linha ttulo que consiste no uso do comando APRENDA seguido de um
nome
6
que referencia o procedimento
2. Um corpo, representado pelo conjunto de comandos que executaro aquele
procedimento
3. Uma linha de finalizao que consiste no uso do comando FIM
Portanto, um procedimento em Logo uma seqncia finita de comandos que se
caracteriza por duas coisas: o uso do comando APRENDA seguido de um nome e o uso do
comando FIM que assinala o trmino das instrues pertencentes ao procedimento.
Existe em Logo o conceito de rea de trabalho que uma regio de memria do
computador onde todos os procedimentos definidos durante uma sesso de trabalho ficam
armazenados. No exemplo do TRINGULO, ao sairmos do modo de edio, o procedimento
que define o tringulo fica armazenado na rea de trabalho enquanto se est usando o Logo.
Se desejarmos um armazenamento permanente em disquete ou disco rgido isto dever ser
feito usando-se comandos para manipulao de arquivos especficos de cada implementao.
7
Helosa Vieira da Rocha, Fernanda M. P. Freire & Maria Elisabette Brisola Brito Prado 23
Estruturando um Projeto Simples
Uma vez definido um procedimento ele pode ser usado na definio de outros
procedimentos. Por exemplo, o procedimento TRINGULO visto anteriormente pode ser
reutilizado nos seguintes contextos:
APRENDA CATAVENTO
REPITA 8 [ PF 100 TRINGULO PT 100 PD 45 ]
FIM
---------------------------------------------------------------------------------------------------------
APRENDA TREVO
REPITA 4 [ TRINGULO PD 90 ]
PT 150
FIM

6
O nome de um procedimento pode, a princpio, ser qualquer palavra mas, uma vez definido o procedimento, ele passa a ser mais
uma palavra do repertrio do Logo cuja escrita precisa ser rigorosamente respeitada.
7
Vide manual de referncia sobre gerenciamento da rea de trabalho na implementao do SuperLogo.
Tartarugas, Figuras, Palavras, Listas e Procedimento : Um primeiro passeio pelo Logo 24
Quando um procedimento usado como comando de um outro procedimento, diz-se que
o primeiro um subprocedimento do segundo. No exemplo, TRINGUL0 um
subprocedimento de TREVO.
Suponhamos que se queira implementar procedimentos que desenhem uma casa como a
da figura a seguir:
princpio, pode-se criar um nico procedimento que descreve passo-a-passo as aes
da Tartaruga. Poderamos, ento, definir o seguinte procedimento:
APRENDA CASA
PF 100 PD 90
PF 100 PD 90
PF 100 PD 90
PF 100 PD 90
PF 100 PD 30
PF 100 PD 120
PF 100
FIM
Apesar de ser uma soluo, esta forma de definir nem sempre a mais adequada. No
desenvolvimento de projetos mais complexos acaba-se tendo procedimentos excessivamente
longos e de difcil entendimento. Imagine o trabalho do usurio para descobrir um giro da
Tartaruga equivocado no meio de um procedimento de 50 linhas! Da a necessidade de
introduzirmos a noo de estruturao de procedimentos.
Vejamos ento, duas maneiras diferentes de estruturar o projeto casa:
APRENDA CASA1
Helosa Vieira da Rocha, Fernanda M. P. Freire & Maria Elisabette Brisola Brito Prado 25
PAREDE
TELHADO
FIM
APRENDA PAREDE
REPITA 5 [ PF 100 PD 90 ]
FIM
APRENDA TELHADO
REPITA 3 [ PF 100 PE 120 ]
FIM
Esquematicamente, o interpretador Logo, funcionaria da seguinte maneira, durante o
processo de execuo do procedimento CASA1:
APRENDA PAREDE
---
FIM
APRENDA CASA1
PAREDE
TELHADO
FIM
APRENDA TELHADO
---
FIM
O subprocedimento PAREDE uma variao de um quadrado. O nmero de repeties
usado pelo comando REPITA deixa a Tartaruga em uma posio ideal, j adequada para a
execuo do subprocedimento seguinte que TELHADO. Este, por sua vez, usa um giro para
a esquerda que possibilita o acerto do TELHADO sobre a PAREDE. Note que essa soluo
implica a antecipao da posio e da direo da Tartaruga ao trmino de um subprocedimento
e incio do seguinte.
Outra forma de estruturar o projeto casa seria assim:
APRENDA CASA2
QUADRADO
ACERTATAT
TRINGULO
FIM
APRENDA QUADRADO
Tartarugas, Figuras, Palavras, Listas e Procedimento : Um primeiro passeio pelo Logo 26
REPITA 4 [PF 100 PD 90 ]
FIM
APRENDA ACERTATAT
PF 100
PD 30
FIM
APRENDA TRINGULO
REPITA 3 [ PF 100 PD 120 ]
FIM
Veja a representao esquemtica da execuo de CASA2 pelo interpretador Logo:
APRENDA QUADRADO
---
FIM
APRENDA ACERTAT
---
FIM
APRENDA CASA2
QUADRADO
ACERTAT
TRINGULO
FIM
APRENDA TRINGULO
---
FIM
Neste caso, optou-se por um subprocedimento intermedirio - ACERTATAT - que faz o
acerto da posio e direo da Tartaruga possibilitando o arranjo entre as duas figuras bsicas
que compem o desenho original: QUADRADO e TRINGULO.
Os procedimentos QUADRADO e TRINGULO possuem duas caractersticas bastante
importantes do Logo: a modularidade e a transparncia. Diz-se que um procedimento
modular quando ele independente do seu contexto de uso e, portanto, pode ser reutilizado
em muitas outras situaes. Por exemplo, o QUADRADO poderia ser usado para fazer uma
composio de quadrados como essa:
Helosa Vieira da Rocha, Fernanda M. P. Freire & Maria Elisabette Brisola Brito Prado 27
APRENDA COMPOSIO
REPITA 3 [QUADRADO UN PF 25 PD 90 PF 25 UL PE 90]
FIM
Procedimentos como esse facilitam a atividade de programao. O prprio usurio vai
criando um arsenal de ferramentas que ele j sabe como funciona.
A transparncia de um procedimento parte da modularidade no sentido de que ela torna
os procedimentos mais fceis de serem manipulados. Um procedimento grfico transparente
faz com que a Tartaruga comece e termine o desenho na mesma posio e direo. Dessa
maneira, o usurio no precisa se preocupar com a ltima posio ou direo da Tartaruga
para idealizar o procedimento seguinte. Se ele dispe de peas modulares e transparentes ele
passa a se ocupar dos procedimentos de ligao, anlogos ao procedimento ACERTATAT do
exemplo anterior.
Entretanto, modularidade e transparncia no se restringem direo e posio da
Tartaruga. preciso compreender essas caractersticas de forma mais abrangente. Ao realizar
um projeto computacional o usurio precisa pensar sobre o estado inicial dos vrios objetos
que ele estiver manipulando: cor do fundo da tela, cor do lpis, arranjo inicial de posio e
orientao, tartaruga com ou sem lpis, aparente ou no etc...
Tartarugas, Figuras, Palavras, Listas e Procedimento : Um primeiro passeio pelo Logo 28
A DIVERSIDADE DE DESCRIES E A DIVERSIDADE DA ESTRUTURAO DE
PROCEDIMENTOS
Diferentes descries dos problemas permitem diversas formas de estruturar os
procedimentos que solucionam os mesmos. Observemos a figura a seguir e algumas solues
possveis:
Descrio 1
A Tartaruga desenha dois quadrados sobrepostos. H um giro entre eles para
dispor os quadrados. Em seguida, a Tartaruga desenha um feixe de semi-retas
APRENDA QUADRADO
REPITA 4 [ PF 100 PD 90 ]
FIM
APRENDA FEIXE
REPITA 8 [ PF 50 PT 50 PD 45 ]
FIM
APRENDA QUADRADOS1
QUADRADO
PF 50 PD 90
UN PT 20 PE 45 UL
QUADRADO
UN PD 45 PF 70 UL
FEIXE
FIM
Helosa Vieira da Rocha, Fernanda M. P. Freire & Maria Elisabette Brisola Brito Prado 29
Descrio 2
A Tartaruga desenha um feixe de semi-retas e, depois dois quadrados
sobrepostos. Mantendo um giro entre eles.
APRENDA FEIXE
REPITA 8 [ PF 50 PT 50 PD 45 ]
FIM
APRENDA QUADRADO
REPITA 4 [PF 100 PD 90 ]
FIM
APRENDA QUADRADOS2
FEIXE
PT 50 PE 90 PT 50
QUADRADO
PF 50 PD 90
UN PT 20 PE 45 UL
QUADRADO
FIM
Descrio3
A Tartaruga desenha um quadrado pequeno e vira um pouco. No total ela
desenha 8 quadrados e, portanto o giro entre casa quadrado de 45 graus.
APRENDA QUAPEQUENO
REPITA 4 [ PF 50 PD 90 ]
FIM
APRENDA QUADRADOS3
REPITA 8 [ QUAPEQUENO PD 45 ]
FIM
A leitura dos procedimentos nos permite observar a diversidade de descries na
implementao de um mesmo projeto. Selecionamos apenas algumas das descries
possveis neste contexto. Nosso objetivo no apontar a melhor descrio. Ao
contrrio, queremos salientar a maleabilidade da atividade de programao que permite
a cada pessoa utilizar, criar e descobrir suas prprias estratgias. A atividade de
programao, assim compreendida, colabora no sentido de evitar o estabelecimento de
solues padronizadas. Dessa forma, aquele que est aprendendo a programar pode
Tartarugas, Figuras, Palavras, Listas e Procedimento : Um primeiro passeio pelo Logo 30
adquirir flexibilidade tanto na tarefa de resoluo de problemas quanto no conhecimento
dos recursos oferecidos pela linguagem computacional.
CONSIDERAES FINAIS
Nosso intuito ao desenvolver este material foi o de organizar informaes computacionais
relevantes para o leitor que deseja aprofundar e/ou formalizar seus conhecimentos sobre a
linguagem Logo do ponto de vista computacional. No se trata, portanto, de um manual
organizador de "aulas" de um curso de Logo. Seu uso independe de um curso e vice-versa.
Muitas vezes temos usado este texto como um material de apoio durante os cursos; outras,
somente o recomendamos aps a experincia do curso. Em outras palavras, sua leitura
depende do contexto e do objetivo de uso da linguagem Logo. Note-se, por exemplo, que a
definio de procedimentos iniciada quase no final deste material. Essa escolha restringe-se
a um critrio de organizao de um material escrito e no abordagem utilizada em laboratrio
durante a realizao de cursos.
Helosa Vieira da Rocha, Fernanda M. P. Freire & Maria Elisabette Brisola Brito Prado 31
BIBLIOGRAFIA
ABELSON, N. e ABELSON, A. Logo for the Macintosh: An Introduction Through Object Logo.
Paradigm Software Inc, Cambridge, MA, 1992.
Manual do SuperLogo, NIED, UNICAMP, 1994.
PC Logo for Windows: Tutorial, Reference and Glossary. Harvard Associados Inc, 1994.

Вам также может понравиться