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

3)

i i + 1 Jusqu’à ( n mod i = 0 ) ou ( i = n div 2 ) 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) Ppos (‘‘ ’’, ch) 4) Tant que (P<>0) et (Tr = vrai)) faire Si (ch [1] <>ch [P+1]) alors

// un seul espace

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(n1, 1) si n est nonnul et Ack(n,m) = Ack(n1, Ack(n,m1)) 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 estil 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 à n1 faire

3)

T[i] T[i+1] Fin pour Trouve faux

4)

P 0

5)

Pour i de 1 a n faire Touve ( T[i] = x ) Si trouve alors

p

i

Finsi

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)

2) Tant Que (n<>0) Alors

ch <‐‐ ""

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

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

a) n=94 et b =16

b) n=12 et b =2

2Quel est le rôle de cette fonction. 3Proposer 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 pourratelle 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 sontelles «anagrammes » ou non. NB : ch1 et ch2 sont anagrammes s’ils se composent des mêmes lettres. Exemple : ch1 = « chien » et ch2 = « niche ».