Buscar

Atividades no SuperLogo

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 3, do total de 3 páginas

Prévia do material em texto

Instituto de Matemática 
Departamento de Matemática Pura e Aplicada 
MAT01343 – Computador na Matemática Elementar I 
Professora: Márcia Rodrigues Notare Meneghetti 
Loop - Continuação 
Procedimentos Iterativos 
Existem outros comandos podem ser utilizados para executar um loop no SLogo. Os comandos 
iterativos ATÉQUE e ENQUANTO são exemplos que permitem a execução de loop. 
O comando ATÉQUE lista1 lista2 executa repetidamente as instruções da lista2 enquanto o 
resultado da lista1 for falso. 
O comando ENQUANTO lista1 lista2 executa repetidamente as instruções da lista2 enquanto o 
resultado da lista1 for verdadeiro. 
Vamos compreendê-los com um exemplo: 
aprenda surpresa1 :l :n :i 
atéque [:i=:n][pf :l pd 90 atr "l :l+10 atr "i :i+1] 
fim 
Execute o procedimento surpresa1 para diferentes valores de l, n e i. Note que, para que o 
procedimento execute uma “espiral” com n segmentos, devemos ter i=0 (a variável i atua como um 
contador no procedimento). Quando uma entrada deve ser inicializada sempre com o mesmo valor, 
não precisamos coloca-la na “chamada” do procedimento. Ou seja, no exemplo acima, podemos 
reescrever o procedimento da seguinte forma: 
aprenda surpresa2 :n :l 
atr "i 0 
atéque [:i=:n][pf :l pd 90 atr "l :l+10 atr "i :i+1] 
fim 
No exemplo acima, a variável i é chamada de contador. Ela é uma variável cuja única função é 
estabelecer um critério de parada do loop. No comando repita, o contador está implícito e aumenta 
sempre de um em um. Nos comandos iterativos, podemos controlar o contador. Veja o exemplo a 
seguir, em que o contador aumenta de dois em dois: 
aprenda surpresa3 :n :l 
atr "i 0 
enquanto [:i<:n][pf :l pd 90 atr "l :l+10 atr "i :i+2] 
fim 
 
Além disso, não precisamos de um contador para estabelecer uma condição de parada do loop. Veja 
o exemplo: 
aprenda surpresa4 :l 
enquanto [:l<200][pf :l pd 90 atr "l :l+10] 
fim 
Observe que controle do número de segmentos se dá exclusivamente pelo valor que for dado à 
entrada l ao executar o procedimento. 
 
Procedimentos Recursivos 
Existe, ainda, outra forma de executar um loop no SLogo. Para isso, não precisamos de nenhum 
comando especial, mas sim de procedimentos recursivos. Um procedimento recursivo é um 
procedimento que chama a ele mesmo (possui auto-chamada) na sua linha de comandos. 
Vamos entender com um exemplo: 
aprenda surpresa5 :n :l :i 
se :i=:n [pare] 
pf :l pd 90 
surpresa5 :n :l+10 :i+1 
fim 
Execute o procedimento surpresa5 para diferentes valores de n, l e i. Note que, para a utilização de 
procedimentos recursivos, precisamos de uma condição para a parada do procedimento. Essa 
condição é estabelecida pelo comando condicional SE, cuja sintaxe é SE condição lista, que significa 
SE a condição for verdadeira ENTÃO se executa a lista. 
Em procedimentos recursivos, assim como em procedimentos iterativos, não precisamos 
necessariamente de um contador para estabelecer uma condição de parada. Veja o procedimento a 
seguir: 
aprenda surpresa6 :l 
se :l>200 [pare] 
pf :l pd 90 
surpresa6 :l+10 
fim 
 
Para compreender melhor o funcionamento de um procedimento recursivo, podemos fazer um 
fluxograma de execução. Observe o fluxograma de execução de surpresa5 20 3 0: 
 
 
 
 
surpresa5 20 3 0 
se 0=3 [pare] 
pf 20 pd 90 
surpresa5 30 3 1  surpresa5 30 3 1 
fim se 1=3 [pare] 
 pf 30 pd 90 
 surpresa5 40 3 2  surpresa5 40 3 2 
 fim se 2=3 [pare] 
 pf 40 pd 90 
 surpresa5 50 3 3  surpresa5 50 3 3 
 fim se 3=3 [pare] 
 pf 50 pd 90 
 surpresa5 60 3 4 
 fim 
 
Atividade: Vamos reescrever os procedimentos elaborados anteriormente utilizando procedimentos 
iterativos e recursivos! 
 
 
1. Obtenha um procedimento iterativo cuja resolução gráfica seja uma sequência de 
circunferências, para um número qualquer de circunferências. 
 
2. Obtenha um procedimento recursivo cuja resolução gráfica seja uma sequência de 
circunferências, para um número qualquer de circunferências. 
 
3. Obtenha um procedimento iterativo cuja resolução gráfica seja uma sequência de 
circunferências, onde o raio delas não pode ser maior que 200. 
 
4. Obtenha um procedimento recursivo cuja resolução gráfica seja uma sequência de 
circunferências, onde o raio delas não pode ser maior que 200.