ট্র্যাক
/
Julia
Julia
/
অনুশীলনী
/
ISBN ভেরিফায়ার
ISBN ভেরিফায়ার

ISBN ভেরিফায়ার

মধ্যম

নির্দেশনা

বইয়ের শনাক্তকরণ নম্বর যাচাই করতে ISBN-10 যাচাইকরণ প্রক্রিয়া ব্যবহার করা হয়। এগুলোতে সাধারণত হাইফেন থাকে এবং দেখতে এমন হয়: 3-598-21508-8

ISBN

ISBN-10 ফরম্যাটে থাকে ৯টি ডিজিট (০ থেকে ৯) এবং একটি চেক ক্যারেক্টার (শুধু একটি ডিজিট অথবা একটি X)। চেক ক্যারেক্টারটি X হলে এটি '১০' মানটি নির্দেশ করে। এগুলো হাইফেন দিয়ে বা হাইফেন ছাড়াই লেখা যেতে পারে, এবং নিচের সূত্র দিয়ে এগুলোর বৈধতা যাচাই করা যায়:

(d₁ * 10 + d₂ * 9 + d₃ * 8 + d₄ * 7 + d₅ * 6 + d₆ * 5 + d₇ * 4 + d₈ * 3 + d₉ * 2 + d₁₀ * 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"3-598-21507-X" == ISBN("3-598-21507-X") হয়।

  • কনস্ট্রাক্টরটি যেন ISBN-13-ও গ্রহণ করে। একই ISBN যেকোনো ফরম্যাটেই হোক, তুলনায় সমান হওয়া উচিত: ISBN("1-234-56789-X") == ISBN("978-1-234-56789-7")।

  • একটি বৈধ ISBN জেনারেট করার জন্য একটি ফাংশন বা ইটারেটর ডিফাইন করুন, হয়তো কোনো প্রদত্ত শুরুর ISBN থেকেও।

আপনি কি ISBN-টি স্ট্রিং-এর বদলে ইন্টিজার হিসেবে স্টোর করতে পারেন, আর সেটা কি আদৌ ভালো ধারণা হবে? যদি সেটা করেন, তাহলে কি এখনও ISBN-টি (চেক-ডিজিট-সহ) স্ট্রিং হিসেবে প্রিন্ট করতে পারবেন?

GitHub-এর মাধ্যমে সম্পাদনা করুন লিংকটি একটি নতুন উইন্ডো বা ট্যাবে খোলে
Julia Exercism

ISBN ভেরিফায়ার শুরু করতে প্রস্তুত?

Exercism-এ সাইন আপ করুন, Julia ট্র্যাকের 35টি কনসেপ্ট128টি অনুশীলনী আর সত্যিকারের মানুষের মেন্টরিং দিয়ে শিখুন ও দক্ষ হয়ে উঠুন, সম্পূর্ণ বিনামূল্যে।