14. Recursão

Na lição "A Tat Aprende", vimos como podemos ensinar novas palavras à Tat usando o comando aprenda. Também podemos ensinar à tartaruga um novo comando usando aprenda seguido por um parâmetro, como - aprenda avance :nome_var pf :nome_var . A tartaruga vai agora esperar por um parâmetro (valor), assim que ela perceber o novo comando "avance". Por exemplo: avance 40.
Ensine a Tat o que é "avance" com um parâmetro chamado "quanto"
Como vimos na etapa anterior, podemos ensinar a Tat a fazer ações que fazem ela esperar parâmetros (valores). Como vimos em aulas anteriores, a fim de ensinar a tartaruga como desenhar um quadrado, devemos digitar as instruções de comando: aprenda quadrado repita 4 [pf UM_NÚMERO gd 90] fim.
Ensine a Tat o comando quadrado. Faça ela aguardar o parâmetro "tamanho". O parâmetro "tamanho" determinará o tamanho do lado do quadrado.
Já criamos um novo comando chamado quadrado que espera um parâmetro. Vamos ver se funciona. Você pode digitar o comando quadrado 60 ou o comando quadrado 80 e assim por diante.
Escreva o comando quadrado 100.
Quando um comando chama a si mesmo, esse processo é chamado de 'recursividade'. Ao usar recursão, devemos ter uma condição de parada (pois não queremos um loop infinito, né?) e uma chamada para um comando com novos valores. Parece complicado? Não se preocupe, vamos passar por isso passo a passo. Vamos ensinar a Tat o comando "quadrado" usando recursão.
Ensine a Tat o seguinte: aprenda quadrado :tamanho se :tamanho > 90 [pare] repita 4 [pf :tamanho gd 90] quadrado :tamanho + 20 fim
Vamos ver como ela trabalha nos bastidores, quando usamos o comando quadrado 40. Primeiro chamamos o comando quadrado 40 . Isso significa que o parâmetro :tamanho dentro do comando quadrado está recebendo o valor 40. Então nós usamos a condição se. O que estamos realmente fazendo é pedindo à tartaruga: O valor de :tamanho é maior que 90 (:tamanho > 90)? Se for verdade, então pare o programa. Se não for verdade, então siga estas instruções - Desenhe um quadrado com o parâmetro :tamanho. Chame o quadrado com :tamanho = :tamanho + 20. Agora, o parâmetro :tamanho é 60. Enquanto for < 90, então vamos desenhar um quadrado que é de 60 em tamanho e chamar o qaudrado :tamanho = :tamanho + 20. Agora, o parâmetro :tamanho vale 80, que ainda é inferior a 90, de modo que a tartaruga irá desenhar um quadrado que é de 80 em tamanho e chamar o quadrado com :tamanho = :tamanho + 20. Agora :tamanho vale 100 > 90, então vamos parar o programa.
Escreva o comando quadrado 40.
Vamos criar um comando espiral para que a Tat aprenda. A espiral receberá um parâmetro chamado :tamanho . A condição de parada será quando :tamanho > 30. A cada chamada, vamos avançar de acordo com o parâmetro de tamanho, pf :tamanho e, em seguida, vamos virar à direita 15, gd 15. A instrução final será chamar uma espiral com :tamanho * 1,02 .
Ensine a Tat o que é uma espiral.
TurtleAcademy learn programming for freeYour browser is not supporting canvas We recomand you to use Chrome or Firefox browsers