بنيات
التحكم(II) -
Control
Structures(II)
باستعمال عوامل التعين الحسابي
يمكن إعادة كتابة تعبير مثل:
x=x+2
على
النحو
x+=2
يأخذ عامل التعين الحسابي
=+ القيمة الموجودة على يمينه ويضيفها إلى المتغير الموجود على يساره. هنالك تعين حسابي
لكل من العوامل الحسابية:-
a+= b a= a+ b
a-= b a= a- b
a*= b a= a* b
a/= b a= a/ b
a%= b a= a% b
مثال:
//Program 3-1:
#include<iostream.h>
main
( )
{
int
n;
cin
>> n;
cout<<
“ n after adding 2 = “ << a+= 2 <<endl;
cout<<
“ n after a subtracting 2 = “ << a-= 2 <<endl;
cout<<
“ n after dividing by 2 = “ << a/=
2 <<endl;
cout<<
“ n after multiplying by 2 = “ <<
a*= 2 <<endl;
cout<<
“ n mod 2 = “ << a %= 2
<<endl;
return
0;
}
الخرج من البرنامج إذا
أدخلنا
n =10
10
n
after adding 2 = 12
n
after a subtracting 2 = 8
n
after dividing by 2 = 5
n
after multiplying by 2 = 20
n
mod 2 = 0
هناك دائماً حاجة في
البرمجة إلى زيادة 1 أو طرح 1 . هذه الحالات شائعة لدرجة أن C++ تتضمن عاملين خاصين
ينفذان هذه المهمة، يقوم عامل التناقص (--) بطرح 1 من
المتغير ويضيف عامل التزايد (++) 1 إليه ، المثال الآتي يبين طريقة الاستعمال:-
++a
a++
معناه إضافة 1 إلى a، ويمكن كتابته بصورة مكافئة على النحو a=a+1 وبالطريقة نفسها
يمكن إنقاص 1 من قيمة a على النحو --a أو a-- وهو يكافئ a=a-1.
ومما يجب التنبيه إليه
هنا أن هنالك فرق بين ++ a أو a++ فعلى الرغم من كليهما
يجمع 1 إلى a إلا أنه عند استعمال
++a تستخرج قيمة
التعبير باستعمال قيمة a الحالية قبل زيادتها
وينطبق هذا أيضاً على --a وa-- .
//Program 3-2:
#include<iostream.h>
main
( )
{
int
c;
c
= 5;
cout
<< c << endl;
cout
<< c++ <<endl;
cout
<< c <<endl;
c=5;
cout
<< c << endl << endl;
cout
<< ++c << endl;
cout
<< c << endl;
return 0;
//Continued
}
الخرج من البرنامج:
يمكن العمل على القيم
صحيح/خطأ بواسطة العوامل المنطقية ، هنالك ثلاثة عوامل منطقية في C++ هي
Not,Or,And كما موضح في الجدول
أدناه:-
يكون التعبير and
صحيحاً فقط إذا كان التعبيرين الموجودان على جانبي
العامل && صحيحين بينما يؤدى العامل or إلى نتيجة صحيحة
إذا كان أحد التعبيرين أو كليهما صحيحاً. العامل not
(!) يبطل تأثير المتغير الذي يليه لذا التعبير !x صحيح إذا كان المتغير x خطأ وخطأ إذا كان x صحيحاً.
أولوية
العوامل (Operator Precedence):-
يتم تنفيذ عمليات الضرب والقسمة في التعابير الرياضية
قبل عمليات الجمع والطرح . في التعبير التالي مثلاً :
10*10+2*3
يتم
ضرب 10*10 ثم يتم ضرب 2*3 وبعدها يتم جمع نتيجتي الضرب مما يؤدى إلى القيمة
100+6=106.
يتم تنفيذ عمليات الضرب
قبل الجمع لأن العامل * له
أولوية أعلى من أولوية العامل + .
نجد أن أولوية العوامل
مهمة في التعابير الرياضية العادية كما أنها مهمة أيضاً عند استعمال عوامل C++
المختلفة ،
الجدول التالي يبين ترتيب أولويات العوامل في C++ من الأعلى إلى
الأدنى.
|