SlideShare une entreprise Scribd logo
1  sur  25
Série d’exercices sur
les fichiers
Présentée par MAHSEUR Mohammed
Département MI
Université Benyoucef Benkhedda Alger 1
2019/2020
1
Exercice 1
Ecrire un algorithme permettant de
calculer le nombre d’occurrences d’un
caractère donné dans un fichier F de
caractères,
2
Solution de l’exo1
Algorithme exo1
Variable Nom_fichier: chaine[50];
c, val: caractères;
cpt: entier ;
F: fichier de caractères;
Début
Lire(Nom_fichier); Lire(c); cpt0;
FFouvrir(Nom_fichier, ‘‘modeLecture’’);
Tant que (Non FDF(F)) faire
Lire(F,val); Si (val=c) alors cptcpt+1;
Fin tant que
Ecrire(cpt); fermer(F);
Fin.
3
Exercice 2
4
Ecrire un algorithme qui génère un fichier intitulé
nombres.dat contenant des nombres entiers
fournis par l’utilisateur puis affiche uniquement
les nombres pairs.
En utilisant le fichier généré dans l’exercice
précédent, écrivez des actions permettant de :
1- Déterminer le nombre d’éléments du fichier
2- Supprimer les éléments du fichier se trouvant
après une position P donnée
Exercice 3
Solution de l’exo2 et l’exo3
5
Algorithme exo2et3
Variable F: fichier d’entier;
Choix: entier; rep: caractère;
//1) procédure qui fait la création et le remplissage
Procédure Création(var F :fichier d’entiers)
Variables cont: caractère; val: entier;
Début
Cont’O’;
FFouvrir(‘‘nombres.dat’’, ‘‘modeEcriture’’);
Tant que (Cont=‘o’ ou ‘O’) faire
Lire(val); Ecrire(F,val);
Écrire(‘voulez vous continuez’);Lire(Cont);
Fin tant que;
Fermer(F);
Fin.
//2) procédure qui affiche les nombres pairs
Procédure Pairs(F :fichier d’entiers)
Variables val: entier;
Début
FFouvrir(‘‘nombres.dat’’, ‘‘modeLecture’’);
Tant que (Non FDF(F)) faire
Lire(F,val);
Si( val mod2=0 )alors écrire(val);
Fin tant que;
Fermer(F);
Fin.
6
//3) Le nombre d’éléments du fichier
fonctionTaille(F :fichier d’entiers) :entier
Variables val,cpt: entier;
Début
cpt0
FFouvrir(‘‘nombres.dat’’, ‘‘modeLecture’’);
Tant que (Non FDF(F)) faire
Lire(F,val);
cptcpt+1;
Fin tant que;
Fermer(F);
retourner cpt;
Fin. 7
//4) supprimer les éléments se trouvant après une position P
8
nombres.dat
F
0
1
2
3
4
5
6
7
8
sauv.dat
Temp
P
nombres.dat
//4) supprimer les éléments se trouvant après une position P
Procédure Suppression(F :fichier d’entiers)
Variables val,P,i: entier;
Temp: Fichier d’entiers;
Début
Répéter Lire(P) jusqu’à (P≥0 et P<Taille(F));
FFouvrir(‘‘nombres.dat’’, ‘‘modeLecture’’);
TempFouvrir(‘‘sauv.dat’’, ‘‘modeEcriture’’);
i0;
Tant que (i ≤ P) faire
Lire(F,val); Ecrire(Temp,val); ii+1;
Fin tant que;
Fermer(F); Fermer(Temp); Supprimer(‘‘nombres,dat’’);
Renommer(‘‘sauv.dat’’,’’nombres.dat’’);
Fin.
9
//5) Procédure qui affiche le menu
Procédure Menu()
Début
Écrire(‘Menu principal’);
Ecrire(‘1: Création du fichier’);
Ecrire(‘2: Liste des nombres pairs’);
Ecrire(‘3: Nombre d’éléments du fichier’);
Ecrire(‘4: Supprimer des élément après une position’);
Ecrire(‘donner votre choix’);
Fin.
10
//6) corps de l’algorithme principal
Début
Rep’O’;
Tant que (rep=‘o’ ou rep=‘O’) faire
DébutTant que
Menu(); Lire(choix);
Cas (choix) parmi
1: Création(F);
2: Pairs(F);
3: écrire (Taille(F));
4: Suppression(F);
Sinon: écrire(‘choix incorrect’);
Fin;
Ecrire (‘voulez-vous continuez O/N:); Lire(rep);
Fin tant que;
Fin.
11
Exercice 4
12
Soit le type suivant :
TypeTE = enregistrement
Num_etud : entier ;
Nom : chaîne ;
Notes : tableau [5] de réels ;
Moyenne : réel ;
Fin ;
On suppose que la fonction de saisie SaisieEtud() :TE
Permettant de saisir un tableau d’enregistrementsTE qui
existe déjà. On pourra donc s’en servir.
1. Ecrire une fonction qui permet de saisir un groupe
d’étudiants dans un fichier.
2. Ecrire une fonction qui permet de calculer la moyenne
générale d’un groupe d’étudiants.
Solution de l’Exercice 4
13
Algorithme exo4;
TypeTE = enregistrement
Num_etud : entier ;
Nom : chaîne ;
Notes : tableau [5] de réels ;
Moyenne : réel ;
Fin ;
Variables F: fichier d’enregistrements;
Fonction SaisieEtud():TE
Var e:TE; i:entier
Début
Lire(e.Num_etud); Lire(e.Nom); Lire(e.Moyenne);
Pour i=1 à 5 faire Lire(e.Notes[i]);
Retourner e;
Fin;
14
1. //Une fonction qui permet de saisir un groupe
d’étudiants dans un fichier.
Fonction SaisieGroupe():Fichier d’enregistrement
Var e:TE;
Cont : caractère
F: Fichier d’enregistrement;
Début
FFouvrir(‘‘groupe.dat ’’, ‘‘ModeEcriture’’);
Répéter
eSaisieEtud();
Ecrire(F,e);
Ecrire(‘voulez-vous ajouter d’autres étudiants O/N’);
Lire(Cont);
Jusqu’à (Cont≠’o’ et Cont ≠’O’);
Fermer(F);retourner F;
Fin;
15
2. //Une fonction qui permet de calculer la moyenne
générale d’un groupe.
Fonction MoyGen(F:fichier d’enregistrement):réel
Var e:TE; i:entier; Som, MG: réel;
Début
FFouvrir(‘‘groupe.dat ’’, ‘‘ModeLecture’’); Som0;i0;
Tant que(Non FDF(F)) faire
Lire(F,e);SomSom+e.Moyenne; ii+1;
Fin tant que
MG Som/i;
Retourner MG;
Fin;
16
//Corps de l’algorithme principal
Début
F SaisieGroupe();
Ecrire (MoyGen(F));
Fin;
Exercice 5
17
Ecrire un algorithme permettant de :
1) Créer et remplir un fichier "FP" qui contient les
informations sur le personnel d’une entreprise
(matricule, nom, prénom, grade, salaire).
2) Afficher la liste des employés de cette
entreprise dont le salaire est compris entre
25000 et 40000 DA.
3) Vérifier l’existence d’un employé dans FP à
partir de son matricule
Solution de l’Exercice 5
18
Algorithme exo5;
Type Employé = enregistrement
Matricule: entier ;
Nom, Prénom, Grade : chaîne[30] ;
Salaire : réel ;
Fin ;
Variables F: fichier d’enregistrements;
rep: caractère;
choix: entier;
19
// fonction qui fait la lecture d’un employé
Fonction SaisieEmploye():Employé
Var e: Employé;
Début
Lire(e.Matricuel); Lire(e.Nom); Lire(e.Prénom);
Lire(e.Grade); Lire(e.Salaire);
Retourner e;
Fin;
// procédure qui affiche les informations d’un employé
Procédure AfficherEmploye(e:Employé)
Début
Écrire(e.Matricule); écrire(e.Nom); écrire(e.Prénom);
écrire(e.Grade); écrire(e.Salaire);
Fin;
20
Procédure Création(var F: fichier)
Début
F Fouvrir(‘‘FP.dat’’, ‘‘ModeEcriture’’);
Fermer(F);
Fin;
//1). Procédure qui fait la création du fichier
Procédure Remplissage(var F: fichier)
Variables e: Employé; Cont: caractère;
Début
F Fouvrir(‘‘FP.dat’’, ‘‘ModeMAJ’’);
Répéter
e SaisieEmployé(); FÉcrire(F,e);
Écrire(‘Voulez-vous ajouter d’autres employés O/N’);
Lire(cont);
Jusqu’à (Cont ≠’o’ et Cont≠’O’);
Fermer(F);
Fin;
21
//1). Procédure qui fait le remplissage du fichier
Procédure ListeEmplyés(F: fichier)
Variables e: Employé;
Début
F Fouvrir(‘‘FP.dat’’, ‘‘ModeLecture’);
Tant que (Non FDF(f)) faire
FLire(F,e);
Si (e.Salaire≥25000 et e.Salaire≤40000) alors
AfficherEmployé(e);
Fin si
Fin tant que
Fermer(F);
Fin;
22
//2). Procédure qui affiche la liste des employés dont : 25000≤Salaire≤40000
Procédure Existence(F: fichier)
Variables e: Employé; Mat : entier; trouv: booléen
Début
F Fouvrir(‘‘FP.dat’’, ‘‘ModeLecture’);
Lire(Mat); trouv Faux;
Tant que (Non FDF(f) et Non trouv)
FLire(F,e);
Si (e.Matricule=Mat) alors trouv vrai;
Fin tant que
Si (Non trouv) alors écrire(‘employé inexistant’);
Sinon
écrire(‘employé existe et voici ses informations);
AfficherEmployé(e);
Fin sinon
Fermer(F);
Fin;
23
//3). Procédure qui vérifie l’existence d’un employé /Matricule
Procédure Menu()
Début
Écrire(‘Menu principal’);
Écrire(‘1: création du fichier’);
Écrire(‘2: insertion des employés’);
Écrire (‘3: liste des employés dont 25000≤salaire≤40000
Écrire(‘4: recherche/matricule’);
Écrire(‘donnez votre choix’);
Fin;
24
//Procédure qui affiche le menu principal
Début
Répéter
Menu(); Lire(choix);
Cas (choix) parmi
1: Création(F);
2: Remplissage(F);
3: ListeEmployés(F);
4: Existence(F);
Sinon: écrire(‘choix incorrect’);
Fin;
Ecrire(‘voulez-vous continuer O/N:); Lire(rep);
Jusqu’à (rep≠’o’ et rep≠’O’);
Fin . 25
//Corps de l’algorithme principal

Contenu connexe

Similaire à Serie_fichiers.ppsx

condition et boucle (2).pptx
condition et boucle  (2).pptxcondition et boucle  (2).pptx
condition et boucle (2).pptxMohammedErritali2
 
Fiche de TD 1 de préparation probatoire (littéraire et scientifique) du Camer...
Fiche de TD 1 de préparation probatoire (littéraire et scientifique) du Camer...Fiche de TD 1 de préparation probatoire (littéraire et scientifique) du Camer...
Fiche de TD 1 de préparation probatoire (littéraire et scientifique) du Camer...ATPENSC-Group
 
Algorithmique programmation2018
Algorithmique programmation2018Algorithmique programmation2018
Algorithmique programmation2018salah fenni
 
Cours C Avancé chapitre 2 et chapitre.pdf
Cours C Avancé  chapitre 2 et chapitre.pdfCours C Avancé  chapitre 2 et chapitre.pdf
Cours C Avancé chapitre 2 et chapitre.pdfc79024186
 
Les instructions simples en pascal p1
Les instructions simples en pascal p1Les instructions simples en pascal p1
Les instructions simples en pascal p1دليل الحياة
 
Généralités sur la notion d’Algorithme
Généralités sur la notion d’AlgorithmeGénéralités sur la notion d’Algorithme
Généralités sur la notion d’AlgorithmeInforMatica34
 
Lect14 dev2
Lect14 dev2Lect14 dev2
Lect14 dev2moisko
 
Ch2-Notions de base & actions élémentaires.pdf
Ch2-Notions de base & actions élémentaires.pdfCh2-Notions de base & actions élémentaires.pdf
Ch2-Notions de base & actions élémentaires.pdfFadouaBouafifSamoud
 
Scripting Linux avec Python partie1.pptx
Scripting Linux avec Python partie1.pptxScripting Linux avec Python partie1.pptx
Scripting Linux avec Python partie1.pptxFrancisRUKAN
 
02 Spécificité du C++ COURS SYS SYSSSSSS
02 Spécificité du C++  COURS SYS SYSSSSSS02 Spécificité du C++  COURS SYS SYSSSSSS
02 Spécificité du C++ COURS SYS SYSSSSSSAyoubElmrabet6
 
eExercices corrigesdivers
eExercices corrigesdiverseExercices corrigesdivers
eExercices corrigesdiversHajar Yazine
 
Exercicescorrigesdivers
ExercicescorrigesdiversExercicescorrigesdivers
ExercicescorrigesdiversKarim Amane
 
Introduction à Python - Achraf Kacimi El Hassani
Introduction à Python - Achraf Kacimi El HassaniIntroduction à Python - Achraf Kacimi El Hassani
Introduction à Python - Achraf Kacimi El HassaniShellmates
 
Initiation au code : Ateliers en C# (applications desktop et mobile native)
Initiation au code : Ateliers en C# (applications desktop et mobile native)Initiation au code : Ateliers en C# (applications desktop et mobile native)
Initiation au code : Ateliers en C# (applications desktop et mobile native)Stéphanie Hertrich
 
Exercices_Python_Fenni_2023 -corrigé.pdf
Exercices_Python_Fenni_2023 -corrigé.pdfExercices_Python_Fenni_2023 -corrigé.pdf
Exercices_Python_Fenni_2023 -corrigé.pdfsalah fenni
 

Similaire à Serie_fichiers.ppsx (20)

Serie
SerieSerie
Serie
 
condition et boucle (2).pptx
condition et boucle  (2).pptxcondition et boucle  (2).pptx
condition et boucle (2).pptx
 
TAD (1).pptx
TAD (1).pptxTAD (1).pptx
TAD (1).pptx
 
Go
GoGo
Go
 
Fiche de TD 1 de préparation probatoire (littéraire et scientifique) du Camer...
Fiche de TD 1 de préparation probatoire (littéraire et scientifique) du Camer...Fiche de TD 1 de préparation probatoire (littéraire et scientifique) du Camer...
Fiche de TD 1 de préparation probatoire (littéraire et scientifique) du Camer...
 
Algorithmique programmation2018
Algorithmique programmation2018Algorithmique programmation2018
Algorithmique programmation2018
 
Cours C Avancé chapitre 2 et chapitre.pdf
Cours C Avancé  chapitre 2 et chapitre.pdfCours C Avancé  chapitre 2 et chapitre.pdf
Cours C Avancé chapitre 2 et chapitre.pdf
 
Les instructions simples en pascal p1
Les instructions simples en pascal p1Les instructions simples en pascal p1
Les instructions simples en pascal p1
 
Généralités sur la notion d’Algorithme
Généralités sur la notion d’AlgorithmeGénéralités sur la notion d’Algorithme
Généralités sur la notion d’Algorithme
 
Lect14 dev2
Lect14 dev2Lect14 dev2
Lect14 dev2
 
Ch2-Notions de base & actions élémentaires.pdf
Ch2-Notions de base & actions élémentaires.pdfCh2-Notions de base & actions élémentaires.pdf
Ch2-Notions de base & actions élémentaires.pdf
 
Ch1 _ les enregistrements.pdf
Ch1 _ les enregistrements.pdfCh1 _ les enregistrements.pdf
Ch1 _ les enregistrements.pdf
 
Scripting Linux avec Python partie1.pptx
Scripting Linux avec Python partie1.pptxScripting Linux avec Python partie1.pptx
Scripting Linux avec Python partie1.pptx
 
02 Spécificité du C++ COURS SYS SYSSSSSS
02 Spécificité du C++  COURS SYS SYSSSSSS02 Spécificité du C++  COURS SYS SYSSSSSS
02 Spécificité du C++ COURS SYS SYSSSSSS
 
Algo inf102 2007
Algo inf102 2007Algo inf102 2007
Algo inf102 2007
 
eExercices corrigesdivers
eExercices corrigesdiverseExercices corrigesdivers
eExercices corrigesdivers
 
Exercicescorrigesdivers
ExercicescorrigesdiversExercicescorrigesdivers
Exercicescorrigesdivers
 
Introduction à Python - Achraf Kacimi El Hassani
Introduction à Python - Achraf Kacimi El HassaniIntroduction à Python - Achraf Kacimi El Hassani
Introduction à Python - Achraf Kacimi El Hassani
 
Initiation au code : Ateliers en C# (applications desktop et mobile native)
Initiation au code : Ateliers en C# (applications desktop et mobile native)Initiation au code : Ateliers en C# (applications desktop et mobile native)
Initiation au code : Ateliers en C# (applications desktop et mobile native)
 
Exercices_Python_Fenni_2023 -corrigé.pdf
Exercices_Python_Fenni_2023 -corrigé.pdfExercices_Python_Fenni_2023 -corrigé.pdf
Exercices_Python_Fenni_2023 -corrigé.pdf
 

Plus de PROFPROF11

Explication ajouter dans un fichier.pptx
Explication ajouter dans un fichier.pptxExplication ajouter dans un fichier.pptx
Explication ajouter dans un fichier.pptxPROFPROF11
 
La récursivité.pptx
La récursivité.pptxLa récursivité.pptx
La récursivité.pptxPROFPROF11
 
prc3a9sentation-de-scratch (1).ppt
prc3a9sentation-de-scratch (1).pptprc3a9sentation-de-scratch (1).ppt
prc3a9sentation-de-scratch (1).pptPROFPROF11
 
TP N°1 sketchup.ppt
TP N°1 sketchup.pptTP N°1 sketchup.ppt
TP N°1 sketchup.pptPROFPROF11
 
exercice corrigé 2TI1.pptx
exercice corrigé 2TI1.pptxexercice corrigé 2TI1.pptx
exercice corrigé 2TI1.pptxPROFPROF11
 
Les structures de données.pptx
Les structures de données.pptxLes structures de données.pptx
Les structures de données.pptxPROFPROF11
 
Prototype Théorique EG 2022.pptx
Prototype Théorique EG 2022.pptxPrototype Théorique EG 2022.pptx
Prototype Théorique EG 2022.pptxPROFPROF11
 
Cours JavaScript 2.ppt
Cours JavaScript 2.pptCours JavaScript 2.ppt
Cours JavaScript 2.pptPROFPROF11
 
Tableau a deux dimensions (1).pptx
Tableau a deux dimensions (1).pptxTableau a deux dimensions (1).pptx
Tableau a deux dimensions (1).pptxPROFPROF11
 
Cours JavaScript.ppt
Cours JavaScript.pptCours JavaScript.ppt
Cours JavaScript.pptPROFPROF11
 
les systèmes d'exploitation.ppt
les systèmes d'exploitation.pptles systèmes d'exploitation.ppt
les systèmes d'exploitation.pptPROFPROF11
 
les interfaces graphiques.pptx
les interfaces graphiques.pptxles interfaces graphiques.pptx
les interfaces graphiques.pptxPROFPROF11
 

Plus de PROFPROF11 (14)

Explication ajouter dans un fichier.pptx
Explication ajouter dans un fichier.pptxExplication ajouter dans un fichier.pptx
Explication ajouter dans un fichier.pptx
 
La récursivité.pptx
La récursivité.pptxLa récursivité.pptx
La récursivité.pptx
 
prc3a9sentation-de-scratch (1).ppt
prc3a9sentation-de-scratch (1).pptprc3a9sentation-de-scratch (1).ppt
prc3a9sentation-de-scratch (1).ppt
 
IoT.pptx
IoT.pptxIoT.pptx
IoT.pptx
 
TP N°1 sketchup.ppt
TP N°1 sketchup.pptTP N°1 sketchup.ppt
TP N°1 sketchup.ppt
 
exercice corrigé 2TI1.pptx
exercice corrigé 2TI1.pptxexercice corrigé 2TI1.pptx
exercice corrigé 2TI1.pptx
 
Les structures de données.pptx
Les structures de données.pptxLes structures de données.pptx
Les structures de données.pptx
 
Prototype Théorique EG 2022.pptx
Prototype Théorique EG 2022.pptxPrototype Théorique EG 2022.pptx
Prototype Théorique EG 2022.pptx
 
Cours JavaScript 2.ppt
Cours JavaScript 2.pptCours JavaScript 2.ppt
Cours JavaScript 2.ppt
 
Tableau a deux dimensions (1).pptx
Tableau a deux dimensions (1).pptxTableau a deux dimensions (1).pptx
Tableau a deux dimensions (1).pptx
 
seance 2.ppt
seance 2.pptseance 2.ppt
seance 2.ppt
 
Cours JavaScript.ppt
Cours JavaScript.pptCours JavaScript.ppt
Cours JavaScript.ppt
 
les systèmes d'exploitation.ppt
les systèmes d'exploitation.pptles systèmes d'exploitation.ppt
les systèmes d'exploitation.ppt
 
les interfaces graphiques.pptx
les interfaces graphiques.pptxles interfaces graphiques.pptx
les interfaces graphiques.pptx
 

Serie_fichiers.ppsx

  • 1. Série d’exercices sur les fichiers Présentée par MAHSEUR Mohammed Département MI Université Benyoucef Benkhedda Alger 1 2019/2020 1
  • 2. Exercice 1 Ecrire un algorithme permettant de calculer le nombre d’occurrences d’un caractère donné dans un fichier F de caractères, 2
  • 3. Solution de l’exo1 Algorithme exo1 Variable Nom_fichier: chaine[50]; c, val: caractères; cpt: entier ; F: fichier de caractères; Début Lire(Nom_fichier); Lire(c); cpt0; FFouvrir(Nom_fichier, ‘‘modeLecture’’); Tant que (Non FDF(F)) faire Lire(F,val); Si (val=c) alors cptcpt+1; Fin tant que Ecrire(cpt); fermer(F); Fin. 3
  • 4. Exercice 2 4 Ecrire un algorithme qui génère un fichier intitulé nombres.dat contenant des nombres entiers fournis par l’utilisateur puis affiche uniquement les nombres pairs. En utilisant le fichier généré dans l’exercice précédent, écrivez des actions permettant de : 1- Déterminer le nombre d’éléments du fichier 2- Supprimer les éléments du fichier se trouvant après une position P donnée Exercice 3
  • 5. Solution de l’exo2 et l’exo3 5 Algorithme exo2et3 Variable F: fichier d’entier; Choix: entier; rep: caractère; //1) procédure qui fait la création et le remplissage Procédure Création(var F :fichier d’entiers) Variables cont: caractère; val: entier; Début Cont’O’; FFouvrir(‘‘nombres.dat’’, ‘‘modeEcriture’’); Tant que (Cont=‘o’ ou ‘O’) faire Lire(val); Ecrire(F,val); Écrire(‘voulez vous continuez’);Lire(Cont); Fin tant que; Fermer(F); Fin.
  • 6. //2) procédure qui affiche les nombres pairs Procédure Pairs(F :fichier d’entiers) Variables val: entier; Début FFouvrir(‘‘nombres.dat’’, ‘‘modeLecture’’); Tant que (Non FDF(F)) faire Lire(F,val); Si( val mod2=0 )alors écrire(val); Fin tant que; Fermer(F); Fin. 6
  • 7. //3) Le nombre d’éléments du fichier fonctionTaille(F :fichier d’entiers) :entier Variables val,cpt: entier; Début cpt0 FFouvrir(‘‘nombres.dat’’, ‘‘modeLecture’’); Tant que (Non FDF(F)) faire Lire(F,val); cptcpt+1; Fin tant que; Fermer(F); retourner cpt; Fin. 7
  • 8. //4) supprimer les éléments se trouvant après une position P 8 nombres.dat F 0 1 2 3 4 5 6 7 8 sauv.dat Temp P nombres.dat
  • 9. //4) supprimer les éléments se trouvant après une position P Procédure Suppression(F :fichier d’entiers) Variables val,P,i: entier; Temp: Fichier d’entiers; Début Répéter Lire(P) jusqu’à (P≥0 et P<Taille(F)); FFouvrir(‘‘nombres.dat’’, ‘‘modeLecture’’); TempFouvrir(‘‘sauv.dat’’, ‘‘modeEcriture’’); i0; Tant que (i ≤ P) faire Lire(F,val); Ecrire(Temp,val); ii+1; Fin tant que; Fermer(F); Fermer(Temp); Supprimer(‘‘nombres,dat’’); Renommer(‘‘sauv.dat’’,’’nombres.dat’’); Fin. 9
  • 10. //5) Procédure qui affiche le menu Procédure Menu() Début Écrire(‘Menu principal’); Ecrire(‘1: Création du fichier’); Ecrire(‘2: Liste des nombres pairs’); Ecrire(‘3: Nombre d’éléments du fichier’); Ecrire(‘4: Supprimer des élément après une position’); Ecrire(‘donner votre choix’); Fin. 10
  • 11. //6) corps de l’algorithme principal Début Rep’O’; Tant que (rep=‘o’ ou rep=‘O’) faire DébutTant que Menu(); Lire(choix); Cas (choix) parmi 1: Création(F); 2: Pairs(F); 3: écrire (Taille(F)); 4: Suppression(F); Sinon: écrire(‘choix incorrect’); Fin; Ecrire (‘voulez-vous continuez O/N:); Lire(rep); Fin tant que; Fin. 11
  • 12. Exercice 4 12 Soit le type suivant : TypeTE = enregistrement Num_etud : entier ; Nom : chaîne ; Notes : tableau [5] de réels ; Moyenne : réel ; Fin ; On suppose que la fonction de saisie SaisieEtud() :TE Permettant de saisir un tableau d’enregistrementsTE qui existe déjà. On pourra donc s’en servir. 1. Ecrire une fonction qui permet de saisir un groupe d’étudiants dans un fichier. 2. Ecrire une fonction qui permet de calculer la moyenne générale d’un groupe d’étudiants.
  • 13. Solution de l’Exercice 4 13 Algorithme exo4; TypeTE = enregistrement Num_etud : entier ; Nom : chaîne ; Notes : tableau [5] de réels ; Moyenne : réel ; Fin ; Variables F: fichier d’enregistrements; Fonction SaisieEtud():TE Var e:TE; i:entier Début Lire(e.Num_etud); Lire(e.Nom); Lire(e.Moyenne); Pour i=1 à 5 faire Lire(e.Notes[i]); Retourner e; Fin;
  • 14. 14 1. //Une fonction qui permet de saisir un groupe d’étudiants dans un fichier. Fonction SaisieGroupe():Fichier d’enregistrement Var e:TE; Cont : caractère F: Fichier d’enregistrement; Début FFouvrir(‘‘groupe.dat ’’, ‘‘ModeEcriture’’); Répéter eSaisieEtud(); Ecrire(F,e); Ecrire(‘voulez-vous ajouter d’autres étudiants O/N’); Lire(Cont); Jusqu’à (Cont≠’o’ et Cont ≠’O’); Fermer(F);retourner F; Fin;
  • 15. 15 2. //Une fonction qui permet de calculer la moyenne générale d’un groupe. Fonction MoyGen(F:fichier d’enregistrement):réel Var e:TE; i:entier; Som, MG: réel; Début FFouvrir(‘‘groupe.dat ’’, ‘‘ModeLecture’’); Som0;i0; Tant que(Non FDF(F)) faire Lire(F,e);SomSom+e.Moyenne; ii+1; Fin tant que MG Som/i; Retourner MG; Fin;
  • 16. 16 //Corps de l’algorithme principal Début F SaisieGroupe(); Ecrire (MoyGen(F)); Fin;
  • 17. Exercice 5 17 Ecrire un algorithme permettant de : 1) Créer et remplir un fichier "FP" qui contient les informations sur le personnel d’une entreprise (matricule, nom, prénom, grade, salaire). 2) Afficher la liste des employés de cette entreprise dont le salaire est compris entre 25000 et 40000 DA. 3) Vérifier l’existence d’un employé dans FP à partir de son matricule
  • 18. Solution de l’Exercice 5 18 Algorithme exo5; Type Employé = enregistrement Matricule: entier ; Nom, Prénom, Grade : chaîne[30] ; Salaire : réel ; Fin ; Variables F: fichier d’enregistrements; rep: caractère; choix: entier;
  • 19. 19 // fonction qui fait la lecture d’un employé Fonction SaisieEmploye():Employé Var e: Employé; Début Lire(e.Matricuel); Lire(e.Nom); Lire(e.Prénom); Lire(e.Grade); Lire(e.Salaire); Retourner e; Fin; // procédure qui affiche les informations d’un employé Procédure AfficherEmploye(e:Employé) Début Écrire(e.Matricule); écrire(e.Nom); écrire(e.Prénom); écrire(e.Grade); écrire(e.Salaire); Fin;
  • 20. 20 Procédure Création(var F: fichier) Début F Fouvrir(‘‘FP.dat’’, ‘‘ModeEcriture’’); Fermer(F); Fin; //1). Procédure qui fait la création du fichier
  • 21. Procédure Remplissage(var F: fichier) Variables e: Employé; Cont: caractère; Début F Fouvrir(‘‘FP.dat’’, ‘‘ModeMAJ’’); Répéter e SaisieEmployé(); FÉcrire(F,e); Écrire(‘Voulez-vous ajouter d’autres employés O/N’); Lire(cont); Jusqu’à (Cont ≠’o’ et Cont≠’O’); Fermer(F); Fin; 21 //1). Procédure qui fait le remplissage du fichier
  • 22. Procédure ListeEmplyés(F: fichier) Variables e: Employé; Début F Fouvrir(‘‘FP.dat’’, ‘‘ModeLecture’); Tant que (Non FDF(f)) faire FLire(F,e); Si (e.Salaire≥25000 et e.Salaire≤40000) alors AfficherEmployé(e); Fin si Fin tant que Fermer(F); Fin; 22 //2). Procédure qui affiche la liste des employés dont : 25000≤Salaire≤40000
  • 23. Procédure Existence(F: fichier) Variables e: Employé; Mat : entier; trouv: booléen Début F Fouvrir(‘‘FP.dat’’, ‘‘ModeLecture’); Lire(Mat); trouv Faux; Tant que (Non FDF(f) et Non trouv) FLire(F,e); Si (e.Matricule=Mat) alors trouv vrai; Fin tant que Si (Non trouv) alors écrire(‘employé inexistant’); Sinon écrire(‘employé existe et voici ses informations); AfficherEmployé(e); Fin sinon Fermer(F); Fin; 23 //3). Procédure qui vérifie l’existence d’un employé /Matricule
  • 24. Procédure Menu() Début Écrire(‘Menu principal’); Écrire(‘1: création du fichier’); Écrire(‘2: insertion des employés’); Écrire (‘3: liste des employés dont 25000≤salaire≤40000 Écrire(‘4: recherche/matricule’); Écrire(‘donnez votre choix’); Fin; 24 //Procédure qui affiche le menu principal
  • 25. Début Répéter Menu(); Lire(choix); Cas (choix) parmi 1: Création(F); 2: Remplissage(F); 3: ListeEmployés(F); 4: Existence(F); Sinon: écrire(‘choix incorrect’); Fin; Ecrire(‘voulez-vous continuer O/N:); Lire(rep); Jusqu’à (rep≠’o’ et rep≠’O’); Fin . 25 //Corps de l’algorithme principal