কম্পিউটার

ISBN চেক করতে C++ প্রোগ্রাম


ক্রম সহ দেওয়া হয়েছে এবং কাজ হল প্রদত্ত ক্রমটি আইএসবিএন নম্বরে কিনা তা সনাক্ত করা৷

আইএসবিএন নম্বর কী

আইএসবিএন মানে ইন্টারন্যাশনাল স্ট্যান্ডার্ড বুক নম্বর হল ডিসেম্বর 2006 পর্যন্ত একটি 10 ​​ডিজিটের নম্বর এবং এখন এটি 1 জানুয়ারি 2007 থেকে 13 ডিজিটের সংখ্যায় সংশোধিত হয়েছে৷ নীচে 10 সংখ্যার ISBN বাস্তবায়ন করা হয়েছে৷

ISBN ডিজিটের একটি প্যাটার্ন আছে −

  • একটি সংখ্যার 9 সংখ্যার শুরু বইটির শিরোনাম, প্রকাশক এবং গোষ্ঠীর প্রতিনিধিত্ব করে। প্রথম 9 সংখ্যার মান 0 - 9
  • হতে পারে৷
  • আইএসবিএন সঠিক কি না তা শেষ 1 সংখ্যা পরীক্ষা করে। শেষ সংখ্যাটি 10 ​​হিসাবে মান নিতে পারে এবং এই সংখ্যাটি উপস্থাপন করতে 'X' প্রতীক ব্যবহার করা হয়

প্রদত্ত 10 সংখ্যার নম্বরটি একটি ISBN নম্বর কিনা তা কীভাবে পরীক্ষা করবেন?

  • একটি অনুক্রমের প্রথম সংখ্যা থেকে শুরু করুন এবং এটিকে 10 দিয়ে গুণ করুন কারণ ISBN হল একটি 10 ​​সংখ্যার সংখ্যা
  • গুনকের মান 1 দ্বারা কমিয়ে পরবর্তী অঙ্কে যেতে থাকুন
  • সমস্ত গুণিত ফলাফল যোগ করুন
  • 11 দিয়ে ফলাফল ভাগ করুন
  • আইএসবিএন নম্বর চেক করতে শর্ত প্রয়োগ করুন
    • যদি ফলাফল 11 দ্বারা বিভাজ্য হয় যার অর্থ কোন অবশিষ্ট থাকে না বা 0 সংখ্যার তুলনায় অবশিষ্ট থাকে একটি ISBN সংখ্যা
    • যদি ফলাফল 11 দ্বারা বিভাজ্য না হয় যার মানে কিছু অবশিষ্ট থাকে বা 0 না থাকে কারণ সংখ্যার থেকে অবশিষ্ট থাকে তবে এটি একটি ISBN সংখ্যা নয়

উদাহরণ

Input-: 002442142X
Output-: Not ISBN
Input-: 007462542X
Output-: it’s ISBN

অ্যালগরিদম

Start
Step 1-> declare function to check for ISBN
   bool isvalid(string &isbn_number)
      set int n = isbn_number.length()
         IF (n != 10)
            return false
         End
         Set int sum = 0
         Loop For int i = 0 and i < 9 and i++
            Set int value = isbn_number[i] - '0'
            If (0 > value || 9 < value)
               return false
            End
            Set sum += (value * (10 - i))
         End
         Set char last_val = isbn_number[9]
         IF (last_val != 'X' && (last_val < '0' || last_val > '9'))
            return false
         End
         Set sum += ((last_val == 'X') ? 10 : (last_val - '0'))
         return (sum % 11 == 0)
step 2-> In main()
   set string isbn_number = "002442142X"
   IF (isvalid(isbn_number))
      Print " is Valid"
   End
   Else
      Print " is invalid
   End
Stop

উদাহরণ

#include <bits/stdc++.h>
using namespace std;
//check whether its a valid ISBN or not
bool isvalid(string &isbn_number) {
   int n = isbn_number.length();
   if (n != 10)
      return false;
   int sum = 0;
   for (int i = 0; i < 9; i++) {
      int value = isbn_number[i] - '0';
      if (0 > value || 9 < value)
         return false;
      sum += (value * (10 - i));
   }
   char last_val = isbn_number[9];
   if (last_val != 'X' && (last_val < '0' || last_val > '9'))
      return false;
   sum += ((last_val == 'X') ? 10 : (last_val - '0'));
   return (sum % 11 == 0);
}
int main() {
   string isbn_number = "002442142X";
   if (isvalid(isbn_number))
      cout<<isbn_number<<" is Valid";
   else
      cout<<isbn_number<<" is invalid";
   return 0;
}

আউটপুট

যদি আমরা উপরের কোডটি চালাই তবে এটি নিম্নলিখিত আউটপুট তৈরি করবে

002442142X is invalid

  1. দ্বিখণ্ডন পদ্ধতির জন্য C++ প্রোগ্রাম

  2. C++ এ ইনভোলুটরি ম্যাট্রিক্স চেক করার প্রোগ্রাম

  3. C++ এ পিরামিডের আয়তনের জন্য প্রোগ্রাম

  4. QuickSort-এর জন্য C++ প্রোগ্রাম?