Vous êtes sur la page 1sur 5

Rcursivit : Srie d'exercices

Exercice 1 crire une procdure qui affiche les entiers par ordre dcroissant, de 10 jusqu 1. Proposer une solution itrative et une autre rcursive. Exercice 2 Soit la procdure itrative suivante : procedure affiche; var a, b: integer; begin for a := 0 to 3 do for b := 0 to 9 do writeln(a * 10 + b); end; Transformer cette procdure en une procdure rcursive. Exercice 3 crire une procdure rcursive permettant de saisir un entier N pair (1<N<31). Exercice 4 crire une procdure rcursive permettant de remplir un tableau T par N entiers positifs. Exercice 4.2 crire une procdure rcursive permettant d'afficher un tableau T. Exercice 5 crire une fonction rcursive permettant de calculer la factorielle dun entier N donn. Exercice 6 On appelle "palindrome" un mot ou une phrase qui se lit de la mme faon l'endroit comme l'envers, sans tenir compte des espaces. Exemple : le mot "ABCBA" est un palindrome. Ecrire une fonction rcursive permettant de vrifier si une chane de caractres CH est un palindrome. Exercice 7 Ecrire une fonction rcursive permettant de vrifier la parit dun entier N. Exercice 8 crire une fonction rcursive permettant d'effectuer la multiplication de deux entiers positifs (nots p et q) donns, en utilisant uniquement l'addition entire. En effet, pxq = p+p+p++p (q fois). Exercice 9 crire une fonction rcursive permettant de calculer la somme des N premiers entiers. Exercice 10 crire une fonction rcursive permettant de calculer X
n

pour X rel et n entier relatif.

Exercice 11 crire une fonction rcursive permettant de calculer le PGCD de deux entiers A et B par la mthode d' EUCLIDE puis la mthode de diffrence. Exercice 12 crire une fonction rcursive permettant de calculer le PPCM de deux entiers A et B.

Page 1/5

Exercice 13 La suite de Fibonacci est dfinie par : Un = Un-1 + Un-2 avec U1 = 1 et U2 = 1. Ecrire une fonction rcursive permettant de calculer le N
me

terme de la suite de Fibonacci.

Exercice 14 crire une procdure rcursive permettant de dcomposer un entier N en facteurs premiers. (Exemple : 432 = 2*2*2*2*3*3*3). Exercice 15 Un nombre parfait est un nombre qui est gale la somme de ses diviseurs sauf lui mme exemple : 6 est parfait car 6=1+2+3 crire une fonction rcursive qui calcule la somme de diviseurs d'un entier N sauf lui-mme. Exercice 16 Un entier suprieur 1 est dit premier sil nest divisible que par 1 et par lui-mme. crire une fonction rcursive qui vrifie si un entier N est premier ou non. Exercice 17 Soit lexponentielle :

Faire une fonction fact(n) qui renvoie n!. Faire une fonction puiss(x, n) qui renvoie xn. Ecrire une fonction rcursive qui calcule la valeur approche de ex en faisant appel aux fonctions fact et puiss. Exercice 18 Calculer par rcursivit Exercice 19 Calculer par rcursivit S ( n ) = 1

x x2 x3 xn 1+ + + + ... + n! 1 2! 3!

S (n ) = 1 +

1 1 1 1 + + + ... + 2 3 4 n

pour tout n>0.

1 1 1 1 + + ... + ( 1) n 3 5 7 2n + 1

pour tout n>=0.

Exercice 20 crire une fonction rcursive qui permet de chercher le maximum dans un tableau T de n entiers. crire une fonction rcursive qui permet de chercher le minimum dans un tableau T de n entiers. Exercice 21 crire une fonction rcursive qui dtermine la valeur la plus proche d'un entier m donn dans un tableau T de n entiers. Exercice 22 crire une fonction rcursive qui teste l'existence d'un lment donn dans un tableau donn en utilisant une recherche squentielle. Exercice 23 crire une fonction rcursive qui teste l'existence d'un lment donn dans un tableau donn en utilisant une recherche dichotomique. Exercice 24 crire une procdure rcursive qui permet de dcaler tous les lments dun tableau dune position droite partir de la position p. Exercice 25 crire une procdure rcursive qui permet dinverser les lments dune partie dun tableau compris entre la position p et n.

Page 2/5

Exercice 26 crire une procdure rcursive qui permute les n lments conscutifs deux deux dun tableau T. Exercice 27 crire une fonction rcursive qui dtermine la valeur maximale de deux entiers positifs sans utiliser < et >. Exercice 28 Soit une chane de caractres ; supposons qu'on veuille faire aussi bien la fonction que la procdure qui nous renvoie l'inverse de cette chane. Exercice 29 crire une procdure rcursive qui permet de trier un tableau de n entiers en utilisant la mthode de tri par slection. Exercice 30 crire une procdure rcursive qui permet de trier un tableau de n entiers en utilisant la mthode de tri par insertion. Exercice 31 crire une procdure rcursive qui permet de trier un tableau de n entiers en utilisant la mthode de tri bulles. Exercice 32 crire une procdure rcursive qui permet de trier un tableau de n entiers en utilisant la mthode de tri Shell. Exercice 33 crire une procdure rcursive qui permet de trier un tableau de n entiers en utilisant la mthode de tri par fusion. Exercice 34 Ecrire une procdure rcursive qui supprime toutes les occurrences d'un caractre donn d'une chane de caractre. Exercice 35 crire une fonction qui compte le nombre doccurrences dun caractre c dans une chane ch. Exercice 36 crire une fonction rcursive qui calcule la somme des chiffres d'un nombre entier. Exercice 37 crire une fonction rcursive qui dtermine le nombre des chiffres d'un entier. Exercice 38 Deux mots sont des anagrammes si lun est une permutation des lettres de lautre. Par exemple les mots suivants sont des anagrammes : aimer et maire chien et niche Par dfinition, on considre que deux mots vides sont des anagrammes. Proposez une fonction rcursive qui permet de savoir si deux mots sont des anagrammes. Exercice 39 crire une fonction rcursive qui teste la prsence d'un caractre dans une chane de caractre. Exercice 40 crire une fonction rcursive nomme suppr_car qui permet de supprimer la premire occurrence d'un caractre d'une chane. Page 3/5

Exercice 41 En utilisant les deux fonctions prcdentes (teste et suppr_car), proposez une fonction rcursive constructible qui permet de savoir si un mot est constructible partir d'un ensemble de lettres. Le mot et l'ensemble de lettres sont reprsents l'aide d'une chane de caractres. Si une lettre apparat deux fois dans le mot, il faut qu'elle apparaissent au moins deux fois dans l'ensemble de lettres. Par exemple : Constructible ("BONJOUR","BJNORUYZ") retournera faux (le 'O' n'apparaissant qu'une seule fois dans "BJNORUYZ") Constructible ("TRALALA","LLAAAAART") retournera vrai Constructible ("","ABC") retournera vrai Exercice 42 Le triangle de Pascal est le tableau des coefficients qui sont utiliss pour le dveloppement de certaines expressions comme (a+b) ou (a+b) . Ce triangle est le suivant : 0:1 1:11 2:121 3:1331 4:14641 (a+b) = 1 (a+b) = 1a + 1b
2 2 3 3 2 1 0 n

(a+b) = 1a + 2ab + 1b
4 4 3

2 2 3 3 4

(a+b) = 1a + 3a b + 3ab + 1b
2 2

(a+b) = 1a + 4a b + 6a b + 4ab + 1b

crire une fonction rcursive permettant de dterminer les valeurs du triangle pascal. Exercice 43 crire une fonction rcursive MacCarthy qui calcule MacCarthy(n) selon la dfinition suivante : Si n>100 MacCarthy(n) = n-10

Si n100 MacCarthy(n) = MacCarthy( MacCarthy(n+11)) Exercice 44 crire une fonction rcursive calculant la fonction d'Ackermann dfinie comme suit :

n+1 Ack ( m , n ) = Ack (m-1, 1) Ack (m-1, Ack (m, n-1))


Calculer Ack(0,3) et Ack(2,2)

si m = 0 si m > 0 et n = 0 si m > 0 et n > 0

Exercice 45 valuation dune chane de caractre Soit une chane de caractres du type s="5+123-4+67-2" ; crire une fonction rcursive qui value cette chane de caractres. Exercice 46 Vers une mini-calculatrice Soit une chane de caractres du type s="5+3*4/2-5*3+4*7/2" ; faisons le programme qui value cette chane de caractres. Exercice 47 crire une procdure rcursive qui affiche les combinaisons (les diffrentes permutations de n objets) d'une chane de caractres. Par exemple, les anagrammes des lettres de "abc" sont : "abc", "acb", "bac", "bca", "cab" et "cba".

Page 4/5

Exercice 48 crire un programme permettant d'valuer un nombre romain en son quivalant en dcimal. Sachant que les chiffres romains : M = 1000 D = 500 C = 100 L = 50 X = 10 V=5 I=1 On constate que les nombres s'arrtaient aux milliers. Exemples d'criture des nombres romains : 4 s'crit IV. 6 s'crit VI. 9 s'crit IX. 15 s'crit XV. 47 s'crit XLVII. 149 s'crit CXLIX (et non CIL, comme on pourrait le penser) On constate ici la dcomposition 100+40+9 = C + XL + IX 1490 s'crit MCDXC = 1000 + 400 + 90 = M + CD + XC Exercice 49 crire un programme qui utilise une procdure rcursive permettant dafficher les caractres dune chane sous la forme indique dans lexemple suivant : Exemple : Soit la chane "TURBO" TURBO TURB TUR TU T Exercice 50 crire une fonction boolenne rcursive qui teste si deux fichiers dentiers sauvegards sur disque dur, sont gaux ou non. Exercice 51 crire un programme qui utilise une fonction rcursive pour trouver le plus petit nombre dun fichier dentiers sauvegards sur disque dur, puis laffiche lcran. Exercice 52 On considre la procdure suivante crite en Pascal : Procedure P(n : integer); begin if (n>0) A) Pour n=5, la sortie de P(n) affiche 5 1 1. then begin B) Pour n=5, la sortie de P(n) affiche 1 5 1. P(n div 4); C) Pour n=7, la sortie de P(n) affiche 1 1 5. writeln(n); D) Pour n=9, la sortie de P(n) affiche 2 3 1. P(n div 3); E) P(n) se termine pour toutes les valeurs entires de n. end; end;

Page 5/5

Vous aimerez peut-être aussi