Saltar navegación

ACTIVIDADE 8 LOGO. RECURSIVIDADE

Nesta actividade aprenderemos a empregar a recursividade. ¿Que significa esta palabra? O seu significado é: algo que se repite sen fin, é dicir un infinito.

Un exemplo podería ser facer un cadrado de forma infinita o programa sería o seguinte:

to cuadrado repite 4[ fd 70 rt 90] cuadrado fin

Se nos fixamos no programa está formado por o procedemento para debuxar un cadrado e inclúese o nome do procedemento antes do comando fin.

¿Poderíamos finalizar este programa? Claro que si, para poder facelo deberemos empregar as estruturas selectivas. ¿Recordas este tipo de estruturas? Seguro que si, pero se non é o caso podes repasar pinchando aquí.

Polo tanto, o que debemos é empregar unha condición en función de se se cumpre ou non o programa continua ou se para.

O comando que debo empregar é IF seguido da condición para que se pare o programa e a condición para que se execute.

Para entendelo mellor faremos un exemplo.

O primeiro que facemos e crear un procedemento para debuxar un triángulo que poidamos variar o seu tamaño. ¿Como podemos facelo? Pois creando unha variable que a chamaremos lado .

O programa sería

to triangulo :lado  repeat 3 [ fd :lado rt 120]  end

Agora facemos a proba para ver se funciona , para comprobalo poño o nome do procedemento seguido dun número que será a dimensión do lado.

triangulo 20 triangulo 150
triangulo 20 triangulo 150

Para conseguir a recursividade o programa sería:

to triangulo :lado  repeat 3 [ fd :lado rt 120] triangulo  end

O que temos que facer agora e definir as condicións . Unha delas será para que se pare e a outra para que se execute o programa.

No noso caso imos dicirlle que no momento que o lado teña unha dimensión de 100 pare e senón é así deberá facer triángulos cada vez maiores aumentado a dimensión do lado en 10 unidades.

¿Como creo as condicións?

  • A condición para parar sería:

if :lado =100 [stop]

  • A condición para que se execute o programa sería:

:lado + 10

Polo tanto o programa final sería:

to triangulo :lado if :lado =100 [stop] repeat 3 [ fd :lado rt 120] triangulo :lado + 10 end

Agora o que haberá que facer e poñer o nome do procedemento e tamaño de lado inicial

Este sería o resultado ao poñer:

triangulo 20

triangulo 20
 

Agora ti

Crea os programas para :

  1. Facer de forma recursiva: un cadrado un pentágono e un hexágono de lado 50.
  2. Fai agora para estas figuras o programa para poder variar o seu tamaño.
  3. Agora e momento de que crees a recursividade con condicións:
  • Para o cadrado a condición para que pare é que o lado sexa menor de 100 e debes aumentar as dimensións do lado 15 unidades.
  • No pentágono a condición para parar será que o lado sexa = 150 e o aumento de lado será de 30 unidades.
  • No hexágono a condición de parada é que sexa maior de 100 e o aumento será de 20 unidades.

Debuxo libre

Pon a proba a túa imaxianción e a probar que eres capaz de facer......