TRAVAIL DEMANDE : Donner :
L'algorithme (Structure du traitement) Le pseudo code si nécessaire La codification en Ada
Le résultat d'une exécution ED25
Sujet :
On souhaite simuler une facture simplifiée.
Les nombres décimaux seront définis avec deus décimales Les données saisies pour chaque ligne de la facture sont :
Quantité : décimal P.U.H.T : décimal Code T.V.A. : entier
La facture aura au minimum une ligne et au maximum trois lignes et à chaque ligne, sauf pour la dernière, sera posée la question Autre Ligne ? O/N.
A la fin de la saisie sera visualisé le pied de la facture.
Les jeux d'essais suivants constituent des exemples de facture.
Remarques :
A la réponse Autre Ligne ? O/N les lettres majuscules ou minuscules seront tolérées.
Veuillez dérouler les mêmes jeux d'essais et contrôler vos résultats avec une calculatrice.
Algorithme Pseudo code Codification en Ada
-- ********************************************************
-- Nom Prog : ED25
-- Type : Application
-- Sujet : Simulation d'une facture --
-- Auteur : R. VANDAELE -- Version : 1.1
-- Creation : 29/10/2000 -- Dern. Modif : 13/12/2002 --
-- Compilateur : GNAT 3.12p
-- Remarques : Environnement Windows 98 SE
-- ********************************************************
with Ada.Text_Io;
use Ada.Text_Io;
procedure Ed25 is
-- instanciation de Iio
package Iio is new Integer_Io(Integer);
use Iio;
type Decim_2 is delta 0.01 digits 8;
-- instanciation de decim_2
package Decim_2_Io is new Decimal_Io(Decim_2);
use Decim_2_Io;
-- Décalaration des variables Qte : Decim_2;
Pu_Ht : Decim_2;
Code_Tva : Integer range 1 .. 2;
Mt_Ht : Decim_2;
Tva_1 : Decim_2;
Tva_2 : Decim_2;
Mt_Tva : Decim_2;
Mt_Ttc : Decim_2;
Tot_Ht : Decim_2;
Tot_Tva_1 : Decim_2;
Tot_Tva_2 : Decim_2;
Tot_Ttc : Decim_2;
Encore : Boolean;
Erreur : Boolean;
Maxligne : Integer := 3;
Numligne : Integer;
Rep : Character;
Texte_1 : String := " Quantite PU.HT Montant Ht Code TVA ";
Texte_2 : String := "Taux TVA Montant TVA Montant TTC ";
begin
Put_Line ("Debut - Execution ED25");
New_Line;
Put_Line("Simulation d'une facture simplifiee");
Put_Line("---");
New_Line;
-- intialisation Numligne := 1;
Encore := True;
Tot_Ht := 0.0;
Tot_Tva_1 := 0.0;
Tot_Tva_2 := 0.0;
Tot_Ttc := 0.0;
Tva_1 := 5.5;
Tva_2 := 19.6;
-- corps de la facture
while Encore = True and Numligne <= Maxligne loop Put("Ligne : ");
Put(Numligne);
New_Line;
Put("Rentrer la Quantite (decimal) : ");
Get(Qte);
Put("Rentrer le PU.HT (decimal) : ");
Get(Pu_Ht);
Put("Rentrer le code TVA (1 ou 2) : ");
Get(Code_Tva);
-- calculs, cumuls de la ligne Mt_Ht := Decim_2'Round(Qte * Pu_Ht);
Tot_Ht := Tot_Ht + Mt_Ht;
case Code_Tva is when 1 =>
Mt_Tva := Decim_2'Round(Mt_Ht * Tva_1);
Mt_Tva := Decim_2'Round(Mt_Tva / Decim_2(100));
Tot_Tva_1 := Tot_Tva_1 + Mt_Tva;
when 2 =>
Mt_Tva := Decim_2'Round(Mt_Ht * Tva_2);
Mt_Tva := Decim_2'Round(Mt_Tva / Decim_2(100));
Tot_Tva_2 := Tot_Tva_2 + Mt_Tva;
when others =>
Put_Line ("Erreur sur la code TVA");
end case;
Mt_Ttc := Mt_Ht + Mt_Tva;
Tot_Ttc := Tot_Ttc + Mt_Ttc;
-- edition de la ligne Put(Texte_1);
Put(Texte_2);
New_Line;
Put(Qte);
Put(Pu_Ht);
Put(Mt_Ht);
Put(Code_Tva,Width => 8);
case Code_Tva is when 1 =>
Put(Tva_1);
when 2 =>
Put(Tva_2);
when others =>
Put_Line ("Erreur sur la code TVA");
end case;
Put(Mt_Tva);
Put(Mt_Ttc);
New_Line;
if Numligne < Maxligne then Put("Autre ligne ? O/N ");
Get(Rep);
Erreur := True;
while Erreur loop
if (Rep = 'o') or (Rep = 'O') then Numligne := Numligne + 1;
Erreur := False;
elsif
(Rep = 'n') or (Rep = 'N') then Encore := False;
Erreur := False;
else
Put("Erreur de saisie ");
Put("Autre ligne ? O/N ");
Get(Rep);
end if;
end loop;
else
Encore := False;
end if;
end loop;
-- edition du pied de facture New_Line;
Put_Line("Pied de facture");
Put("Total HT : ");
Put(Tot_Ht);
New_Line;
Put("Total TVA 1 : ");
Put(Tot_Tva_1);
New_Line;
Put("Total TVA 2 : ");
Put(Tot_Tva_2);
New_Line;
Put("Total TTC : ");
Put(Tot_Ttc);
New_Line;
New_Line;
Put_Line ("Fin - Execution ED25");
end Ed25;
Résultats attendus Exécution 1
Debut - Execution ED25
Simulation d'une facture simplifiee --- Ligne : 1
Rentrer la Quantite (decimal) : 12.56 Rentrer le PU.HT (decimal) : 17.89 Rentrer le code TVA (1 ou 2) : 1
Quantite PU.HT Montant Ht Code TVA Taux TVA Montant TVA Montant TTC 12.56 17.89 224.70 1 5.50 12.36 237.06 Autre ligne ? O/N n
Pied de facture
Total HT : 224.70 Total TVA 1 : 12.36 Total TVA 2 : 0.00 Total TTC : 237.06 Fin - Execution ED25 Exécution 2
Debut - Execution ED25
Simulation d'une facture simplifiee --- Ligne : 1
Rentrer la Quantite (decimal) : 12.56 Rentrer le PU.HT (decimal) : 17.89 Rentrer le code TVA (1 ou 2) : 2
Quantite PU.HT Montant Ht Code TVA Taux TVA Montant TVA Montant TTC 12.56 17.89 224.70 2 19.60 44.04 268.74 Autre ligne ? O/N n
Pied de facture
Total HT : 224.70 Total TVA 1 : 0.00 Total TVA 2 : 44.04 Total TTC : 268.74 Fin - Execution ED25 Exécution 3
Debut - Execution ED25
Simulation d'une facture simplifiee --- Ligne : 1
Rentrer la Quantite (decimal) : 12.56 Rentrer le PU.HT (decimal) : 14.89 Rentrer le code TVA (1 ou 2) : 1
Quantite PU.HT Montant Ht Code TVA Taux TVA Montant TVA Montant TTC 12.56 14.89 187.02 1 5.50 10.29 197.31 Autre ligne ? O/N o
Ligne : 2
Rentrer la Quantite (decimal) : 159.59 Rentrer le PU.HT (decimal) : 14.86 Rentrer le code TVA (1 ou 2) : 2
Quantite PU.HT Montant Ht Code TVA Taux TVA Montant TVA Montant TTC 159.59 14.86 2371.51 2 19.60 464.82 2836.33 Autre ligne ? O/N o
Ligne : 3
Rentrer la Quantite (decimal) : 12.59 Rentrer le PU.HT (decimal) : 184.42 Rentrer le code TVA (1 ou 2) : 1
Quantite PU.HT Montant Ht Code TVA Taux TVA Montant TVA Montant TTC 12.59 184.42 2321.85 1 5.50 127.70 2449.55 Pied de facture
Total HT : 4880.38 Total TVA 1 : 137.99 Total TVA 2 : 464.82 Total TTC : 5483.19 Fin - Execution ED25 Exécution 4
Debut - Execution ED25
Simulation d'une facture simplifiee --- Ligne : 1
Rentrer la Quantite (decimal) : 1 Rentrer le PU.HT (decimal) : 1 Rentrer le code TVA (1 ou 2) : 2
Quantite PU.HT Montant Ht Code TVA Taux TVA Montant TVA Montant TTC 1.00 1.00 1.00 2 19.60 0.20 1.20 Autre ligne ? O/N j
Erreur de saisie Autre ligne ? O/N o Ligne : 2
Rentrer la Quantite (decimal) : 1 Rentrer le PU.HT (decimal) : 1 Rentrer le code TVA (1 ou 2) : 1
Quantite PU.HT Montant Ht Code TVA Taux TVA Montant TVA Montant TTC 1.00 1.00 1.00 1 5.50 0.06 1.06 Autre ligne ? O/N n
Pied de facture
Total HT : 2.00 Total TVA 1 : 0.06 Total TVA 2 : 0.20 Total TTC : 2.26 Fin - Execution ED25
Remarques :
La difficulté de cet E.D. se situe au niveau de l'arrondi.
Je vous laisse le soin d'étudier la différentes parties du programme.
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=