PROGRAMME 2 : Etablissement d'une facture
En vue d'établir une facture, on a relevé sur chaque ligne d'un fichier TEXT Pascal les informations que l'on organisé comme suit : col 1 à 5 : Numéro du produit ou désignation col 10 à 14 : quantité ( entier) col 20 à 28 : prix unitaire La dernière ligne ne contient que des zéros. Ecrire l'algorithme puis le Programme PASCAL qui édite la facture selon le Format suivant : *---------------*----------*----------*----------* * Designation * Quantite * Pu * Total * *---------------*----------*----------*----------* * ? ? ? * ? * ? * ? * * ? ? ? * ? * ? * ? * * * * * * *---------------*----------*----------*----------* * * * Net A Payer : ? ? ? * * * *---------------*----------*----------*----------* |
Le programme
PROGRAM Facture;
VAR Qte, Numero : INTEGER;
Pu, Total, Cumul : REAL;
Fdon, Fsort : TEXT;
PROCEDURE Entete;
BEGIN
WRITELN(Fsort,'*---------------*----------*----------*----------*');
WRITELN(Fsort,'* Dsignation *
Quantit * Pu * Total *');
WRITELN(Fsort,'*---------------*----------*----------*----------*');
END;
PROCEDURE Netapayer ( Cumul : REAL);
BEGIN
WRITELN(Fsort,'*---------------*----------*----------*----------*');
WRITELN(Fsort,'*
*');
WRITELN(Fsort,'*
Net A Payer : ',Cumul:8:2,'*':8);
WRITELN(Fsort,'*
*');
WRITELN(Fsort,'*---------------*----------*----------*----------*');
END;
PROCEDURE Ligne ( Numero, Qte :INTEGER;Pu,Total : REAL);
BEGIN
WRITELN(Fsort,'*',' ':5,Numero:5,' ':5,'*', ' ':3,Qte:4,'
':3,
'* ', Pu:8:2,' * ',Total:8:2,' *');
END;
{ Initialisation}
BEGIN
ASSIGN(Fdon,'D_factur.Pas');
ASSIGN(Fsort,'R_factur.Pas');
RESET(Fdon);
REWRITE(Fsort);
Entete;
Cumul := 0;
READLN( Fdon, Numero, Qte, Pu);
WHILE Numero <> 0 DO
BEGIN
Total := Pu * Qte;
Ligne(Numero, Qte, Pu, Total);
Cumul := Cumul + Total;
READLN( Fdon, Numero, Qte, Pu);
END;
Netapayer(Cumul);
CLOSE(Fsort)
END.
Les données
Contenu du fichier D_Factur.Pas :
12654 24
35.3
785 31 67.12
12 18 27
00 000 0000
Les résultats
Contenu du fichier R_Factur.Pas
*---------------*----------*----------*----------* * Désignation * Quantité * Pu * Total * *---------------*----------*----------*----------* * 12654 * 24 * 35.30 * 847.20 * * 785 * 31 * 67.12 * 2080.72 * * 12 * 18 * 27.00 * 486.00 * *---------------*----------*----------*----------* * * * Net A Payer : 3413.92 * * * *---------------*----------*----------*----------*