أرقام التعريف وخوارزميات التحقق من الأرقام برنامج خوارزميات التحقق من الأرقام ISBN مكون من 10 أرقام بلغات البرمجة
مشاريع مقرر ضبط أنظمة المعلومات وأمنها
حساب التحقق من الرقم IBM - و how to calculate check digit in isbn
يتم حساب رقم الاختبار باستخدام خوارزمية LUHN (خوارزمية mod10). تم إنشاء خوارزمية LUHN بواسطة Hans Peter Luhn ، وهو عالم في IBM. فيما يلي خطوات حساب رقم الاختبار باستخدام خوارزمية mod10:
بدءًا من اليمين ، ضاعف كل رقم ثاني.
اجمع الأرقام معًا إذا كانت المضاعفة تمنحك رقمًا مكونًا من رقمين.
أضف الآن الأرقام المضاعفة مع الأرقام التي لم يتم مضاعفتها.
اقسم المجموع على 10 وتحقق مما إذا كان الباقي صفرًا. إذا كان الباقي صفرًا ، فهذا هو رقم التحقق. إذا لم يكن الرقم صفرًا ، فقم بطرح الباقي من 10. سيكون الرقم الناتج هو رقم التحقق.
هنا توضيح:
التحقق من صحة رقم IMEI
int imei(char a[]){int i,len,mul,sum;int chksum;int m10;len = strlen(a);if(len!=15)return -1;chksum = char2int(a[len-1]); //Last element should be the checksummul = 2; sum=0;for(i=len-2;i>=0;i--){if( (char2int(a[i])*mul) >= 10 )sum += ((char2int(a[i])*mul ) / 10) +((char2int(a[i])*mul ) % 10 );elsesum += char2int(a[i])*mul;if(mul==2) mul=1;else mul=2;}m10 = sum%10;if(m10) m10 = 10 - m10;if(m10 == chksum) return 1;elsereturn 0;}
لمزيد من التفاصيل حول لغة c++ لكتابة برنامج للتحقق من الارقام isbn
ملخص حل الخوارزمية للتحقق من الارقام
IMEI هو رقم فريد مكون من 15 رقمًا مخصصًا للهواتف المحمولة.
يتم استخدامه بواسطة شبكات GSM للتحقق من شرعية الجهاز.
تُعرف الأرقام الثمانية الأولى باسم TAC (رمز تخصيص النوع) ، والأرقام الستة التالية هي الرقم التسلسلي ، والأرقام الأخيرة هي رقم التحقق.
يستخدم رقم IMEI خوارزمية mod10 أو LUHN للتحقق من الرقم.
للتحقق من الرقم باستخدام لغة البرمجة جافا
تحقق من رقم ISBN (بدون حلقات تكرار)
السؤال:
يتكون رقم ISBN من 10 أرقام. الرقم الأخير d10 هو مجموع اختباري ، يتم حسابه من تسعة أرقام أخرى. أواجه مشكلة في تشغيل البرنامج بشكل صحيح. أشعر أن الأمر كذلك مع مدخلاتي من أرقامي الفردية.
public static void main(String[] args) {Scanner input = new Scanner(System.in);System.out.print("Enter the first 9 numbers of the ISBN: ");int d1 = input.nextInt();int d2 = input.nextInt();int d3 = input.nextInt();int d4 = input.nextInt();int d5 = input.nextInt();int d6 = input.nextInt();int d7 = input.nextInt();int d8 = input.nextInt();int d9 = input.nextInt();int d10 = ((d1 * 1) + (d2 * 2) + (d3 * 3) + (d4 * 4) + (d5 * 5) + (d6 * 6)+ (d7 * 7) + (d8 * 8) + (d9 * 9)) % 11;if (d10 != 10) {System.out.println("ISBN is:" + d1 + d2 + d3 + d4 + d5 + d6 + d7 + d8+ d9 + d10);} else if (d10 == 10) {System.out.println("ISBN is:" + d1 + d2 + d3 + d4 + d5 + d6 + d7 + d8+ d9 + "X");}}}[
للمزيد حول التفاصيل أكثر
برنامج لحساب رقم ISBN مكون من 10 أرقام على جافا برنامج النتبينز
السؤال:
لقد عملت على حل هذه المشكلة لبضع ساعات ، ولم تظهر أي أخطاء وعندما أقوم بتشغيل البرنامج ، فإنه يعرض "أدخل الأرقام التسعة الأولى من رقم ISBN" ، ولكن بمجرد إدخال 9 أرقام ، لا تظهر إجابة. أنا أستخدم netbeans:
package businesscheckingisbn;/**** @author TM2011*/public class BusinessCheckingISBN {/*** @param args the command line arguments*/public static void main(String[] args){java.util.Scanner input = new java.util.Scanner(System.in);System.out.print ("Enter the first 9 numbers of the ISBN: ");int d1 = input.nextInt();int d2 = input.nextInt();int d3 = input.nextInt();int d4 = input.nextInt();int d5 = input.nextInt();int d6 = input.nextInt();int d7 = input.nextInt();int d8 = input.nextInt();int d9 = input.nextInt();// calculate d10int d10 = ((d1*1) + (d2*2) + (d3*3) + (d4*4) + (d5*5) + (d6*6) +(d7*7) + (d8*8) + (d9*9)) % 11;// conditional statement:if (d10 != 10) {System.out.println( "ISBN is:" + d1 + d2 + d3 + d4 + d5 + d6 + d7 + d8 +d9 + d10);}else if (d10 == 10) {System.out.println( "ISBN is:" + d1 + d2 + d3 + d4 + d5 + d6 + d7 + d8 +d9 + "X");}}}
للمزيد حول التفاصيل أكثر
اطرح اي سؤال خاص بالموضوع في التعليقات