تحتوي C++ على أنواع عديدة من المعاملات Operators, و المعاملات هي رموز تقوم بتنفيذ عمليات مختلفة على المتحولات فهناك معاملات مختصة بالعمليات الرياضية و أخرى بالعمليات المنطقية ..الخ, و كنت قد تعاملت في الدروس السابقة مع معامل الجمع و معامل الإسناد, و ستتعرف الآن بعون الله تعالى على أنواع هذه المعاملات, و لكن قبل البدء سنفرض أن لدينا المتحولات التالية A = 5 و B = 3 و C = 10 و R الذي سنضع فيه النتيجة, حيث سنقوم بتطبيق الأمثلة عليهم.
يوجد في C++ أربع مجموعات من المعاملات مصنفة حسب الوظيفة التي تقوم بها و هي:
1. المعاملات الرياضية Mathematics Operators :
|
اسم المعامل |
رمزه |
وظيفته |
مثال |
|
الجمع |
+ |
يقوم بجمع متحولين على الأقل |
R = A + B è R = 8 |
|
الطرح |
- |
يقوم بطرح المتحولات |
R = A – B è R = 2 |
|
الضرب |
* |
يقوم بضرب المتحولات ببعضها البعض |
R = A*B è R = 15 |
|
القسمة |
/ |
لقسمة المتحولات* |
R = A/B è R = 1 |
|
باقي القسمة |
% |
لإظهار باقي قسمة عددين صحيحين حصراً |
R = A%B è R = 2 |
|
معامل الإسناد |
= |
الأمثلة السابقة كلها تشرح عمل معامل الإسناد | |
|
معامل الأقواس |
( ) |
تستخدم لتحديد أولوية معالجة العمليات |
R = (A+B)*C è R = 80 |
* في حال تم استخدام معامل القسمة مع أعداد صحيحة فإن ما بعد الفاصلة ستهمل من النتيجة, و كي لا تهمل الفاصلة يجب أن تكون المتحولات من النمط الذي يقبل الفاصلة أي من النمط float أو double
2. المعاملات المنطقية Logical Operators
تقوم المعاملات المنطقية بالمقارنة بين شيئين و بما أنها منطقية فإنها تعيد فقط أحد النتيجتين التاليتين فإذا كانت المقارنة صحيحة تعيد القيمة true أو 1 و إذا كانت المقارنة خاطئة فإنها تعيد القيمة false أو 0
|
اسم المعامل |
رمزه |
وظيفته |
مثال |
|
أكبر تماماً من |
< |
المقارنة |
R = A>B è R = 1 |
|
أصغر تماماً من |
> |
المقارنة |
R = A<B è R = 0 |
|
أكبر أو يساوي |
=< |
للمقارنة |
R = A >= B è R = 1 |
|
أصغر أو يساوي |
=> |
للمقارنة |
R = A <= B è R = 0 |
|
المساواة |
== |
للمقارنة |
R = A == B è R = 0 |
|
عدم المساواة |
=! |
للمقارنة |
R = A != B è R = 0 |
|
و |
&& |
تستخدم للتحقق من صحة شرطين معاً فإذا كان كلاهما صحيحاً يكون الناتج 1 أو true أما إذا كان أحدهما على الأقل خطأ فإنه يعيد القيمة 0 أو false | |
|
أو |
|| |
تستخدم للتحقق من صحة شرط واحد على الأقل, فإذا كان أحدهما أو كلاهما صحيحاً يكون الناتج 1 أو true حتى لو كان الثاني خاطئ أما إذا كان كليهما شرطين خاطئين فإنه يعيد القيمة 0 أو false | |
في كل من الأمثلة السابقة يتم تخزين نتيجة المقارنة في المتحول R فالمقارنة الأولى كانت نتيجة المقارنة صحيحة فتم تخزين القيمة 1 في المتحول R و في المقارنة الثانية كانت نتيجة المقارنة خاطئة فتم تخزين القيمة 0 في المتحول R سنذكر هنا مثالاً على && و ||
R = (A > B) && (C != 13 ) è R = 1 ;
لدينا هنا شرطين, الأول سيتحقق من أن المتحول A يحوي قيمة أكبر تماماً من المتحول B و الشرط الثاني سيتحقق من أن المتحول C يحوي قيمة لا تساوي من العدد 13 فإذا كان كلا الشرطين صحيح فسيخزن في المتحول R القيمة 1 و إذا كان أحد الشرطين على الأقل خطأ فسيتم تخزين القيمة 0 في المتحول R
R = (A == B) || (C <= 13) è R = 1 ;
لدينا هنا شرطين, الأول سيتحقق من أن المتحول A يساوي المتحول B و الشرط الثاني سيتحقق من أن المتحول C يحوي قيمة أصغر أو تساوي العدد 13 فإذا كان أحد الشرطين على الأقل صحيح فسيخزن في المتحول R القيمة 1 و إذا كان كلا الشرطين خاطئ فسيتم تخزين القيمة 0 في المتحول R
بقي لدينا نوعين من المعاملات وهما
3. المعاملات الأحادية Unary Operators
4. المعاملات على مستوى البت Bit-Wise Operators
و سنتكلم عنهما في الدروس القادمة إن شاء الله تعالى


ساحة النقاش