Exercices de programmation en Python

Suites



Suites définies explicitement, à partir d'une fonction

Exercice 1:
  1. Qu'affiche le programme suivant ?
    def u(n):
        return 3*n-2
    
    print(u(2))
    
    n=10
    print(u(n))
  2. Modifier le programme précédent pour qu'il calcule les termes de la suite $(u_n)$ définie par l'expression
    $u_n=\dfrac{2n^2-1}{n^2+2}$.
    Afficher en particulier les termes $u_{10}$, $u_{100}$ et $u_{1000}$.
    Qu'observe-t-on pour des valeurs de plus en plus grandes de n ?
Exercice 2:
Afficher la suite des nombres.
  1. Qu'affiche le programme suivant ?
    def u(n):
        return n**2-3
    
    for n in range(1,10):
        print(u(n))
    
    (Voir aussi les boucles for et plus spécialement le paragraphe boucles sur des entiers)
  2. Modifier le programme précédent pour qu'il affiche les 100 premiers termes de la suite $(u_n)$ définie à la question 2. de l'exercice précédent.
  3. Modifier ce programme pour qu'il n'affiche qu'un terme sur trois parmi les 100 premiers.
    Combien de termes ont été affichés ?
  4. Modifier encore le programmme pour qu'il affiche un terme sur cent, du centième au millième.
Exercice 3:
Afficher la suite des nombres, jusqu'à un certain point
  1. Qu'affiche le programme suivant ?
    def u(n):
        return n**2-3
    
    n=0
    while u(n)<1000:
        print(u(n))	     
        n=n+1
    
    print(n)
    
    (Voir aussi les boucles conditonnelles while)
  2. On reprend la suite $(u_n)$ définie à la question 2. de l'exercice 1.
    On a pu voir dans les exercices précédents que les valeurs de la suite se rapprochent, ou tendent, vers 2: plus n est grand, plus un est proche de 2.
    Modifier le programme précédent pour qu'il affiche à partir de quel rang n, un devient supérieur à 1,9.
    À partir de quel rang n, un devient supérieur à 1,99999 ?

Suites définies par récurrence

Exercice 4:
  1. Qu'affiche le programme suivant ?
    def u(n):
        if n==0:
            return 2
        else: 
            return 3*u(n-1)-2
    
    print(u(0))
    print(u(1))
    print(u(2))
    
    n=10
    print(u(n))
    La fonction définie et utilisée ici s'appelle une fonctions récursive: c'est une fonction qui s'appelle elle-même…
  2. Modifier le programme précédent pour qu'il calcule les termes de la suite $(u_n)$ définie par l'expression
    $u_n=\dfrac{2u_{n-1}^2-1}{u_{n-1}^2+2}$.
    Afficher en particulier les premiers termes jusqu'à $u_{10}$, puis jusqu'à $u_{20}$.
  3. Une autre manière de programmer les calculs des termes d'une telle suite est:
    u=2
    n=10
    for i in range(n):
        u=(2*u**2-1)/(u**2+2)
        print(u)
    
    qui calcule et affiche ici tous les premiers termes jusqu'à $u_{10}$.
    Utiliser ce programme pour afficher en particulier les termes $u_{10}$, $u_{100}$ et $u_{1000}$.
    Qu'observe-t-on pour des valeurs de plus en plus grandes de n ?

Problèmes utilisant des suites

Exercice 5:
  1. Un village comptait 4000 habitants en 2000. Chaque année depuis, cette population a augmenté de 3% d'une année à la suivante.
    Écrire un programme qui calcule le nombre d'habitants dans ce village en 2001, puis 2002, puis 2010, pusi cette année.
  2. Modifier le programme précédent pour qu'il détermine en quelle année la population du village aura triplé.
Top Programmation en python