C9. Vecteurs - Fichiers - Programmation PASCAL Corrigé
Exercice 1 : InventaireOn dispose d'un fichier TEXT PASCAL décrivant la liste des produits en stock dans les différents magasins d'une chaîne de supermarché.
Chaque ligne de ce fichier a le format suivant :
N�produit Prix unitaire Nombre d'unités en stock
<-- 4 -->BB <---- 7 ---->BB <-------- 4----------->
La dernière ne contient que des zéros. B désigne un blanc.
1) Créer à partir de ce fichier un autre fichier STOCK (de type FILE) o� chaque enregistrement est une structure à 3 champs : numéro du produit, prix unitaire et nombre d'unités en stock.
2) Pour l'inventaire de fin d'année et à partir du fichier STOCK défini en 1), éditer un état ayant la forme suivante :
MAGASIN 1
RAYON 1 : MONTANT DU STOCK ???
RAYON 2 : MONTANT DU STOCK ???
............
MONTANT TOTAL DU STOCK ???
MAGASIN 2
RAYON 1 : MONTANT DU STOCK ???
............
MONTANT DU STOCK POUR L'ENSEMBLE DES MAGASINS ???
o� les '?' sont remplacés par les valeurs calculées par le programme.
- Les numéros de magasins et de rayons dans chaque magasin sont supposés tous présents à partir de 1. Le fichier est trié par numéro de magasin croissant et pour un magasin donné par numéro de rayon croissant.
- Pour un produit donné, le numéro de magasin est constitué par les deux premiers chiffres du numéro de produit, et le numéro du rayon par les deux chiffres suivants.
Exemple : O4174043 produit vendu au magasin n� 4, rayon n� 17.
Pour les questions 1) et 2) fournir les algorithmes avant de donner les programmes PASCAL correspondants.
Exercice 2 : HistogrammeUne assemblée vote en choisissant une possibilité parmi 10. Donner l'algorithme qui imprime l'histogramme du vote.
Exemple d'histogramme :
*
* *
* * * * *
* * * * * * * *
* * * * * * * * * *
---1---2---3---4---5---6---7---8---9---10----->
Exercice 3 : Tri par insertion
Soit un vecteur T(1..N) dans lequel on a défini une relation d'ordre. On désire trier ce vecteur selon la méthode suivante :
1) On suppose T(1..K) trié avec K<N, puis on insère l'élément T(K+1) dans le sous-vecteur T(1..K+1) à sa bonne position.
2) Faire varier K de 1 à N-1 dans 1)
Ecrire l'algorithme correspondant.