Η διαδικασία επαλήθευσης ISBN-10 χρησιμοποιείται για την επικύρωση αριθμών αναγνώρισης βιβλίων. Συνήθως περιέχουν παύλες και έχουν τη μορφή: 3-598-21508-8
Η μορφή ISBN-10 αποτελείται από 9 ψηφία (0 έως 9) συν έναν χαρακτήρα ελέγχου (είτε ψηφίο είτε μόνο X). Στην περίπτωση που ο χαρακτήρας ελέγχου είναι X, αυτό αντιπροσωπεύει την τιμή '10'. Μπορούν να δίνονται με ή χωρίς παύλες, και η εγκυρότητά τους μπορεί να ελεγχθεί με τον παρακάτω τύπο:
(x1 * 10 + x2 * 9 + x3 * 8 + x4 * 7 + x5 * 6 + x6 * 5 + x7 * 4 + x8 * 3 + x9 * 2 + x10 * 1) mod 11 == 0
Αν το αποτέλεσμα είναι 0, τότε το ISBN-10 είναι έγκυρο, αλλιώς είναι άκυρο.
Ας πάρουμε το ISBN-10 3-598-21508-8. Το βάζουμε στον τύπο και παίρνουμε:
(3 * 10 + 5 * 9 + 9 * 8 + 8 * 7 + 2 * 6 + 1 * 5 + 5 * 4 + 0 * 3 + 8 * 2 + 8 * 1) mod 11 == 0
Εφόσον το αποτέλεσμα είναι 0, αυτό αποδεικνύει ότι το ISBN μας είναι έγκυρο.
Δεδομένης μιας συμβολοσειράς, το πρόγραμμα θα πρέπει να ελέγχει αν η συμβολοσειρά που δίνεται είναι ένα έγκυρο ISBN-10. Για να το υλοποιήσεις αυτό, χρειάζεται λίγη σκέψη γύρω από την προεπεξεργασία/ανάλυση της συμβολοσειράς πριν από τον υπολογισμό του ψηφίου ελέγχου για το ISBN.
Το πρόγραμμα θα πρέπει να μπορεί να επαληθεύει ISBN-10 και με και χωρίς διαχωριστικές παύλες.
Η μετατροπή από συμβολοσειρές σε αριθμούς μπορεί να είναι δύσκολη σε ορισμένες γλώσσες.
Τώρα είναι ακόμη πιο δύσκολη, αφού το ψηφίο ελέγχου ενός ISBN-10 μπορεί να είναι 'X' (που αντιπροσωπεύει το '10'). Για παράδειγμα, το 3-598-21507-X είναι ένα έγκυρο ISBN-10.
Δημιούργησε ένα έγκυρο ISBN-13 από το ISBN-10 που δίνεται (και ίσως επαλήθευσέ το ξανά με έναν παράγωγο επαληθευτή).
Δημιούργησε έγκυρα ISBN, ίσως ακόμη και από ένα δεδομένο ISBN αφετηρίας.
Γράψου στο Exercism για να μάθεις και να κατακτήσεις Delphi Pascal με 76 ασκήσεις και πραγματική καθοδήγηση από ανθρώπους, όλα δωρεάν.