El proceso de verificación del ISBN-10 se utiliza para validar números de identificación de libros. Normalmente contienen guiones y tienen este aspecto: 3-598-21508-8
El formato ISBN-10 consta de 9 dígitos (del 0 al 9) más un carácter de control (únicamente un dígito o una X). Cuando el carácter de control es una X, 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; en caso contrario, no lo es.
Tomemos el ISBN-10 3-598-21508-8. Lo sustituimos 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, queda demostrado que nuestro ISBN es válido.
Dado un string, el programa debe comprobar si el string proporcionado es un ISBN-10 válido. Llevar esto a la práctica requiere pensar un poco en cómo preprocesar y analizar el string antes de calcular el dígito de control del ISBN.
El programa debe ser capaz de verificar ISBN-10 tanto con guiones separadores como sin ellos.
Convertir de strings a números puede ser complicado en ciertos lenguajes.
Ahora es todavía más complicado, ya que el dígito de control de un ISBN-10 puede ser una 'X' (que representa el '10'). Por ejemplo, 3-598-21507-X es un ISBN-10 válido.
Genera un ISBN-13 válido a partir del ISBN-10 de entrada (y quizá vuelve a verificarlo con un verificador derivado).
Genera un ISBN válido, quizá incluso a partir de un ISBN de partida.
Regístrate en Exercism para aprender y dominar Delphi Pascal con 76 ejercicios y mentoría humana real, todo gratis.