Il processo di verifica dell'ISBN-10 serve a convalidare i numeri di identificazione dei libri. Di solito contengono trattini e si presentano così: 3-598-21508-8
Il formato ISBN-10 è composto da 9 cifre (da 0 a 9) più un carattere di controllo (solo una cifra oppure una X). Se il carattere di controllo è una X, questa rappresenta il valore «10». Questi numeri si possono scrivere con o senza trattini, e se ne può verificare la validità con la formula seguente:
(x1 * 10 + x2 * 9 + x3 * 8 + x4 * 7 + x5 * 6 + x6 * 5 + x7 * 4 + x8 * 3 + x9 * 2 + x10 * 1) mod 11 == 0
Se il risultato è 0, l'ISBN-10 è valido, altrimenti non è valido.
Prendiamo l'ISBN-10 3-598-21508-8. Lo inseriamo nella formula e otteniamo:
(3 * 10 + 5 * 9 + 9 * 8 + 8 * 7 + 2 * 6 + 1 * 5 + 5 * 4 + 0 * 3 + 8 * 2 + 8 * 1) mod 11 == 0
Dato che il risultato è 0, questo dimostra che il nostro ISBN è valido.
Data una stringa, il programma deve controllare se la stringa fornita è un ISBN-10 valido. Mettere in pratica tutto questo richiede un po' di riflessione sulla preelaborazione e sull'analisi della stringa prima di calcolare la cifra di controllo dell'ISBN.
Il programma deve essere in grado di verificare un ISBN-10 sia con sia senza trattini di separazione.
Convertire le stringhe in numeri può essere complicato in alcuni linguaggi.
Ora la cosa è ancora più complicata, dato che la cifra di controllo di un ISBN-10 può essere «X» (che rappresenta «10»). Per esempio, 3-598-21507-X è un ISBN-10 valido.
Generare un ISBN-13 valido a partire dall'ISBN-10 fornito (e magari verificarlo di nuovo con un verificatore derivato).
Generare un ISBN valido, magari anche a partire da un ISBN di partenza.
Iscriviti a Exercism per imparare e padroneggiare Delphi Pascal con 76 esercizi e il mentoring di persone reali, tutto gratis.