إن الجمل الشرطية لا تخلو من اي برنامج قد تقوم بانشاءه فهي بشكل بسيط يقوم بتنفيذ أمر معين عتد تحقيق شرط معين وكمثال يقوم بدخول الى بريدك الالكترونى عنما يكون كلمة المرور يساوى 36953265 فلابد من تحقيق الشرط في كلمة المرور حتى لا يدخل أحد غيرك الى بريدك فإذا الادوات الشرط في سي++ من الادوات المهمة جدا والشائعة لذلك ستنتعلمه الان
ولنأخذ مثالا بسيطا
#include <iostream.h>
[cofe]int main()
{
int Num;
cout<<"Please input a Number : ";
cin>>Num;
if(Num < 50)
{
cout<<"The Number is less than 50";
}
if(Num == 50)
{
cout<<"The Number is equal to 50";
}
if(Num > 50)
{
cout<<"The Number is bigger than 50";
}
return 0;
}
لقد بدأت السطور بالامر
cin<<Num;
هذا الامر جديد علينا ان معناه ادخل قيمة المتغير Num والذي اعلن عنه في بداية البرنامج على انه عدد صحيح فسوف يتوقف البرنامج عند هذا الامر ليطلب منك ادخال قيمة يخزنها في المتغير Num ليجري عليها العمليات التي تلي السطر المذكور سابقا
وألآن الى الاوامر التالية موضع شرحنا اليوم
if(Num < 50)
{
cout<<"The Number is less than 50";
}
والقاعدة هي الامر if ويفتح قوسين عاديين بينهما شروط حسب القاعدة السابق شرحها في اول الموضوع ثم قوس لبداية بلوك تعليمات واحد لفتح بداية بلوك والاخر للتحديد نهاية بلوك ومابداخل القوسين عدة تعليمات ينفذها البرنامج اذا تحقق الشرط
وهنا الشرط هو انك اذا ادخلت قيمة اصغر من 50 فمعنى ذلك تحقق الشرط وعليه سوف يطبع البرنامج الرسالة
cout<<"The Number is less than 50";
واذا لم يتحقق الشرط فلن يطبع الرسالة السابقه بل سيتحول الى السطور التالية
if(Num == 50)
{
cout<<"The Number is equal to 50";
}
بنفس الاسلوب السابق يختبر الامر if ماذا كان الرقم الذي ادخله المستخدم يساوي 50 فاذا كان ذلك صحيحا فسوف يقوم بتنفيذ الامر او الاوامر التي بداخل بلوك الشروط وهي
cout<<"The Number is equal to 50";
فاءذا لم يتحقق الشرط فسوف لن ينفذ البرنامج مابداخل بلوك الشروط وينتقل الى السطور التالية
if(Num > 50)
{
cout<<"The Number is bigger than 50";
}
فاذا تحقق الشرط هو ان العدد المدخل اكبر من خمسون فسوف ينفذ البرنامج الامر او الاوامر التي بداخل بلوك الشرط وهو الامر
cout<<"The Number is bigger than 50";
والا فسوف ينتقل البرنامج الى السطور التالية
return 0;
}
حيث ينتهي البرنامج ويخرج وتذكر قوس اغلاق البلوك وهو البلوك الرئيسي للدالة main
البرنامج السابق هو برنامج بسيط يقوم باستقبال رقم منك ليتعرف عليه ما اذا كان هذا الرقم اصغر من او يساوي او اكبر من 50 وفي كل حالة حسب ماتدخل من ارقام سوف يطبع لك الرسائل
·الرقم اصغر من 50
·الرقم يساوي 50
·الرقم اكبر من 50
بالطبع سوف تحصل على اجابة واحدة من الثلاثه حسب المدخلات
لنأخذ عدة اوامر شرطية في صورة فردية للشرح لدمج كل ماسبق شرحة في دالة واحدة
if (A == 5 && B == 7)
{
نفذ هذه الاوامر عند تحقق الشرط
}
الشرط هو ان تكون قيمة المتغير A تساوي خمسة وقيمة المتغير B تساوي 7 لتنفيذ ما بداخل بلوك الشروط فاءذا كانت مدخلاتك كما يلي
B A مدى تحقق الشرط
3 2 لايتحقق الشرط
5 3 لايتحقق الشرط
3 7 لايتحقق الشرط
5 7 يتحقق الشرط
7 5 لايتحقق الشرط
1 2 لايتحقق الشرط
ولمثال آخر بلوك الشروط التالية
if (A > 5 || B <= 7)
{
نفذ هذه الاوامر عند تحقق الشرط
}
وقد كان الشرط السابق ان تكون قيمة A اكبر من 5 أو قيمة B اصغر من او تساوي
7 فلو كانت ادخالاتك كمايلي
B A مدى تحقق الشرط
3 2 لايتحقق الشرط
5 3 لايتحقق الشرط
3 7 لايتحقق الشرط
7 2 يتحقق الشرط
10 8 لايتحقق الشرط
10 7 يتحقق الشرط
دائما يكون امامك حالة من اثنين مهما كانت الشروط التي تضعها
·الحالة الاولى تحقق الشرط او بمعنى آخر TRUE
·الحالة البديلة عدم تحقق الشرط او بمعنى FALSE
ان مابداخل اقواس الشروط ولا اقصد بلوك الشروط هو عملية حسابية – دائما كل شئ بالنسبة للكومبيوتر هي عمليات حسابية كل شي في الدنيا يمكن ان يعبر عنه بارقام من اسمك الى صورتك مرورا بخريطة بلدك او نوع الفاكهة التي تحبها – كل شئ نعم كل شئ هو عمليات حسابية – ربما نتطرق الى ذلك لااحقا – لاادري قد يجبرنا احد الامثلة على شرح ذلك – وناتج العملية الشرطية بالنسبة للكومبيوتر هو اما TRUE لينفذ مابداخل بلوك الشروط او FALSE لينفذ شروط اخرى داخل بلوك else اذا كان موجودا او يستكمل باقي سطور البرنامج كما حدث مع المثال السابق هذا يقودنا الى امر آخر من اوامر الشروط وهو في لغة c++ ودائما يكون تابع للامر if وهو الامر
else
انت لاتحتاج الآن لان اقول لك ان اوامر لغة سي في مجملها تكتب بحروف صغيرة ودعني اكمل شرح الامر السابق انه امر غير مستقل انه تابع بالطبع انت توافقني على ذلك انك لايمكن ان تسمع شخص يقول والا – الا اذا كان قد ذكر اشياء قبلها اذا هذا الامر تابع فاذا كنت تكره الاشخاص التابعين من ذوي الشخصيات الضعيفة فارجو الا يمتد بغضك هذا الى الامر else لانه امر هام ويسهل خطوات كثيرة وان كان يسهل الاستغناء عنه ودعنا نعبر عن ذلك بعدة سطور
if(GiveMe >= 50)
{
cout<<"Thank you – I like to take more than or equal 50 Rayals";
}
else
{
cout<<"I am very angry – I don’t like to take less than 50 Rayals";
}
جزء البرنامج السابق يعبر عن رد فعل احد الشحاذين فاذا اعطيته مبلغ اكبر من او يساوي 50 ريالا سوف يتحقق الشرط والنتيجة تكون TRUE لينفذ مابداخل بلوك الشروط لينفذ الامر الخاص بطبع رسالة شكر ليخبرك بأنه (الشحاذ ولست انا بالطبع) يقول لك شكرا انا دائما احب ان تعطيني مبلغ خمسون ريالا او اكثر واذا لم يتحقق الشرط اي ان نتيجة العملية الحسابية FALSE كأن تكون قد اعطيته اقل من 50 ريالا فسوف ينتقل التنفيذ مباشرا الى البلوك التابع else لينفذ مابداخل بلوكه وهي هنا رسالة ضيق وتبرم بأنه لايحب ان يأخذ اقل من خمسون ريالا حتى لوكانت المبلغ يقل بهللة واحدة فقط عن الخمسون ريالا انها عمليات حسابية ياصديقي العزيز وانا انصح من يمتهنون هذه المهنه ببرمجة روبوت بجزء البرنامج السابق مع مزيد من الشكر والأدعية في حالة تحقق الشرط وتبرم وضيق ولامانع من سيل من الشتائم في حالة عدم تحقق الشرط . ياله من روبوت رائع وسوف يختزن بداخله مبالغ مالية كثيرة سواء لخفة دمه في حالة تحقق الشرط او لقلة ادبه في حالة عدم تحقق الشرط.
سوف تختتم هذا الدرس بهذا الملخص الذي قد يقود الى قاعدة هامة
if(FALSE)
{
Not executed if its false
}
else
{
do all of this
}
انتهى الدرس
ولنأخذ مثالا بسيطا
Code
#include <iostream.h>
[cofe]int main()
{
int Num;
cout<<"Please input a Number : ";
cin>>Num;
if(Num < 50)
{
cout<<"The Number is less than 50";
}
if(Num == 50)
{
cout<<"The Number is equal to 50";
}
if(Num > 50)
{
cout<<"The Number is bigger than 50";
}
return 0;
}
لقد بدأت السطور بالامر
Code
cin<<Num;
هذا الامر جديد علينا ان معناه ادخل قيمة المتغير Num والذي اعلن عنه في بداية البرنامج على انه عدد صحيح فسوف يتوقف البرنامج عند هذا الامر ليطلب منك ادخال قيمة يخزنها في المتغير Num ليجري عليها العمليات التي تلي السطر المذكور سابقا
وألآن الى الاوامر التالية موضع شرحنا اليوم
Code
if(Num < 50)
{
cout<<"The Number is less than 50";
}
والقاعدة هي الامر if ويفتح قوسين عاديين بينهما شروط حسب القاعدة السابق شرحها في اول الموضوع ثم قوس لبداية بلوك تعليمات واحد لفتح بداية بلوك والاخر للتحديد نهاية بلوك ومابداخل القوسين عدة تعليمات ينفذها البرنامج اذا تحقق الشرط
وهنا الشرط هو انك اذا ادخلت قيمة اصغر من 50 فمعنى ذلك تحقق الشرط وعليه سوف يطبع البرنامج الرسالة
Code
cout<<"The Number is less than 50";
واذا لم يتحقق الشرط فلن يطبع الرسالة السابقه بل سيتحول الى السطور التالية
Code
if(Num == 50)
{
cout<<"The Number is equal to 50";
}
بنفس الاسلوب السابق يختبر الامر if ماذا كان الرقم الذي ادخله المستخدم يساوي 50 فاذا كان ذلك صحيحا فسوف يقوم بتنفيذ الامر او الاوامر التي بداخل بلوك الشروط وهي
Code
cout<<"The Number is equal to 50";
فاءذا لم يتحقق الشرط فسوف لن ينفذ البرنامج مابداخل بلوك الشروط وينتقل الى السطور التالية
Code
if(Num > 50)
{
cout<<"The Number is bigger than 50";
}
فاذا تحقق الشرط هو ان العدد المدخل اكبر من خمسون فسوف ينفذ البرنامج الامر او الاوامر التي بداخل بلوك الشرط وهو الامر
Code
cout<<"The Number is bigger than 50";
والا فسوف ينتقل البرنامج الى السطور التالية
Code
return 0;
}
حيث ينتهي البرنامج ويخرج وتذكر قوس اغلاق البلوك وهو البلوك الرئيسي للدالة main
البرنامج السابق هو برنامج بسيط يقوم باستقبال رقم منك ليتعرف عليه ما اذا كان هذا الرقم اصغر من او يساوي او اكبر من 50 وفي كل حالة حسب ماتدخل من ارقام سوف يطبع لك الرسائل
·الرقم اصغر من 50
·الرقم يساوي 50
·الرقم اكبر من 50
بالطبع سوف تحصل على اجابة واحدة من الثلاثه حسب المدخلات
لنأخذ عدة اوامر شرطية في صورة فردية للشرح لدمج كل ماسبق شرحة في دالة واحدة
Code
if (A == 5 && B == 7)
{
نفذ هذه الاوامر عند تحقق الشرط
}
الشرط هو ان تكون قيمة المتغير A تساوي خمسة وقيمة المتغير B تساوي 7 لتنفيذ ما بداخل بلوك الشروط فاءذا كانت مدخلاتك كما يلي
B A مدى تحقق الشرط
3 2 لايتحقق الشرط
5 3 لايتحقق الشرط
3 7 لايتحقق الشرط
5 7 يتحقق الشرط
7 5 لايتحقق الشرط
1 2 لايتحقق الشرط
ولمثال آخر بلوك الشروط التالية
Code
if (A > 5 || B <= 7)
{
نفذ هذه الاوامر عند تحقق الشرط
}
وقد كان الشرط السابق ان تكون قيمة A اكبر من 5 أو قيمة B اصغر من او تساوي
7 فلو كانت ادخالاتك كمايلي
B A مدى تحقق الشرط
3 2 لايتحقق الشرط
5 3 لايتحقق الشرط
3 7 لايتحقق الشرط
7 2 يتحقق الشرط
10 8 لايتحقق الشرط
10 7 يتحقق الشرط
دائما يكون امامك حالة من اثنين مهما كانت الشروط التي تضعها
·الحالة الاولى تحقق الشرط او بمعنى آخر TRUE
·الحالة البديلة عدم تحقق الشرط او بمعنى FALSE
ان مابداخل اقواس الشروط ولا اقصد بلوك الشروط هو عملية حسابية – دائما كل شئ بالنسبة للكومبيوتر هي عمليات حسابية كل شي في الدنيا يمكن ان يعبر عنه بارقام من اسمك الى صورتك مرورا بخريطة بلدك او نوع الفاكهة التي تحبها – كل شئ نعم كل شئ هو عمليات حسابية – ربما نتطرق الى ذلك لااحقا – لاادري قد يجبرنا احد الامثلة على شرح ذلك – وناتج العملية الشرطية بالنسبة للكومبيوتر هو اما TRUE لينفذ مابداخل بلوك الشروط او FALSE لينفذ شروط اخرى داخل بلوك else اذا كان موجودا او يستكمل باقي سطور البرنامج كما حدث مع المثال السابق هذا يقودنا الى امر آخر من اوامر الشروط وهو في لغة c++ ودائما يكون تابع للامر if وهو الامر
else
انت لاتحتاج الآن لان اقول لك ان اوامر لغة سي في مجملها تكتب بحروف صغيرة ودعني اكمل شرح الامر السابق انه امر غير مستقل انه تابع بالطبع انت توافقني على ذلك انك لايمكن ان تسمع شخص يقول والا – الا اذا كان قد ذكر اشياء قبلها اذا هذا الامر تابع فاذا كنت تكره الاشخاص التابعين من ذوي الشخصيات الضعيفة فارجو الا يمتد بغضك هذا الى الامر else لانه امر هام ويسهل خطوات كثيرة وان كان يسهل الاستغناء عنه ودعنا نعبر عن ذلك بعدة سطور
Code
if(GiveMe >= 50)
{
cout<<"Thank you – I like to take more than or equal 50 Rayals";
}
else
{
cout<<"I am very angry – I don’t like to take less than 50 Rayals";
}
جزء البرنامج السابق يعبر عن رد فعل احد الشحاذين فاذا اعطيته مبلغ اكبر من او يساوي 50 ريالا سوف يتحقق الشرط والنتيجة تكون TRUE لينفذ مابداخل بلوك الشروط لينفذ الامر الخاص بطبع رسالة شكر ليخبرك بأنه (الشحاذ ولست انا بالطبع) يقول لك شكرا انا دائما احب ان تعطيني مبلغ خمسون ريالا او اكثر واذا لم يتحقق الشرط اي ان نتيجة العملية الحسابية FALSE كأن تكون قد اعطيته اقل من 50 ريالا فسوف ينتقل التنفيذ مباشرا الى البلوك التابع else لينفذ مابداخل بلوكه وهي هنا رسالة ضيق وتبرم بأنه لايحب ان يأخذ اقل من خمسون ريالا حتى لوكانت المبلغ يقل بهللة واحدة فقط عن الخمسون ريالا انها عمليات حسابية ياصديقي العزيز وانا انصح من يمتهنون هذه المهنه ببرمجة روبوت بجزء البرنامج السابق مع مزيد من الشكر والأدعية في حالة تحقق الشرط وتبرم وضيق ولامانع من سيل من الشتائم في حالة عدم تحقق الشرط . ياله من روبوت رائع وسوف يختزن بداخله مبالغ مالية كثيرة سواء لخفة دمه في حالة تحقق الشرط او لقلة ادبه في حالة عدم تحقق الشرط.
سوف تختتم هذا الدرس بهذا الملخص الذي قد يقود الى قاعدة هامة
Code
if(FALSE)
{
Not executed if its false
}
else
{
do all of this
}
انتهى الدرس