العوامل التي تستخدم لإعطاء قيم للمتغيرات (Assignment Operators) في C++

 


ماهي العوامل التي تستخدم لإعطاء قيم للمتغيرات (Assignment Operatorsفي C++

إسم العاملرمزهمثالشرح الكود
Basic Assignment=a = bضع قيمة b في a.
Add AND Assignment+=a += bأضف قيمة a على قيمة b و خزن الناتج في a
Susbtract AND Assignment-=a -= bأنقص قيمة a من قيمة b و خزن الناتج في a
Multiply AND Assignment*=a *= bأضرب قيمة a بقيمة b و خزن الناتج في a
Divide AND Assignment/=a /= bأقسم قيمة a على قيمة b و خزن الناتج في a
Modulo AND Assignment%=a %= bأقسم قيمة a على قيمة b و خزن آخر رقم يبقى من عملية القسمة في a
Left shift AND Assignment<<=a <<= 2أزح آخر إثنين bits و ضعهم في الأول ثم خزن الناتج في a
Right shift AND Assignment>>=a >>= 2أزح أول اثنين bits و ضعهم في الآخر ثم خزن الناتج في a
Bitwise AND Assignment&=a &= bأحسب ناتج جمع الـ bits المشتركة بين a و b و خزن الناتج في a
Bitwise exclusive OR and Assignment^=a ^= bأحسب ناتج جمع الـ bits الغير مشتركة بين a و b و خزن الناتج في a
Bitwise inexclusive OR and Assignment|=a |= bأحسب ناتج جمع الـ bits المشتركة و الغير مشتركة بين a و b و خزن الناتج في a


شرح العوامل التي تستخدم لإعطاء قيم للمتغيرات في C++

العامل = (Basic Assign) في C++

العامل = يستخدم لإعطاء قيمة لمتغير.

مثال

Main.cpp
                    #include <iostream>
                    using namespace std;

                    int main()
                    {
                    int a = 10;

                    cout << "a = " << a;

                    return 0;
                    }
                  

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

                    a = 10
                  


العامل += (Add and Assign) في C++

العامل += يستخدم لإضافة قيمة ما على قيمة المتغير بكود أقل.

مثال

Main.cpp
                    #include <iostream>
                    using namespace std;

                    int main()
                    {
                    int a = 10;
                    int b = 20;

                    a += b;        // a  =  a + b  =  10 + 20  =  30

                    cout << "a = " << a;

                    return 0;
                    }
                  

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

                    a = 30
                  


العامل -= (Susbtract and Assign) في C++

العامل -= يستخدم لطرح قيمة ما من قيمة المتغير بكود أقل.

مثال

Main.cpp
                    #include <iostream>
                    using namespace std;

                    int main()
                    {
                    int a = 10;
                    int b = 20;

                    a -= b;           // a  =  a - b  =  10 - 20  =  -10

                    cout << "a = " << a;

                    return 0;
                    }
                  

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

                    a = -10
                  


العامل *= (Multiply and Assign) في C++

العامل *= يستخدم لضرب قيمة المتغير بقيمة ما بكود أقل.

مثال

Main.cpp
                    #include <iostream>
                    using namespace std;

                    int main()
                    {
                    int a = 10;
                    int b = 20;

                    a *= b;   // a  =  a * b  =  10 * 20  =  200

                    cout << "a = " << a;

                    return 0;
                    }
                  

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

                    a = 200
                  


العامل /= (Divide and Assign) في C++

العامل /= يستخدم لقسم قيمة المتغير على قيمة ما بكود أقل.

مثال

Main.cpp
                    #include <iostream>
                    using namespace std;

                    int main()
                    {
                    int a = 100;
                    int b = 20;

                    a /= b;   //   a  =  a / b  =  100 / 20  =  5

                    cout << "a = " << a;

                    return 0;
                    }
                  

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

                    a = 5
                  


العامل %= (Modulo and Assign) في C++

العامل %= يستخدم لتخزين الباقي من قسمة قيمة المتغير على قيمة ما بكود أقل.

مثال

Main.cpp
                    #include <iostream>
                    using namespace std;

                    int main()
                    {
                    int a = 10;
                    int b = 7;

                    a %= b;   //   a  =  a % b  =  10 % 7  =  3

                    cout << "a = " << a;

                    return 0;
                    }
                  

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

                    a = 3
                  


العامل <<= (Left shift and Assign) في C++

في المثال التالي, العامل <<= يعني إمسح bits من ناحية اليسار ثم بدل كل bit تم مسحها منهم بصفر و ضعهم من ناحية اليمين ثم ضع الناتج في المتغير من جديد.

مثال

Main.cpp
                    #include <iostream>
                    using namespace std;

                    int main()
                    {
                    int a = 10;
                    a <<= 2;   //   a  =  a << 2  =  00000000000000000000000000001010 << 2  =  00000000000000000000000000101000  =  40

                    cout << "a = " << a;

                    return 0;
                    }
                  

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

                    a = 40
                  


العامل >>= (Right shift and Assign) في C++

في المثال التالي, العامل >>= يعني إمسح bits من ناحية اليمين ثم بدل كل bit تم مسحها منهم بصفر و ضعهم من ناحية اليسار ثم ضع الناتج في المتغير من جديد.

مثال

Main.cpp
                    #include <iostream>
                    using namespace std;

                    int main()
                    {
                    int a = 10;
                    a >>= 2;   //   a  =  a >> 2  =  00000000000000000000000000001010 >> 2  =  00000000000000000000000000000010  =  2

                    cout << "a = " << a;

                    return 0;
                    }
                  

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

                    a = 2
                  


العامل &= (Bitwise and Assign) في C++

العامل &= يعني أحسب ناتج جمع الـ bits المشتركة بين المتغير a و المتغير b ثم خزن الناتج في المتغير a.

مثال

Main.cpp
                    #include <iostream>
                    using namespace std;

                    int main()
                    {
                    int a = 10;
                    int b = 75;

                    a &= b;   //   a  =  a & b  =  00000000000000000000000000001010  &  00000000000000000000000001001011  =  00000000000000000000000000001010  =  10

                    cout << "a = " << a;

                    return 0;
                    }
                  

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

                    a = 10
                  


العامل |= (Bitwise exclusive OR and Assign) في C++

العامل |= يعني أحسب ناتج جمع الـ bits المشتركة و الغير مشتركة بين المتغير a و المتغير b ثم خزن الناتج في المتغير a.

مثال

Main.cpp
                    #include <iostream>
                    using namespace std;

                    int main()
                    {
                    int a = 10;
                    int b = 75;

                    a |= b;   //   a  =  a | b  =  00000000000000000000000000001010  |  00000000000000000000000001001011  =  00000000000000000000000001001011  =  75

                    cout << "a = " << a;

                    return 0;
                    }
                  

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

                    a = 75
                  

عوامل أخرى مهمة جدا في C++

إسم العاملرمزهإستخدامه
Conditional?:يطلق عليه أيضاً إسم Ternary Operator لأنه يأخذ ثلاث عناصر ليعمل.
يمكن إستعماله بدل جمل الشرط if و else في حال كنت تريد إعطاء قيمة للمتغير.
Size ofsizeof()يستخدم لمعرفة حجم المساحة المخصصة في الذاكرة لأي شيء يتم تمريره بين القوسين.
الرقم الذي يتم إرجاعه يمثل الحجم بالـ Byte.
Address&يستخدم لمعرفة عنوان المساحة المخصصة في الذاكرة للشيء الذي يتم وضعه بعده مباشرةً.
العنوان الذي يتم إرجاعه يتم إرجاعه بشكل Hexadecimal.
Pointer*يستخدم لوضع مؤشر لشيء تم تعريفه مما يجعلك قادر على الوصول إليه بشكل مباشر من أي مكان تريد من خلال عنوانه في الذاكرة.
Comma,تستخدم الفاصلة لتنفيذ أكثر من عملية حسابية و من ثم إسناد قيمتها كلها في متغير واحد.
مع الإشارة إلى أنه يجب وضع فاصلة بين كل عملتين تفوم بوضعهما.


عوامل أخرى مهمة في C++

العامل ?: (Conditional Operator) في C++

العامل ?: يقال له Conditional أو Ternary Operator لأنه يأخذ ثلاث عناصر ليعمل.
يمكن إستعماله بدل جمل الشرط if و else في حال كنت تريد إعطاء قيمة للمتغير.


بنا العامل ?: (Conditional Operator) في C++

variable x = (expression) ? value if true : value if false
  • expression:   يمثل الشرط الذي نضعه.

  • value if true:   تمثل القيمة التي ستعطى للمتغير x إذا تحقق الشرط نضعها بعد الرمز ?.

  • value if false:   تمثل القيمة التي ستعطى للمتغير x إذا لم يتحقق الشرط نضعها بعد الرمز :.



المثال الأول

Main.cpp
                    #include <iostream>
                    using namespace std;

                    int main()
                    {
                    int a = 10;

                    // b إن لم تكن كذالك سيتم وضع القيمة 30 في المتغير ,b تساوي 1 سيتم وضع القيمة 20 في المتغير a إذا كانت قيمة المتغير
                    int b = (a == 1) ?20 :30;

                    cout << "b = " << b;

                    return 0;
                    }
                  

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

                    b = 30
                  

نلاحظ أنه تم وضع القيمة 30 في b لأن نتيجة الشرط كانت false.


المثال الثاني

Main.cpp
                    #include <iostream>
                    using namespace std;

                    int main()
                    {
                    int a = 10;

                    // b إن لم تكن كذالك سيتم وضع القيمة 30 في المتغير ,b أكبر من 1 سيتم وضع القيمة 20 في المتغير a إذا كانت قيمة المتغير
                    int b = (a > 1) ?20 :30;

                    cout << "b = " << b;

                    return 0;
                    }
                  

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

                    b = 20
                  

نلاحظ أنه تم وضع القيمة 20 في b لأن نتيجة الشرط كانت true.

العامل sizeof() (Size Of Operator) في C++

يستخدم لمعرفة حجم المساحة المخصصة في الذاكرة لأي شيء يتم تمريره بين القوسين.
الرقم الذي يتم إرجاعه يمثل الحجم بالـ Byte.


المثال الأول

Main.cpp
                    #include <iostream>
                    using namespace std;

                    int main()
                    {
                    // C++ هنا قمنا بطباعة الحجم الذي يتطلبه كل نوع جاهز في لغة
                    cout << "Size of char: " << sizeof(char) << endl;
                    cout << "Size of int: " << sizeof(int) << endl;
                    cout << "Size of float: " << sizeof(float) << endl;
                    cout << "Size of double: " << sizeof(double) << endl;
                    cout << "Size of short int: " << sizeof(short int) << endl;
                    cout << "Size of long int: " << sizeof(long int) << endl;
                    cout << "Size of long long int: " << sizeof(long long int) << endl;
                    cout << "Size of long double: " << sizeof(long double) << endl;

                    return 0;
                    }

                  

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

                    Size of char: 1
                    Size of int: 4
                    Size of float: 4
                    Size of double: 8
                    Size of short int: 2
                    Size of long int: 4
                    Size of long long int: 8
                    Size of long double: 12
                  


المثال الثاني

Main.cpp
                    #include <iostream>
                    using namespace std;

                    int main()
                    {
                    // int و نوعه x هنا قمنا بتعريف متغير إسمه
                    int x = 5;

                    // x هنا قمنا بطباعة الحجم الذي تم حجزه في الذاكرة من أجل المتغير
                    cout << "Size of x in memory: " << sizeof(char) << " Byte\n";

                    return 0;
                    }

                  

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

                    Size of x in memory: 1 Byte
                  

العامل & (Address) في C++

يستخدم لمعرفة عنوان المساحة المخصصة في الذاكرة للشيء الذي يتم وضعه بعده مباشرةً.


مثال

Main.cpp
                    #include <iostream>
                    using namespace std;

                    int main()
                    {
                    // int و نوعه x هنا قمنا بتعريف متغير إسمه
                    int x = 5;

                    // في الذاكرة x هنا قمنا بطباعة عنوان المساحة التي تم تخصيصها للمتغير
                    cout << "Address of x in memory: " << &x;

                    return 0;
                    }
                  

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

                    Address of x in memory: 0x72feec
                  

العامل * (Pointer) في C++

يستخدم لوضع مؤشر للشيء عند تعريفه مما يجعلك قادر على الوصول إليه بشكل مباشر من أي مكان تريد من خلال عنوانه في الذاكرة.


مثال

Main.cpp
                    #include <iostream>
                    using namespace std;

                    int main()
                    {
                    // 5 و قيمته x هنا قمنا بتعريف متغير إسمه
                    int x = 5;

                    // x و قمنا بتعريفه كمؤشر للمتغير y هنا قمنا بتعريف متغير إسمه
                    // أصبحا يشيران لنفس القيمة المخزنة في الذاكرة y و المتغير x إذاً المتغير
                    int *y = &x;

                    // x و التي هي نفسها قيمة المتغير y هنا قمنا بطباعة القيمة الموضوعة في المتغير
                    cout << "y contain x value which is: " << *y;

                    return 0;
                    }
                  

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

                    y contain x value which is: 5
                  

ملاحظة

ستتعرف على المؤشرات و كيفية التعامل معهم بشكل مفصل لاحقاً في الدورة; و يكفي أن تفهم معنى كلمة مؤشر.

العامل , (Comma) في C++

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


مثال

Main.cpp
                    #include <iostream>
                    using namespace std;

                    int main()
                    {
                    // x هنا قمنا بتعريف متغير إسمه
                    int x;

                    // s تساوي 1, ثم أضفنا عليها 2, ثم ضربناها بالرقم 5. و في النهاية وضعنا الناتج في المتغير x هنا قمنا بجعل قيمة
                    int s = (x = 1, x += 2, x *= 5);

                    // s هنا قمنا بطباعة قيمة المتغير
                    cout << "s = ((1) + 2) * 5 = " << s;

                    return 0;
                    }
                  

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

                    s = ((1) + 2) * 5 = 15