LES FICHIERS | Aliou Baldé I. II. III. IV. V. VI. Recherche d’un élément Exerci
LES FICHIERS | Aliou Baldé I. II. III. IV. V. VI. Recherche d’un élément Exercice : on va écrire un programme qui permet de rechercher un étudiant dans un autre fichier étudiant à partir de son matricule. Ouvrir (fric) en mode lecture Lire (fic, Etd) Tant que (ff (fic) = faux ET Etd.mat≠ mat) faire Lire (fic, Etd) Fin tant que …………………………………………………………………………………. /*recherche*/ Afficher (« veuillez saisir le matricule à rechercher ») Lire (mat) /*Ouvrir le fichier en lecture*/ Ouvrir (fic) en lecture Lire (fic, Etd) Tant que (ff (fic) ≠ Vrai ET Etd.mat) faire Lire (fic, Etd) Si (Etd.mat = mat) alors Afficher (« Matricule : », Etd.mat) Afficher (« Nom : », Etd.nom) Afficher (« Prénom : », Etd.prénom) Sinon Afficher (« ce matricule n’existe pas ») Fin si /*Fermer le fichier*/ Fermer (fic) ………………………………………………………………………………….. EN LANGAGE C : /*recherche*/ Printf (« veuillez saisir le matricule à rechercher ») Scanf (« %d », & mat) ; /*Ouvrir le fichier en lecture*/ Fic= fopen (« fichierEtudiant. Txt », « r ») ; If (fic== NULL) { Printf (« problème d’ouverture du fichier\n ») ; } Else { While (fscanf (fic, « %d %s %s », &Etd.mat, &Etd.nom, &Etd.prenom) != EOF && Etd.mat != mat) { } If (Etd.mat == mat) { Printf (« Matricule : %d », Etd.mat) ; Printf (« Nom : %s », Etd.nom) ; Commenté [AB1]: Les fichiers c’est une des bases de l’algorithme en générale je vous le garantie les gars. Commenté [AB2]: La meilleure des façons c’est de la pratiquée quasiment tous les jours. LES FICHIERS | Aliou Baldé Printf (« Prénom : %s », Etd.prenom) ; } Else { Printf (« ce matricule n’existe pas ») ; } /*fermeture du fichier*/ Fclose (fic) ; Exercice : On va écrire un programme qui permet de rechercher un produit dans un fichier de produit. # Include<stdio.h> # Include< stdlib.h> /*déclaration de la structure*/ Struct produits { Int codepro ; Char libelle [20] ; Int pu ; Int qtes ; } ; Typedef struct produits produit ; Main () { FILE * fic =NULL ; Int code R ; /*Déclaration du fichier*/ /*Ouverture du fichier en mode écriture*/ Fic= fopen (« fichierproduit. Txt », « w ») ; Printf (« veuillez saisir le code du produit ou -1 pour arrêter la saisie \n ») ; Scanf (« %d » ; & prod.codepro) ; While (prod.codepro != -1) { Fflush (stdin) ; Printf (« veuillez saisir libelle\n ») ; Gets (prod.libelle) ; Printf (« veuillez saisir le prix unitaire\n) ; Scanf (« %d », &prod.pu) ; Printf (« veuillez saisir la quantité \n ») ; Scanf (« %d », &prod.qtes) ; /*écriture de l’enregistrement dans le fichier */ Fprintf (fic, « %d %s %d %d\n », prod.qtes) ; /*passer au produit suivant*/ Printf (« veuillez saisir un autre code de produit ou -1 pour arrêter la saisie\n ») ; Scanf (« %d », &prod.codepro) ; } /*Fermeture du fichier*/ Fclose (fic) ; /*recherche*/ Printf (« veuillez saisir le code du produit à rechercher\n » ; Scanf (« %d », &code R) ; fR= fopen (« fichierproduit. Txt », « r ») ; If (fR== NULL) { Printf (« Problème d’ouverture du fichier\n ») ; } Else { LES FICHIERS | Aliou Baldé /*recherche*/ While (fscanf (fic, « %d %s %d %d », & prod.codepro, &prod.libelle, &prod.pu, &prod.qtes) != EOF && prod.codepro != codeR) { } If (prod.codepro == codeR) { Printf (« CODE PRODUIT : %d:\n », prod.codepro) ; Printf (« LIBELLE : %s:\n », prod.libelle) ; Printf (« PRIX UNITAIRE : %d:\n », prod.pu) ; Printf (« QUANTITE : %d:\n », prod.qtes) ; } Else { Printf (« le produit que vous recherchez n’existe pas dans le fichier\n ») ; } } Fclose (fic) ; } /*FIN DU PROGRAMME*/ ……………………………………………………………………………………………………………………………………. ALGORITHME : Exercice : Ecrire un code qui permet d’afficher tous les quantités stock est inférieurs à la quantité seuils. /*recherche*/ /*ouverture du fichier*/ Ouvrir (fic) en lecture Lire (fic, prod) Tant que (ff (fic) ≠ Vrai) faire Si (prod.qte stock< prod.qte seuil) alors Afficher (« code : », prod. codepro) Afficher (« libelle : », prod.libelle) Afficher (« qte stock : », prod.qte stock) Afficher (« qte seuil : », prod.qte seuil) Test++ Fin si Fin tant que /*fermeture du fichier*/ Fermer (fic) ……………………………………………………………………………………………………………………………………… TRADUCTION EN LANGAGE C /* recherche*/ Fic= fopen (« fichier produit.txt », « r ») ; If (fic== NULL) { Printf (« problème d’ouverture du fichier \n») ; } Else { While (fscanf (fic, « %d %s %d %d %d», &prod. codepro, &prod. libelle, &pro. Pu, &prod.qte stock, &prod.qte seuil) != EOF) { If (prod. qte stock < prod. qte seuil) { Printf (« code : %d\n », prod. codepro) ; Printf (« libelle : %s\n », prod. libelle) ; Printf (« qte stock : %d\n », prod. qte stock) ; LES FICHIERS | Aliou Baldé Printf (« qte seuil : %d\n », prod. qte seuil) ; Printf (« prix unitaire : %d\n », prod. pu) ; Printf (« \n\n ») ; } } /*Fermeture du fichier*/ Fclose (fic) ; Exercice : On va écrire un programme qui permet de créer un fichier de produit dont chaque produit est caractérisé par un code, libelle, prix unitaire, quantité stock, quantité seuil. Le programme doit afficher tous les produits en rupture de stock. /* recherche*/ Fic= fopen (« fichier produit.txt », « r ») ; If (fic== NULL) { Printf (« problème d’ouverture du fichier \n») ; } Else { While (fscanf (fic, « %d %s %d %d %d», &prod. codepro, &prod. libelle, &pro. Pu, &prod.qte stock, &prod.qte seuil) != EOF) { If (prod. qte stock < prod. qte seuil) { Printf (« code : %d\n », prod. codepro) ; Printf (« libelle : %s\n », prod. libelle) ; Printf (« qte stock : %d\n », prod. qte stock) ; Printf (« qte seuil : %d\n », prod. qte seuil) ; Printf (« prix unitaire : %d\n », prod. pu) ; Printf (« \n\n ») ; } } } /*Fermeture du fichier*/ Fclose (fic) ; - Modication d’un élément du fichier Pour modifier un enregistrement on recherche d’abord cet enregistrement et si on le trouve, on utilise la fonction réécrire (Nom_fichier, nom_enregistrement). C’est donc la fonction réécrire qui permet la modification d’un enregistrement d’un du fichier. Exercice : Soit fic un fichier de produit dont chaque produit est caractérisé par un code, un libelle, un prix unitaire et sa quantité. Ecrire un code qui permet de modifier les informations d’un produit à partir de son code. /* ouverture du fichier */ Ouvrir (fic) en lecture / écriture Lire (fic, prod) Afficher (« veuillez saisir le code du produit à rechercher ») Lire (code) Tant que (ff (fic) ≠Vrai Et pro. Codepro code) ≠faire /* passer au produit suivant*/ Lire (fic, prod) Fin tant que Si (prod. codepro = code) alors /* Saisie des nouvelles informations */ Afficher (« veuillez saisir le libelle ») Lire (prod. libelle) LES FICHIERS | Aliou Baldé Afficher (« veuillez saisir la quantité ») Lire (prod. qte) Afficher (« veuillez saisir le prix unitaire ») Lire (prod. pu) /* Réécrire l’enregistrement dans le fichier*/ Réécrire (fic, prod) Sinon Afficher (« ce code n’existe pas ») Fin sinon /* Fermeture du fichier*/ Fermer (fic) ………………………………………………………………………………………………………………………. Traduction en langage C #include<stdio.h> #include<stdlib.h> /*déclaration de la structure*/ Struct products { Int codepro ; Char libelle [20] ; Int pu ; Int qte ; } ; Typedef struct produits produit; Main () { FILE * fic1 = NULL ; FILE * fic2 = NULL ; Produit prod ; Int codeR ; /*Création du fichier*/ /*Ouverture du fichier*/ Fic =fopen (« fichier1=txt », « w ») ; Printf (« veuillez saisir le code du produit ou -1 pour arrêter la saisie\n » ; Scanf (« %d », &prod. codepro) ; While (prod. codepro !==-1) { Fflush (stdin) ; Printf (« veuillez saisir le libelle\n ») Gets (prod. libelle) ; Printf (« veuillez saisir le prix unitaire\n ») ; Scanf (prod. pu) ; Printf (« veuillez saisir la quantité\n ») ; Scanf (prod. qte) ; /*Ecriture de l’enregistrement dans le premier fichier*/ Fprintf (fic1, « %d %s %d %d\n », &prod. codepro, &prod. libelle, &prod. pu, &prod. qte) ; /*Passer au produit suivant*/ Printf (« saisir un autre code ou -1 pour arrêter la saisie:\n ») ; Scanf (« %d », &prod. codepro) ; } ; /*Fermeture du fichier*/ Fclose (fic1) ; /* Recherche du produit à modifier dans le fichier*/ Printf (« veuillez saisir le code du produit à modifier ») ; Scanf (« %d », & codeR) ; /*Ouverture du fichier1 en lecture*/ Fic1= fopen (« fichier1=txt », « r ») ; LES FICHIERS | Aliou Baldé /* ouverture du fichier en écriture*/ Fic2= fopen (« fichier2.txt », « w ») ; /* Tester si le fichier1 est bien ouvert*/ If (fic1==NULL) { /*Le fichier n’est pas ouvert*/ Printf (« le problème d’ouverture du fichier\n ») ; } ; Else { /*Le fichier uploads/S4/ fichiers-aliou-balde.pdf
Documents similaires










-
35
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Oct 18, 2022
- Catégorie Law / Droit
- Langue French
- Taille du fichier 0.9541MB