البرمجة بلغة السى – 6 - العوامل (المؤثرات) Operators
منتديات الهندسة الكهربية والإلكترونية والميكاترونكس والكومبيوتر :: الفئة الأولى :: منتدى البرمجة بلغة السى C Programming
صفحة 1 من اصل 1
البرمجة بلغة السى – 6 - العوامل (المؤثرات) Operators
البرمجة بلغة السى – 6 - العوامل (المؤثرات) Operators
العوامل (المؤثرات) هى الرموز التى تعمل (تؤثر) على القيم أو المتغيرات . على سبيل المثال : الرمز '+' هو عامل (مؤثر) لتنفيذ عملية الجمع .
لغة السى بها مدى واسع من العوامل لتنفيذ العمليات المختلفة . لفهم العوامل بشكل جيد يمكن تصنيف هذه العوامل كما يلى :
• عوامل حسابية .
• عوامل التزايد والتناقص .
• عوامل التخصيص .
• عوامل المقارنة .
• عوامل منطقية .
• عوامل الشرط .
• عوامل موجهة لتعامل مع البت المفردة .
• عوامل خاصة .
العوامل الحسابية Arithmetic Operators :
• العامل '+' للجمع .
• العامل '-' للطرح .
• العامل '*' للضرب .
• العامل '/' للقسمة .
• العامل '%' لباقى خارج القسمة .
مثال على عمل العوامل الحسابية :
- الكود:
/* Program to demonstrate the working of arithmetic operators in C. */
#include <stdio.h>
int main(){
int a=9,b=4,c;
c=a+b;
printf("a+b=%d\n",c);
c=a-b;
printf("a-b=%d\n",c);
c=a*b;
printf("a*b=%d\n",c);
c=a/b;
printf("a/b=%d\n",c);
c=a%b;
printf("Remainder when a divided by b=%d\n",c);
return 0;
}
الخرج :
- الكود:
a+b=13
a-b=5
a*b=36
a/b=2
Remainder when a divided by b=1
الشرح :
هنا : العوامل (+ , - , *) تنفذ بشكل عادى كما تتوقع . فى الحساب العادى 9/4 = 2.25 . ولكن فى هذا البرنامج الخرج يكون "2" والسبب كل من a و b أعداد صحيحة ، لذلك يكون الخرج عدد صحيح ويهمل المترجم ما بعد العلامة العشرية ويظهر النتيجة "2" بدلا من "2.25' . وأخيرا ، نتيجة a%b تكون "1" ، بمعنى أنه عندما يكون a = 9 ويتم قسمتها على b = 4 فإن باقى عملية القسمة يكون "1' .
مثال :
- الكود:
Suppose a=5.0, b=2.0, c=5 and d=2
In C programming,
a/b=2.5
a/d=2.5
c/b=2.5
c/d=2
ملحوظة :
العامل % يمكن أن يستخدم مع الأعداد الصحيحة فقط .
عوامل التزايد Increment والتناقص Decrement :
فى لغة السى تسمى الرموز (++) و (--) بعوامل التزايد والتناقص على الترتيب . كل منهما يكون عامل "أحادى" أى يستخدم معامل operand فردى . عامل التزايد (++) يضيف (يجمع) واحد (1) إلى المعامل ، وعامل التناقص (--) يطرح واحد (1) من المعامل . على سبيل المثال :
- الكود:
Let a=5 and b=10
a++; //a becomes 6
a--; //a becomes 5
++a; //a becomes 6
--a; //a becomes 5
الفرق بين العامل (++) والعامل (--) كسابقة أو كلاحقة :
عند استخدام عامل التزايد (++) كسابقة ، مثل ++var ، فسوف يتم تزايد قيمة المتغير var ثم إعادته ، ولكن إذا تم استخدام عامل التزايد (++) كلاحقة ، مثل var++ ، فسوف يتم إعادة قيمة المتغير (المعامل) أولا ثم يتم تزايده . يمكن توضيح ذلك بواسطة المثال التالى :
- الكود:
#include <stdio.h>
int main(){
int c=2,d=2;
printf("%d\n",c++); //this statement displays 2 then, only c incremented by 1 to 3.
printf("%d",++c); //this statement increments 1 to c then, only c is displayed.
return 0;
}
الخرج :
- الكود:
2
4
عوامل التخصيص Assignment Operators :
عامل التخصيص الأكثر شيوعا هو ( = ) . هذا العامل يخصص القيمة الموجودة بالجانب الأيمن لما هو موجود بالجانب الأيسر . على سبيل المثال :
- الكود:
var=5 //5 is assigned to var
a=c; //value of c is assigned to a
5=c; // Error! 5 is a constant.
Operator Example Same as
= a=b a=b
+= 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
عوامل المقارنة Relational Operators :
عوامل المقارنة تختبر العلاقة بين معاملين . إذا كانت العلاقة صواب true فإنها ترجع القيمة واحد (1) وإذا كانت العلاقة خطأ false فإنها ترجع القيمة صفر (0) . على سبيل المثال :
a>b
هنا ، الرمز (>) هو عامل مقارنة ، فإذا كان (a) أكبر من (b) فإن العبارة a>b ترجع الواحد (1) ، وإن لم تكن عندئذ فإنها ترجع الصفر (0) .
فى لغة السى ، تستخدم عوامل المقارنة فى اتخاذ القرار وفى الحلقات .
- الكود:
Operator Meaning of Operator Example
== Equal to 5==3 returns false (0)
> Greater than 5>3 returns true (1)
< Less than 5<3 returns false (0)
!= Not equal to 5!=3 returns true(1)
>= Greater than or equal to 5>=3 returns true (1)
<= Less than or equal to 5<=3 return false (0)
العوامل المنطقية Logical Operators :
تستخدم العوامل المنطقية فى تجميع تعبيرات تحتوى على عوامل المقارنة .
فى لغة السى يوجد 3 عوامل منطقية :
- الكود:
Operator Meaning of Operator Example
&& Logial AND If c=5 and d=2 then,((c==5) && (d>5)) returns false.
|| Logical OR If c=5 and d=2 then, ((c==5) || (d>5)) returns true.
! Logical NOT If c=5 then, !(c==5) returns false.
الشرح :
من أجل أن يكون التعبير ((c==5)&&(d>5)) صواب true ، يجب أن يكون "كل من" التعبيرين c==5 و d>5 صواب ، ولكن (d>5) خطأ ، فى المثال المعطى . لذلك فإن التعبير الكلى يكون خطأ .
من أجل أن يكون التعبير ((c==5) ||(d>5)) صواب ، يجب أن يكون "أى من" التعبيرين صواب . ونظرا لأن (c==5) صواب فإن التعبير الكلى يكون صواب . وحيث أن التعبير (c==5) صواب فإن التعبير !(c==5) يكون خطأ .
عوامل الشرط Conditional Operators :
عامل الشرط يأخذ 3 معاملات ويتكون من رمزين هما "?" و ":-" . فى لفة السى تستخدم عوامل الشرط فى اتخاذ القرار . على سبيل المثال :
- الكود:
c=(c>0)?10:-10;
إذا كانت c أكبر من "0" ، سوف تكون c بالقيمة "10" ، وغذا كانت ر أقل من "0" فإن c سوف تكون بالقيمة "-10" .
عوامل البت المفردة Bitwise Operators :
عامل البت المفردة يعمل على كل بت من البيانات . تستخجم هذه العوامل للبرمجة على مستوى البت .
- الكود:
Operators Meaning of operators
& Bitwise AND
| Bitwise OR
^ Bitwise exclusive OR
~ Bitwise complement
<< Shift left
>> Shift right
العوامل الأخرى :
عامل الفاصلة :
يستخدم عامل الفاصلة لربط التغبيرات المرتبطة ببعضها البعض معا . على سبيل المثال :
- الكود:
int a,c=5,d;
العامل sizeof :
هو عامل فردى والذى يستخدم فى إيجاد حجم نوع البيانات ، والثوابت ، والهياكل وغيرها . على سبيل المثال :
- الكود:
#include <stdio.h>
int main(){
int a;
float b;
double c;
char d;
printf("Size of int=%d bytes\n",sizeof(a));
printf("Size of float=%d bytes\n",sizeof(b));
printf("Size of double=%d bytes\n",sizeof(c));
printf("Size of char=%d byte\n",sizeof(d));
return 0;
}
الخرج :
- الكود:
Size of int=4 bytes
Size of float=4 bytes
Size of double=8 bytes
Size of char=1 byte
عوامل الشرط ( ?: ) :
تستخدم عوامل الشرط الشرط فى اتخاذ القرار ، بمعنى تنفيذ عبارات مختلفة تبعا لاختبار شرط فى حالة كونه صواب true أو خطأ false .
صيغة عوامل الشرط :
- الكود:
conditional_expression?expression1:expression2
إذا كان اختبار الشرط صواب true ، يتم تنفيذ التعبير expression1 وإذا كان خطأ false يتم تنفيذ التعبير expression2 .
مثال على عامل الشرط :
- الكود:
#include <stdio.h>
int main(){
char feb;
int days;
printf("Enter l if the year is leap year otherwise enter 0: ");
scanf("%c",&feb);
days=(feb=='l')?29:28;
/*If test condition (feb=='l') is true, days will be equal to 29. */
/*If test condition (feb=='l') is false, days will be equal to 28. */
printf("Number of days in February = %d",days);
return 0;
}
الخرج :
- الكود:
Enter l if the year is leap year otherwise enter n: l
Number of days in February = 29
مواضيع مماثلة
» البرمجة بلغة السى – 7 - اسبقية (أولوية) وارتباط العوامل
» دروس البرمجة بلغة السى - 1 - مقدمة C Programming
» البرمجة بلغة السى – الجزء الثانى -2- حلقة for
» البرمجة بلغة السى –4- أنواع البيانات
» البرمجة بلغة السى –3- المتغيرات والثوابت
» دروس البرمجة بلغة السى - 1 - مقدمة C Programming
» البرمجة بلغة السى – الجزء الثانى -2- حلقة for
» البرمجة بلغة السى –4- أنواع البيانات
» البرمجة بلغة السى –3- المتغيرات والثوابت
منتديات الهندسة الكهربية والإلكترونية والميكاترونكس والكومبيوتر :: الفئة الأولى :: منتدى البرمجة بلغة السى C Programming
صفحة 1 من اصل 1
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى