مُدقّق 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 يفتح الرابط في نافذة أو علامة تبويب جديدة
F# Exercism

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

سجّل في Exercism لتتعلّم وتتقن F# عبر 18 مفهومًا148 تمرينًا، وإرشاد بشري حقيقي، وكل ذلك مجانًا.