Exercices de programmation en Python
Suites
Suites définies explicitement, à partir d'une fonction
Exercice 1:
- Qu'affiche le programme suivant ?
def u(n): return 3*n-2 print(u(2)) n=10 print(u(n))
- Modifier le programme précédent pour qu'il calcule les termes de la suite
définie par l'expression
.Afficher en particulier les termes , et .
Qu'observe-t-on pour des valeurs de plus en plus grandes de n ?
Exercice 2:
Afficher la suite des nombres.
- Qu'affiche le programme suivant ?
(Voir aussi les boucles for et plus spécialement le paragraphe boucles sur des entiers)def u(n): return n**2-3 for n in range(1,10): print(u(n))
- Modifier le programme précédent pour qu'il affiche les 100 premiers termes de la suite définie à la question 2. de l'exercice précédent.
- Modifier ce programme pour qu'il n'affiche qu'un terme sur trois parmi les 100 premiers.
Combien de termes ont été affichés ? - 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
- Qu'affiche le programme suivant ?
(Voir aussi les boucles conditonnellesdef u(n): return n**2-3 n=0 while u(n)<1000: print(u(n)) n=n+1 print(n)
while
) - On reprend la suite 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:
- Qu'affiche le programme suivant ?
La fonction définie et utilisée ici s'appelle une fonctions récursive: c'est une fonction qui s'appelle elle-même…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))
- Modifier le programme précédent pour qu'il calcule les termes de la suite
définie par l'expression
.Afficher en particulier les premiers termes jusqu'à , puis jusqu'à .
- Une autre manière de programmer les calculs des termes d'une telle suite est:
qui calcule et affiche ici tous les premiers termes jusqu'à .u=2 n=10 for i in range(n): u=(2*u**2-1)/(u**2+2) print(u)
Utiliser ce programme pour afficher en particulier les termes , et .
Qu'observe-t-on pour des valeurs de plus en plus grandes de n ?
Problèmes utilisant des suites
Exercice 5:
- 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. - Modifier le programme précédent pour qu'il détermine en quelle année la population du village aura triplé.