Vous êtes sur la page 1sur 24

Programme

Semestre 1
Chapitre 1: Introduction à l'Informatique
Chapitre 2: Le Langage Algorithmique
Chapitre 3: Les Tableaux
Chapitre 4: Les Actions Paramétrées
Semestre 2
Chapitre 5: Les Enregistrements
Chapitre 5 :La Récursivité
Chapitre 6: Les Pointeurs
Chapitre 7: Les Listes chaînées
Chapitre 8: Les Fichiers
1
Les Fichiers

Algorithme: 1ere Année Informatique


Introduction
 Les variables manipulées dans un programme sont placées
en mémoire centrale et disparaissent à l’issue de l’exécution:
o Sauvegarder le classement des joueurs d’un jeu
 La taille de la mémoire centrale est limitée

Question :
Quelle structure faut-il utiliser pour sauvegarder d’une
manière permanente un ensemble d’information (pouvant
dépassé la capacité de la MC) dont le nombre n’est pas connu
avant le traitement

Les Fichiers
3
Définition

Un fichier est un ensemble d’informations stockées sur un


support physique (disque dur, flash disque, DVD, …).
C’est une structure de donnée permettant de stocker de
manière permanente, un ensemble de variables de même
type.

Les fichiers sont généralement classés en deux catégories:


 Fichiers textes
 Fichiers binaires

4
Fichiers textes
o Lisibles par un humain en utilisant un éditeur de texte
o Les informations sont généralement de longueur variables
ce qui empêche de calculer l’emplacement précis d’une
information particulière et ainsi, son accès direct
o Les informations sont organisées comme une suite de
lignes (chaque ligne est constituée d’un nombre
quelconque de caractères distincts du caractère fin de ligne
et se termine par le caractère fin de ligne)

5
Fichiers textes

Le contenu de ce type de fichier est une suite de caractères,


où chaque caractère est représenté physiquement en 1 octet
= 8 bits.
Si on prend les réels suivants X= 122.2132641 et Y = 56.7
Alors le fichier contenant X et Y sera composé de 15
caractères: 15 Octets, soit 120 bits.

1 2 2 . 2 1 3 2 6 4 1 5 6 . 7

ou
1 2 2 . 2 1 3 2 6 4 1 5 6 . 7

le fichier contenant X et Y (plus le caractère blanc) sera


composé de 16 caractères: 16 Octets, soit 128 bits. 6
 Fichiers binaires
o Ne sont pas lisibles ni éditable
o Les informations sont généralement de longueur fixes ce
qui permet de prédire l’emplacement d’un enregistrement
donné
o On peut utiliser un accès direct

7
Fichiers binaire

Les données sont stockées en bloc en utilisant leurs


représentation binaire. Chaque bloc est de type :
 simple : entier, réel, caractère, …
 composé: DDN, Complexe, Etudiant,…
La taille d’un élément dépend de la taille du type utilisé.

Si on prend les réels suivants X= 122.2132641 et Y = 56.7


Alors le fichier contenant ce nombre sera composé de : 8
Octets.

122.2132641 56.7

8
Un fichier peut être identifié de deux manières. Par un:
• nom physique : donné au moment de la création par son
propriétaire
• nom logique : variable qui contient des informations propres
au fichier. C’est un repère indiquant à quel emplacement on se
trouve dans le fichier (pointeur ou tête de lecture/écriture)

Remarque :
La durée de vie du nom logique est liée à celle de l'exécution
du programme qui le manipule.

9
Lecture Fichier

Buffer

Mémoire centrale Ecriture

Mémoire externe

Remarque:
Le transfert de données entre la MC (Buffer) et la mémoire
externe est assuré par le système d’exploitation.
10
Logique Physique
Information volatile Information permanente
Accès plus rapide car on Accès plus lent car on utilise la
utilise la MC mémoire externe
Moins de capacité : Plus de capacité
tampon ou buffer
Information organisée suite binaire
suivant la logique utilisée
dans l’algorithme

11
Représentation et accès aux données

Remarque :
Dans ce chapitre nous nous intéressons aux Fichiers à Accès
Séquentiel.

 Un fichier séquentiel est schématisé par un ruban de


longueur infinie sur lequel défile une tête de lecture/écriture
(TLE).
 Seul l’élément se trouvant en face de la TLE est accessible à
un moment donné. Cet élément est appelé élément courant
 La fin d’un fichier est détectée par la marque FDF/EOF
 L’ajout d’un élément se fait toujours en fin de fichier

12
Tête de lecture/Ecriture

Le fichier contient des caractères


1 2 2 . 2 EOF

Le fichier contient des enregistrement


3 6 5 -7 -2 0 EOF
: nombres complexes

13
Déclaration et opérations
Pour travailler avec un fichier on doit préalablement le créer
ou l'ouvrir ceci permet ensuite de lire : récupérer une ou
plusieurs informations ou d'écrire : enregistré au stocker des
informations.

 Déclaration
<Idf_fichier> : Fichier de <type_élément>
<type_élément> : le type des éléments du fichier peut être
simple ou structuré.

Exemple :
F: Fichier de entier; Type
C: Fichier de caractère; Tab : tableau[5] de
réel;
Comp: Fichier de complexe; R: Fichier de Tab;
Etu : Fichier de étudiant; 14
Remarque:
A chaque fichier est associée une zone de travail appelée
variable tampon ou buffer qui doit être de même type que les
éléments du fichier. Elle sera distinguée par : Idf_fichier^

Exemple :
C: Fichier de caractère;
Cmp: Fichier de complexe;

TLE
TLE

1 a 2 . p EOF 3 6 5 -7 -2 0 EOF

C^ Cmp^

15
Primitives de manipulation des fichiers
 Fin De Fichier
Sa forme : fdf(idf_fichier)
Si la marque de FDF n’est pas encore atteinte alors :
fdf(idf_fichier) = faux sinon fdf(idf_fichier) = vrai

fdf(C) = faux fdf(C) = vrai

TLE TLE

1 a 2 . p EOF 1 a 2 . p EOF

C^ ?
C^ 2

16
Primitive d’accès au 1er élément d’un fichier
Pour pouvoir manipuler un fichier, il faut qu’il soit ouvert.
Ouverture d’un fichier en Mode Lecture
Syntaxe: relire(idf_fichier)
Positionne le 1er élément en face de la TLE. La valeur du 1er
élément est recopiée dans le buffer. Le prédicat FDF conserve
sa valeur faux.
Si le fichier est vide le buffer à une valeur indéfinie et le
prédicat FDF prend la valeur vrai
Remarque : si le fichier n’existe pas le SE renvoie un message
d’erreur
TLE
TLE
EOF
1 a 2 . p EOF
C^ ?
C^ 1
fdf(C) = faux fdf(C) = vrai
17
Primitive d’accès aux autres éléments d’un fichier
Syntaxe:
Lire(idf_fichier, idf_var)

Lire l’élément courant (celui en face de TLE) et le met dans la


variable idf_var qui doit être de même type que celui des
éléments du fichier, puis déplace la TLE vers l’élément suivant.

Exemple : Lire(C, X) (* XC^ *)


X
TLETLE 1

1 a 2 . p EOF

C^ C^
1 1

18
Ouverture d’un fichier en Mode Ecriture

Syntaxe:
reecrire(idf_fichier)

Créer un fichier vide ayant pour nom idf_fichie.


Le prédicat FDF prend la valeur vrai.
Si le fichier contenait des informations au préalable, cette
primitive rend le fichier vide.

TLE

EOF

fdf(C) = vrai C^ ?

19
Syntaxe:
ecrire(idf_fichier, idf_var)

Cette primitive permet d’écrire le contenu de la variable


< idf_var > dans le fichier idf_fichier. La variable idf_var doit
être du même type que les éléments du fichier.

Remarque : l’écriture se fait toujours à la fin du fichier.

Exemple : X 2; ecrire(C, X) (* C^  X *)

X
TLE TLE 2

1 a EOF
2 EOF

C^ C^
? ?
2
20
 Fermeture d’un Fichier
Une fois qu’on termine le traitement d’un fichier (en lecture/
écriture), on le ferme.
Une fois fermé, aucun traitement sur le fichier ne sera
possible.

Syntaxe:
Fermer(<idf_fichier>)

Exemple:
fe: fichier de entier;
….
….
Fermer (fe);

21
Exemple : étant donné un fichier de nombres entier, écrire un
algorithme qui compte le nombre de valeur supérieure à une
valeur donnée

Algorithme exemple 1 sur les fichiers


Var
fe: fichier de entier; // le fichier est remplie
nb, val, x :entier;
Début
relire (fe);
lire(val);
nb  0;
Tant que (non fdf(fe))
faire
Lire(fe,x);
si(x > val) alors nb  nb+1; Fsi;
fait;
22
fermer(fe);
Exemple : soit un fichier de nombres entier, écrire un
algorithme qui permet d’éclater ce fichier en 2. L’un contenant
les nombres > 0 et l’autre les nombres < 0

Algorithme exemple 2 sur les fichiers


Var
fe, fpos, fneg: fichier de entier;
x :entier;
Début
relire (fe); reecrire(fpos); reecrire(fneg);
Tant que (non fdf(fe))
faire
Lire(fe,x);
si(x > 0) alors ecrire(fpos,x);
sinon si x < 0 alors ecrire(fneg,x); Fsi;
Fsi;
fait;
23
Fin.
Fin
24

Vous aimerez peut-être aussi