nsi:terminales:structures:file_abstraite
Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
| nsi:terminales:structures:file_abstraite [2022/08/28 18:48] – supprimée - modification externe (Unknown date) 127.0.0.1 | nsi:terminales:structures:file_abstraite [2022/08/28 18:49] (Version actuelle) – goupillwiki | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| + | ====== Files ====== | ||
| + | {{ .: | ||
| + | |||
| + | Une file est une sorte de [[nsi: | ||
| + | |||
| + | On pourra adopter la même notation que pour les listes. Par exemple, '' | ||
| + | |||
| + | ===== FIFO ===== | ||
| + | |||
| + | {{ .: | ||
| + | |||
| + | Il faut penser à une file d' | ||
| + | * Un nouveau venu se met à la fin de la file. | ||
| + | * Le premier à sortir de la file est celui qui est devant et qui attend depuis le plus longtemps. | ||
| + | |||
| + | Donc, quand on retire un élément, c'est toujours le plus ancien à avoir été ajouté. | ||
| + | |||
| + | On parle de **FIFO = First In First Out**, c'est à dire **Premier entré, premier sorti**. | ||
| + | |||
| + | > C'est le principe de la file d' | ||
| + | |||
| + | ===== Interface ===== | ||
| + | |||
| + | ^ Méthode | ||
| + | | CREER_FILE_VIDE() | ||
| + | | EST_VIDE(F) | ||
| + | | ENFILER(F, e) | Ajoute l' | ||
| + | | DEFILER(F) | ||
| + | |||
| + | === Taille maximale ? === | ||
| + | |||
| + | Pour une file c'est surtout le mode d' | ||
| + | |||
| + | Dans ce cas, on a dans l' | ||
| + | |||
| + | ^ Méthode | ||
| + | | CREER_FILE_VIDE(taille) | ||
| + | | EST_PLEINE(F) | ||
| + | | ENFILER(F) | ||
| + | |||
| + | ===== Exercices ===== | ||
| + | |||
| + | ==== Exercice 1 ==== | ||
| + | |||
| + | Donner la file F obtenue après exécution des lignes suivantes (dans les deux cas) : | ||
| + | |||
| + | <WRAP group> | ||
| + | <WRAP half column> | ||
| + | <code lang-none linenums> | ||
| + | F = CREER_FILE_VIDE() | ||
| + | ENFILER(F, ' | ||
| + | ENFILER(F, ' | ||
| + | ENFILER(F, ' | ||
| + | DEFILER(F) | ||
| + | ENFILER(F, ' | ||
| + | </ | ||
| + | </ | ||
| + | <WRAP half column> | ||
| + | <code lang-none linenums> | ||
| + | G = CREER_FILE_VIDE() | ||
| + | ENFILER(G, 51) | ||
| + | ENFILER(G, 3) | ||
| + | F = CREER_FILE_VIDE() | ||
| + | ENFILER(F, DEFILER(G)) | ||
| + | ENFILER(F, 17) | ||
| + | ENFILER(F, DEFILER(G)) | ||
| + | </ | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | ==== Exercice 2 - Pile ou File ? ==== | ||
| + | |||
| + | Entre [[liste_abstraite|listes]], | ||
| + | |||
| + | - Gestion d'un répertoire téléphonique. | ||
| + | - Mémorisation des actions dans une applications de dessin afin de permettre le retour en arrière - //Undo//. | ||
| + | - Envoyer des fichiers à un serveur d' | ||
| + | - Buffer clavier | ||
| + | |||
| + | <WRAP info> | ||
| + | ==Buffer clavier == | ||
| + | |||
| + | Le clavier utilise une mémoire tampon (buffer) pour mémoriser les touches appuyées car le PC n'est peut-être pas disponible à ce moment précis. Le clavier envoie une requête au PC et quand celui-ci est disponible, il vient lire le contenu du buffer. Il peut arriver que le PC soit bloqué dans un travail et qu' | ||
| + | </ | ||
