إعلان
دورة تطوير التطبيقات باستخدام لغة 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. تعلم الآن
دورة علوم الحاسوب هذه الدورة معدة لتكون مدخل لعلوم الحاسوب و لغات البرمجة حيث ستتعرف فيها على أنظمة التشغيل و ستتعمق في نظام لينكس و في كيفية التعامل معه من خلال موجه الأوامر, بالإضافة إلى قواعد البيانات و أساسيات الشبكات و الخوادم و مبادئ الحماية والأمان في الويب. تعلم الآن

    C++ النوع enum

    مفهوم النوع enum

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

    النوع enum مفيد جداً في حال أردت بناء كود مخصص فقط للتعامل مع نوع محدد من القيم و في حال حاول أي مبرمج آخر عدم الإلتزام بنوع البيانات الذي فرضته أنت و قام بتمرير قيم من نوع آخر فإنه يتم تنبيهه مباشرةً قبل تشغيل الكود و في حال أصر على ذلك و قام بتشغيل الكود فإن مترجم لغة C++ سيمنعه وقت التشغيل و يظهر له خطأ.

    بشكل عام, في حال أردت تعريف مجموعة قيم مترابطة يستحيل أن تتبدل فالخيار الأمثل هو تعريف هذه القيم في الأساس بداخل enum.

    أمثلة حول بعض المعلومات الثابتة في الحياة و التي أيضاً تعتبر ثابتة في المنطق هي:

    • فصول السنة ( الخريف, الشتاء, الربيع, الصيف )
    • الإتجاهات ( الشمال - الجنوب - الشرق - الغرب )
    • أيام الأسبوع ( الإثنين - الثلاثاء - الأربعاء إلخ.. )
    • أشهر السنة ( كانون الثاني - شباط - آذار إلخ.. )
    • الجنس ( ذكر - أنثى )

    عند التعامل مع هذا النوع الثابت من البيانات و الذي لا نريد لأحد أن يعبث به فإننا نستخدم النوع enum و هذا ما سنراه لاحقاً في الأمثلة.

    طريقة تعريف enum

    تعريف enum يشبه كثيراً طريقة تعريف struct و لكن التعامل مع المتغيرات التي نضعها فيه لاحقاً هو ما يختلف.

    عند وضع متغيرات بداخله يمكنك إعطاؤهم قيم بنفسك أو ترك المترجم يعطيهم قيم إفتراضية بنفسه.
    إفتراضياً المتغيرات التي تضعها يتم إعطاؤها قيم بالترتيب إبتداءاً من صفر, فمثلاً أولاً أول متغير تكون قيمته 0 و الثاني تكون قيمته 1 و هكذا.


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

    مثال

    Main.cpp
    #include <iostream>
    
    using namespace std;
    
    // وضعنا فيه 7 ثوابت Days إسمه enum هنا قمنا بتعريف
    enum Days
    {
        Monday,
        Tuesday,
        Wednesday,
        Thursday,
        Friday,
        Saturday,
        Sunday
    };
    
    int main()
    {
    	// فقط Days و الهدف منه تخزين إحدى القيم الموجودة في today إسمه Days هنا قمنا بإنشاء كائن من
        Days today;
    
    	// today في الكائن Days الموجود بالأساس في Monday هنا قمنا بتخزين قيمة الثابت
        today = Monday;
    
        // today هنا قمنا بطباعة قيمة الكائن
        cout << "today value = " << today;
    
        return 0;
    }
    		

    سنحصل على النتيجة التالية عند التشغيل.

    today value = 0
    		

    في المثال السابق قد تقول لما كل هذا العذاب!
    لما لا نقوم بتعريف المتغير today بشكل مباشر كالتالي ؟!

    int today = 0;
    	


    معلومة مهمة

    في المثال السابق, لو قمت بتعريف today كمتغير عادي, كان بإمكانك وضع أي قيمة تريد فيه مثل 20 أو أي قيمة أخرى.

    فائدة تعريف today ككائن من Days هو أنك أصبحت مجبر على استخدام الثوابت الموجودة فيه لتحديد قيمة today مما يجعلك تضمن أنه لا يمكن تمرير أي قيمة عشوائية غير القيم التي قمت أنت بتحديدها فمثلاً في المثال السابق يمكنك أن تغيير قيمة الكائن today كالتالي.

    // Days لأنها موجودة في الأصل في Monday يمكنك وضع القيمة
    today = Monday;
    
    // Days لأنها موجودة في الأصل في Friday يمكنك وضع القيمة
    today = Friday;
    	

    مفاهيم مهمة حول النوع enum


    المفهوم الأول

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

    شاهد المثال »



    المفهوم الثاني

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

    شاهد المثال »



    المفهوم الثالث

    هنا وضعنا مثال يوضح كيفية تعريف دالة تأخذ باراميتر نوعه enum و كيفية تمرير قيمة لها عند استدعاءها.

    شاهد المثال »

    إعلان

    Eqla3Tech.com

    شروحات مكتوبة حول لغات البرمجة و تقنية المعلومات باللغة العربية مقدمة من إقلاع تك.

    لغة جافا لغة ++C قواعد البيانات نظام ويندوز نظام لينكس الشبكات تقنية المعلومات الأمن السيبراني

    الدورات

    أدوات مساعدة

    الأقسام

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