1 Le fichier séquentiel Suite finie déléments dun même type Exemples : – fichier des livres dune bibliothèque – enregistrements sur un magnétophone – ensemble.

Slides:



Advertisements
Présentations similaires
Tris.
Advertisements

Stockage de données.
Masters IIGLI et IGLII – Programmation générique et conception objet – – Claude Montacié 1 Cours n° 5 Structures de données abstraites.
Le langage Z Pr ZEGOUR DJAMEL EDDINE
Les Structures. Introduction : Imaginons que lon veuille afficher les notes dune classe délèves par ordre croissant avec les noms et prénoms de chaque.
Chapitre 6: Les procédures et les fonctions
Gestion de FICHIERS.
1 Révisions. 2 Tableaux non contraints Déclaration du type : type Tvecteur = tableau ( intervalle dentiers) de entiers type Tvecteur is array (integer.
Chap. 1 Structures séquentielles : listes linéaires
FLSI602 Génie Informatique et Réseaux
4. Les structures de tests
8. Les tableaux P. Costamagna – ISEN N1.
Lycée Louis Vincent SEANCE 6 Python Les listes Lundi 25 novembre 2013.
Chapitre IV. Structures linéaires (piles, files, listes chaînées)
Points importants de la semaine Les fonctions. La portée. La passage par copie. Les tableaux.
Regrouper des éléments de même type et pouvoir y accéder à laide dun identificateur et dun indice. Objectif des tableaux.
Cours 7 - Les pointeurs, l'allocation dynamique, les listes chaînées
Structures de données linéaires
Rassemblement organisé des données en un ou plusieurs fichiers physique Optimisé pour le stockage, la lecture et la modification. 2.
Mémoire périphérique Stockage primaire: Mémoire principale (RAM)
Section XI Traitement de fichiers
Les éléments de base de l’algorithmique
Les structures de données arborescentes
Chapitre VII. Tri Tri par tas Tri rapide.
II. Chaînage, SDD séquentielles
Programmation fonctionnelle Le langage LISP
FICHIERS.
Structures de données IFT-2000
Les structure d’un programme :
FICHIERS : Définition : Algorithme général:
Les fichiers indexés (Les B-arbres)
Structures de données IFT-2000 Abder Alikacem Standard Template library Édition Septembre 2009 Département dinformatique et de génie logiciel.
Semaine #1 INF130 par Frédérick Henri.
Semaine #1 INF135 par Frédérick Henri.
Points importants de la semaine Le préprocesseur. La conversion de types. Les fonctions.
Gestion de Fichiers Tri Interne Efficace et Tri Externe.
Parcours d'une séquence de longueur fixe
Structures de données IFT-10541
Les fichiers texte en C++
Le langage C Structures de données
Les structures de données séquentielles contiguës
Sous-programmes.
Procédures et fonctions Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
Les objets Les classes Pour structurer les variables élémentaires, on peut : juxtaposer des variables de même type, en déclarant un tableau juxtaposer.
Algorithmes de tri et de recherche
Décomposition et paramétrage des algorithmes
Modes d’adressage (1) Référence aux cellules dans les formules – Important lors des copier/coller Adressage relatif (dépend de la cellule d’origine) –
Tables de compilation pour le langage Z minimal Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
Le langage Z minimal Pr ZEGOUR DJAMEL EDDINE
II. Chaînage, SDD séquentielles
Sémantique des instructions pour le langage Z minimal Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
Structures simples et tableaux Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
Les types composés Les enregistrements.
Interprétation/Génération de code pour le langage Z minimal Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
Les fichiers 1ère partie
Les variables fichiers. Le type fichier On manipule les fichiers par l’intermédiaire de structures FILE décrites dans stdio.h FILE *monFichier; –Nom physique.
L T I Laboratoire de Téléinformatique 2 Projet de semestre Parseur XML basé sur la DTD : Buts –Utiliser la grammaire définissant un type de fichiers XML.
Module algorithmique et programmation
Structures de données avancées : Principales structures de fichiers
Fichiers Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
Structures de données avancées : Introduction D. E ZEGOUR Institut National d ’Informatique.
8PRO107 Éléments de programmation Les adresses et les pointeurs.
8PRO107 Éléments de programmation Les tableaux. Étude de cas 1 Description du problème : Lire une liste d’entiers et l’afficher d’abord dans le même ordre.
Algorithmique Tableaux de données
CPI/BTS 1 Algorithmique & Programmation Les Fichiers Algo – Prog CPI/BTS1 – M. Dravet – 21/04/2004 Dernière modification: 21/04/2004.
 Chaînage et LSC : motivation et principe Manipuler la LSC : exemples Variantes : LDC, liste circulaire, … Etude de cas : réalisation d’un buffer clavier.
Algorithmique Boucles et Itérations
Introduction à l’Informatique chap 3 Licence SPI Mme Delmotte.
L'exécution d'un programme nécessite l'utilisation des ressources de l'ordinateur : temps de calcul pour exécuter les opérations, et l'occupation de la.
BASE DE L’ALGORITHMIE.  Un système d’instructions.  Pour résoudre d’un problème ou d’une classe de problèmes  Recette de cuisine pour faire un gâteau.
Transcription de la présentation:

1 Le fichier séquentiel Suite finie déléments dun même type Exemples : – fichier des livres dune bibliothèque – enregistrements sur un magnétophone – ensemble des passagers attendant la montée dans lavion

2 Caractéristiques dun fichier séquentiel - Ensemble de places totalement ordonnés : Chaque place est occupée par un élément dun même ensemble On peut détecter la fin de fichier On peut définir une correspondance entre lordre dans le fichier et lensemble des éléments classés dans le fichier : il y a une règle de rangement

3 Principe de parcours dun fichier séquentiel Fin de fichier Tête de lecture/écriture Partie déjà lue Partie restant à lire x1x2xixn Elément courant

4 Primitives daccès (1) eof(fichier) : Fin de fichier vrai si la tête de lecture/écriture est en face de la marque de fin de fichier ouvrir(fichier) : Accès au premier élément positionne la tête de lecture/écriture sur le premier élément du fichier ou sur la marque de fin de fichier sil est vide lire(fichier,val) : Accès à lélément courant copie lélément courant dans val et avance la tête dune position

5 Primitives daccès (2) créer(fichier) : crée un fichier vide (ou détruit le contenu) écrire(fichier,val) : – recopie en fin de fichier la valeul du variable val – avance le ruban dune position (sur la fin de fichier) – possible si lon est en fin de fichier uniquement association entre un nom de fichier physique et un identificateur de fichier interne au programme

6 Somme des éléments dun fichier F non vide de nb entiers fonction somme (Données: F:fichier) : entier; Intérmédiaire : s,c :entier; Début s 0; ouvrir(F); tantque non eof(F) faire début_tq lire(F,c); s s+c; fin_tq retourner(s) Fin; Complexité : O(n) où n est la taille du fichier

7 Accès au k-ième élément dun fichier séquentiel Procedure acces( Données F : fichier; k : entier, Résultats: trouvé:booléen; val: élément); Intermédiare : i:entier; c:élément; début ouvrir(F); trouvé faux; i 1; tantque i<k et non eof(F) faire début_tq lire(F,c); i i+1; fin_tq; si non eof(F) alors début_si trouvé vrai; lire(F,val); finsi Fin;

8 Accès associatif à un élément du fichier Procedure rech_val(Données F :fichier ; val:élément Résultats: trouvé:booléen); Intermédiare : c:élément; début ouvrir(F); si eof(F) alors trouvé faux Sinon début_sinon lire(F,c); tantque non eof(F) et (c<>val) faire lire(F,c); trouvé c=val; finsinon Fin;

9 Éclatement dun fichier en deux Principe : on suppose que le fichier F comprend des entiers naturels On construit deux fichiers : – lun Fpair contenant les nbs pairs – lautre Fimpair les nombres impairs Méthodologie : - Création de deux nouveaux fichiers; - ouverture de F en lecture et Fpair, Fimpair en écriture - traitement de lélément courant pour déterminer sa destination.

10 Éclatement dun fichier en deux Procedure eclat(Données F :fichier Résultats: Fpair, Fimpair : fichier); Intermédiare : c:élément; début ouvrir(F); créer(Fpair); créer(Fimpair); tantque non eof(F) faire début_tq lire(F,c); si c mod 2 = 0 alors écrire(Fpair,c); sinon écrire(Fimpair,c); fin_tq; Fin;

11 Insertion dun élément à la place k dans un fichier F Principe : on suppose que le fichier F comprend des entiers naturels et on doit ajouter un élément à la place k. Attention : on ne peut pas décaler le reste des éléments car louverture en écriture efface tous le fichier. Méthodologie : On construit un fichier g par concaténation de : – (k-1) premiers éléments de f – lélément à ajouter – (n-k+1) derniers éléments de f

12 Insertion dun élément e à la place k dans un fichier F Procedure insert(Données F :fichier; e, k : entier Résultats: g : fichier; possible : booléen); Intermédiare : c, i :entier; Début ouvrir(f); créer(g); i 1; possible faux; tantque non eof(F) et (i<k) faire début-tq lire(F,c); écrire(g,c); i i+1; fintantque;

13 Insertion dun élément e à la place k dans un fichier F si i = k alors début_si écrire(g,e); tantque non eof(F) faire début_tq lire(F,c); écrire(g,c); fintantque; possible vrai; finsi Fin;

14 Remarques sur les fichiers séquentiels - Tous les accès sont séquentiels - Le coût de lalgorithme est proportionnel à la taille du fichier - La mise à jour nécessite (presque toujours) la construction dun nouveau fichier

15 les fichiers séquentiels en C File *fopen(const char *filename, const char *mode) /* ouvre le fichier indiqué et retourne un flot, ou NULL si la tentative échoue. */ Les valeurs autorisées pour mode sont : « r » : ouvre un fichier texte en lecture « w » : ouvre un fichier texte en écriture (écrase le contenu si existe) « a » : ouvre ou crée un fichier texte en écriture et se positionne en écriture à la fin du fichier Int fclose (File *stream) /* fermeture du fichier. Elle retourne EOF pour une erreur décriture, zéro sinon)

16 les fichiers séquentiels en C Exemple : # include Void main () {.... File *fp /* pointeur vers une zone de type file*/.... fp=fopen("données", "r") ; if (fp == NULL) printf (" impossible douvrir le fichier données ") else.... fclose(fp); }

17 les fichiers séquentiels en C Int feof(FILE *stream) /* test si la tête de lecture est positionnée en fin de fichier. Elle retourne une valeur non nulle si vrai, zéro sinon*/ Int getc (File *stream) /* lecture dun élément*/ Int putc (char c ; File *stream) /* écriture dun élément*/ Int fgets (char L[max]; int max; File *stream) /* lecture dun élément*/ Int fputs (char L[max]; int max; File *stream) /* écriture dun élément*/

18 les fichiers séquentiels en C Exemple : # include Void main () {.... int c; File *fp; File *fr; fp=fopen("données","r"); fr=fopen("données1", "w"); if (fp == NULL).... c = getc(fp); while (c != feof(fp)) {.... putc(c,fr); c=getc(fp);... } fclose(fp); fclose(fr); }