البرمجة بلغة السى – 6 - العوامل (المؤثرات) Operators

استعرض الموضوع السابق استعرض الموضوع التالي اذهب الى الأسفل

البرمجة بلغة السى – 6 - العوامل (المؤثرات) Operators

مُساهمة من طرف Admin في الأربعاء يناير 29, 2014 7:17 pm


البرمجة بلغة السى –  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


Admin
Admin

عدد المساهمات : 935
تاريخ التسجيل : 28/01/2014

معاينة صفحة البيانات الشخصي للعضو http://fathallaabdelaziz.forumarabia.com

الرجوع الى أعلى الصفحة اذهب الى الأسفل

استعرض الموضوع السابق استعرض الموضوع التالي الرجوع الى أعلى الصفحة


 
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى