المطلوب
هذا التمرين مقسّم إلى أربع أفكار رئيسية, عليك اتباع التقسيم التالي خطوة خطوة حتى تنجز البرنامج.
أكتب برنامج يعرّف ثلاث مصفوفات
A
وB
وC
.ثم يطلب من المستخدم إدخال العدد الذي يمثل عدد عناصر المصفوفتين
A
وB
.بعدها يطلب من المستخدم إعطاء قيم للمصفوفتين
A
وB
و يخزنهم في المصفوفةC
.في الأخير يعرض للمستخدم القيم التي أصبحت تحتويها المصفوفة
C
.
إرشادات
يجب أن يتم جمع قيم عناصر المصفوفتين A
و B
قي المصفوفة C
كالتالي.
النتيجة المطلوبة
لنفترض أن المستخدم أراد حجم المصفوفتين A
و B
يساوي " 4 " و أدخل نفس القيم كما في الصورة السابقة.
كود الجافا
import java.util.Scanner; public class Vector { public static void main (String[] args) { Scanner input = new Scanner(System.in); int N; int[] A; int[] B; int[] C; int k = 0; // C سنستخدم هذا المتغير كعداد للوصول لعناصر المصفوفة do { System.out.print("Enter the length for vectors ( A ) and ( B ): "); N = input.nextInt(); } while ( N <= 0 ); A = new int[N]; B = new int[N]; C = new int[N*2]; System.out.print("\n"); for (int i=0; i <=N-1; i++) { System.out.print("Enter A[" +i+ "]: "); A[i] = input.nextInt(); System.out.print("Enter B[" +i+ "]: "); B[i] = input.nextInt(); } System.out.print("\n"); for (int i=0; i <=N-1; i++) { C[k] = A[i]; C[k+1] = B[i]; k = k+2; } System.out.print("\n"); for (int i=0; i <=(N*2)-1; i++) { System.out.print("C[" +i+ "]: " + C[i] +"\n"); } System.out.print("\n"); } }
شرح الكود
int N; int[] A; int[] B; int[] C; int k = 0;
هنا قمنا بتجهيز المتغير N
لتخزين عدد عناصر المصفوفتين A
و B
, و هو أول شيء سيطلب من المستخدم إدخاله.
و المصفوفات A
و B
و C
و لم نحدد عدد عناصرهم.
و المتغير k
الذي أعطيناه القيمة 0 كقيمة أولية لأننا سنستخدمه كعداد للوصول إلى عناصر المصفوفة C
.
do { System.out.print("Enter the length for vectors ( A ) and ( B ): "); N = input.nextInt(); } while ( N <= 0 );
هنا سيطلب من المستخدم إدخال عدد عناصر المصفوفتينA
و B
, بعدها سيتم تخزينه في المتغير N
.
بعدها سيتم فحص قيمة المتغير N
. إذا كانت أصغر أو تساوي 0, سيطلب من المستخدم إدخال العدد من جديد.
إذاً هذه الحلقة تضمن أن لا يقوم المستخدم بإدخال عدد أصغر أو يساوي 0.
A = new int[N]; B = new int[N]; C = new int[N*2];
هنا سيتم تحديد عدد عناصر المصفوفات الثلاثة كالتالي:
عدد عناصر المصفوفتان
A
وB
يساوي قيمة المتغيرN
.عدد عناصر المصفوفة
c
يساوي عدد عناصر المصفوفتينA
وB
مع بعض, أي يساوي قيمة المتغيرN*2
.
ملاحظة: عدد عناصر المصفوفةC
يمكن تحديدها بأكثر من طريقة, فمثلاً يمكنك أن تكتبN+N
أوA.length + B.length
بدلN*2
.
for (int i=0; i <=N-1; i++) { System.out.print("Enter A[" +i+ "]: "); A[i] = input.nextInt(); System.out.print("Enter B[" +i+ "]: "); B[i] = input.nextInt(); }
هنا أنشأنا حلقة تبدأ من index العنصر الأول في كلا المصفوفتين, أي العنصر رقم 0, إلى آخر عنصر موجود فيهما و الذي يملك الـ index الأخير, أي N-1
.
في كل دورة من دورات الحلقة i
سيطلب من المستخدم إدخال قيمة لعنصر في المصفوفة A
, و قيمة لعنصر في المصفوفة B
.
فمثلاً, عندما تكون قيمة العداد i
تساوي 0 , سيطلب منه إدخال قيمة للعنصر A[0]
و العنصر B[0]
.
for (int i=0; i <=N-1; i++) { C[k] = A[i]; C[k+1] = B[i]; k = k+2; }
هنا أنشأنا حلقة تبدأ من index العنصر الأول في كل المصفوفات, أي العنصر رقم 0, إلى آخر عنصر موجود في المصفوفات و الذي يملك الـ index الأخير, أي N-1
.
في كل دورة من دورات الحلقة i
سيحدث التالي في المصفوفة C
من خلال العداد k
:
سيتم وضع قيمة عنصر المصفوفة
A
في عنصر جديد في المصفوفةC
.ثم وضع قيمة عنصر المصفوفة
B
في العنصر التالي في المصفوفةC
.ثم سيتم زيادة قيمة المتغير
k
إثنين لتجاوز الخانتين السابقتين اللتين تم وضع القيم فيهما.طريقة عمل الكود:
في البداية, قيمة العداد
i
تساوي 0, لذلك سيتم وضع قيمة العنصرA[0]
في العنصرC[0]
, ثم قيمة العنصرB[0]
في العنصرC[1]
.بعد أن تم إضافة 2 على قيمة المتغير
k
و أصبحت قيمة العدادi
تساوي 1, سيتم وضع قيمة العنصرA[1]
في العنصرC[2]
, ثم قيمة العنصرB[1]
في العنصرC[3]
.بعد أن تم إضافة 2 على قيمة المتغير
k
و أصبحت قيمة العدادi
تساوي 2, سيتم وضع قيمة العنصرA[2]
في العنصرC[4]
, ثم قيمة العنصرB[2]
في العنصرC[5]
.بعد أن تم إضافة 2 على قيمة المتغير
k
و أصبحت قيمة العدادi
تساوي 3, سيتم وضع قيمة العنصرA[3]
في العنصرC[6]
, ثم قيمة العنصرB[3]
في العنصرC[7]
.مهما كان حجم المصفوفات فإن الكود سيعمل بنفس الطريقة.
for (int i=0; i <=(N*2)-1; i++) { System.out.print("C[" +i+ "]: " + C[i] +"\n"); }
هنا أنشأنا حلقة تبدأ من index العنصر الأول في المصفوفة C
إلى آخر عنصر موجود فيها بهدف عرض قيمة كل عنصر أصبح فيها.
في كل دورة من دورات الحلقة i
سيطبع للمستخدم أن العنصر رقم كذا قيمته كذا.