O processo de verificação do ISBN-10 é usado para validar números de identificação de livros. Normalmente eles contêm hífens e se parecem com: 3-598-21508-8
O formato ISBN-10 é composto por 9 dígitos (de 0 a 9) mais um caractere de verificação (um dígito ou apenas um X). Caso o caractere de verificação seja um X, ele representa o valor '10'. Eles podem ser escritos com ou sem hífens, e sua validade pode ser conferida pela seguinte 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
Se o resultado for 0, o ISBN-10 é válido; caso contrário, é inválido.
Vamos pegar o ISBN-10 3-598-21508-8. Substituímos na fórmula e obtemos:
(3 * 10 + 5 * 9 + 9 * 8 + 8 * 7 + 2 * 6 + 1 * 5 + 5 * 4 + 0 * 3 + 8 * 2 + 8 * 1) mod 11 == 0
Como o resultado é 0, isso prova que o nosso ISBN é válido.
Dada uma string, o programa deve verificar se a string fornecida é um ISBN-10 válido. Colocar isso em prática exige pensar um pouco no pré-processamento e na análise da string antes de calcular o dígito de verificação do ISBN.
O programa deve conseguir verificar ISBN-10 tanto com quanto sem hífens separadores.
Converter strings em números pode ser complicado em certas linguagens.
Agora fica ainda mais complicado, já que o dígito de verificação de um ISBN-10 pode ser 'X' (que representa '10'). Por exemplo, 3-598-21507-X é um ISBN-10 válido.
Gerar um ISBN-13 válido a partir do ISBN-10 de entrada (e talvez verificá-lo de novo com um verificador derivado).
Gerar um ISBN válido, talvez até a partir de um ISBN inicial fornecido.
Crie sua conta no Exercism para aprender e dominar Delphi Pascal com 76 exercícios e mentoria humana de verdade, tudo de graça.