Cours de Javascript 2022

Chapitre 2 - Correction 8 : Conversion et TVA

ShowResult();

function ShowResult()
{
 let _euNetPrice = parseFloat(prompt("Please enter the price of your article :"))
 let _euReduction = parseFloat(prompt("What flat reduction should I Apply on your article ?"))

 let _usVatRate = 7.5;
 let _euVatRate = 21;
 let _mnVatRate = 10;
 let _euToUsConversionRate = 1.19;
 let _euToMnConversionRate =3395;

 let _euWithVatPrice = CalculateAndAddVat(_euNetPrice,_euVatRate);
 let _euFinalPrice = ApplyReduction(_euWithVatPrice,_euReduction);

 let _usNetPrice = Conversion(_euNetPrice,_euToUsConversionRate);
 let _usWithVatPrice = CalculateAndAddVat(_usNetPrice,_usVatRate);
 let _usFinalPrice = ApplyReduction(_usWithVatPrice,Conversion(_euReduction,_euToUsConversionRate));

 let _mnNetPrice = Conversion(_euNetPrice,_euToMnConversionRate);
 let _mnWithVatPrice = CalculateAndAddVat(_mnNetPrice,_mnVatRate);
 let _mnFinalPrice = ApplyReduction(_mnWithVatPrice,Conversion(_euReduction,_euToMnConversionRate));


 alert(
  "Here is a list of the different prices that I have calculated for your article :"+
  "\n\nNet price in Euro : " + _euNetPrice +
  "\nPrice with Vat in Euro : " + _euWithVatPrice +
  "\nFinal price of your article in Euro : " + _euFinalPrice +

  "\n\nNet price in Dollar : " + _usNetPrice +
  "\nPrice with Vat in Dollar : " + _usWithVatPrice +
  "\nFinal price of your article in Dollar : " + _usFinalPrice +

  "\n\nNet price in Tugrik : " + _mnNetPrice +
  "\nPrice with Vat in Tugrik : " + _mnWithVatPrice +
  "\nFinal price of your article in Tugrik : " + _mnFinalPrice
  );
}

function Conversion(_price,_conversionRate)
{
 return _price * _conversionRate;
}

function CalculateAndAddVat(_convertedPrice,_vatRate)
{
 return _convertedPrice + (_convertedPrice * (_vatRate/100));
}
function ApplyReduction(_fullConvertedPrice,_convertedReduction)
{
 return _fullConvertedPrice - _convertedReduction;
}

Explications :

Un peu comme l'exercice d'avant, cet exercice est un résumé de toute la matière vue jusque maintenant. La seule chose importante, et qui est réellement le boulot du programmeur. C'est la création de l'algorithme, et dans notre cas, c'est de se rendre comptes de quelques subtilités :

Solution alternative :

Il existe une multitudes de façons de faire différentes, je vous ai cependant proposé celle qui me semble la meilleure compte tenu de l'énoncé. Mais si vous aviez un code similaire avec aucune fonction, ou sans stocker de variables, ou en stockant plus de variables (les réductions converties par exemple), votre code n'aurais pas été mauvais pour autant, simplement, un peu moins efficace !