Explorer les Livres électroniques
Catégories
Explorer les Livres audio
Catégories
Explorer les Magazines
Catégories
Explorer les Documents
Catégories
Série de TD N°2
Exercice 1:
• Nous voulons un algorithme qui recherche si un élément x appartient au
tableau T. Si x appartient effectivement à T, l'algorithme affichera Vrai, et
Faux sinon.
• En utilisant une boucle itérative, écrire une fonction qui vérifie si x
appartient à T. Si x appartient à T, la fonction renverra Vrai, et Faux
sinon.
• En utilisant un schéma récursif, écrire une fonction récursive qui vérifie
si x appartient à T. Sachant que le tableau est non trié.
Réponse 1 :
Algorithme TD2_Ex1
Constante N ← 6
Variable
i,x : Entier
T : tableau [0..N-1] d’entiers
trouvé : Booléen
Début
Pour i allant de 0 à N-1 Faire
Lire(T[i])
FinPour
Lire(x)
trouvé ← Faux
i←
← 0
Tantque((i<N) et (trouvé=Faux)) Faire
Si (T[i]=x) Alors
trouvé ← Vrai
FinSi
i←
←i+1
FinTantque
Si(trouvé=Vrai) Alors
Afficher(x," appartient au tableau")
Sinon
Afficher(x," n’appartient pas au tableau")
FinSi
Fin
1
Fonction Recherche_Iter(T : tableau[ ] d’entiers, x:
Entier, taille : Entier) : Booléen
Variable i : Entier
DébutFonction
Pour i allant de 0 jusqu’à taille-1 Faire
Si (T[i]=x) Alors
Retourne Vrai
FinSi
FinPour
Retourne Faux
FinFonction
DébutFonction
Si (i>taille-1)
Retourne Faux
FinSi
Si (T[i]=x) Alors
Retourne Vrai
Sinon
Retourne Recherche_rec(T,x,taille, i+1)
FinSi
FinFonction
Exercice 2 :
Écrire une fonction, qui prend en paramètre un tableau T et sa taille, et qui
renvoie Vrai si le tableau est trié et Faux sinon.
Réponse 2 :
Fonction Ecart (T :tableau[]d’entiers, taille :
entier) : Entier
Variable i,d : Entier
DébutFonction
i←
← 0
d←
← T[1]-T[0]
Tant que ((i<taille-1) et (d=0)) Faire
i ← i+1
d←
← T[i+1]-T[i]
FinTantque
Retourne d
FinFonction
2
Pour i allant de 0 à taille-2 Faire
Si (T[i+1]-T[i]<0) Alors
Retourne Faux
FinSi
FinPour
Sinon
Pour i allant de 0 à Taille-2 Faire
Si (T[i+1]-T[i]>0) Alors
Retourne Faux
FinSi
FinPour
FinSi
Retourne Vrai
FinFonction
Exercice 3 :
Soit AF une fonction définie par :
AF(0,m)=m
AF(n,m)=AF(n-1,AF(n-1,m))+1
• Écrire une fonction récursive qui calcule AF.
• Simuler le calcul de AF (2,1) et de AF(3,2).
Réponse 3 :
Fonction AF(n : Entier, m : Entier) : Entier
DébutFonction
Si (n=0) Alors
Retourne m
Sinon
Retourne AF(n-1,AF(n-1,m))+1
Finsi
FinFonction
AF (2,1) = 4
AF(3,2)=9
Exercice 4 :
Soit x un nombre réel positif, la suite
V0(x)=1 et Vn(x)=( Vn-1(x) +x/ Vn-1(x))/2 converge vers √x.
• Écrire le corps d'une fonction récursive calculant n-ième élément de la
suite Vn(x).
• Écrire un programme principal qui donne une valeur approchée de √x
et qui utilise la suite Vn(x).
Réponse 4 :
3
Retourne (V(x,n-1)+x/ V(x,n-1))/2
Finsi
FinFonction
Algorithme TD2_Ex4
Variable
n: Entier
x: Réel
Début
Afficher(" Donner un nombre réel positif " )
Lire(x)
Exercice 5 :
• Écrire une fonction récursive qui renvoie le produit des éléments d'un
tableau.
• Écrire une fonction récursive qui renvoie la somme des éléments d'un
tableau.
• Écrire un algorithme principal qui affiche le produit et la somme des
éléments d'un tableau donné.
Réponse 5 :
Fonction Produit(T: tableau[ ] d’entiers, ind_min:Entier,
ind_max:Entier) : Entier
DébutFonction
Si (ind_min=ind_max) alors /* Point d’arrêt */
retourne T[ind_max]
Sinon /* Appel récursif */
retourne T[ind_min]*Produit (T,ind_min+1,ind_max)
Finsi
FinFonction
4
Algorithme TD2_Ex5
Constante N ← 6
Variable
i : Entier
T : tableau [0..N-1] d’entiers
Début
Pour i allant de 0 à N-1 Faire
Lire(T[i])
FinPour