Académique Documents
Professionnel Documents
Culture Documents
139 PDF
139 PDF
1. Activit
2. Questions:
Rfrence
Dsignation
.
.
.
2. Est-il possible dutiliser une mme structure pour toutes les informations dun produit ?
Si on veut tablir une seule structure de donnes qui comporte la fois les donnes
numriques (quantit, prix unitaire, prix total) et les donnes alphanumriques
(Rfrence, dsignation) nous devons crer un nouveau type qui permet de les regrouper
Les Enregistrements ou articles (Record en Pascal)
1. Dfinition :
Un enregistrement est un type de donnes dfini par lutilisateur et qui permet de rassembler
un ensemble des lments (ou champs) de type diffrents
Mthode 1 :
En algorithmique En Pascal
T. D. N.T TYPE
Type Nom_type = Record
Nom_type = Enregistrement Champ1 : type 1 ;
Champ1 : type 1
Champ n : type n ;
Champ n : type n End ;
Fin nom_type VAR
T. D. O Nom_objet : nom_type ;
Objet Type/ Rle
Nature
Un enregistrement
Nom_objet Nom_type
pour ...
Mthode 2 :
En algorithmique En Pascal
T. D. N.T TYPE
Type Reference = Record
Reference = Enregistrement Part1: A..Z ;
Part1 : "A".."Z" Part2: integer ;
Part2 : entier End ;
Fin Reference Informations = Record
Informations = Enregistrement Ref : reference ;
Ref : reference Design : string ;
Design : chane Qte : integer ;
Qte : Entier PVU, PVT: Real ;
PVU, PVT: Rel End ;
Fin Informations VAR
T. D. O Produit : Informations ;
Objet Type/ Rle
Nature
Enregistrement pour
Produit Informations
une fiche produit
Mthode 1 :
En algorithmique En Pascal
T. D. N.T TYPE
Type Informations = Record
Informations = Enregistrement Ref, Design : string ;
Ref, Design : chane Qte : integer ;
Qte : Entier PVU, PVT: Real ;
PVU, PVT: Rel End;
Fin Informations VAR
Produit : Informations ;
T. D. O
Objet Type/ Rle
Nature
Enregistrement pour
Produit Informations
une fiche produit
Mthode 2 :
En algorithmique En Pascal
T. D. N.T TYPE
Type
Informations = Enregistrement Informations = Record
Ref : Enregistrement Ref : Record
Part1 : "A".."Z" Part1: A..Z ;
Part2 : entier Part2: integer ;
Fin ref End ;
Design : chane Design : string ;
Qte : Entier Qte : integer ;
PVU, PVT: Rel PVU, PVT: Real ;
Fin Informations End ;
T. D. O VAR
Objet Type/ Rle Produit : Informations ;
Nature
Enregistrement pour
Produit Informations
une fiche produit
Remarques
Les types des champs peuvent tre prdfinis ou dfinis par lutilisateur
Un champ a exactement les mmes proprits quune variable de mme type
Le champ dune variable enregistrement peut tre lui mme un enregistrement
Exemple : dclarer le champ ref comme un enregistrement form de 2 champs (part1 : Lettre
majuscule, part2 : entier)
1. Affectation :
2. Lecture :
3. Ecriture :
4. La structure avecfaire :
En algorithmique En Pascal
With Variable Do
Avec variable Faire Begin
Action champ 1 Action champ1 ;
Action champ 2 Action champ2;
Fin Avec end;
En algorithmique En Pascal
0. Dbut procedure saisie procedure saisie(var prod : informations);
(var prod : informations)
begin
1. Avec Prod Faire with prod do
Ecrire ("rfrence = "), Lire (ref) begin
Ecrire ("dsignation = "), Lire (design) write('reference = '); readln(ref);
Ecrire ("quantit vendue = "), Lire (Qte) write('designation = '); readln(design);
Ecrire ("prix de vente unitaire= ") write ('Qte vendue = '); readln(Qte);
Lire (pvu) write ('prix de vente unitaire = ');
Fin Avec readln (pvu);
2. Fin saisie end;
end;
5. Vecteur denregistrements :
Dclaration
En algorithmique En Pascal
T. D. N.T TYPE
Type Informations = Record
Informations = Enregistrement Ref, Design : string ;
Ref, Design : chane Qte : integer ;
Qte : Entier PVU, PVT: Real ;
PVU, PVT: Rel End ;
Fin Informations
Vect_info = tableau [1..50] dinformations Vect_info = array[1..50] of informations;
T. D. O
Objet Type/ Rle VAR
Nature Tab : Vect_info ;
Tableau de 50
Tab Vect_info enregistrements pour
des fiches produits
B- Les fichiers :
I- Introduction :
Avec les structures prcdemment utilises, les donnes dun programme seront perdues ds
larrt de lexcution de ce programme. Dans certains cas la sauvegarde des donnes est
ncessaire do on fait recours une nouvelle structure les fichiers
Un fichier est un ensemble structur des donnes de mme type (rel, entier, caractre,
chane, enregistrement ) enregistres sur une mmoire auxiliaire.
En informatique, nous distinguons deux types daccs aux donnes dun fichier :
Accs squentiel : pour accder linformation dordre n, on doit passer par les (n-1)
informations prcdentes
Accs direct : On accde directement linformation dsire, en prcisant le numro
demplacement (le numro dordre) de cette information.
Remarque : Tout fichier peut tre utilis avec lun des deux types daccs. Donc le choix de type
daccs dans un fichier ne concerne pas le fichier lui-mme mais concerne la manire dont il va tre
trait par la machine (le choix de type daccs se fait seulement dans le programme).
1. Prsentation
Un fichier est dit accs squentiel (ou fichier squentiel) si laccs son n ime information
ncessite le passage par les (n-1) informations prcdentes.
2. Dclaration
En algorithmique En Pascal
T. D. N.T TYPE
Type Nom_fichier = File of type_composants ;
Nom_fichier = Fichier de type_composants
VAR
T. D. O Nom_logique : nom_fichier ;
Objet Type/ Nature Rle
Nom_logique Nom_fichier Fichier pour
Remarques
1. Comme on a dj dit un fichier doit tre enregistr sur un support externe, donc ce fichier doit
avoir un nom et de prfrence une extension. Ce nom est appel le nom externe (ou le nom
physique)
2. Le nom de lobjet dclar dans le tableau des objets comme nom de fichier est le nom interne
du fichier (ou aussi le nom logique). Cest le nom utilis dans les instructions du programme.
Activit :
En algorithmique En Pascal
T. D. N.T TYPE
Type Informations = Record
Informations = Enregistrement Ref, Design : string ;
Ref, Design : chane Qte : integer ;
Qte : Entier PVU, PVT: Real ;
PVU, PVT: Rel End ;
Fin Informations Liste_prod = File of informations;
Liste_prod = Fichier de informations VAR
T. D. O Fiches_prod : Liste_prod ;
Objet Type Rle
fichier pour des
Fiches_prod Liste_prod
fiches produits
Profs: MSEKNI Dalila & SFAR Hayet page-6/13-
me
Chap1 : Les enregistrements et les fichiers Classe : 4 SI
Si le fichier existe :
Ouvrir le fichier et effacer
son contenu.
Recrer (nom_logique) ReWrite (nom_logique) ;
Si le fichier nexiste pas :
Crer le fichier.
Fermer un fichier.
Fermer (nom_logique) Close (nom_logique) ;
Fonction boolenne
vrifiant si la fin du fichier a
Fin_Fichier (nom logique) EOF (nom logique)
t atteinte.
Remarque :
Les oprations de manipulation des fichiers sont sujettes des nombreuses erreurs
indpendantes du programme.
Tentative d'ouverture d'un fichier qui n'existe pas avec une des commandes suivantes :
Reset (ouvrir un fichier)
Append (ouvrir un fichier texte en mode ajout)
Rename (renommer un fichier)
Erase (supprimer un fichier)
Exemple :
En Algorithme En Pascal
Ecrire ("Entrer le nom du fichier : "), Write ('Entrer le nom du fichier : ');
lire (nom) Readln (nom) ;
Associer fich_caractere,"c:\"+nom+".dat") Assign (fich_caractere,'c:\'+nom+'.dat');
{$I-} {On dsactive les erreurs dE/S} {$I-}
Ouvrir (fich_caractere) ReSet (fich_caractere) ;
{$I+} {On ractive les erreurs} {$I+}
Si ioresult <> 0 alors If ioresult <> 0 Then
Recrer (Fich_caractere) Begin
Saisie(Fich_caractere) ReWrite (Fich_caractere) ;
Fin si Saisie(Fich_caractere) ;
End ;
Exercice : Ecrire un programme qui permet de remplir un fichier avec n caractres (n>0) et de
dterminer la deuxime voyelle si elle existe.
En Algorithme En Pascal
0. Dbut voyelle BEGIN {PP}
1. Ecrire (''Entrer un nom de fichier :'') writeln ('Entrer un nom de fichier :') ;
lire (nom) readln (nom) ;
2. Associer (caractere, nom) Assign (caractere, nom) ;
3. {$I-} {$I-}
Ouvrir (caractere) ReSet (caractere) ;
{$I+} {$I+}
Si ioresult <>0 alors If ioresult <>0 Then
Dbut Begin
Recrer (caractere) Rewrite (caractere) ;
Proc saisie (caractere) Saisie (caractere) ;
Fin End ;
4. Proc recherche (caractere) Recherche (caractere) ;
5. Fermer (caractere) Close (caractere) ;
6. Fin voyelle End.
1. Prsentation
Un fichier est dit accs direct si on peut accder directement chacun de ses lments.
Exercice :
ouvrir le fichier lve et constituer deux autres fichiers : le premier contiendra la liste des
donnes correspondante aux lves ayant une moyenne suprieure ou gale a 10 et le
deuxime contiendra les donnes correspondante aux autres lves.
Dterminer et afficher le nombre des lves qui ont une moyenne >= 10, leurs noms et leurs
moyennes
Dterminer et afficher le nombre des lves qui ont une moyenne < 10, leurs noms et leurs
moyennes
Dterminer et afficher le numro, le nom et la moyenne des lves qui ont la moyenne la plus
leves.
2. Dclaration
En algorithmique En Pascal
T. D. O VAR
Objet Type/ Nature Rle Nom_logique : text ;
Nom_logique Texte Fichier texte pour
Activit1 :
On veut crire un programme permettant de saisir et enregistrer la liste des enseignants du
lyce TAHAR SFAR Mahdia
En algorithmique En Pascal
T. D. O
Objet Type/ Nature Rle VAR
enseignants Texte Fichier texte pour la saisie Enseignants : text ;
de la liste des enseignants
Remarque :
Les fichiers texte contiennent des caractres de type "Retour chariot" (CR) ou "Fin de ligne"
(Eoln) et "Fin de texte" (code CTRL-Z)
Remarques:
Pour crire une ligne dans un fichier texte on peut utiliser lune des deux mthodes
suivantes :
Pour lire une ligne partir dun fichier texte on peut utiliser lune des deux mthodes
suivantes :
Repeat
Readln (F, ligne) ;
Until .
Repeat
Read (F, ligne) ;
Until .
Readln(F);
Pour supprimer les espaces au dbut de chaque ligne dun fichier Texte :
SeekEoln (F) ;
Exercice :
saisir et enregistrer une liste des noms des enseignants. La liste se termine
par un point (le point nappartient pas au fichier)
dterminer et afficher le nombre de lettres par nom denseignant.
Program Exercice;
Uses wincrt;
Var F: text; nom: string;
BEGIN {PP}
Write ('entrer le nom du fichier : ');
Readln (nom);
Assign (F, 'c: \'+nom+'.fch');
{$I-}
Reset (F);
{$I+}
If ioresult<>0 then
Begin
Rewrite (F);
Saisie (f);
End;
Compter (f);
Close (f);
END.