Vous êtes sur la page 1sur 4

Srie dexercices : les algorithmes rcurrents

Propose par : Mme Ben Attia Imen Lyce secondaire Aljawhara Sousse Classe : 4SI

1re partie : les suites


EXERCICE N1 :
On considre deux suites (U) et (V) dfinies partir de : U1 = 1 U2 = 2 Ui = Ui-1 + Ui-2 (i 3) Vi = Ui / Ui-1 (i 2) La suite (Vn) tend vers une limite, appele nombre d'or. On suppose que le nime terme de la suite (V), soit Vn, donne une valeur approche du nombre d'or avec une prcision E, ds que |Vn Vn-1| < E. Ecrire un programme permettant de dterminer le terme Vn 10-4 prs et son rang.

EXERCICE N2 :
On dsire saisir un tableau de n entiers puis vrifier si ces lments forment une suite arithmtique. Sachant que si U est une suite arithmtique alors Un= Un-1 + a.

EXERCICE N3 :
On se donne un entier non nul U0 et on se propose de construire la squence dentiers (Un) dfinie par : Un+1 est gale la somme des carrs des chiffres de Ui : Exemple : si Ui=423 Alors Ui+1=4+2+3 =29 On admet que la squence est : Soit cyclique, C'est--dire : Il existe i,j avec i+1<j et tel que Ui=Uj Soit stationnaire Il existe i>=0 tel que quelque soit j>i Uj=Ui=1 (S) (elle sera stationnaire partie de lapparition de 1 dans la squence.) 1) Calculer les 15 premiers lments de Un dans les cas suivants : U0=12 u0=295 U0=1115 2) Ecrire un algorithme de la procdure INIT qui initialise zro , tous les lments dun tableau T unidimensionnel (de T[0] T[99]) NB : Ce tableau servira par la suite stocker les premiers lments de la squence construire (T[i] =Ui) 3) Ecrire un algorithme de la procdure saisie permettant de saisir U0 >0 4) Ecrire un algorithme dune fonction CARREECHIF (E) permettant de calculer la somme des carrs des chiffres de E. 5) Ecrire un algorithme dune fonction cherche (T,v,k) qui cherche une valeur v dans les k premiers lments du tableau T (T[0]T[k-1]) Cette fonction renvoie comme rsultat Soit la premire position de v dans T Soit la valeur -1 quand v ny est pas 6) En utilisant les fonctions et procdures prcdentes, crire un algorithme du programme principal intitul INSPID qui fait les traitements suivants sur lentier U0 Si la squence est stationnaire alors il affiche la position i vrifiant (S) ainsi que la squence U0,U1,,Ui Si la squence est cyclique alors affiche les premiers i et j vrifiant (C) ainsi que la squence :U0,U1, ,Ui,..Uj
- Page 1 sur 4 -

2me partie : algorithmes rcurrents sur les matrices


EXERCICE N1 :
Donner un programme qui permet de rechercher dans une matrice donne A de N lignes et de M colonnes les lments qui sont la fois un maximum sur leur ligne et un minimum sur leur colonne. Ces lments sont appels des points cols. Afficher les positions et les valeurs de tous les points cols trouvs. Exemples: Les lments souligns sont des points cols: 18340 67270 4586 3893 3493 35677 42289 63297 127 456 789

Mthode: Etablir deux matrices d'aide MAX et MIN de mme dimensions que A, telles que: 1 si A[i,j] est un maximum sur la ligne i MAX[i,j] = 0 sinon 1 si A[i,j] est un minimum sur la colonne j MIN[i,j] = 0 sinon Les points cols sont ceux qui vrifient lgalit suivante : MMAX[i,j] = MMIN[i,j]=1

EXERCICE N2 :
Proposer une autre mthode pour remplir le triangle de pascal en utilisant la fonction rcursive combinaison qui p calcul le nombre Cn qui reprsente un cfficient du polynme (a+b)n sachant que :

n,p

=Cn-1,p +Cn-1,p-1 avec

n,n

=1
n,0

C C
EXERCICE N3 :

=1 =1

n,n-1

Proposer un programme qui permet de :


a-

calculer la somme des lments de la 1re diagonale dune matrice carre. 3 1 4 4 10 20 -2 3 5 12 6 1 14 10 1 0

b-

calculer la somme des lments de la 2me diagonale dune matrice carre. 3 1 4 4 10 20 -2 3 5 12 6 1 14 10 1 0

c- calculer la somme des lments des 2 diagonales dune matrice carre. 12. 5 9 14 18 29 -10 17 56 48 16 0.2 5 82 1 3 -2 17.5

d- Donner une solution rcursive au module permettant de calculer la somme des lments dune matrice.

EXERCICE N4 :
- Page 2 sur 4 -

Donner un programme qui permet de calculer le produit de chaque ligne d'une matrice carre de N entiers. (En mode itratif et en mode rcursif)

EXERCICE N5 :
Proposer une analyse du problme permettant de trier une matrice dans un ordre croissant en utilisant :

le tri par slection rcursif le tri par insertion rcursif le tri bulle rcursif

3me partie : algorithmes rcurrents sur les chanes


Exercice N1 :
Proposer un programme permettant dvaluer un nombre crit en chiffre romains sachant que les chiffres romains scrivent comme suit: M = 1000 D = 500 C = 100 L = 50 X = 10 V=5 I=1 On constate que les nombres s'arrtaient aux milliers; cela montre le progrs des mathmatiques depuis le temps des romains.

L'criture des nombres romains 1 s'crit I. 2 s'crit II. 3 s'crit III. 4 s'crit IV. 5 s'crit V. 6 s'crit VI. 7 s'crit VII. 8 s'crit VIII. 9 s'crit IX. 10 s'crit X.

Exercice N2:

Ecrire un programme qui permet la compression dune chane (CODEC) (compresser cest remplacer les caractres semblables qui sont successifs par leur nombre de rptition suivi du caractre qui se rpte. Proposer une solution pour la dcompression dune chane.

Exercice N3:
Ecrire un programme qui permet de supprimer les espaces superflus dans une chane

Exercice N4:
Ecrire un programme qui saisit une chane de caractres et l'affiche sous la forme d'un triangle comme indiqu ci-dessous. Exemple : Si la chane saisie est "INTERNET", on aura : I IN INT INTE INTER INTERN INTERNE INTERNET
- Page 3 sur 4 -

Pour chaque exercice faire une analyse modulaire suivie des algorithmes correspondants puis traduire la solution en pascal.

- Page 4 sur 4 -