PROGRAM TP5exc3 ; (* edit_facture *)

USES crt ;
CONST nm = 10 ;
VAR nom : array[1..nm] of string[20] ;
           prixunit, tauxtva : array[1..nm] of real ;
           i : integer ;
           f : text ;
           prix, taxe, HT, TVA : real ;
           quantite : integer ;

BEGIN
clrscr ;
(* lecture des tableaux dans le fichier A:PRODUIT.DOC *)
assign(f,'a:produit.doc') ;
reset(f) ;
for i:=1 to nm do
      readln(f,prixunit[i],tauxtva[i],nom[i]) ;
close(f) ;
(* traitement des donnees *)
(* N.B. : le numéro des produits correspond à l'indice i des tableaux *)
HT:=0 ; TVA:=0 ;
repeat
    repeat
        write('numero du produit (0 pour terminer) ? ') ;
        readln(i) ;
        until (i>=0) and (i<=10) ;
    if (i>0) then
        begin
        write('quantite ? ') ; readln(quantite) ;
        if (quantite>0) then
            begin
            prix:=prixunit[i]*quantite ;
            HT:=HT+prix ;
            taxe:=prix*tauxtva[i]/100 ;
            TVA:=TVA+taxe ;
            writeln(i:6,nom[i]:20,prixunit[i]:15:2,quantite:6,prix:15:2,taxe:15:2) ;
            end ;
        end ;
 until i=0 ;
writeln(' ':6+20+15,'total':6,HT:15:2,TVA:15:2) ;
writeln(' ':6+20+15+6,'TOTAL DU':15,HT+TVA:15:2) ;
readln ;
END.