CNAM UTC503
TP 2 05/11/2018 (Séance 4)
Inversion de contrôle
Objectifs
— Savoir écrire un sous-programme
— Comprendre les paramètres en Python
— Savoir écrire des sous-programmes itératifs et récursifs
— Tester et exploiter les outils de couverture de test
Exercice 1 Nous souhaitons faire plusieurs traitements sur plusieurs suites d’entiers. Ceci est est une simplification de problèmes que l’on rencontre souvent. La suite d’entier pourrait être des clients, des prospects, des factures qui pourraient être accessibles depuis des endroits différents (une base de données, un web services, un fichier, etc.) qui correspondent aux différentes suites.
1.1.Écrire une fonction qui retourne le premier élément supérieur ou égal à 100 dans la suite des carrés des nombres naturels (0, 1, 4, 9, 16, 25, etc.).
1.2.Écrire une fonction qui retourne le premier élément supérieur à 1000, pair et divisible par 13 dans la suite des carrés des nombres naturels.
1.3.Traiter les deux questions précédentes sachant que maintenant la suite d’entiers et la suite de Fibonacci. Les éléments de la suite de Fibonacci sont définis par la relation de récurrence suivante :
f ib(0) = 0 f ib(1) = 1
f ib(n) = f ib(n−1) +f ib(n−2)si n≥2
1.4.On pourrait envisager d’autres suite d’entiers, par exemple les entiers impairs, les cubes, etc.
Comment généraliser les traitements précédents pour être indépendant de la suite considérée.
Exercice 2 : enumerate
Écrire une fonction qui reproduit le comportement de enumerate.
Exercice 3 : zip
Écrire une fonction qui reproduit le comportement de zip.
TP 2 1/1