Escriu per cercar…

Recursion

Una funció que es crida a si mateixa, i el cas base que fa que s'aturi.

S'ensenya a
Llenguatges de marques i sistemes de gestió d’informacióDocuments dinàmicsASIXProgramacióProgramació estructuradaDAW-BIO

Introducció

A Iteració vas aprendre a repetir un bloc tantes vegades com calgui.

Amb un while pots dibuixar qualsevol polígon, qualsevol rosassa i qualsevol espiral.

Però hi ha figures que no són una repetició.

Mira un arbre.

Un arbre no és un tronc repetit trenta vegades. És un tronc que s’obre en dues branques, i cada branca és un arbre més petit.

Aquesta frase —una branca és un arbre més petit— no la pots escriure amb un bucle.

La pots escriure amb una funció que es crida a si mateixa.

Una funció que es crida a si mateixa

Comença per una cosa que ja saps fer.

A Iteració vas dibuixar l’espiral amb un while i un acumulador:

python
side = 5
while side < 150:
    forward(side)
    left(90)
    side += 5

Ara escriu-la sense bucle.

Un tram de l’espiral és un tram, i després una espiral més petita:

python
def spiral(side):
    forward(side)
    left(90)
    spiral(side + 5)

Llegeix l’última línia amb atenció.

spiral crida spiral. La funció es fa servir a si mateixa, i això s’anomena recursivitat.

El cas base

Executa aquest programa i no dibuixarà res:

python
from turtle import *

def spiral(side):
    forward(side)
    left(90)
    spiral(side + 5)


spiral(5)

Estàs llegint una vista prèvia.

Inicia sessió amb Google per llegir la pàgina completa.

Inicia sessió amb Google

Amb qualsevol compte de Google. Només et demanarem que acceptis les condicions del servei.