إعلان
دورة تطوير التطبيقات باستخدام لغة JavaScript في هذه الدورة ستتعلم لغة جافا سكريبت, استخدام مكتبة React.js, بناء API الموقع بواسطة Node.js, تطوير تطبيق جوال باستخدام React Native, و في نهاية الدورة ستتعلم تطوير تطبيق محادثة شبيه بتطبيق WhatsApp. تعلم الآن
دورة تطوير واجهات المستخدم في هذه الدورة ستتعلم لغة HTML و لغة CSS و لغة JavaScript. من ناحية التطبيق العملي ستتعلم طريقة بناء واجهة متجر إلكتروني مكون من ست صفحات, تحويل خمسة تصاميم PSD إلى صفحات ويب, بناء واجهة مستخدم تشبه موقع يوتيوب, بناء لوحة تحكم إحترافية. تعلم الآن
تطوير تطبيقات باستخدام لغة بايثون في هذه الدورة ستتعلم أساسيات البرمجة بلغة بايثون وصولاً إلى التعامل مع أشهر أطر العمل (Flask و Django) و ستتعلم كيف تبني متجر إلكتروني يمكن للمستخدمين البيع و الشراء من خلاله. تعلم الآن
دورة تطوير تطبيقات الويب باستخدام لغة PHP في هذه الدورة ستتعلم لغة PHP من الصفر, استخدام إطار العمل Laravel بشرح مفصّل و عملي, كيفية تطوير شبكة اجتماعية تشبه Instagram, بناء API لتطبيق جوال وفق أسلوب RESTful, تطوير موقع إعلانات مبوبة, تطوير نظام إدارة محتوى CMS كامل. تعلم الآن
دورة تطوير تطبيقات الويب باستخدام لغة Ruby في هذه الدورة ستتعلم البرمجة بلغة Ruby إنطلاقاً من أبسط المفاهيم وحتى بناء تطبيق حقيقي, إستخدام إطار العمل Ruby on Rails بشرح مفصّل و عملي, بناء تطبيق حقيقي عبارة عن شبكة اجتماعية تشبه تويتر, تطوير مجتمع الكتروني يشبه حسوب I/O. تعلم الآن
دورة علوم الحاسوب هذه الدورة معدة لتكون مدخل لعلوم الحاسوب و لغات البرمجة حيث ستتعرف فيها على أنظمة التشغيل و ستتعمق في نظام لينكس و في كيفية التعامل معه من خلال موجه الأوامر, بالإضافة إلى قواعد البيانات و أساسيات الشبكات و الخوادم و مبادئ الحماية والأمان في الويب. تعلم الآن

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

    المطلوب

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

    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");
     
        }
     
    }
    		

    شرح الكود


    		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; <=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 سيطبع للمستخدم أن العنصر رقم كذا قيمته كذا.

    الدورات

    أدوات مساعدة

    الأقسام

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