# Créé par apatura, le 27/01/2014 en Python 3.2 #CORRECTION DU TP1 def fibo(n):#calcul le terme d'indice n de la suite de Fibonacci if n<=1: return 1 else: return fibo(n-1)+fibo(n-2) def testfor(n):#affiche les n premiers termes de fibo avec #une boucle for for i in range(n): print(fibo(i),' ',end='') def testwhile(n):#affiche les n premiers termes de fibo avec #une boucle while i=0 while i fact(3) ---> fact(2) ---> fact(1) fin de empilement car fact(1) renvoie 1 Phase de dépilement: fact(1)=1 (espace mémoire fact(1) libéré) ---> fact(2)=fact(1)x2=2 (espace mémoire fact(2) libéré ---> fact(3)=fact(2)x3=6 ---> fact(4)=fact(3)x4=12 Pour résumer: Il est essentiel qu'une fonction récursive contienne une condition d'arrêt. Le corps d'une telle fonction pourra être le suivant: si .. faire .. sinon faire..(appel à elle-même) Il est important de se rappeler le coût important en mémoire que peut engendrer l'utilisation d'une fonction récursive même s'il existe des méthodes pour contourner ce problème. """