Você está na página 1de 74

Introduo ao LOGO

http://maggieincognita.blogspot.com/2008_09_01_archive.html

Jefferson Manhes de Azevedo


Instituto Federal de Educao, Cincia e Tecnologia Fluminense

Primeira Aula

Primitivas

Para mover a tartaruga ("tat") pela tela, usamos primitivas. As primitivas so comandos prdefinidos da linguagem LOGO.

pf nmero (pf 50) - parafrente

Primitivas

Faz a tat avanar o nmero de passos de tartaruga indicados por um nmero. Faz a tat recuar o nmero de passos de tartaruga indicados por um nmero. A tat gira para a direita tantos graus quanto indicados. A tat gira para a esquerda tantos graus quanto indicados.

pt nmero (pt 100) - paratras

pd nmero (pd 90) - paradireita

pe nmero (pe 45) - paraesquerda

Primitivas
Exerccio 1: Desenhe um quadrado, como o da figura abaixo, sendo cada quadrcula equivalente a 40 passos de tat:

Primitivas
Uma das respostas do exerccio 1:
pf 200 pd 90 pf 200 pd 90 pf 200 pd 90 pf 200 pd 90

ld - limpadesenho

Primitivas

Limpa os desenhos na tela (ld ou limpadesenho) e reinicializa a tat ao centro da tela (sua "origem").

Primitivas
repita nmero [lista de comandos] (repita 5 [pf 50 pd 45]) repete uma lista de comandos tantas vezes quanto o indicado pelo nmero.

Primitivas
Exerccio 2a: Desenhe um quadrado, como o da figura abaixo, sendo cada quadrcula equivalente a 40 passos de tat, usando a primitiva repita:

Primitivas
Uma das respostas do exerccio 2a:

Comandos: pf 200 pd 90 pf 200 pd 90 pf 200 pd 90 pf 200 pd 90 repita 4 [pf 200 pd 90]

Primitivas
Exerccio 2b: Desenhe um retngulo, com 200 passos em seu lado maior e 100 passos em seu lado menor:

Uma das respostas do exerccio 2a:

Primitivas

Comandos: pf 200 pd 90 pf 100 pd 90 pf 200 pd 90 pf 100 pd 90

Primitivas
Exerccio 2c: Repita o exerccio anterior usando a primitiva repita.

Uma das respostas do exerccio 2a:

Primitivas

repita 2 [pf 200 pd 90 pf 100 pd 90]

Primitivas
Exerccio 3: Desenhe um tringulo equiltero, como o da figura abaixo, sendo cada quadrcula equivalente a 30 passos de tat:

Primitivas
Uma das respostas do exerccio 3:

repita 3 [pf 150 pd 120]

Primitivas
E se os comandos da resposta do exerccio forem invertidos?

repita 3 [pd 120 pf 150]

Primitivas
Exerccio 4: Desenhe um hexgono, como o da figura abaixo, sendo cada quadrcula equivalente a 20 passos de tat:

Primitivas
Uma das respostas do exerccio 4:

repita 6 [pf 80 pd 60]

OBS* Nota-se que, ao deslocar-se, a tat d uma volta completa sobre ela mesma. Esta rotao de 360 feita em 6 etapas. Por conseguinte, cada vez, gira 360/6.

Primitivas
Seguindo o raciocnio da resposta do exerccio 4, nota-se que para desenhar um polgono de n lados, o ngulo ser obtido dividindo 360 por n. Por exemplo:

Para desenhar um pentgono regular de lado 100: repita 5 [pf 100 pd 72] (360 / 5 = 72)

Exerccio 5: E para desenhar um enegono regular (9 lados) de lado 20?

Primitivas

Primitivas
Uma resposta para o exerccio 5:

repita 9 [pf 20 pd 40] (360 / 9 = 40)

Procedimentos
Para evitar ter que digitar todas as instrues toda vez que for desenhar um quadrado, um tringulo, ou qualquer outra coisa, pode-se definir instrues pessoais chamadas procedimentos.

Um procedimento comea com a palavra aprenda e termina com a palavra fim. Por exemplo:
aprenda quadrado repita 4 [pf 100 pd 90] fim

Para criar um procedimento, preciso entrar no Editor.

Para salvar um procedimento, preciso clicar no cone do pinguin.

Para executar um procedimento, basta digitar seu nome.

Exerccio 6: Faa um procedimento para desenhar um tringulo e outro para desenhar um hexgono.

Procedimentos

dt - escondetat

Outras Primitivas

Esconde a tat (ela "desaparece"). Interessante recurso quando se deseja que um programa seja mais rpido.
A tat fica visvel na tela.

at - mostretat

un - usenada
Levanta o lpis. A tat no deixa mais trao ao deslocar-se. Use lpis. A tat desenha ou escreve por onde passa.

ul - uselpis

Outras Primitivas
Exerccio 7: Desenhe dois quadros distantes 100 passos um do outro.

Outras Primitivas
Uma resposta para o exerccio 7:

ld quadrado un pe 90 pf 100 ul quadrado

Outras Primitivas
Exerccio 8: Desenhe uma casa. Cada quadrcula equivale a 20 passos de tat.

A rea de desenho possui um marcador cuja origem est situada no centro da tela. Pode-se assim atingir cada um dos pontos da rea de desenho atravs das suas coordenadas. Para isso, use a primitiva:
mudepos [ coordenada horizontal coordenada vertical]

Mudepos

mudepos [100 -250]

Exerccio 9: Desenhe a figura abaixo.

Mudepos

Exerccio 10: Desenhe a figura abaixo usando as primitivas mudepos, ld, un e ul.

Outras Primitivas

Segunda Aula

Passando Argumentos aos Procedimentos


Exerccio 11: Desenhe trs quadrados, usando procedimentos, com dimenses de 50, 100 e 200 passos respectivamente.

Passando Argumentos aos Procedimentos


Uma resposta possvel:
aprenda quadrado50 repita 4 [pf 50 pd 90]

fim
aprenda quadrado100 repita 4 [pf 100 pd 90] fim aprenda quadrado200

repita 4 [pf 200 pd 90]


fim

Vamos alterar este procedimento para que receba um argumento indicando a medida do lado do quadrado a ser desenhado. preciso definir, portanto, uma varivel como parmetro do procedimento quadrado. No LOGO as variveis so definidas por um nome precedido pelo smbolo ":" (dois pontos). Ex: :c :lado :altura

Passando Argumentos aos Procedimentos

Se quisermos indicar ao procedimento quadrado que ele depender da varivel :lado, acrescentaremos :lado ao fim da linha de definio. Desse modo, a tat avanar :lado passos.
aprenda quadrado :lado repita 4 [pf :lado pd 90] fim

Passando Argumentos aos Procedimentos

Para desenhar um quadrado com dimenses de 80 passos, basta chamar o procedimento especificando o nmero de passos desejado como argumento.

Passando Argumentos aos Procedimentos


Exerccio 12: Desenhe a figura abaixo, usando o procedimento quadrado, passando as dimenses de 100, 50, 30, 20 e 10 passos, respectivamente, como argumento.

Os procedimentos podem receber mais de argumento. Para isso, deve-se especificar assinatura do procedimento a relao parmetros (a relao de variveis), que receber.
aprenda retangulo :altura :largura

Passando Argumentos aos Procedimentos

um na de ele

repita 2 [pf :altura pd 90 pf :largura pd 90] fim

Passando Argumentos aos Procedimentos


Exerccio 13: Desenhe um retngulo, usando procedimento com passagem de argumentos, com dimenses de 200 passos de largura e 80 passos de altura.

Passando Argumentos aos Procedimentos


Exerccio 14: Desenhe o quadrado abaixo, passando como argumentos o nmero de quadrculas, sendo cada quadrcula equivalente a 20 passos. Dica: O * significa a operao de multiplicao.

Passando Argumentos aos Procedimentos


Exerccio 15: Desenhe a figura abaixo, onde cada quadrcula equivale a 20 passos de tat, usando procedimentos, porm passando como argumento o nmero de quadrculas.

Recursividade
Um procedimento recursivo quando chama ele mesmo. Veja um exemplo que utiliza esta propriedade:
aprenda recursivo1

pd 1
recursivo1 fim OBS* Para parar a execuo do procedimento, use o boto PARE.

espere nmero

Novas Primitivas

Bloqueia o programa durante 60 avos do nmero indicado. Por exemplo, espere 120 interromper o procedimento durante dois segundos. A tartaruga desloca-se apagando tudo por onde passa. Passa ao modo padro: a tartaruga deixa um trao ao deslocar-se.

ub - useborracha

lp - lpispinta

Recursividade
Exerccio 16: Tente adivinhar o que far o procedimento abaixo: aprenda recursivo2 pf 200 useborracha espere 60 pt 200 lapispinta pd 6 recursivo2 fim

Recursividade
Exerccio 17: Faa um relgio, com um pequeno trao indicando os marcadores de 0, 15, 30 e 45 minutos, e o ponteiro dos segundos em movimento.

mo [texto] (mostre) ou esc [texto] (escreva)


Escreve o texto entre colchetes na rea de texto. Escreve o texto entre colchetes na rea de texto.

Novas Primitivas

mo :var (mostre) ou esc :var (escreva)

Recursividade
Exerccio 18: O que far o procedimento abaixo quando for chamado com o argumento 0? aprenda recursivo3 :contador mo :contador recursivo3 :contador+1 fim

Recursividade
Exerccio 19: Modifique o procedimento anterior a fim de que sejam mostrados apenas os nmeros pares.

Recursividade
Exerccio 20: Modifique o procedimento anterior a fim de que sejam apresentados os nmeros maiores do que 100 e mltiplos de 5.

se expresso_a_testar [ lista1 ] [ lista2 ]

Teste de Expresso

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. ATENO: A segunda lista opcional (nesse caso, nada ser feito quando a expresso for falsa).

Exemplo: se 1+2=3 [esc [verdadeiro]] [esc [falso]] se (3*4)=(6+6) [mo 12]

Teste de Expresso
Exerccio 21: O que far o procedimento abaixo quando for chamado com o argumento 0? aprenda recursivo4 :n se :n=100 [pare] mostre :n recursivo4 :n+1 fim

Teste de Expresso
Exerccio 22: Faa um procedimento que mostre os nmeros entre 55 e 350, mltiplos de 5.

leia [ texto ] nome_da_varivel

Interagindo com o Usurio


Abre uma caixa de dilogo que tem como ttulo o texto indicado na lista e atribui a varivel indicada.

Teste de Expresso
Exerccio 23: Faa um procedimento que mostre os nmeros mltiplos de 10. Este procedimento solicitar o nmero de partida. O procedimento no poder ultrapassar o nmero 200.

Teste de Expresso
Exerccio 24: Modifique o procedimento anterior para que solicite tambm o mltiplo.

resto num1 num2


Nova Primitiva

Retorna o resto da diviso entre nmero num1 e o num2. Ex: atr "var resto 18 5 mo :var

Teste de Expresso
Exerccio 25: Aprimore o procedimento anterior usando a primitiva resto.

sorteia nmero

Novas Primitivas

Sorteia um nmero entre 0 e o nmero especificado, menos 1 (menor que o nmero especificado).

atr var nmero


Atribui a varivel :var o valor especificado por nmero. Ex: atr var 3 atr var sorteie 15 mo :var

Jogo
Exerccio 26: Faa um jogo que escolhe um nmero entre 0 e 32 e memoriza-o. Uma caixa de dilogo abre-se e pede ao usurio que retorne um nmero. Se o nmero proposto for igual ao nmero memorizado, escrever acertou na zona de texto. Caso contrrio, o programa indicar que o nmero memorizado menor ou maior que o nmero proposto pelo usurio e reabrir nova caixa de dilogo. O programa termina quando o usurio encontrar o nmero memorizado.

Referncia Bibliogrfica
Descubra a linguagem LOGO em 9 lies This document was generated using the LaTeX2HTML translator Version 2002-2-1 (1.71) 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.
The command tutoriel.tex line arguments were: latex2html -local_icons

The translation was initiated by Alexandre R. Soares on 2006-06-18

Você também pode gostar