MA404 : ALGORITHME ET PROGRAMMATION AVANCEE
Réalisé par :
MAFOFOU Christiane Dorence
Matricule 09YIOO7
Enseignant :
Dr. FOUDA
Année académique 2009-2010
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
PROJET : PROGRAMMATION DES
ALGORITHMES DE TRI, DE RECHERCHE ET DE
FUSION SUR LES TABLEAUX
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
1 / 7 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !