JavaScript : rendre le Web interactif (école d'ingénieur) · Chapitre 3 · Application directe du cours
La clé d'un ISBN
Instructions de contrôle et fonctions · niveau 3 (difficile)
Énoncé
Le treizième chiffre d'un ISBN-13 est une clé de contrôle. On multiplie les douze premiers chiffres alternativement par 1 et par 3 (le premier par 1), on fait la somme , et la clé est . Écrire cleISBN13(debut), qui calcule la clé à partir d'une chaîne de douze chiffres, puis isbnValide(isbn). Tester avec 9782100847099, 9782100847090 et 9780201633610.
Corrigé
/** Chiffre de contrôle d'un ISBN-13, à partir de ses 12 premiers chiffres. */
function cleISBN13(debut) {
let somme = 0;
for (let i = 0; i < 12; i++) {
const chiffre = Number(debut[i]);
somme += i % 2 === 0 ? chiffre : 3 * chiffre;
}
return (10 - (somme % 10)) % 10;
}
function isbnValide(isbn) {
return isbn.length === 13 && cleISBN13(isbn) === Number(isbn[12]);
}
console.log(cleISBN13("978210084709"));
console.log(isbnValide("9782100847099"));
console.log(isbnValide("9782100847090"));
console.log(isbnValide("9780201633610"));
9
true
false
true
Le chiffre d'indice i (compté depuis 0) a le poids 1 si i est pair, 3 sinon. Number(debut[i]) convertit le caractère en nombre : sans conversion, somme += "9" concaténerait. Le dernier % 10 ramène une clé de 10 à 0. Pour le premier ISBN, et la clé vaut ; le deuxième se termine par 0 au lieu de 9 : invalide. Le troisième est l'ISBN d'un classique de la programmation objet.
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.