Vous êtes sur la page 1sur 2

École spéciale des travaux publics (ESTP) Matière: Programmation Numérique et

Année 2019-2020 Analyse des Données


Enseignante : Rodaina ABOUL HOSN
Classe: AI4-IA1

Exercice n°1
1. Itérations and récusions

1.1. Écrire un programme qui affiche le plus grand et le plus petit d’une suite d’entiers
saisis. La suite se termine par un 0.
1.2. Écrire un programme qui détermine tous les diviseurs d’un nombre entier saisi plus
grand que 1.
1.3. Écrire un programme qui effectue la multiplication de deux entiers positifs m et n,
sans utiliser l’opérateur *, selon le principe suivant :

𝑚 × (𝑛 − 1) + 𝑚 𝑖𝑓 𝑛 𝑖𝑠 𝑜𝑑𝑑
mxn={ 𝑛
(2𝑚) × ( ) 𝑖𝑓 𝑛 𝑖𝑠 𝑒𝑣𝑒𝑛 𝑎𝑛𝑑 𝑛𝑜𝑡 𝑧𝑒𝑟𝑜
2
Exemple
36 x 7 = 36 x 6 + 36
= 72 x 3 + 36
= 72 x 2 + 108
= 144 x 1 + 108
= 144 x 0 + 252
= 252
Écrire un programme qui lit deux entiers au clavier et affiche leur produit selon
l’algorithme récursif défini ci-dessus.

1.4. Soit la somme Sn = 1+2+…+(n-1)+n.


Sn peut être définie par récurrence par :

𝑆𝑛 = 𝑆𝑛−1 + 𝑛
{
𝑆0 = 0

a. En déduire deux fonctions python permettant de calculer la somme Sn par deux


méthodes distinctes (itérative et récursive).
b. On désigne par lister(n) une procédure permettant d’afficher à la sortie standard la
suite naturelle de 1 à n. En remarquant que cette procédure vérifie la relation de
récurrence :
list(n) = list(n - 1), afficher(n)

Écrire une fonction python qui affiche 1; 2; … ; n sans passer par une boucle.

e. Sans modifier aucun caractère dans le code précédant, adapter la procédure lister
pour qu’elle affiche la même suite dans l’ordre décroissant n; … ; 2; 1.
1.5. Écrire un programme qui approxime par défaut la valeur de la constante
mathématique e, pour n assez grand, en utilisant la formule :
𝑛
1
𝑒≈∑
𝑖!
1

Pour cela, définissez la fonction factorielle et, dans votre programme principal,
saisissez l'ordre n et affichez l'approximation correspondante de e.

2. Puissance nième matricielle


Considérer le principe suivant pour effectuer la puissance nième, xn où x et n sont deux
entiers positifs, sans utiliser l’opérateur de puissance :

𝑥 × 𝑥 𝑛−1 𝑠𝑖 𝑛 𝑒𝑠𝑡 𝑖𝑚𝑝𝑎𝑖𝑟


𝑥𝑛 = { 𝑛
(𝑥 2 ) 2 𝑠𝑖 𝑛 𝑒𝑠𝑡 𝑝𝑎𝑖𝑟 𝑛𝑜𝑛 𝑛𝑢𝑙

Écrire un programme python qui lit deux entiers au clavier x et n et affiche la puissance xn
selon l’algorithme récursif défini ci-dessus.

3. Fibonacci dichotomique
On considère la suite de Fibonacci (fn)n définie par :

𝑓𝑛 = 𝑓𝑛−1 + 𝑓𝑛−2
{
𝑓0 = 0, 𝑓1 = 1

Écrire, par deux méthodes, la fonction fibo(n) qui retourne la valeur fn de la suite de
Fibonacci pour un entier positif n donné.

4. Calcul de salaire des employées

Ecrire un programme qui permet de calcular le montant des heures supplémentaires d’un
employé, sachant le prix unitaire d’une heure, selon le barème suivant :

- Les 39 premières heures sans supplément,


- De la 40ième à la 44ième heure sont majorées de 50%,
- De la 45ième à la 49ième heure sont majorées de 75%,
- De la 50ième heure ou plus, sont majorées de 100%.

Vous aimerez peut-être aussi