Chapitre [Link] org.
tn
Page: BAC-TUNISIE
Tél:25 361 197 / 53 371 502
1è'" Partie : Les enregistrements
l- Définition :
Un enregistrement est une structure de donnée composée, définie
par le programmeur, qui permet de grouper (dans une même case
mémoire) un nombre fini de données, simples etlou composées, de même
ou de différents ÿpes.
On parle, alors, d'un nouveau type non prédéfini appelé enregistrement
ou article susceptible de grouper plusieurs variables de même et/ou de
différents types.
2- Notion de champ :
Un enregistrement est un ensemble de valeurs se trouvant
chacune dans une variable appelée CHAMP. Un champ est une partie de
l'enregistrement, identifié par un nom, contenant une valeur de type
prédéfini (entier, réel, caractère, chaîne de caractères ou booléen) ou de
nouveau type défini par le programmeur.
ao^ Schématiquement Parlant :
Elle ne peut ccntenir qu'une seule valeur
de ÿpe simple : entier, réel, caractère,
chaîne de caractères ou booléen.
Par contre un enregistrement est présenté comme suit
Champl Champ: Champ.
Une variable de type enregistrement groupant n champs
N.B : Un enregistrement n'est pas un tableau !Les enregistrements et les fiehiers
Une variable
simple
8 Les enregistrements et les hchiers
3- Tableau d'enregistrements :
Comme il est mentionné, un enregistrement n'est pas un tableau
de valeurs, mais le contraire est possible !
D'après notre pré acquis un tableau est un ensemble de cases de
même type, contenant chacune une valeur. Mais, un tableau
d'enregistrements est un ensemble de cases de même type, representant
chacune un enregistrement de données.
æ- Schématiquement parlant :
T est un tableau de n éléments simples, représenté comme suit :
TValeurl Valeur, Valeurn
)n
Cependant, E est un tableau d'enregistrements dont chaque case (E[i]) est
un enregistrement de p Champs :
E Champr Champ"
i
4- Déclaration d'une variable de type enregistrement :
S Au niveau de I'analyse
T.D.O.U
T.D.N.T
Type
Nouveau_ÿpe = Enregistrement
Champl :Type1
Champo : Type,
Fin Nouveau type
www BAC [Link]
Page BAC-TUNISIE
Tél:25 361 197 t53371502I
Objet Nature/Type Rôle
Nom variableNouveau_Type Contenir
Les enregistrements et les fichiers 9
-typeNouveau_type: RECORD
Champl : Typel ;§ En Python
# Définition de types
[Link] [Link]
PageBAC-TUN SIEI
Tér:?s369753371502 1 1I
Champo: Typeo ;
End;
# Déclaration de variables
Nom variable :
Remarques : Pour cibler un champ d'une variable de type
enregistrement, on met le nom de la variable et le nom du champ séparés
par un point.
5- Traitements simples sur les enregistrements :
a- Lecture d'une valeur dans un champ d'un enregistrement :
'/ Algorithme : Lire ([Link]-champ)
,/ Python : inputln §om_variable.Nom_champ) ;
b- Affectation d'une valeur dans un champ d'un enregistrement :
'/ Algorithme : Nom_variable.Nom-champ ê Valeur
,/ Python : Nom_variable.Nom_champ :: Valeur;
c- Affichage d'une valeur d'un champ d'un enregistrement :
./ Algorithme : Ecrire ([Link] du champ)
./ Python : print §om_variable.Nom du champ) ;
Remarques:
,/ La lecture d'une valeur dans un enregistrement se fait champ par
champ.
./ L'écriture des valeurs d'un enregistrement se fait champ par champ.
./ L'affectation des valeurs d'un enregistrement dans une variable de
même type peut être réalisée champ par champ ou d'une façon
entière.
Exemple : a € b avec a et b deux enregistrements de même type.
./ La structure Avec .. Faire (With .. Do en Python) nous épargne
d'indiquer à chaque fois le nom de la variable de type enregistrement.
10 Les enregistrements et les fichiers
2è-' partie : Les fichiers
l- Définition :
Un fichier est un ensemble structuré de données, de même ou
de differents types, sauvegardé sur un support d'informations quasi-
permanent (Disquette, Disque dur, Flash disque,....) ce fichier est appelé
fichier physique représenté toujours aucours des traitements par un
fichier de travail appelé fichier togique.
2- Types de fïchiers :
'/ Fichier Typé ou fichier Binaire : peut contenir tous les types
possibles de données,
'/ Fichier Texte ou fichier ASCII : ne contient qu'une succession de
lignes de type chaîne de caractères.
ar Déclaration d'un fïchier Binaire :
§ Au niveau de l'analyse
[Link] [Link]
Page BAC-TUNIS|E
Tél:25 361 197 153371502
Objet Nature/Type Rôle
Norn Fichier_logique Nom_Nouveau_type Contenir
T.D.N.T
Type
Nom-Nouveau_type = Fichier de Nom_Type
§ En Python
# Définition de types Nom_Nouvean_type: File of Nom_Type;
# Déclaration de variables Nom_Fichier_logique :
ar Déclaration d'un fichier Texte :
§ Au niveau de I'analyse
T.D.O.UNom_Nouveau_type ;
Objet NatureÆype Rôle
Nom_Fichier_logique Texte Contenir
Les enregistrements et les fichiers ll
§ En Python
# Déclaration de variables Nom_Fichier_logique : TEXT;
3- Types d'accès :[Link] [Link]
Page: BAC-TUNISIE
Tél:25 3ô1 1gZ 153371502
Il existe deux types d'accès au contenu des fichiers :
CQ Accès Séquentiel :
Dit aussi linéaire, on ne peut passer à un élément du fichier
qu'après avoir passé par ceux qui le précèdent. Ce ÿpe d'accès est
possible pour les deux types de fichiers (Binaire ou Texte).
CQ Accès Direct :
On peut accéder directement à un élément du fichier, sans passer
par les éléments qui le précèdent. Ce type d'accès n'est possible que pour
les fichiers Binaires.
4- Notion de pointeur :
Le pointeur est un dispositif logique de lecture/écriture des
éléments d'un fichier qui sont numérotés de 0 à un entier representant (le
nombre des éléments -1).
La position du pointeur est, par défaut, sur le l" élément du
fichier et le pas de déplacement du pointeur suite à une opération de
lecture ou écriture est, automatiquement, d'un élément du fichier vers
celui qui le succède de 0 à 1, de I à 2 etc.
Pour les fichiers binaires, il est possible de déplacer le pointeur
vers n'importe quel élément du fichier en utilisant des fonctions d'accès
direct appropriées.
5- Modules prédéfinis pour la gestion des fichiers Binaires :
a) Association du fichier logique au fichier physique :
Algorithme : opener (Nom_logique , Nom-Physique)
Python : open (Nom_logique, Nom-Physique) ;
b) Ouverture d'un fichier :
Deux modes d'ouverture peuvent être utilisés à savoir :
§ Mode nouveau fichier :
Algorithme : Recréer (Nom_logique)
Python : open('nom', 'w') (Nom_logique) ;
t2 Les enregistrements et les fichiers
§ Mode fichier existant :
Algorithme : Ouvrir (Nom_logique)
Python : open('nom', 'r') (Nom_logique) ;
c) Fermeture d'un fichier :
Algorithme : Fermer (Nom_logique)
Python : Close (Nom_logique) ;
d) Lecture doun élément du fichier :
Algorithme : Lire (Nom_logique, Variable_intermédiaire)
Python : input (Nom_logique, Variable intermédiaire) ;
N.B :
./ La lecture d'un élément du fichier est réalisée par une variable
intermédiaire de même type que les éléments du fichier.
'/ Cette opération de lecture engendre systématiquement le déplacement
du pointeur vers 1'élément successeur.
,/ On ne peut pas utiliser « inputln » avec les éléments d'un fichier
binaire (utiliser input).
e) Ecriture d'un élément dans un fichier :
Algorithme : Ecrire (Nom_logique, Variable_intermédiaire)
Python : print (Nom_logique, Variable intermédiaire) ;
N.B :
,/ L'écriture d'un élément sur le fichier est réalisée par une variable
intermédiaire de même type que les éléments du fichier.
'/ Cette opération d'écriture engendre systématiquement le déplacement
du pointeur vers l'élément successeur.
./ On ne peut pas utiliser « println )) avec les éléments d'un fichier
Binaire (utiliser print).
0 Indicateur de la position actuelle du pointeur
Algorithme : Position_fïchier (Nom logique)
Python : [Link]() (Nom logique) ;
g) Indicateur de la fïn du fïchier
Algorithme : FF (Nom_logique)
Python : [Link]() == '' (Nom logique) ;tnoACrgBwww
[Link]
13750253119736élT25 I
Les enregistrements et les fichiers 13
6- Modules d'accès direct aux éléments d'un fÏchier binaire
a) Pointer sur un élément du fÏchier :
Algorithme : Pointer (Nom_logique, Numéro-élément)
Python : [Link] (Nom_logique, Numéro-élément) ;
N.B :
,/ Il ne faut pas oublier que les éléments d'un fichier binaire sont
numérotés de 0 à un entier representant (le nombre des éléments - I ).
b) Déterminer la taille d'un fichier (nombre d'éléments):
Algorithme : Taille_fichier (Nom-logique)
Python : [Link] (Nom_logique) ;
N.B:
,/ C'est une fonction retournant le nombre d'éléments dans un fichier
qui est égal au numéro du demier élément du fichier qui joue le rôle de
I'indicateur de la fin du fichier ([Link]() == '').
7- Modules prédéfinis pour la gestion des fichiers Textes :
Les modules : opener, Recréer et Fermer utilisés avec les
fichiers typés ont le même rôle avec les fichiers textes.
a) Ouverture d'un fÏchier :
Trois modes d'ouverture peuvent être utilisés à savoir :
S Mode nouveau fichier:
Algorithme : Recréer (Nom-logique)
Python : open('nom', 'w') (Nom_logique) ;
N.B : Ce mode d'ouverture a le même rôle et effets que celui utilisé avec
les fichiers binaires.
§ Mode fichier existant :
Algorithme : Ouvrir (Nom-logique)
Python : open('nom', 'r') (Nom-logique) ;
N.B : Ce mode d'ouverture est différent de celui utilisé avec les fichiers
binaires, celui-ci ne permet pas l'écriture sur le fichier.
§ Mode ajout de lignes :
Algorithme : Ajouter (Nom-logique)
Python : Append (Nom-logique) ;WWWBAC [Link]
[Link]
Tél:?53611g7I53371502
t4 Les enregistrements et les fichiers
N.B :,/ Le pointeur pointe, par défaut, sur la demière ligne du fichier,
'/ Ce mode perrnet l'écriture des lignes sur le fichier.
b) Lecture d'un élément du fichier :
Algorithme : Lire_nl (Nom_logique, Variable_intermédiaire)
Python : inputln (Nom_logique, Variable_intermédiaire) ;
N.B :
'/ La lecture d'une ligne du fîchier est réalisée par une variable
intermédiaire de type chaîne de caractères.
'/ Cette opération de lecture engendre systématiquement le déplacement
du pointeur vers la ligne suivante.
,/ On ne peut pas utiliser « input » avec les lignes d'un fichier texte
(utiliser inputln).
c) Ecriture d'un élément dans un fichier :
Algorithme : Ecrire_nl (Nom_logique, Variable intermédiaire)
Python : println (Nom_logique, Variable_intermédiaire) ;
N.B :
'/ L'écriture d'une ligne sur le fichier est réalisée par une variable
intermédiaire de type chaîne de caractères.
,/ Cette opération d'écriture engendre systématiquement le déplacement
du pointeur vers la ligne suivante.
,/ On ne peut pas utiliser << print » avec les lignes d'un fichier texte
(utiliser println).
d) Indicateur de Ia fïn d'une tigne :
Algorithme : Fin_tigne (Nom_logique)
Python : EOLN (Nom_logique) ;
e) Accès à la fin d'une ligne :
Algorithme : Chercher_Fin_ligne (Nom_logique)
Python : [Link] (Nom_logique);
0 Accès à Ia fin du fichier :
Algorithme : Chercher_Fin_fTchier (Nom_logique)
Python : [Link] (Nom_logique) ;WWW BAC [Link]
Pase BAC-TUNiéIE
Tél:25361 197 tStÿ1502