مُدقّق ISBN

مُدقّق ISBN

متوسط

التعليمات

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

ISBN

يتكوّن تنسيق 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 بداية معطى.

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

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

سجّل في Exercism لتتعلّم وتتقن Delphi Pascal عبر 76 تمرينًا، وإرشاد بشري حقيقي، وكل ذلك مجانًا.