El proceso de verificación del ISBN-10 se usa para validar números de identificación de libros. Normalmente contienen guiones y se ven así: 3-598-21508-8
El formato ISBN-10 son 9 dígitos (del 0 al 9) más un carácter de verificación (que puede ser un dígito o solo una X). Cuando el carácter de verificación es una X, esta representa el valor '10'. Se pueden escribir con o sin guiones, y su validez se puede comprobar con la siguiente fórmula:
(x1 * 10 + x2 * 9 + x3 * 8 + x4 * 7 + x5 * 6 + x6 * 5 + x7 * 4 + x8 * 3 + x9 * 2 + x10 * 1) mod 11 == 0
Si el resultado es 0, el ISBN-10 es válido; de lo contrario, no lo es.
Tomemos el ISBN-10 3-598-21508-8. Lo reemplazamos en la fórmula y obtenemos:
(3 * 10 + 5 * 9 + 9 * 8 + 8 * 7 + 2 * 6 + 1 * 5 + 5 * 4 + 0 * 3 + 8 * 2 + 8 * 1) mod 11 == 0
Como el resultado es 0, esto demuestra que nuestro ISBN es válido.
Dada una cadena, el programa debe comprobar si la cadena proporcionada es un ISBN-10 válido. Llevar esto a la práctica requiere pensar un poco en el preprocesamiento y el análisis de la cadena antes de calcular el dígito de verificación del ISBN.
El programa debe poder verificar ISBN-10 tanto con guiones separadores como sin ellos.
Convertir cadenas a números puede ser complicado en ciertos lenguajes.
Ahora es aún más complicado, ya que el dígito de verificación de un ISBN-10 puede ser 'X' (que representa '10'). Por ejemplo, 3-598-21507-X es un ISBN-10 válido.
Generar un ISBN-13 válido a partir del ISBN-10 de entrada (y quizás verificarlo de nuevo con un verificador derivado).
Generar un ISBN válido, quizás incluso a partir de un ISBN inicial dado.
Regístrate en Exercism para aprender y dominar Delphi Pascal con 76 ejercicios y mentoría humana real, todo gratis.