تُستخدم عملية التحقق من ISBN-10 للتحقق من صحة أرقام تعريف الكتب.
وهي تحتوي عادةً على شرطات وتبدو هكذا: 3-598-21508-8
صيغة ISBN-10 هي 9 أرقام (من 0 إلى 9) بالإضافة إلى محرف تحقق واحد (إما رقم أو حرف X فقط). وإذا كان محرف التحقق هو X، فإنه يمثل القيمة '10'. ويمكن كتابتها بشرطات أو بدونها، ويمكن التحقق من صحتها بالصيغة التالية:
(d₁ * 10 + d₂ * 9 + d₃ * 8 + d₄ * 7 + d₅ * 6 + d₆ * 5 + d₇ * 4 + d₈ * 3 + d₉ * 2 + d₁₀ * 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 صالح.
سجّل في Exercism لتتعلّم وتتقن Python عبر 17 مفهومًا146 تمرينًا، وإرشاد بشري حقيقي، وكل ذلك مجانًا.