مُدقّق ISBN

مُدقّق ISBN

سهل

التعليمات

تُستخدم عملية التحقق من ISBN-10 للتحقق من صحة أرقام تعريف الكتب. وهي تحتوي عادةً على شرطات وتبدو هكذا: 3-598-21508-8

ISBN

صيغة 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 صالح.

تعديل عبر GitHub يفتح الرابط في نافذة أو علامة تبويب جديدة
Python Exercism

مستعد لبدء مُدقّق ISBN؟

سجّل في Exercism لتتعلّم وتتقن Python عبر 17 مفهومًا146 تمرينًا، وإرشاد بشري حقيقي، وكل ذلك مجانًا.