Процес перевірки 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 дійсний.
Отримавши рядок тексту (англ. string), програма має перевірити, чи є наданий рядок тексту дійсним 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 вправ та справжнє наставництво від людей, і все це безкоштовно.