Algorithme: Les fichiers
//
-
Définitions
- Un fichier est une suite de 0 et de 1 représentant de l’information codée avec un format prédéfini.
- Un fichier est une structure de données toutes de même type mais dont le nombre n’est pas connu à priori.
- Les fichiers sont conservés en mémoire secondaire (disques et bandes magnétiques, disquettes, cassettes…) et se conserve tant que cette mémoire secondaire n’est pas effacée ou endommagée.
- Chaque fichier est désigné par un nom et possède des attributs tels que date de création, taille, …
- Un fichier est un ensemble structuré de données de même type, nommé et enregistré sur un support lisible par l’ordinateur (disque dur, disquette, flash disque, CD Rom, ..etc).
- Un fichier peut contenir des caractères (fichier textes), des programmes, des valeurs (fichier de données).
-
Types de fichiers
-
Les fichiers texte :
- Ils sont constitués d’une suite de caractères formant un texte (chaîne de caractères).
- On les utilise pour enregistrer des textes mais également des valeurs numériques en vue de les échanger avec d’autres logiciels (souvent un tableur).
- Pour enregistrer des variables numériques, on doit les transformer en chaîne de caractères.
- Un fichier texte ou fichier texte brut ou fichier texte simple est un fichier dont le contenu représente uniquement une suite de caractères; il utilise nécessairement une forme particulière de codage de caractère qui peut être une variante ou une extension du standard local des États-Unis, l’ASCII.
-
Les fichiers binaires :
- Ils sont constitués de données binaires, on écrit tous les éléments, on doit connaître le nombre et le type de valeurs enregistrées.
- On appelle « binaire » tout fichier qui n’est pas interprétable sous forme de texte : une image, un son ou encore un autre fichier compressé.
- Un fichier binaire est formé d’une suite d’octets composés chacun de 8 bits. Chaque fichier est structuré selon un format spécifique permettant de l’interpréter : un fichier contenant un logiciel pourra être lancé par le système d’exploitation, une image pourra être affichée à l’écran.
- Par exemple si on enregistre un tableau de réels (DBL) il faut connaître le nombre de valeurs enregistrées: soit on enregistre en premier un entier donnant ce nombre soit on détermine la taille du fichier que l’on divise par la taille de l’élément enregistré soit le format est fixe
-
Types d’accès aux fichiers
- L’accès séquentiel : on ne peut accéder qu’à la donnée suivant celle qu’on vient de lire. On ne peut donc accéder à une information qu’en ayant au préalable examiné celle qui la précède. Dans le cas d’un fichier texte, cela signifie qu’on lit le fichier ligne par ligne (enregistrement par enregistrement).
- L’accès direct (ou aléatoire) : on peut accéder directement à l’enregistrement de son choix, en précisant le numéro de cet enregistrement. Mais cela veut souvent dire une gestion fastidieuse des déplacements dans le fichier.
- L’accès indexé : pour simplifier, il combine la rapidité de l’accès direct et la simplicité de l’accès séquentiel (en restant toutefois plus compliqué). Il est particulièrement adapté au traitement des gros fichiers, comme les bases de données importantes.
-
Les fichiers à accès séquentiel
-
Présentation
- Un fichier à accès séquentiel est une suite de valeurs disposées les unes après les autres.
- Si on veut lire une valeur bien déterminée alors on devra lire toutes les valeurs précédentes.
- Un fichier à accès séquentiel (ou fichier séquentiel) est une suite de valeurs (appelées aussi enregistrements) disposées les unes à la suite des autres, de façon que la lecture d’une valeur donnée exemple de la quatrième valeur ne puisse se faire qu’après la lecture des valeurs précédentes.
Explication -
Déclaration
- La structure fichier se déclare soit comme un type prédéfini soit comme un nouveau type utilisateur.Son utilisation se fait à travers une variable (un identificateur du fichier) de type : Le type prédéfini ou le nouveau type déclaré.
-
Exercice d’application
-
Les fichiers à accès direct
-
Définition
- Un fichier est dit à accès direct si on peut accéder directement à chacun de ses éléments. Cette opération s’effectue grâce à la procédure (en Pascal SEEK), qui nécessite deux paramètres : Le nom logique du fichier et le numéro d’ordre de l’élément auquel on veut accéder. Ce numéro vaut 0 (zéro) pour le 1er élément. Ce qui fait que pour accéder au nième élément il faut pointer l’élément n-1.
- L’accès direct est évidemment préférable à l’accès séquentiel lorsqu’une application doit écrire, lire ou modifier un seul élément d’un large ensemble.
- Dans un fichier à accès direct, tous les enregistrements ont la même longueur. Vous pouvez donc lire un enregistrement quelconque sans lire tout le fichier.
-
Le type d’accès, c’est la manière dont la machine va pouvoir aller rechercher les informations contenues dans le fichier.
On distingue :
Nous disposons de 4 disques de couleurs différentes et un support où nous allons empiler un à un les disques.
Nous obtenons :
Nous voulons accéder au disque vert. Nous ne pouvons pas le faire directement car il se trouve sous le disque bleu et ce dernier sous le disque jaune, donc il faut en premier lieu retirer le disque jaune. Nous aurons :
Puis il faut retirer le disque bleu :
Maintenant nous pouvons accéder au disque vert.
Pour accéder à un disque particulier, il faut retirer tous les disques placés avant lui. Ce
type d’accès est dit accès séquentiel.
Dans ce cas le premier disque placé est le dernier retiré. Nous disons que
« le premier entrant est le dernier sortant ».
Tableau de déclaration des nouveaux types
Type
nom_fichier = Fichier de type_composants
type_composants représente le type des composants du fichier, ces composants doivent être de même type, exemple : entiers, réels, enregistrements,etc
Codification des objets
Objet | Type / Nature | Rôle |
nom_logique | nom_fichier | Fichier pour … |
Nous désignons par le mot « logique » utilisé dans l’appellation de l’objet, une variable utilisée seulement dans le programme, il est aussi appelé nom_interne. Nous allons voir par la suite qu’il y a un autre objet que nous allons déclarer et que nous allons nommé nom_physique appelé aussi nom_externe, car cette variable concerne le nom du fichier sur le support externe de stockage (disque dur, disquette, etc).
-
Enoncé
Nous voulons saisir et enregistrer les notes des élèves d’une classe dans un fichier de réels.
Question :
Déclarez (en algorithmique et en Pascal) la structure de fichier adéquate.
Solution proposée
-
Tableau de déclaration des nouveaux types
Type |
notes_élève = Fichier de réels |
Tableau de déclaration des objets
Objet | Type / Nature | Rôle |
notes | notes_élèves | Fichier pour les notes des élèves. |
La variable notes qui est l’identificateur logique du fichier de type note_élèves servira à effectuer des opérations sur un fichier de ce type.
Maintenant au lieu de sauvegarder seulement les notes des élèves, nous proposons d’enregistrer dans un fichier appelé CARNET, la fiche de renseignements et les notes de chaque élève.
Une fiche de renseignements comporte les informations suivantes :
– Nom et prénom,
– Sexe (F ou G),
– Date de naissance,
Les notes sont : note1, note2 et note3.
Autres solutions
Nous remarquons que cette fiche comporte des données de différents types (chaîne de caractères, caractères, réels, etc).
La structure fichier n’accepte que des données de même type. Dans ce cas, nous devons utiliser le type enregistrement.
Tableau de déclaration des nouveaux types
Type |
{déclaration de l’enregistrement} Fiche = enregistrement marginnom_prénom : Chaîne [30] sexe : Caractère date_naissance : Chaîne note1, note2, note3 : Réel Fin Fiche {déclaration du fichier} Carnet = Fichier de Fiche |
Tableau de déclaration des objets
Objet | Type / Nature | Rôle |
info élève |
Fiche Carnet |
Variable de type Fiche. Variable pour l’utilisation du fichier Carnet. |