اعتبارسنج ISBN

اعتبارسنج ISBN

متوسط

دستورالعمل‌ها

از فرایند اعتبارسنجی ISBN-10 برای اعتبارسنجی شماره‌های شناسایی کتاب استفاده می‌شود. این شماره‌ها معمولاً خط تیره دارند و به این شکل هستند: 3-598-21508-8

ISBN

قالب ISBN-10 از ۹ رقم (از ۰ تا ۹) به‌علاوه‌ی یک نویسه‌ی بررسی تشکیل می‌شود (این نویسه یا یک رقم است یا فقط X). اگر نویسه‌ی بررسی X باشد، نماینده‌ی مقدار ۱۰ است. این شماره‌ها ممکن است با خط تیره یا بدون آن نوشته شوند و می‌توان اعتبارشان را با فرمول زیر بررسی کرد:

(x1 * 10 + x2 * 9 + x3 * 8 + x4 * 7 + x5 * 6 + x6 * 5 + x7 * 4 + x8 * 3 + x9 * 2 + x10 * 1) mod 11 == 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

چون نتیجه ۰ است، این نشان می‌دهد که ISBN ما معتبر است.

وظیفه

برنامه یک رشته را می‌گیرد و باید بررسی کند که رشته‌ی داده‌شده یک ISBN-10 معتبر است یا نه. پیاده‌سازی این کار نیازمند کمی تأمل درباره‌ی پیش‌پردازش و تجزیه‌ی رشته پیش از محاسبه‌ی رقم بررسی ISBN است.

برنامه باید بتواند ISBN-10 را هم با خط تیره‌های جداکننده و هم بدون آن بررسی کند.

نکات

تبدیل رشته به عدد در برخی زبان‌ها می‌تواند دشوار باشد. حالا که رقم بررسی یک ISBN-10 ممکن است X باشد (که نماینده‌ی ۱۰ است)، این کار حتی دشوارتر هم می‌شود. برای نمونه 3-598-21507-X یک ISBN-10 معتبر است.

امتیاز: وظایف

  • یک ISBN-13 معتبر از ISBN-10 ورودی تولید کنید (و شاید دوباره آن را با یک اعتبارسنج مشتق‌شده بررسی کنید).

  • یک ISBN معتبر تولید کنید، شاید حتی از یک ISBN آغازین داده‌شده.

ویرایش از طریق GitHub این لینک در پنجره یا زبانه‌ی جدیدی باز می‌شود
Delphi Pascal Exercism

آماده‌اید اعتبارسنج ISBN را شروع کنید؟

در Exercism ثبت‌نام کنید تا Delphi Pascal را همراه با 76 تمرین و مربی‌گری انسانی واقعی یاد بگیرید و در آن استاد شوید، همه‌ی این‌ها رایگان.