JavaScript : rendre le Web interactif (école d'ingénieur) · Chapitre 3 · Exercice de TD
Des règles de prix
Instructions de contrôle et fonctions · niveau 2
Énoncé
Écrire prixApresRegle(prix, regle), qui applique à un prix (en centimes) une règle passée en argument, arrondit au centime, et ne descend jamais sous zéro. Écrire trois règles sous forme de fonctions fléchées : moins 10 %, moins 5 €, moitié prix. Comment appliquer « moins 10 % puis moins 5 € » sans écrire de nouvelle fonction nommée ?
Corrigé
function prixApresRegle(prix, regle) {
return Math.max(0, Math.round(regle(prix)));
}
const moinsDixPourCent = (p) => p * 0.9;
const moinsCinqEuros = (p) => p - 500;
const deuxPourUn = (p) => p / 2;
console.log(prixApresRegle(2700, moinsDixPourCent));
console.log(prixApresRegle(2700, moinsCinqEuros));
console.log(prixApresRegle(450, moinsCinqEuros));
console.log(prixApresRegle(2700, deuxPourUn));
console.log(prixApresRegle(2700, (p) => moinsCinqEuros(moinsDixPourCent(p))));
2430
2200
0
1350
1930
Math.max(0, …) empêche un prix négatif (450 moins 500). Pour enchaîner deux règles, on écrit sur place une fonction fléchée qui les compose : .
100 % gratuit
La suite du chapitre est sur Adloun
- 10 autres exercices corrigés dans ce chapitre
- Les 2 QCM du chapitre, le premier sans compte
- Le tuteur, qui guide pas à pas sans donner la réponse
Sans compte : le cours et le premier QCM. Exercices et tuteur : inscription gratuite en 30 secondes, sans carte bancaire.