Learn Typing Programming Basics SQL HTML CSS JavaScript Python C++ Java JavaFX Swing Computer Fundamentals English English Conversations Problem Solving

الخوارزمياتالتعامل مع المصفوفة ذات البعد الواحد - التمرين السابع

المطلوب

هذا التمرين مقسّم إلى أربع أفكار رئيسية, عليك اتباع التقسيم التالي خطوة خطوة حتى تنجز البرنامج.

  1. أكتب برنامج يعرّف ثلاث مصفوفات A و B و C.
  2. ثم يطلب من المستخدم إدخال العدد الذي يمثل عدد عناصر المصفوفتين A و B.
  3. بعدها يطلب من المستخدم إعطاء قيم للمصفوفتين A و B و يخزنهم في المصفوفة C.
  4. في الأخير يعرض للمستخدم القيم التي أصبحت تحتويها المصفوفة 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");
}
}
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;
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 );
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 = 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();
}
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; <=N-1; i++)
{
C[k] = A[i];
C[k+1] = B[i];
k = k+2;
}
for (int i=0; <=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");
}
for (int i=0; i<=(N*2)-1; i++) { System.out.print("C[" +i+ "]: " + C[i] +"\n"); }
  • هنا أنشأنا حلقة تبدأ من index العنصر الأول في المصفوفة C إلى آخر عنصر موجود فيها بهدف عرض قيمة كل عنصر أصبح فيها.
  • في كل دورة من دورات الحلقة i سيطبع للمستخدم أن العنصر رقم كذا قيمته كذا.

نرجو منك الإنتقال لدورة البرمجة للمبتدئين الجديدة التي أنشأنها كبديل أفضل لهذه الدورة ففي تلك الدورة قمنا بتبسيط الشرح أكثر و جعلناك قادر على تجربة الكود بشكل مباشر في موقعنا.


دورة تعلم البرمجة للمبتدئين >

الدورات

أدوات مساعدة

أقسام الموقع

دورات
مقالات كتب مشاريع أسئلة