Upload
abderrahman-hilali
View
216
Download
2
Embed Size (px)
DESCRIPTION
page de garde
Citation preview
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) */
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
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);
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. }
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