recent
أخبار ساخنة

المؤثرات و أنواعها في لغة C

AM VIIP
الصفحة الرئيسية
المؤثرات و أنواعها في لغة سي

المؤثرات Operators

المؤثرات ( Operators ) هي عبارة عن رموز خاصة تُستخدَم في العمليات الحسابية مثل الجمع و الطرح و القسمة و المنطقية التي تجري على المتغيرات و توجد عدة أنواع من المؤثرات وهي:

  • المؤثرات الحسابية العادية مثل (الجمع, الطرح, الضرب, القسمة, باقي القسمة...الخ).
  • المؤثرات المنطقية ( Logical Operators ) و تعتمد على المؤثرات العلائقية في نتيجتها و لها رموزها الخاصة.
  • المؤثرات العلائقية تعتمد على المقارنة بين قيمة و قيمة أخرى, حيث النتيجة إما صحيحة(true) أو خاطئة (false).

في المؤثر المنطقي الثاني من النقاط السابقة الناتج يكون 1 إذا كانت الإجابة صحيحة و يكون 0 إذا كانت خاطئة إعتماداً على جدول الصواب و الخطأ لكل مؤثر, و تستخدم لتكوين جملة شرط مثل

if(c==s && d==b)

في هذا السطر المؤثر && لوضع شرط التساوي بين طرفين.

 

مؤثر الجمع في لغة سي

مؤثر الجمع يأخذ الرمز (+) و تكون مهمته الجمع بين الأعداد أو النصوص في حال كنا نريد دمج نصوص.

#include<stdio.h>
main()
{
int a , b , c;
a=1;
b=4;
c=a+b;
printf("%d",c);
}

في هذا الكود قمت بالإعلان عن ثلاث متغيرات, الأول a و أعطيته قيمة 1 و الثاني هو b و أعطيته قيمه 4 و أما c فهي ناتج جمع a+b. فإنه سيقوم بجمع المتغير الأول مع الثاني و تخزين ناتجهم في المتغير الثالث و ناتج الجمع يساوي 5.

 

مؤثر الزيادة في لغة سي

مؤثر الزيادة Increment يرمز له بالرمز (++) و تعني زيادة رقم واحد 1 إلى المتغير الذي نريد الزيادة إليه مثلاً إذا أعطيت المتغير قيمة مبدئية قدرها 1 و قلت له في كل مرة زد من قيمه المتغير و إطبعه لي كما في المثال التالي.

#include<stdio.h>
main()
{
int cs;
cs=1;
printf("cs = %d\n",cs);
cs++;
printf("cs = %d\n",cs);
++cs;
printf("cs = %d\n",cs);
}

أعلنت عن متغير إسمه cs و قمت بإعطاء المتغير قيمه 1 و في كل مرة نقول له زد لنا في القيمة ثم إطبع. عند تشغيل الكود سوف تكون النتيجة هي

cs = 1
cs = 2
cs = 3

 

مؤثر الطرح في لغة سي

يرمز لمؤثر الطرح بالرمز (-) و يكون لطرح عددين من بعضهم ضمن عملية حسابية.

#include<stdio.h>
main()
{
int a, b, c;
a=10;
b=4;
c=a-b;
printf("%d",c);
}

في هذا الكود قمت بالإعلان عن ثلاث متغيرات الأول a و أعطيته قيمه 10 و الثاني هو b و أعطيته قيمه 4. و أما c فهي ناتج طرح a-b, فإنه سيقوم بطرح المتغير الأول من الثاني و تخزين ناتجه في المتغير الثالث و ناتج الجمع يساوي 5.

 

مؤثر النقصان في لغة سي

للنقصان Decrement نستخدم المؤثر (--) و تعني تنقيص رقم واحد 1 إلى المتغير الذي نريد النقصان منه مثلاً إذا أعطيت المتغير قيمة مبدئية قدرها 1 و قلت له في كل مرة قم بإنقاص من قيمه المتغير و إطبعه لي كما في المثال التالي.

#include<stdio.h>
main(){
int cs;
cs=3;
printf("cs = %d\n",cs);
cs--;
printf("cs = %d\n",cs);
--cs;
printf("cs = %d\n",cs);
}

أعلنت عن متغير إسمه cs و قمت بإعطاء المتغير قيمة 3 و في كل مرة نقل له أنقص لنا في القيمه ثم إطبع. عند تشغيل الكود سوف تكون النتيجة هي

cs = 3
cs = 2
cs = 1

 

مؤثر باقي القسمة في لغة سي

تعني بإيجاد باقي القسمة بين العددين و الرمز المعروف له هو (%).

#include<stdio.h>
main()
{
printf("%d\n",5%3);
printf("%d\n",3%5);
}

التنفيذ, ناتج القسمة في جملة الطباعة الأولى هي 2 و في الثانيه هي 3.

 

المؤثرات العلائقية في لغة سي

المؤثرات العلائقية Relational Operators تعتمد على المقارنة بين قيمة و قيمة أخرى، حيث النتيجة إما صحيحة(true) أو خاطئة (false), سيطبع واحد إذا كانت النتيجة صحيحه و صفر إذا كانت خاطئه.

#include<stdio.h>
main(){
printf("%d\n",4<3);
printf("%d\n",2==3);
printf("%d\n",7>3);
}

و الناتج سيكون

0
0
1

 

المؤثرات المنطقية في لغة سي

تعتمد المؤثرات المنطقية Logical Operators في نتيجتها على رموزها الخاصة, الناتج 1 إذا كانت الإجابة صحيحة و 0 إذا كانت خاطئة إعتماداً على جدول الصواب والخطأ لكل مؤثر.

#include<stdio.h>
main()
{
printf("%d\n", 5<3 && 5>3);
printf("%d\n", 5==3 && 5==3);
printf("%d\n", 5>3 && 5<3);
printf("%d\n", 5<3 || 5>3 );
printf("%d\n", 5<3 || 5!=3);
printf("%d\n", 5<3 || 5>3);
printf("%d\n", !5<3);
printf("%d\n", !5<=3);
printf("%d\n", !5<5);

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

0
0
0
1
1
1
1
1
1

 

مؤثرات المقارنة لغة سي

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

 

رموز عمليات المقارنة في لغة سي

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

  1. علامة المساواة ( == ).
  2. علامة اللامساواة ( =! ).
  3. علامة أكبر من ( < ).
  4. علامة أصغر من ( > ).
  5. علامة أكبر من أو يساوي ( =< ).
  6. علامة اصغر من أو يساوي ( => ).

بالنسبة للمساواة == يكون ناتجها صح True فقط في حال كانت كلتا الحالتين متساويتين تماماً و عدا عن ذلك فالناتج خطأ False.

5 == 4 //False
5 == 5 //True

النسبة لعدم المساواة =! فيكون ناتجها خاطئ False فقط في حال كانت كلتا القيمتين متساويتين تماماً عدا ذلك فالناتج صحيح True أي أنها معاكسة تماماً لمبدأ عملية المساواة كما يلي.

5 != 4 //False
5 != 5 //True

بالنسبة لعملية المقارنة اكبر من < فناتجها يكون صحيح في حال كانت القيمة الأولى من الجهة اليسرى اكبر من القيمة الثانية من الجهة اليمنى.

8 > 2 //True
8 > 8 //False

فهذا هو الإختلاف الرئيسي بين عمليتي اكبر من و اكبر او يساوي =< حيث سيكون الناتج True عند إستخدام عملية اكبر من او يساوي.

8 >= 8 //True

ناتج صحيح لأن 8 تساوي 8.

بالنسبة لعمليتي المقارنة اصغر من > و اصغر او يساوي => فهي مشابهة لمبدأ عمليتي اكبر من و اكبر او يساوي, إلا أنها معاكسة لها. فعملية اصغر من ناتجها سيكون True في حال كانت القيمة الأولى في الجهة اليسرى اصغر من القيمة الثانية في الجهة اليمنى و عملية => ناتجها True في حال كانت القيمة الأولى اصغر من القيمة الثانية أو انهما متساويان.

 

ماذا نستفيد من ناتج عمليات المقارنة و كيف نستخدمها؟

يمكن إستخدام عمليات المقارنة في الجمل الشرطية كـ جملة if التي تعرَّفنا عليها في الدروس السابقة, كما. يوجد في لغة سي C نوع بيانات خاص يسمى bool و يرمز للمصطلح boolean حيث يحتمل هذا النوع إما True او False. يمكننا تعريف متغير بيانات bool تماماً بنفس طريقة تعريف اي متغير آخر مثل (int, float).

مثال

#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
int main(int argc, char** argv)
{
    int x = 1;
    int y = 5;
    bool var = x == y;
    printf("x==y ? %d",var);
    return 0;
}

قُمنا بإنشاء مُتغيرين و هما x يساوي 1 و مُتغير آخر و هو y يساوي 5 ثم أنشأنا متغير من نوع bool و إسمه var و عيننا له القيمة هي x==y ثم قُمنا بطباعة الـ var. ونتيجته هي:

x == y ? 0

نلاحظ أنه طَبَعَ لنا القيمة 0 أي تعني False و هي أن 1 لا يساوي الـ 5, أما إذا وضعنا للمتغير x القيمة 5 و المتغير y يبقى نفس القيمة 5 حينها سيتحقق هذا الأمر و يطبع لنا رقم 1 أي True كما بالشكل.\

x == y ? 1
google-playkhamsatmostaqltradent