Adloun

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

Exercice suivant et tuteur

Sans compte : le cours et le premier QCM. Exercices et tuteur : inscription gratuite en 30 secondes, sans carte bancaire.

Le cours du chapitre · Tous les exercices du chapitre

Exercice suivant et tuteur →