Adloun

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

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 →