Track
/
Delphi Pascal
Delphi Pascal
/
Esercizi
/
Verificatore ISBN
Verificatore ISBN

Verificatore ISBN

Medio

Istruzioni

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

ISBN

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.

Esempio

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.

Attività

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.

Avvertenze

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.

Attività bonus

  • 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.

Modifica tramite GitHub Il link si apre in una nuova finestra o scheda
Delphi Pascal Exercism

Vuoi iniziare Verificatore ISBN?

Iscriviti a Exercism per imparare e padroneggiare Delphi Pascal con 76 esercizi e il mentoring di persone reali, tutto gratis.