TD ITC34 Algorithmique et Programmation - Partie Algorithmes page 4
Exercice 5 : Definition d’algorithme recursif
Dans cet exercice, il vous est demandé de définir un algorithme récursif permettant de calculer
deux fonctions mathématiques pour lesquelles vous avez déjà définis des algorithmes itératifs pré-
cédemment. Il vous est conseillé d’écrire dans un premier temps la fonction sous forme récursive
réduite, en exprimant une valeur de départ, et d’exprimer la fonction à l’indice nselon sa valeur
à un indice inférieur, par exemple n1, puis d’écrire le pseudo-code associé
1. Proposez deux algorithme récursifs nommés harmonique et piLeibniz,prenantchacunun
paramètre nde type entier, et permettant de calculer les éléments suivants. Pour chaque
algorithme, vous déterminerez la valeur de l’indice de départ. Si le paramètre nest égal à cet
indice, on retourne simplement la valeur. Sinon, il convient d’exprimer la valeur à retourner
en fonction de la valeur qui aurait été retournée à l’indice inférieur.
(a) le nombre harmonique Hnpour un entier n1donné. Pour rappel :
Hn=
n
X
k=1
1
k=1+
1
2+1
3+...+1
n(3)
(b) une approximation du nombre ⇡,obtenueaumoyendelaformulationdeLeibniz.Pour
rappel, la fonction de Leibniz est la suivante :
4.
n
X
k=0
(1)k
2k+1 =4
14
3+4
54
7+4
11 ...+4
2n+1 (4)
2 Algorithmes sur tableaux et matrices
Les exercices de cette section vous permettent de vous entrainer sur la définition d’algorithmes
dans des tableaux et matrices. Les objectifs sont multiples : déterminer le type de parcours à effectuer
sur un tableau : déterministe (pour .. allant de ..a ..) ou non déterministe (tant que ...), définir les
meilleures conditions d’arrêt dans les boucles non déterministes, effectuer des boucles imbriquées
dans le parcours de matrices . . . Dans ces exercices, nous travaillerons uniquement avec des tableaux
d’entiers. Chaque tableau d’entier passé en données sera de type tableau d’entier et identifié par
un nom, et il faudra également passer en donnée la taille de ce tableau. Un raisonnement similaire
est à appliquer si le tableau est bi-dimentionnel : on utilisera le type matrice d’entiers et les
deux dimensions de cette matrice doivent également être passés en paramètres
Exercice 6 : Manipulation de tableau d’entiers
L’objectif de cet exercice est de définir les premières boucles qui permettent de parcourir un ta-
bleau, et de déterminer leur caractère déterministe, ou non déterministe
Dans l’ensemble des questions suivantes, la donnée de chacun des algorithmes à écrire est un
tableau d’entier nommé Taccompagné de sa taille nqui est définie en tant qu’entier. Les cellules de
Tsont indicées de 0àn1,etlesvaleursdecescellulessontinitialiséesavecdesvaleursentières
aléatoires. On vous demande d’écrire les algorithmes suivants :
1. Un algorithme somme qui prend en données le tableau d’entiers Tet sa taille n,etquiretourne
la somme des valeurs des cellules du tableau T.
2. Un algorithme consécutifs qui prend en données le tableau d’entiers Tet sa taille n,etqui
retourne vrai si et seulement si deux cellules de Td’indice immédiatement consécutifs ont la
même valeur, et faux sinon. Par exemple, si on a les tableaux suivants :
T1= [ 5 , 6 , 78 , 34 , 23 , 56 , 34 , 70 ]
T2= [ 5 , 6 , 78 , 34 , 23 , 23 , 42 , 67 ]
T3= [5,6,5,6,5,6,5,6]
c
2015 - Réutilisation totale ou partielle de ce support soumise à approbation de l’auteur.
Corrections disponibles par mail sur demande ( benoit.darties@u-bourgogne.fr )