Les fichiers

Rappel
 
Pour ouvrir un fichier :
   OuvrirFichier (IdFic, ModeOuverture)
Avec ModeOuverture = lecture ou écriture ou rajout.
Pour fermer un fichier
   FermerFichier (IdFic)

Pour lire un fichier
   LireFichier (IdFic, élément)              cela correspond à Lire(n) ó cin>>n
Pour écrire un fichier
   EcrireFichier (IdFic, élément)           cela correspond à Ecrire(n) ó cout<<n


Exercice 1
Faire une action de fusion de deux fichiers d’entiers. Le fichier de sortie doit être trié.
Exercice 2
Soit le type suivant :
Type : Tetd = entité (         Nom : chaîne
                                               Numéro : étudiant
                                               Notes : tableau [5] d’entiers
                                               Moyenne : entier)
On suppose que la fonction de saisie
Fonction SaisieEtd () : Tetd
Permettant de saisir un tableau de Tetd existe. On pourra donc s’en servir
Ecrire une fonction qui permet de saisir un groupe d’étudiant dans un fichier.
Ecrire une fonction qui permet de calculer la moyenne générale d’un groupe d’étudiant.

Exercice 3
Faire l’algorithme d’une action qui lit un fichier d’entiers et affiche tous les entiers de ce fichiers qui sont pairs.
Ecrire une action qui lit un fichier d’entiers et met dans un autre fichier d’entiers les valeurs paires.


Correction
 Exercice 1
Action Fusion ( E : f1 : fichier d’entiers, E : f2 : fichier d’entiers, S : f3 : fichier d’entiers)
Var : f3 : fichier d’entiers
Début
                OuvrirFichier (f1, lecture)
                Si EtatFichier (f1)=succès alors
                               OuvrirFichier (f2, lecture)
                               Si EtatFichier (f2)=succès alors
                                               OuvrirFichier (f3, écriture)
                                               Si EtatFichier (f3)=succès alors
                                                               LireFichier (f1, n1)
                                                               LireFichier (f2, n2)
                                                               Tant que (EtatFichier(f1) ¹FdF ET EtatFichier(f2)¹FdF) faire
                                                                              Si n1<n2 alors
EcrireFichier (f3, n1)
LireFichier (f1, n1)
                                                                              Sinon
                                                                                              EcrireFichier (f3, n2)
                                                                                              LireFichier (f2, n2)
                                                               Si EtatFichier (f1) ¹ FdF alors
                                                                              Répéter
                                                                                              EcrireFichier (f3, n1)
                                                                                              LireFichier(f1, n1)
                                                                              Jusqu'à EtatFichier(f1)=FdF
                                                               Si EtatFichier (f2) ¹ FdF alors
                                                                              Répéter
                                                                                              EcrireFichier (f3, n2)
                                                                                              LireFichier (f2, n2)
                                                                              Jusqu'à EtatFichier (f2) = FdF
                                                               FermerFichier (f3)
                                               Sinon écrire (« Erreur en écriture sur le fichier destination »)
                                               FermerFichier (f2)
                               Sinon écrire (« Erreur de lecture sur le fichier f2 »)
                               FermerFichier (f1)
                Sinon écrire (« Erreur en lecture sur le fichier f1 »)
 Fin


Exercice 3

Faire une fonction qui recherche un entier x dans un fichier d’entiers et retourne vrai si x est dans le fichier.

Action EntierPairs (E : Fic : fichier d’entiers)
Var n : entier
Début
                OuvrirFichier (Fic, lecture)
                Si EtatFichier (Fic) = succès alors
                               LireFichier (Fic, n)
                               Tant que (EtatFichier (Fic) ¹ FdF) faire                         {ou FdF signifie Fin de Fichier}
                                               Si n%2=0 alors Ecrire(n)
                                               LireFichier(n)
                               FermerFichier (Fic)
                Sinon Ecrire (« Erreur, impossible d’ouvrir le fichier en lecture »)
Fin

Action EntiersPairsFichier (E : f1 : fichier d’entiers, ES : f2 : fichier d’entiers)
Var n : entier
Début
                OuvrirFichier (f1, lecture)
                Si EtatFichier (f1) = succès alors
                               OuvrirFichier (f2, écriture)
                               Si EtatFichier (f2) = succès alors
                                               LireFichier (f1, n)
                                               Tant que EtatFichier(f1)¹FdF faire
                                                               Si n%2=0 alors EcrireFichier(f2, n)
                                                               LireFichier (f1, n)
                                               FermerFichier(f2)
                               Sinon écrire (« Erreur en écriture »)
                               FermerFichier (f1)
                Sinon écrire (« Erreur en lecture »)
Fin


Fonction Recherche (x : entier, f : fichier d’entiers) : booléen
Var bool repç false
Début
                OuvrirFichier (f, lecture)
                Si EtatFichier(f)=succès alors
                               LireFichier(f, n)
                               Tant que (EtatFichier(f) ¹ FdF ET n¹x) faire
                                               LireFichier(f, n)
                               Si n=x alors repç true
                               FermerFichier (f)
                Sinon Ecrire (« Erreur en lecture »)
Fin
Suivant
« Précédent
Précédent
Suivant »

ConversionConversion EmoticonEmoticon

Remarque : Seul un membre de ce blog est autorisé à enregistrer un commentaire.