درسنا اليوم هو دالة الشرط (if) قبل أن ابداء بدرس دالة الشرط أحب أن اضع هذا الجدول الذي يحوي على ادوات المقارنة:
ادات الربط | فائدتها |
---|---|
== | يساوي |
!= | لا يساوي |
< | اكبر من |
> | اصغر من |
=< | اكبر من او يساوي |
=> | اصغر من او يساوي |
دالة الشرط: if
وهي من أهم الدوال المستخدمة في اللغة وطريقتها أن يتحقق البرنامج من تحقق الشرط فإذا تحقق الشرط عمل بما بعد الشرط.
فكأنك تقول للمترجم (إذا تحقق الشرط فاعمل كذا ) ويكتب الكود بهذه الطريقة:
If (statement);
طبعا (statement) هي جملة الشرط وبالمثال يتضح المقال: طبعا هذا المثال سوف يقارن بين قيمة X و Y وإذا كان قيمة X أكبر من Y فسوف يخرج قيمة X أما لو كان العكس فسوف يخرج من البرنامج .#include<iostream>using namespace std;int main (){int x,y;cout<<"enter tow number : ";cin>>x>>y;if (x>y)cout<<"the largest is : "<<x<<endl;system("pause");return 0;}
ولكن نحن لانريد أن يخرج من البرنامج نريده مثلا أن يحسب أكبر قيمة فما العمل؟ أقول هناك دالة أخرى وهي عكس دالة if وهي دالة(else) وعملها عكس عمل (if) فكانك تقول للمترجم (إذا لم يتحقق الشرط فاعمل كذا) ويكتب الكود بهذه الطريقة
else
وتستطيع أن تضيف ل (else)جملة شرط فيصبح الكود كذا: else if (statemint)
وانضر إلى هذا المثال وهو مثل المثال السابق ولكن قمنا بإضافة دالة (6/56) فأصبح البرنامج يطبع أكبر قيمة الأن البرنامج سيقارن بين X و Y وسيطبع أكبر قيمة. طيب لو أردت من البرنامج أن يقارن بين ثلاثة أرقام ثم يقوم بإخراج أوسط عدد فكيف تعمل ذالك؟ في الحقيقة هناك أدوات تستعمل لمثل هذه الأشياء وهي أدوات الربط وهي كالتالي:#include<iostream>using namespace std;int main (){int x,y;cout<<"enter tow number : ";cin>>x>>y;if (x>y)cout<<"the largest is"<<x<<endl;elsecout<<"the largest is :"<<y<<endl;system("pause");return 0;}
ادات الربط | فائدتها |
---|---|
And | && ومعناها و |
Or | || ومعناها أو |
الأن البرنامج سيقارن بين X و Y وسيطبع أكبر قيمة. طيب لو أردت من البرنامج أن يقارن بين ثلاثة أرقام ثم يقوم بإخراج أوسط عدد فكيف تعمل ذالك؟ في الحقيقة هناك أدوات تستعمل لمثل هذه الأشياء وهي أدوات الربط وهي كالتالي:
فكما ترون في الدالة الأولى للشرط قارنت بين X و Y و Z وطلبت من البرنامج أن يتحقق من X هل هو أكبر من Y وأصغر من Z أو أصغر من Y وأكبر من. Z فإذا تحقق هذا الشرطين طبع قيمة X#include<iostream>using namespace std;int main (){int x,y,z;cout<<"enter 3 number : ";cin>>x>>y>>z;if ((x>y&&x<z)||(x<y&&x>z))cout<<"the midel is : "<<x<<endl;else if((y<x&&y>z)||(y>x&&y<z))cout<<"the midel is :"<<y<<endl;elsecout<<"the midel is :"<<z<<endl;system("pause");return 0;}
أما إذا لم يتحقق الشرط فسوف ينتقل لشرط الثاني والشرط الثاني نفس الأول ولكن الفرق أنه سيطبع قيمة. Y
أما إذا لم يتحقق أي من الشرطين فسوف يقوم بطباعة قيمة Z
وهذا مثال اخر على ادات الربط or وهو برنامج يطلب من المستخدم إدخال درجته ثم يطبع له عبارة "pass" إذا كانت درجته أكبر من 60 أما إذا كانت أصغر من 60 فسوف يطبع عبارة "fail"أي رااسب ،وإذا أدخل المستخدم درجة أكبر من 100 أو أصغر من الصفر فسوف يطبع عبار ة " wrong in put " وتعني (مدخل خاطىء).
#include<iostream>using namespace std;int main ()
الان تعلمت كيفية استخدام دالة if الشرطية في لغة C++ الدرس التالي سيكون حول الحلقات التكرارية{//program of dgreeint mark;cout<<"enter mark : ";cin>>mark;if (mark<0||mark>100)cout<<"wrong number"<<endl;elseif (mark>60)cout<<"pass"<<endl;elsecout<<"fial"<<endl;system("pause");return 0;}