Le processus de vérification de l'ISBN-10 sert à valider les numéros d'identification des livres. Ceux-ci contiennent normalement des tirets et ressemblent à ceci : 3-598-21508-8
Le format ISBN-10 se compose de 9 chiffres (de 0 à 9) plus un caractère de contrôle (un chiffre ou uniquement un X). Si le caractère de contrôle est un X, celui-ci représente la valeur « 10 ». Ces numéros peuvent être écrits avec ou sans tirets, et leur validité peut être vérifiée à l'aide de la formule suivante :
(x1 * 10 + x2 * 9 + x3 * 8 + x4 * 7 + x5 * 6 + x6 * 5 + x7 * 4 + x8 * 3 + x9 * 2 + x10 * 1) mod 11 == 0
Si le résultat est 0, alors l'ISBN-10 est valide, sinon il est invalide.
Prenons l'ISBN-10 3-598-21508-8. On le remplace dans la formule et on obtient :
(3 * 10 + 5 * 9 + 9 * 8 + 8 * 7 + 2 * 6 + 1 * 5 + 5 * 4 + 0 * 3 + 8 * 2 + 8 * 1) mod 11 == 0
Comme le résultat est 0, cela prouve que notre ISBN est valide.
Étant donné une string, le programme doit vérifier si la string fournie est un ISBN-10 valide. Pour y parvenir, il faut réfléchir un peu au prétraitement et à l'analyse de la string avant de calculer le chiffre de contrôle de l'ISBN.
Le programme doit pouvoir vérifier un ISBN-10 avec et sans tirets de séparation.
Convertir des strings en nombres peut être délicat dans certains langages.
Maintenant, c'est encore plus délicat, car le chiffre de contrôle d'un ISBN-10 peut être « X » (qui représente « 10 »). Par exemple, 3-598-21507-X est un ISBN-10 valide.
Générer un ISBN-13 valide à partir de l'ISBN-10 fourni (et éventuellement le vérifier à nouveau avec un vérificateur dérivé).
Générer un ISBN valide, éventuellement à partir d'un ISBN de départ donné.
Inscris-toi sur Exercism pour apprendre et maîtriser Delphi Pascal avec 76 exercices, et un vrai mentorat humain, le tout gratuitement.