Parcours
/
OCaml
OCaml
/
Exercices
/
Vérificateur d'ISBN
Vérificateur d'ISBN

Vérificateur d'ISBN

Facile

Instructions

Le processus de vérification ISBN-10 sert à valider les numéros d'identification des livres. Ceux-ci contiennent normalement des tirets et se présentent ainsi : 3-598-21508-8

ISBN

Le format ISBN-10 est composé de 9 chiffres (de 0 à 9) plus un caractère de contrôle (un chiffre ou uniquement un X). Lorsque le caractère de contrôle est un X, il représente la valeur « 10 ». Ces numéros peuvent être écrits avec ou sans tirets, et leur validité peut être vérifiée par la formule suivante :

(d₁ * 10 + d₂ * 9 + d₃ * 8 + d₄ * 7 + d₅ * 6 + d₆ * 5 + d₇ * 4 + d₈ * 3 + d₉ * 2 + d₁₀ * 1) mod 11 == 0

Si le résultat est 0, alors l'ISBN-10 est valide, sinon il est invalide.

Exemple

Prenons l'ISBN-10 3-598-21508-8. On l'injecte 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

Le résultat étant 0, cela prouve que notre ISBN est valide.

Tâche

Étant donné une string, le programme doit vérifier si la string fournie est un ISBN-10 valide. Mettre cela en place demande un peu de réflexion sur le 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.

Mises en garde

Convertir des strings en nombres peut être délicat dans certains langages. Ici, c'est encore plus délicat puisque 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.

Modifie via GitHub Le lien s'ouvre dans une nouvelle fenêtre ou un nouvel onglet
OCaml Exercism

Prêt à commencer Vérificateur d'ISBN ?

Inscris-toi sur Exercism pour apprendre et maîtriser OCaml avec 60 exercices, et un vrai mentorat humain, le tout gratuitement.