:: Enseignements :: ESIPE :: E3INFO :: 2011-2012 :: Algorithmique ::
![[LOGO]](http://igm.univ-mlv.fr/ens/resources/mlv.png) | Récursivité, suite |
Exercice 1 - Somme
Ecrire une fonction itérative calculant la somme d'un tableau d'entiers. Même question avec une
fonction récursive.
Exercice 2 - Conversion itérative
Pour convertir une chaîne de caractères en nombre, on parcourt tout ses chiffres en commençant par la gauche,
en multipliant le résultat courant par dix, avant d'ajouter le chiffre qui se trouve à droite de la position
courante. Ecrire une fonction itérative calculant cela. On supposera que la chaîne d'entrée n'est ni NULL ni
vide, et qu'elle ne contient que des chiffres.
Exercice 3 - Conversion récursive
Même question que prédemment, mais cette fois-ci, en récursif. Attention: il faudra cette fois-ci
parcourir la chaîne de la droite vers la gauche. Vous avez le droit d'utiliser strlen pour
la mesurer.
Exercice 4 - strcmp récursive
Ecrire une fonction récursive comparant deux chaînes de caractères X et Y. Si les premiers caractères
de X et de Y sont différents, on a fini. Sinon, si on n'est pas à la fin des chaînes,
on recommence récursivement sur les sous-chaînes restantes.
Exercice 5 - PGCD
L'algorithme d'Euclide pour calculer le PGCD de deux nombres non nuls A et B est le suivant:
on considère une suite u initialisée avec u(0)=A et u(1)=B. Tant que u(n) est non nul,
on a u(n+1)=u(n-1) modulo u(n). Quand u(n) est nul, le résultat est la valeur u(n-1). Donner deux
fonctions calculant cela, l'une itérative, l'autre récursive.
Exercice 6 - Test de tri
On peut tester récursivement qu'un tableau d'entier est trié selon la méthode suivante. On coupe le
tableau en deux, et on regarde si les deux moitiés sont bien triées. Si c'est le cas, il suffit de comparer
le maximum de la partie gauche avec le minimum de la partie droite pour savoir si le tableau global est trié.
Ecrire une fonction qui teste si un tableau est trié selon ce principe. Attention: votre fonction devra
renvoyer 3 informations: le tableau est-il trié ? quel est son minimum ? quel est son maximum ?
© Université de Marne-la-Vallée