0% ont trouvé ce document utile (0 vote)
405 vues4 pages

Examen d'Algorithmique et Programmation

L'examen contient trois exercices sur les algorithmes de tri et de recherche dans les tableaux. L'exercice 1 porte sur l'inversion d'un tableau et la recherche d'un élément. L'exercice 2 concerne le tri à bulles. L'exercice 3 traite du tri par insertion.

Transféré par

Ahmad Cissé
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
405 vues4 pages

Examen d'Algorithmique et Programmation

L'examen contient trois exercices sur les algorithmes de tri et de recherche dans les tableaux. L'exercice 1 porte sur l'inversion d'un tableau et la recherche d'un élément. L'exercice 2 concerne le tri à bulles. L'exercice 3 traite du tri par insertion.

Transféré par

Ahmad Cissé
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

USTTB-FST INF1201- Licence MPCI - S2

DER de Mathématique et Informatique Année universitaire 2019-2020


Examen d’Algorithmique et programmation (INF1201)
Première session Durée : 2h

Les documents et supports électroniques ne sont pas autorisés. Les algorithmes et programmes C à écrire doivent être
bien détaillés et bien structurés. Les exercices sont indépendants et l’épreuve est notée sur 20.

Exercice 1 (8 points)
a) Ecrire l’algorithme d’une procédure, nommée inverseTableau, qui prend en paramètre un tableau d’entiers
tab et sa taille n et inverse l’ordre de ses éléments, c’est-à-dire, le premier élément du tableau deviendra le
dernier et vice-versa, le deuxième élément deviendra l’avant-dernier et vice-versa, et ainsi de suite. On
n’utilisera pas de tableau d’aide ou intermédiaire.
b) Ecrire un programme C qui implémente la procédure inverseTableau proposée dans a).
c) Ecrire l’algorithme d’une fonction, nommée rechercheElement, qui prend en paramètre un tableau
d’entiers tab, sa taille n et un entier x. La fonction déterminera, à travers une recherche séquentielle, si x
est un élément de tab. Elle retournera la position (indice) de x s’il appartient à tab et -1 sinon.
d) Ecrire un programme C qui implémente la fonction rechercheElement proposée dans c).

Exercice 2 (6 points)
On considère l’algorithme suivant de tri à bulles :
Algorithme 1 : Tri à bulles
Procedure void triBulles (entier tab[ ], entier n)
entier i, j, temp ;
pour (i de n-1 à 1) faire
pour (j de 0 à i-1) faire
si (tab[j+1] < tab[j]) alors
temp tab[j] ;
tab[j] tab[j+1] ;
tab[j+1] temp ;

a) Faire tourner l’algorithme 1 de tri à bulles ci-dessus sur le tableau {7,3,-4,2,-5,1,0}.


b) Ecrire un programme C qui implémente la procédure triBulles.

Exercice 3 (6 points)
On considère l’algorithme suivant de tri par insertion :
Algorithme 2 : Tri par insertion
Procedure void triInsertion (entier tab[ ], entier n)
entier i, c, k ;
pour (i de 1 à n-1) faire
c tab[i] ;
k i-1 ;
tant que (k >= 0 et tab[k] > c) faire
tab[k+1] tab[k] ;
k k-1 ;
tab[k+1] c;

a) Faire tourner l’algorithme 2 de tri par insertion ci-dessus sur le tableau {2,0,3,1,-1,5,-1}.
b) Ecrire un programme c qui implémente la procédure triInsertion.

Fin
Correction :
Exercice 1 (8 points)
a) Ecrivons l’algorithme d’une procédure, nommée inverseTableau, qui prend en paramètre un tableau
d’entiers tab et sa taille n et inverse l’ordre de ses éléments, c’est-à-dire, le premier élément du tableau
deviendra le dernier et vice-versa, le deuxième élément deviendra l’avant-dernier et vice-versa, et ainsi de
suite. On n’utilisera pas de tableau d’aide ou intermédiaire.
Algorithme : inverse tableau
Procedure void inverseTableau (entier tab[ ], entier n)
entier i, temp ;
pour (i de i=0 à n/2) faire
temp tab[i] ;
tab[i] tab[n-i-1] ;
tab[n-i-1] temp ;

b) Ecrivons un programme C qui implémente la procédure inverseTableau proposée dans a).

c) Ecrivons l’algorithme d’une fonction, nommée rechercheElement, qui prend en paramètre un tableau
d’entiers tab, sa taille n et un entier x. La fonction déterminera, à travers une recherche séquentielle, si x
est un élément de tab. Elle retournera la position (indice) de x s’il appartient à tab et -1 sinon.

d) Ecrivons un programme C qui implémente la fonction rechercheElement proposée dans c).

Kandé TRAORE, étudiant à la faculté des sciences et techniques, est l’auteur de ce


document.

2
Exercice 2 (6 points)
a) Faisons tourner l’algorithme 1 de tri à bulles sur le tableau {7,3,-4,2,-5,1,0}.
i j Tab[j+1] Tab[j] Tab[j+1]<tab[j] Tableau
6 0 3 7 OUI {3,7,-4,2,-5,1,0}
1 -4 7 OUI {3,-4 ,7,2,-5,1,0}
2 2 7 OUI {3,-4,2,7,-5,1,0}
3 -5 7 OUI {3,-4,2,-5,7,1,0}
4 1 7 OUI {3,-4,2,-5,1,7,0}
5 0 7 OUI {3,-4,2,-5,1,0,7}
5 0 -4 3 OUI {-4,3,2,-5,1,0,7}
1 2 3 OUI {-4,2,3,-5,1,0,7}
2 -5 3 OUI {-4,2,-5,3,1,0,7}
3 1 3 OUI {-4,2,-5,1,3,0,7}
4 0 3 OUI {-4,2,-5,1,0,3,7}
4 0 2 -4 NON
1 -5 2 OUI {-4,-5,2,1,0,3,7}
2 1 2 OUI {-4,-5,1,2,0,3,7}
3 0 2 OUI {-4,-5,1,0,2,3,7}
3 0 -5 -4 OUI {-5,-4,1,0,2,3,7}
1 1 -4 NON
2 0 1 OUI {-5,-4,0,1,2,3,7}
2 0 -4 -5 NON
1 0 -4 NON
1 0 -4 -5 NON

Le tableau après exécution de l’algorithme tri à bulles est {-5,-4,0,1,2,3,7}.


b) Ecrivons un programme C qui implémente la procédure triBulles.

Exercice 3 (6 points)
a) Faisons tourner l’algorithme 2 de tri par insertion ci-dessus sur le tableau {2,0,3,1,-1,5,-1}.

I c k tab[k] k>=0 et tab[k]>c Tableau


1 0 0 2 OUI {2,2,3,1,-1,5,-1}
-1 ! NON {0,2,3,1,-1,5,-1}
2 3 1 2 NON {0,2,3,1,-1,5,-1}
3 1 2 3 OUI {0,2,3,3,-1,5,-1}
1 2 OUI {0,2,2 ,3,-1,5,-1}
0 0 NON {0,1,2 ,3,-1,5,-1}
4 -1 3 3 OUI {0,1,2 ,3,3,5,-1}
2 2 OUI {0,1,2 ,2,3,5,-1}
1 1 OUI {0,1,1 ,2,3,5,-1}
0 0 OUI {0,0,1 ,2,3,5,-1}

Kandé TRAORE, étudiant à la faculté des sciences et techniques, est l’auteur de ce


document.

3
-1 ! NON {-1,0,1 ,2,3,5,-1}
5 5 4 3 NON {-1,0,1 ,2,3,5,-1}
6 -1 5 5 OUI {-1,0,1 ,2,3,5,5}
4 3 OUI {-1,0,1 ,2,3,3,5}
3 2 OUI {-1,0,1 ,2,2,3,5}
2 1 OUI {-1,0,1 ,1,2,3,5}
1 0 OUI {-1,0,0 ,1,2,3,5}
0 -1 NON {-1,-1,0 ,1,2,3,5}

b) Ecrivons un programme c qui implémente la procédure triInsertion.

Kandé TRAORE, étudiant à la faculté des sciences et techniques, est l’auteur de ce


document.

Vous aimerez peut-être aussi