البرمجة

برمجية ISBN-10 بلغة Java

بدايةً، دعني أشير إلى الأخطاء في الكود المقدم:

  1. في الحلقة التي تقوم بإدخال الأرقام الأولى للـ ISBN، تستخدم حلقتين متداخلتين، وهذا ليس ضروريًا ويؤدي فقط إلى تكرار الحلقة. يمكنك استخدام حلقة واحدة فقط لإدخال الأرقام.

  2. في حلقة إدخال الأرقام، تقوم بضرب كل رقم في موقعه بالتسلسل من 1 إلى 9 وتخزين الناتج في كل مرة في الخانة المقابلة في مصفوفة num. هذا غير صحيح، يجب عليك أن تخزن القيمة المحسوبة في كل مرة في مصفوفة منفصلة.

  3. عند حساب مجموع الأرقام المحسوبة، تستخدم حلقة تقوم بجمع القيم من الفهرس 0 إلى 9. هذا يؤدي إلى تجاوز الحد الأقصى للمصفوفة وقد يتسبب في خطأ ArrayIndexOutOfBoundsException. يجب أن تقوم بجمع القيم من الفهرس 0 إلى 8 فقط.

  4. عند طباعة الـ ISBN-10، تحاول طباعة مصفوفة بأكملها باستخدام num. يجب أن تقوم بتكوين سلسلة نصية تحتوي على الأرقام الصحيحة المدخلة.

بناءً على الملاحظات السابقة، يمكن تعديل الكود على النحو التالي:

java
import java.util.Scanner; public class ISBN_Number { public static void main(String[] args) { Scanner s = new Scanner(System.in); int[] num = new int[9]; System.out.println("Enter the first 9 digits of an ISBN as an integer: "); for (int i = 0; i < num.length; i++) { num[i] = s.nextInt(); } int sum = 0; for (int i = 0; i < num.length; i++) { sum += num[i] * (i + 1); } int d10 = sum % 11; System.out.print("The ISBN-10 number is "); for (int i = 0; i < num.length; i++) { System.out.print(num[i]); } if (d10 == 10) { System.out.println("X"); } else { System.out.println(d10); } } }

هذا التعديل يقوم بتصحيح الأخطاء المذكورة أعلاه ويجعل البرنامج يعمل بالطريقة المطلوبة. يقوم البرنامج الآن بقبول الأرقام الأولى للـ ISBN كرقم صحيح ويحسب الرقم العاشر ويطبع الـ ISBN النهائي بشكل صحيح.

المزيد من المعلومات

بالطبع، سأكمل المقال بإضافة بعض الشروحات والتوضيحات حول الكود المعدل وكيف يعمل:

بعد تعديل الكود، يصبح أكثر فهمًا وفعالية. دعني أوضح الآن كيف يعمل البرنامج الجديد:

أولاً، يقوم البرنامج بطلب إدخال الأرقام الأولى للـ ISBN من المستخدم. ثم، يخزن هذه الأرقام في مصفوفة num بحيث يتم تخزين الرقم في الفهرس 0 في num[0] وهكذا.

بعد ذلك، يتم استخدام حلقة for لحساب المجموع الذي سيستخدم في حساب الرقم العاشر من الـ ISBN. يتم ضرب كل رقم في موقعه بتسلسله ويتم إضافة الناتج إلى المجموع.

بعد حساب المجموع، يتم استخدام العملية % للحصول على الباقي عند القسمة على 11. هذا الباقي هو الرقم العاشر من الـ ISBN.

ثم، يتم طباعة الأرقام الأولى للـ ISBN باستخدام حلقة for أخرى، مع ملاحظة أن الفهارس تبدأ من 0 وتنتهي في 8.

أخيرًا، يتم التحقق مما إذا كان الرقم العاشر هو 10 أم لا. إذا كان 10، يتم طباعة “X” بدلاً من الرقم 10، وإلا فإنه يتم طباعة الرقم العاشر بشكل عادي.

هذا البرنامج الآن يمتثل تمامًا لمتطلبات المسألة ويقوم بإنشاء رقم ISBN-10 بشكل صحيح استنادًا إلى الأرقام التي يدخلها المستخدم.

مقالات ذات صلة

زر الذهاب إلى الأعلى
إغلاق

أنت تستخدم إضافة Adblock

يرجى تعطيل مانع الإعلانات حيث أن موقعنا غير مزعج ولا بأس من عرض الأعلانات لك فهي تعتبر كمصدر دخل لنا و دعم مقدم منك لنا لنستمر في تقديم المحتوى المناسب و المفيد لك فلا تبخل بدعمنا عزيزي الزائر