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 :
- Il nous suffit de 3 fonctions en dehors de la fonction d'affichage pour faire toutes les opérations demandées
- Il ne faut pas oublier de convertir la réduction dans la bonne monnaie avant de l'appliquer
- Il ne faut pas oublier de convertir le prix avant de calculer les taxes
- Il faut sauvegarder les informations que l'on va réutiliser dans des variables et mettre sous forme de fonction les actions que l'on va reproduire plusieurs fois
- Il faut organiser nos données et la mise en page de notre code au mieux pour pouvoir nous y retrouver. Donner des noms clairs et qui nous permettent facilement de se souvenir de leurs noms ainsi qu'à la simple lecture comprendre ce que représente l'information qui est stockée à cet endroit
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 !