الخوارزمياتالتعامل مع المصفوفة ذات البعد الواحد - التمرين السادس
المطلوب
هذا التمرين مقسّم إلى أربع أفكار رئيسية, عليك اتباع التقسيم التالي خطوة خطوة حتى تنجز البرنامج.
- أكتب برنامج يقوم بتعريف ثلاث مصفوفات
A
وB
وC
. - ثم يطلب من المستخدم إدخال عدد يمثل عدد عناصر المصفوفات الثلاثة.
تذكر: يجب أن يدخل المستخدم عدد أكبر من صفر, لأن عدد عناصر المصفوفات لا يمكن أن يكون صفر أو أقل من صفر. - بعدها يطلب من المستخدم إدخال قيمة لجميع عناصر المصفوفتين
A
وB
و يجمعهم في المصفوفةC
. - في الأخير يعرض للمستخدم القيم التي أصبحت تحتويها المصفوفة
C
.
إرشادات
يجب أن يتم جمع قيم عناصر المصفوفتين A
و B
في المصفوفة C
كالتالي.
النتيجة المطلوبة
لنفترض أن المستخدم أراد حجم المصفوفات يساوي 3 و أدخل نفس القيم كما في الصورة السابقة.
الخوارزمية
كود الجافا
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; do { System.out.print("Enter the length for all vectors: "); N = input.nextInt(); } while ( N <= 0 ); A = new int[N]; B = new int[N]; C = new int[N]; 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(); C[i] = A[i] + B[i]; } System.out.print("\n"); for (int i=0; i<=N-1; i++) { System.out.print("C[" +i+ "]: " + C[i] +"\n"); } System.out.print("\n"); } }
شرح الكود
int N; int[] A; int[] B; int[] C;
- هنا قمنا بتجهيز المتغير
N
لتخزين عدد عناصر المصفوفات الثلاثة, و هو أول شيء سيطلب من المستخدم إدخاله. - و المصفوفات
A
وB
وC
و لم نحدد عدد عناصرهم.
do { System.out.print("Enter the length for all vectors: "); N = input.nextInt(); } while ( N <= 0 );
- هنا سيطلب من المستخدم إدخال عدد عناصر المصفوفات الثلاثة, بعدها سيتم تخزينه في المتغير
N
. - بعدها سيتم فحص قيمة المتغير
N
, إذا كانت أصغر أو تساوي 0 سيطلب من المستخدم إدخال العدد من جديد. - إذاً هذه الحلقة تضمن أن لا يقوم المستخدم بإدخال عدد أصغر أو يساوي 0.
A = new int[N]; B = new int[N]; C = new int[N];
- هنا سيتم تحديد عدد عناصر المصفوفات الثلاثة و الذي هو قيمة المتغير
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(); C[i] = A[i] + B[i]; }
- هنا أنشأنا حلقة تبدأ من index العنصر الأول في كل المصفوفات (أي العنصر رقم 0) إلى آخر عنصر موجود في المصفوفات و الذي يملك الـ index الأخير (أي
N-1
). - في كل دورة من دورات الحلقة
i
سيحدث التالي: - سيطلب من المستخدم إدخال قيمة لعنصر في المصفوفة
A
, ثم قيمة لعنصر في المصفوفةB
, ثم سيتم حساب ناتج جمع قيم هذين العنصرين ووضع كقيمة لعنصر في المصفوفةC
. - فمثلاً, عندما تكون قيمة العداد
i
تساوي 0 سيطلب منه إدخال قيمة للعنصرA[0]
و العنصرB[0]
ثم يجمعهم و يضع الناتج في العنصرC[0]
.
for (int i=0; i<=N-1; i++) { System.out.print("C[" +i+ "]: " + C[i] +"\n"); }
- هنا أنشأنا حلقة تبدأ من index العنصر الأول في المصفوفة
C
إلى آخر عنصر موجود فيها بهدف عرض قيمة كل عنصر فيها. - في كل دورة من دورات الحلقة
i
سيطبع للمستخدم أن العنصر رقم كذا قيمته كذا.