6
1. #include <stdio.h> 2. #include <stdlib.h> 3. #define MAX_ELEMENT 20 4. 5. /*Définition de la structure File*/ 6. typedef struct file 7. { 8. int Tab[MAX_ELEMENT] ; //Les élèments de la file 9. int TETE; //La tête de la file 10. int QUEUE; //La queue de la file 11. } File; 12. 13. /*fonction d'initialisation d'une File*/ 14. void initialiser_File (File *MaFile) 15. { 16. MaFile->QUEUE = MaFile->TETE = -1; 17. } 18. 19. /*Transforme MaFile en file vide*/ 20. void Raz_File (File *MaFile) 21. { 22. MaFile->TETE = MaFile->QUEUE = -1; 23. } 24. 25. /*la taille de la file*/ 26. int Taille_File(File MaFile) 27. { 28. if((MaFile.QUEUE == -1) && (MaFile.TETE == -1)) //si la file est vide taille = 0 29. return((int) 0); 30. 31. //si la file n'est pas vide 32. return ((int) MaFile.QUEUE - MaFile.TETE + 1 ); 33. 34. } 35. 36. /*cette fonction retourn 1 si la File est vide 0 sinon*/ 37. int Vide_File(File MaFile) 38. { 39. if(Taille_File(MaFile) == 0) //la file est vide si la t aille égale à 0

Page de Garde

Embed Size (px)

DESCRIPTION

page de garde

Citation preview

Page 1: Page de Garde

1. #include <stdio.h>  2. #include <stdlib.h>  3. #define MAX_ELEMENT 20  4.   5. /*Définition de la structure File*/  6. typedef struct file  7.         {  8.             int Tab[MAX_ELEMENT] ; //Les élèments de la file  9.             int TETE;            //La tête de la file  10.             int QUEUE;          //La queue de la file  11.         } File;  12.   13. /*fonction d'initialisation d'une File*/  14. void initialiser_File (File *MaFile)  15. {  16.     MaFile->QUEUE = MaFile->TETE = -1;  17. }  18.   19. /*Transforme  MaFile  en file vide*/  20. void Raz_File (File *MaFile)  21. {  22.     MaFile->TETE = MaFile->QUEUE = -1;  23. }  24.   25. /*la taille de la file*/  26. int Taille_File(File MaFile)  27. {  28.     if((MaFile.QUEUE == -1) && (MaFile.TETE == -1)) //si la file est vide 

taille = 0  29.         return((int) 0);  30.           31.      //si la file n'est pas vide     32.     return ((int) MaFile.QUEUE - MaFile.TETE + 1 );  33.           34. }  35.   36. /*cette fonction retourn 1 si la File est vide 0 sinon*/  37. int Vide_File(File MaFile)  38. {  39.     if(Taille_File(MaFile) == 0)  //la file est vide si la taille égale à 0  40.         return((int) 1);  41.           42.     //la file est non vide      43.     return((int) 0);  44. }  45.   46. /*fonction qui indique si la file est saturée(retourne 1) ou non(retourne 

0) */  

Page 2: Page de Garde

47. int File_Saturee(File MaFile)  48. {  49.     //MaFile est saturée  50.     if(MaFile.QUEUE == ( MAX_ELEMENT - 1 ) )  51.         return((int) 1 );  52.           53.     //MaFile non saturée      54.     return((int) 0);  55. }  56.   57. /*retourne la valeur de la tete de la file 58.  *avant d'utiliser cette fonction il faut  59.  * verifier si la file est vide ou non 60.  * */  61. int Tete_File(File MaFile)  62. {  63.     return((int) MaFile.Tab[MaFile.TETE] );  64. }  65.   66. /* supprime le premier élément de la file 67.  * retourne 1 si la suppression est bien passée 68.  * retourne 0 si la suppression est male passée 69.  * */  70. int Defiler(File *MaFile)  71. {  72.     if(Vide_File(*MaFile)) //Mafile est vide  73.         return ( (int) 0 ) ;  74.   75.     //MaFile est non vide  76.     MaFile->TETE++ ;  77.     return ((int) 1) ;  78. }  79.   80.   81. /*insère l’élément à la fin de MaFile 82.  * retourne 0 si l'insèrtion est male passée 83.  * retourne 1 si l'insèrtion est bien passée 84.  * */  85. int Enfiler(File *MaFile, int val)  86. {  87.     //la file est saturée impossible d'enfiler  88.     if(File_Saturee(*MaFile))   89.         return ((int) 0) ;  90.           91.     //La file est initialement vide  92.     if(Vide_File(*MaFile))  93.     {  94.         /*il se peut que la valeur de la tete et la queue soit egale à MaX_E

LEMENT 95.          * donc on doit réinitialiser la file afin de la réutiliser 

Page 3: Page de Garde

96.          * */  97.         initialiser_File(MaFile);  98.           99.         //enfilement  100.         MaFile->Tab[++MaFile->QUEUE] = val;  101.         MaFile->TETE++;  102.         return( (int) 1);  103.     }  104.           105.     //la file est non saturée il est possible d'enfiler      106.     MaFile->Tab[++MaFile->QUEUE] = val ;  107.     return((int) 1) ;  108. }  109.   110. /*fonction d'affichage d'une file*/  111. void afficher(File MaFile)  112. {  113.     printf("\n\tFILE:\n");  114.     while( !Vide_File(MaFile) )  115.     {  116.         printf("\n\t     %d", Tete_File(MaFile));  117.         Defiler(&MaFile);  118.     }  119. }  120.   121.   122. /*programme principale*/  123. int main(int argc, char **argv)  124. {  125.     /*déclaration des variables*/  126.     File *MaFile =(File *) malloc(sizeof(File)); //la file  127.     initialiser_File(MaFile);  128.       129.     int choix;   //le choix de l'utilisateur  130.     int valeur; //la valeur que l'utilisateur veut enfiler  131.       132.     //menu du programme  133.     printf("\t*****Manipulation des files à l'aide des tableaux********\n"); 

 134.     printf("\n\t1-Enfiler");  135.     printf("\n\t2-Defiler");  136.     printf("\n\t3-Razer la file");  137.     printf("\n\t4-Tete de la file");  138.     printf("\n\t5-afficher la file");  139.     printf("\n\t6-quitter");  140.       141.       142.     //demander un choix à l'utilisateur  143.     printf("\n\n\tveuillez choisissez une opération\n");  144.     scanf("%d", &choix);  

Page 4: Page de Garde

145.       146.     //tantque l'utilisateur ne veut pas quitter  147.     while(choix != 6)  148.     {  149.           150.         //executer l'opératon choisi  151.         switch(choix)  152.         {  153.             //enfilement  154.             case 1 :   155.                     //demander une valeur à l'utilisateur  156.                     printf("\n\tveulliez inserer une valeur\n");  157.                     scanf("%d", &valeur);  158.                     if(Enfiler(MaFile, valeur))  159.                         printf("\n\tl'enfilement a ete bien passer\n");  160.                     else  161.                         printf("\n\terreur d'enfilement\n");  162.                     break;  163.             //defilement  164.             case 2 :  165.                     if(Defiler(MaFile))  166.                         printf("\n\tLa defilement a ete bien passer\n");  167.                     else  168.                         printf("\n\terreur de defilement\n");  169.                     break;  170.               171.             //razement dela file  172.             case 3 :  173.                     Raz_File(MaFile);  174.                     break;  175.             //tete de la file  176.             case 4 :  177.                     printf("\n\tvaleur de la TETE: %d\n", Tete_File(*MaFile));  178.                     break;  179.             //affichage de la file  180.             case 5 :  181.                     afficher(*MaFile);  182.                     break;  183.             default :  184.                     printf("\n\tveulliez insèrer un choix entre 1 et 6");  185.         }//fin switch  186.           187.         //demander un choix à l'utilisateur  188.         printf("\n\n\tveuillez choisissez une opération\n");  189.         scanf("%d", &choix);  190.     }  191.     return 0;  192. }  

Page 5: Page de Garde

Compte rendu du TPListe, Pile et File

Encadré par   : Pr. BEKHOUCHA

Abdelkrim

Réalisé par   : HILALI Abderrahmane EL HAROUGUI Mohammed

Fait le   : Lundi 2/11/2015