Blog ENI : Toute la veille numérique !
🐠 -25€ dès 75€ 
+ 7 jours d'accès à la Bibliothèque Numérique ENI. Cliquez ici
Accès illimité 24h/24 à tous nos livres & vidéos ! 
Découvrez la Bibliothèque Numérique ENI. Cliquez ici
  1. Livres et vidéos
  2. Développement informatique
  3. Algorithmique
Extrait - Développement informatique Apprenez à concevoir avant de programmer
Extraits du livre
Développement informatique Apprenez à concevoir avant de programmer
3 avis
Revenir à la page d'achat du livre

Algorithmique - Groupes alternatifs de données

Préambule

La méthode exposée dans le chapitre Algorithmique - Présentation de la méthode est appliquée à des cas concrets dans ce chapitre et les suivants (Algorithmique - Données de phase, sauts de page ; Algorithmique - Les tableaux ; Algorithmique - Alternatives complexes). Chacun de ces cas présente la résolution d’une situation nouvelle. La plupart des problèmes rencontrés dans les applications "batch" sont ainsi traités. Dans ce chapitre, on va :

  • Programmer une application avec des ensembles de données présents 0 ou n fois.

  • Programmer une application avec plusieurs fichiers d’entrée.

Mise à jour du fichier "stock"

1. Sujet

Le programme à réaliser consiste à créer un fichier "nouveauStock" à partir de deux fichiers "ancienStock" et "mouvements".

images/01102a.png

Fichier ancienStock

Chaque enregistrement du fichier ancienStock contient trois champs.

  • Un numéro identifiant du produit

  • Un libellé donnant le nom du produit

  • Une quantité en stock

images/01102b.png

Le fichier ancienStock est trié par ordre de numéro de produit croissant. Il n’y a qu’un enregistrement par produit. Il n’est pas vide.

Structure correspondante :


typedef struct 
{ 
    char numero[3]; 
    char libelle[21]; 
    int  quantite; 
} PRODUIT;
 

Fichier mouvements

Un mouvement correspond à une entrée ou une sortie dans le stock. Une entrée ajoute une quantité de produit dans le stock. Une sortie soustrait une quantité de produit du stock.

Chaque enregistrement du fichier mouvements contient trois champs.

  • Un numéro identifiant du produit

  • Une quantité à ajouter (entrée) ou à soustraire (sortie) du stock du produit

  • Un code qui indique s’il s’agit d’une entrée (E) ou d’une sortie (S)

images/01102c.png

Le fichier est trié par ordre de numéro de produit croissant. Il peut y avoir 0 ou n enregistrements par produit.

Structure correspondante :


typedef struct 
{ 
    char numeroProduit[3]; 
    int  quantite; 
    char code; 
} MOUVEMENT;
 

Fichier nouveauStock : les enregistrements du fichier nouveauStock ont la même structure que ceux du fichier ancienStock. Il y a autant de produits dans le fichier nouveauStock que dans le fichier ancienStock. Seule la quantité de chaque produit est mise à jour en fonction des mouvements éventuels qui le concernent.

Exemple

ancienStock             mouvements 
01   VIS     100        01   50   E   
                        01   70   S  
02   CLOUS   120 03   
ECROUS  200        03   10   E 
 
nouveauStock  
01   VIS      80  
02   CLOUS...