Vamos tentar fazer um programa que simula o movimento de uma tartaruga.
Por onde começar? Bem, primeiro analisaremos o movimento da tartaruga.
Digamos que a tartaruga esteja na posição "A" no início do movimento. A tartaruga começa a andar e logo depois ela vai estar na posição "B"; digamos que essa posição B esteja a 10 cm da posição "A" em linha reta. Em seguida ela estará numa posição "C" distante 10 cm da posição "B" e 20 cm distante da posição "A" e assim por diante... Para fazermos essa simulação devemos arrumar uma fórmula lógica para que o computador entenda o que nós queremos. Cada posição dessa será chamada de "x" e o deslocamento será "dx".
Agora podemos dizer ao computador o que fazer. Nós queremos fazer um programa que faça com que o Logo marque um ponto (posição X0), em seguida outro ponto (posição X1), e assim por diante... (X2,X3,X4...) esses pontos devem ter sempre a mesma distância um do outro, como no desenho acima.
Este programa inclui uma sub-rotina. Sub-rotinas são programas que fazem parte de um programa maior, mas são feitos em separado, assim você também poderá usá-los em outros programas.
O programa principal define as variáveis desejadas para o início do movimento que se realizará (x e dx, onde x define a posição do ponto e dx a distância entre esses pontos).
Para fazê-lo faça como já explicado, entre no Logo e clique em FILE, em seguida em EDIT. Na caixa de diálogo digite tarta, ou outro nome que você desejar, dê um OK e digite o programa na janela que se abriu, repare que você deve digitá-lo entre o "to tarta" e o "end".
| to tarta :dx | to nome_do_programa :valor da variável
(no nosso caso ela é o espaço, assim nós entramos com o valor do espaço que desejamos entre um ponto e outro, em vez de colocarmos como constante no programa. Definindo desta maneira poderemos usar valores diferentes para dx cada vez que chamarmos o programa. |
| ht | esconde a Tartaruga (cursor do Logo) |
| cs | limpa a tela |
| setpensize [2 2] | define o tamanho do ponto marcado pela Tartaruga |
| make "x 0 | faz a variavel x se tornar "0", que é a nossa posição inicial |
| pu | penup, a Tartaruga não irá deixar rastro na tela |
| andar | chama a sub-rotina andar |
| end | finaliza a programa |
Em seguida digite a sub-rotina:
Deixe o "end" que já havia no programa principal. Para a sub-rotina você deverá escrever exatamente como abaixo.
| to andar | to nome_do_programa |
| setxy :x 0 | coloca a Tartaruga na
posição desejada, na primeira vez ele coloca x em 0, pois definimos x como 0 no programa principal, depois ele colocará a Tartaruga no novo X definido abaixo (make "x :x + :dx), a posição Y permanece em 0, pois não teremos movimento nessa direção. |
| pd | pd: a caneta desce |
| fd 1 | fd: a caneta anda 1 passo, marcando, dessa forma, um ponto |
| pu | pu: a caneta sobe de novo |
| make "x :x + :dx | define o novo valor de "x" |
| andar | chama a sub-rotina andar de novo, continuando o processo |
| end | fim do programa |
Repare num detalhe....
make "x :x + :dx Terminada a edição dos programas, clique em FILE, na janela de edição, e clique EXIT,
clique em YES na caixa de diálogo que aparece. Então
clique em FILE na janela do Logo, depois em SAVE AS, e salve o seu programa como tarta.lgo. Feito isso, clique em LOAD e em seguida no nome do seu programa que aparecerá na
caixa de diálogo.
Vá até a linha de comandos e digite o nome do programa e a distância entre os pontos em que você
deseja que a simulação seja feita. Para parar o programa clique em HALT após o programa já ter rodado um pouco, pois
ele vai fazer o movimento e continuar até que alguma coisa o pare; clicando em HALT você para a execução do programa.
Você não perceberá, neste caso que o
programa continua rodando pois ele começará a marcar pontos por cima dos pontos já marcados.
OBSERVAÇÕES IMPORTANTES!
Se você cometeu um erro de sintaxe da linguagem na digitação do programa o Logo não
permite que você saia do editor sem corrigí-la.
Sempre que você fizer uma modificação num programa, salve-o de
novo na janela do Logo.
Quaisquer
dúvidas, mande um e-mail para nós,
preencha o formulário abaixo e mande o arquivo com seu programa para que possamos
comentá-lo e/ou resolver suas dúvidas.
Mesmo que não haja problemas, mande-nos seu programa para vermos seu aproveitamento.
Como que é possível ele atribuir um valor a uma variável que já tem um
valor atribuído?
Ao fazer:
x = x + dx ele pega o valor de "x" e
soma com o deslocamento! Em seguida ele atribui esse novo valor a "x",
"esquecendo" o valor anterior. Felizmente em computação isso é
possível... é como se tivéssemos:
x1 = x0 + dx, onde x0 é a posição
inicial e x1 é a primeira posição depois do movimento
iniciado.
x2 = x1 + dx, onde x1 é a primeira posição e
x2 a, segunda posição.
x3 = x2 + dx, onde x3 é a terceira posição e
assim por diante...
x4 = x3 + dx...
tarta 10
não esqueça do espaço antes do 10, que será a distância entre dois pontos clique em EXECUTE ou tecle "Enter" no teclado deixe o programa rodar um pouco clique em HALT o programa parará de rodar clique em RESET para limpar a tela tarta 20 tente com outra distância entre os pontos e veja a diferença