Chapitre 8. Un peu plus d'algorithmique, correction

Correction des exercices du Chapitre 2, Un peu plus d'algorithmique.

  1.         i = input ("Entrez votre entier : ")
            
            while i <> -1:
                print "2 * ", i, " = ", 2*i 
                i = input ("Entrez un autre entier : ")
                
            print "FIN."
          
  2.         i = input ("Entrez votre entier : ")
            s = 0
            
            while i <> -1:
                s += i
                i = input ("Entrez un autre entier : ")
                
            print "La somme est :",s
          
  3.         n = input( "Entrez un entier :")
            max = n
            while n <> -1:
                if n > max:
                    max = n
                n = input ( "Entrez un autre entier : ")
            
            print "L'entier le plus grand de la suite est :",max
          
  4.         def fact(n):
                f = 1
                for i in range(1,n+1):
                    f *= i
                return f
            
            def cnp(n,p):
                return fact(n)/(fact(p)*fact(n-p))
            
            def coefficients(n):
                for i in range(0,n+1):
                    print cnp(n,i),
                print
            
            for i in range(0,21):
                coefficients(i)
          
  5.         def fib(n):
                if n == 0: return 0
                if n == 1: return 1
                moins2 = 0
                moins1 = 1
                for i in range(2,n+1):
                    f = moins1+moins2
                    moins2 = moins1
                    moins1 = f
                return f
            
            for i in range(0,50):
                print i,'\t',fib(i)
          
  6.         from math import sqrt
            
            def fib(n):
                if n == 0: return 0
                if n == 1: return 1
                moins2 = 0
                moins1 = 1
                for i in range(2,n+1):
                    f = moins1+moins2
                    moins2 = moins1
                    moins1 = f
                return f
            
            nbor = (sqrt(5)+1)/2
            print "nombre d'or :",nbor
            print
            for i in range(2,50):
                x = 1.0*fib(i)/fib(i-1)
                print i,'\t',x,'\t',x-nbor