i les algorithmes

publicité
Université de Yaoundé I
---------Ecole Normale Supérieure
----------Département d’Informatique et
des technologies Educatives
The University of Yaoundé I
---------------Higher Teachers training College
------------Department of Computer science
and educational Technologies
MA404 : ALGORITHME ET PROGRAMMATION AVANCEE
PROJET : PROGRAMMATION DES
ALGORITHMES DE TRI, DE RECHERCHE ET DE
FUSION SUR LES TABLEAUX
Réalisé par :
MAFOFOU Christiane Dorence
Matricule 09YIOO7
Enseignant :
Dr. FOUDA
Année académique 2009-2010
INTRODUCTION
Ce travail est élaboré dans le cadre du cours d'algorithme et
programmation avancée. Il est question ici de programmer les
algorithmes de tri, de recherche d'un élément dans un tableau et
de fusion de deux tableaux. Ces algorithmes doivent être
programmés en langage C. Pour réaliser ce travail, nous avons
utilisé un ordinateur portable IBM ThinkPad pentium M avec 40GO
de disque dur, 2GO de Ram, 1,6GHz de processeur et équipé du
système d'exploitation Mandriva Linux 2008 Spring. Nos
programmes ont été compilés et exécutés en utilisant le
compilateur gcc. Nous donnerons d'une par les algorithmes et
d'autre par les programmes de ces algorithmes en langage C.
I
LES ALGORITHMES
A.
ALGORITHME DU TRI D'UN TABLEAU
Nous donnons ici l'algorithme qui permet de trier un tableau
d'éléments. Nous considérons dans ce cas qu'il s'agit d'un tableau
d'entiers et nous le trions par ordre décroissant.
Algorithme tri (taille : Entier, tab :Tableau )
i, k, tem : Entier;
afficher (Votre tableau est:);
afficher (tab);
pour i de 0 à taille-1 faire
pour k de i à taille-1 faire
si tab[i]<tab[k] alors
tem <-- tab[i];
tab[i] <-- tab[k];
tab[k] <-- tem;
fin si
fin pour
fin pour
afficher (Le tableau trié est:);
afficher (tab);
fin Algorithme
B.
ALGORITHME DE RECHERCHE D'UN
ELEMENT DANS UN TABLEAU
Il s'agit dans cet autre algorithme de rechercher un élément dans
un tableau. En d'autres termes de voir si un élément existe dans un
tableau. Nous considérons toujours que nous manipulons un tableau
d'entiers.
Algorithme recherche (taille : Entier, element: Entier, tab: Tableau)
i : Entier;
afficher (Votre tableau est:);
afficher (tab);
i <-- 0;
tant que i<taille et tab[i] différent de element faire
i <-- i+1;
fin tant que
si i=taille alors
afficher (l'élément recherché n'est pas dans le tableau tab);
sinon
afficher (l'élément element se trouve en position i du
tableau);
fin si
fin Algorithme
C.
ALGIRITHME DE FUSION DE DEUX
TABLEAUX
Cet algorithme permet de fusionner deux tableaux triés en un
tableau trié. Nous supposons toujours qu'il s'agit d'un tableau d'entiers.
Algorithme fusion (taille1 : Entier, taille2 : Entier, tab1 : Tableau, tab2 :
Tableau)
i, j, k : Entier;
tab3 : Tableau;
afficher (Votre premier tableau est:);
afficher (tab1);
afficher (Votre deuxième tableau est:);
afficher (tab2);
i <-- 0;
j <-- 0;
k <-- 0;
tant que i<taill1 et j<taille2 faire
si tab2[j]<tab1[i] alors
tab3[k] <-- tab1[i];
i <-- i+1;
k <-- k+1;
sinon
tab3[k] <-- tab2[j];
j <-- j+1;
k <-- k+1;
fin si
fin tant que
si i<taille1 alors
pour l de i à taille1 faire
tab3[k] <-- tab1[i];
k <-- k+1;
fin pour
fin si
si j<taille2 alors
pour l de i à taille1 faire
tab3[k] <-- tabé[i];
k <-- k+1;
fin pour
fin si
afficher (le tableau, résultat de la fusion des deux tableaux est:);
afficher (tab3);
fin Algorithme
II
LES PROGRAMMES
A.
LE PRAGMME DE TRI
Ce programme est écrit en langage C et se trouve dans le fichier
tri.c. pour le compiler, il suffit de se positionner en ligne de commande,
dans le répertoire contenant le fichier source et de taper la commande
gcc -o trier tri.c. Pour l'exécuter on tape également en ligne de
commande ./trier {la taille du tableau} {les éléments du tableau}.
Exemple : pour trier le tableau [4 56 7 8 9], on tape la commande
./trier 5 4 56 7 8 9 et on obtient le résultat suivant :
votre tableau est:
4 56 7 8 9
et le tableau trié par ordre décroissant est :
56 9 8 7 4
B.
LE PROGRAMME DE
RECHERCHE D'UN ELEMENT DANS
UN TABLEAU
Ce programme est écrit en langage C et se trouve dans le fichier
recherche.c. pour le compiler, il suffit de se positionner en ligne de
commande, dans le répertoire contenant le fichier source et de taper la
commande gcc -o rechercher recherche.c. Pour l'exécuter on tape
également en ligne de commande ./rechercher {la taille du tableau}
{l'élément recherché} {les éléments du tableau}.
Exemple : pour rechercher 8 dans le tableau [4 56 7 8 9], on tape la
commande
./rechercher 5 8 4 56 7 8 9 et on obtient le résultat suivant :
votre tableau est:
4 56 7 8 9
L'élément recherché se trouve en position 4 du tableau.
C.
LE PROGRAMME DE FUSION DE
DEUX TABLEAUX TRIES
Ce programme est écrit en langage C et se trouve dans le fichier
fusion.c. pour le compiler, il suffit de se positionner en ligne de
commande, dans le répertoire contenant le fichier source et de taper la
commande gcc -o fusionner fusion.c. Pour l'exécuter on tape également
en ligne de commande ./fusionner {la taille du premier tableau} {taille
du deuxième tableau} {les éléments du premier tableau} {les éléments
du deuxième tableau}.
Exemple : pour fusionner les deux tableaux [56 45 34 12 4 2 1] et
[45 44 42 32 23 19 12 8 3 1], on tape la commande
./fusionner 7 10 56 45 34 12 4 2 1 45 44 42 32 23 19 12 8 3 1 et on
obtient le résultat suivant :
Votre premier tableau est:
56 45 34 12 4 2 1
Votre deuxième tableau est:
45 44 42 32 23 19 12 8 3 1
Le tableau final, résultat de la fusion des deux tableaux est :
56 45 45 44 42 34 32 23 19 12 12 8 4 3 2 1 1
CONCLUSION
Au terme de ce travail, il ressort qu'il est possible de programmer
en langage C les algorithmes de tri, de recherche et de fusion en
manipulant les tableaux.
Téléchargement