27-01-15, 12:36 PM
الدرس الثالث
* عبارات الشرط :
في جميع لغات البرمجة نرى ان هناك ثلاث فئات من العناصر ، الأولى لتخزين البيانات ، الثانية جمل التحكم و الأخيرة دوال اللغة ، فالاولى تشتمل على جميع أنواع الحاويات في اللغة من متغيرات و مصفوفات و ربما أنواع أخرى خاصة باللغة لكنها في النهاية تخزن البيانات ، و الثالثة هي تلك الدوال التي نستعملها في التعامل مع النصوص و العمليات الحسابية و في الغالب هذه الدوال تكون متشابهة بين اللغات المختلفة ، اما الثانية و هي محور حديثنا في هذا الدرس و الدرس القادم باذن الله تسمى بجمل التحكم لانها الأساس الذي بدونه لن توجد البرمجة فالبرنامج يعتمد على امرين لا ثالث لهما الأول و هو الشرط و الثاني هو التكرار .
.
.
.
عموما اذا لم تفهم ما قيل في الأعلى لا مشكلة فهو كلام نظري خلاصته ان الشرط و التكرار هم أساس البرمجة
--------------------------------------------------
الصيغة العامة :
كود :
if(condition){
//some code
}
condition و هو الشرط الذي سيقوم البرنامج بالتحقق من صحته و هو في الغالب يحتوي معاملات منطقية ( راجع الدرس السابق) .
{//some code} و هي الاكواد التي ستنفذ في حال تحقق الشرط .
--------------------------------------------------------
لنأخذ هذا المثال :كود :
int main(){
int x ;
cin>>x;
if(x>0){
cout<<"positive";
}
return 0;
}
لمن لم يفهم البرنامج هذا البرنامج يتحقق من كون العدد الذي ادخله المستخدم موجب ام سالب
1 - عرفنا متغير x و استعملنا الدالة cin لادخال قيمة من المستخدم ((كلام قديم ))
2 - عرفنا عبارة شرط ( لو x اكبر من 0 )
3- لو كان العدد الذي ادخلناه اكبر من الصفر عندها يطبع كلمة (موجب - positive ) باستخدام دالة cout
--------------------------------------------
طيب في برنامجنا و على فرض ان المستخدم ادخل -1 ماذا سيحدث ؟ لا شيء هذا لأننا لم نعطي عبارة الشرط أي حالة أخرى ، و هنا نأتي للصيغة المتوسطة .
الصيغة المتوسطة ؟ يعني التي درسناه في البداية هي الصغيرة ؟
اجل كلامك مظبوط .
الصيغة العامة :
كود :
if(condition){
//some code
}
else{
// do anther code
}
كما نلاحظ اضفنا كلمة else و التي تعني في حالة عدم تحقق الشرط عندها ينفذ الكود التابع لها .
يعني في مثالنا السابق عندما يدخل المستخدم -1 نريد ان يطبع البرنامج كلمة سالب فيكون شكل البرنامج كالاتي
كود :
int main(){
int x;
cin>> x;
if (x > 0){
cout<<"positive";
}
else{
cout<<"negative";
}
return 0;
}
------------------------------------------
طيب نحن عرفنا الصغيرة و المتوسطة بقي لنا شيء واحد و هو الشرط الكبير و ان اسميها الدالة الرئيسية فكل ما سبق هو جزء من الشكل التالي :
كود :
if (con 1){
//code1
}
else if(con 2){
//code 2
}
else if(con n){
// code n
}
else{
//code
}
كما نلاحظ else if و هي عملية اختبار عدة شروط في دالة واحدة و اذا لم تتحقق جميعها ينتقل مباشرة ل else
لنأخذ مثال شامل على الشروط يوضح لنا هذا الشرح النظري
كود :
int main(){
int degree;
cout<<"Please enter your degree : \n";
cin>>degree;
if(degree>=90 && degree <= 100){
cout<<"Excellent";
}
else if(degree>=80 && degree <= 89){
cout<<"Very good";
}
else if(degree>=70 && degree <= 79){
cout<<"Good";
}
else if(degree>= 50 && degree <= 69){
cout<<"Pass";
}
else if(degree>= 0 && degree <= 49){
cout<<"FAIL";
}
else{
cout<<"out of range";
}
return 0;
}
1 - البرنامج يستقبل درجتك و يبطع لك تقديرك في المادة .
2 - في السطر الأول عرفنا متغير degree من النوع int يمكن جعله float .
3 - طبعنا جملة للمستخدم نطلب فيها ان يدخل درجته و لا تنسى استخدمنا "n\" للانتقال لسطر جديد .
4 - ادخل المستخدم درجته .
5 - بدأنا في التحقق طبعا انا وضعت خمسة مجموعات يمكنك ان تزيديهم او تقللهم .
6 - في كل مجموعة استخدمنا علامة ( &&) و هي تعني "و" و هي تعني وجود اكثر من شرط في الحالة الواحدة و تذكر ان "و" يجب ان يتحقق فيها الشرطين على عكس ("او" - ||) اذا تحقق احد الشرطين تعمل . و يحق لك ان تضع ما تشاء من الشروط ليس فقط اثنين المهم ان تفصل بينهم ب ( && - ||) على حسب حاجة برنامجك .
7 - لو لاحظت الشروط ستجد ان الدرجات محصورة بين 0 و 100 و أي قيمة خارجها يتجه البرنامج ال else
أتمنى يكون كل شيء واضح
------------------------------------
- عبارة الاختيار (switch ) :
و كما راينا if هذه العبارة تشبها لكن الفرق يكمن في ان استخدام switch محصور على المتغير الذي يحمل اكثر من قيمة
الصيغة العامة :
كود :
switch(variable){
case 1:
//code 1
break;
case 2:
//code 2
break;
default:
//code
}
2 - بدل 1 و 2 نضع ما نريد فقد تكون كلمة او حرف رقم عشري .
3 - كل حالة نضع فيها : و لا ننسى كتابة break .
4 - حالة default تشبه else .
مع الأسف switch ليست بتعقيد if لذا فبرنامج الدرجات لا يمكن تطبيقه هنا بنفس الاحترافية لذا دعونا نأخذ مثال آخر
كود :
#include<iostream>
using namespace std;
int main(){
int day;
cout<<"Please enter number of the day : \n";
cin>>day;
switch(day){
case 1 :
cout<<"sat";
break;
case 2 :
cout<<"sun";
break;
case 3 :
cout<<"mon";
break;
case 4 :
cout<<"tus";
break;
case 5 :
cout<<"wed";
break;
case 6 :
cout<<"thu";
break;
case 7 :
cout<<"fri";
break;
default:
cout<<"out of range";
}
return 0;
}
----------------------------------------------------
- عبارة الشرط المختصرة :
كود :
condition ? code 1 : code 2
حيث ينظر الى الشرط قبل ؟ فاذا تحقق ينفذ ما بعده و اذا لم يتحقق ينفذ ما بعد :
مثال :
كود :
int main(){
int x;
x =5;
x > 0 ? cout<<"p" : cout<<"n";
return 0;
}
==============================
هذا الدرس هو البرمجة الفعلية فارجوا ان تجرب جميع الاكواد
و تغير فيها باسلوبك و اذا واجهتك أي مشكلة فلا تتردد
في السؤال و الى اللقاء في حلقة أخرى