Vous êtes sur la page 1sur 4

Série récursivité

4 SI 16.11.2018

Exercice N° 1
On appellera totalgramme une chaîne dont chacun de ses mots commence et se termine
par la même lettre.
Ecrire une analyse et un algorithme d’un module récursif intitulé totalgramme qui permet
de vérifier si une chaîne de caractères est totalgramme
Exemple
La chaîne "ALLALA EMPRUNTE TEMPORAIREMENT À DAOUD SES SOULIERS
" est totalgramme
NOTE : On suppose que deux mots consécutifs sont séparés par un seul espace

Exercice N° 2
Soit la fonction suivante :

0) Fonction Quoi ( n : entier ) : booléen


1) i ← 1
2) Répéter
i←i+1
Jusqu’à ( n mod i = 0 ) ou ( i = n div 2 )
3) Quoi ← ( n mod i <> 0 )
4) Fin Quoi
Exécuter manuellement la fonc on quoi pour n = 17 et pour n = 25
Quelle est le rôle de la fonction Quoi ?
Ecrire une fonction récursive réalisant le même traitement.

Exercice N° 3
Soit la fonction suivante :

function Deviner ( CH : string ; K : integer ) : integer ;


var
I , P , C : integer ;
PH : string ;
begin
C:=0;
P:=1 ;
PH :=
'0123456789ABCDEFGHIJKLMNOPQRSTUVWX
YZ' ; for I := length (CH) downto 1 do begin

C:=C+ ( pos( CH[ I ] , PH ) – 1 ) * P;


P := P * K ;
end;
Deviner := C ;
end;
Questions:
1. Compléter le tableau suivant, par les résultats de cette fonction, pour les valeurs suivantes
de CH et K.

CH=’BAC’ et K=16 CH=’33’ et K=5 CH=’147’ et K=10


C=…………………… C=…………………… C=……………………

2. Quel est le rôle de cette fonction.

Exercice N° 4
Soit l’algorithme suivant :

1) Début fonction inconnue (ch : chaîne) : booléen


2) Tr ← vrai
3) P← pos (‘‘ ’’, ch) // un seul espace
4) Tant que (P<>0) et (Tr = vrai))
faire Si (ch [1] <>ch [P+1])
alors
Tr ← faux
Sinon
Ch ← sous_chaine (ch, P+1, long (ch)‐P)
P ← pos (‘‘ ’’, ch) // un seul espace
Finsi
5) Inconnue ← Tr
6) Fin inconnue
Question :
Exécuter à la main la fonction inconnue pour chacune des chaînes suivantes :

Ch Résultat de la fonction
"programme Pascal″
"algorithme″
"analyse avec algorithme″

Exercice N°5
Saisir deux entiers positifs n et m.
Ecrire un programme calculant la fonction d'Ackerman définie par :
Ack(0,m) =m+1,
Ack(n, 0) = Ack(n‐1, 1) si n est non‐nul et
Ack(n,m) = Ack(n‐1, Ack(n,m‐ 1)) sinon.
Vous devez utiliser un module récursif.
Exercice N°6
Soit l’algorithme de la fonction Inconnu suivante
0) Début Fonction Inconnu (n : entier long) : entier
1) S = [S ← 0] Répéter
S ← S + (n Mo 10)
2) Inconnu ← S
3) Fin Inconnu

Questions :

1. Exécuter manuellement l’algorithme de la fonction Inconnu, si on appelle cette fonction avec le


paramètre effectif n = 192837, en donnant les valeurs successives des variables S et n.
2. En déduire le rôle de cette fonction.
3. L’algorithme de cette fonction est‐il récurrent ? si oui quel est son ordre. ?
4. Ecrire l’algorithme d’une fonction récursive réalisant le même traitement.

Exercice N° 7
Soit la procédure suivante :
1) Procédure inconnu ( ……………….…….)
2) Pour i de 4 à n‐1 faire
T[i] ← T[i+1]
Fin pour
3) Trouve ← faux
4) P ← 0
5) Pour i de 1 a n faire
Touve ← ( T[i] = x )
Si trouve alors
p←i
Finsi
Fin pour
6) Fin inconnue

Questions :

a) Compléter les paramètres de ce module


b) Exécuter manuellement l’algorithme de la procédure dans les deux cas suivants :

n=6 x=1
n=6 x=2

Et le tableau T suivant

3 8 0 1 7 2
Exercice N°8

Soit la fonction suivante :


0) début Fonction inconnu (n,b:entier) : chaine
1) ch <‐‐ ""
2) Tant Que (n<>0) Alors
convch( n mod b , r)
Si (Long(r)> 1) Alors
Valeur(r,x,e)
r <‐‐ Chr(x+55)
Fin Si
ch <‐‐ r + ch
n <‐‐ n Div b
Fin Tant Que
3) inconnu <‐‐ ch
4) Fin Fonction

N.B : On donne le code ASCII de "A" est 65

1‐ Exécuter la fonction pour les valeurs suivantes de n et b


a) n=94 et b =16
b) n=12 et b =2
2‐ Quel est le rôle de cette fonction.
3‐ Proposer une solution récursive pour cette fonction.

Exercice N°9

Soit l’algorithme de la fonction Inconnu suivante :


0) DEF FN Inconnu (n : entier) : ……………….
1) [ i ← 1 ] Répéter
i← i + 1

2) Inconnu ← (n mod i <> 0 )


3) Fin Inconnu

1) Quel type la fonction inconnue pourra‐t‐elle avoir et pourquoi ?


2) Déterminer : inconnue (9), inconnue (13)
3) En déduire le rôle de la fonction inconnue.
4) Ecrire l’algorithme d’une fonction récursive réalisant le même traitement

Exercice N°10

Ecrire une fonc on récursive perme ant de vérifier si 2 chaînes ch1 et ch2 sont‐elles
«anagrammes » ou non.
NB : ch1 et ch2 sont anagrammes s’ils se composent des mêmes lettres.
Exemple : ch1 = « chien » et ch2 = « niche ».

Vous aimerez peut-être aussi