تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
دورة في اساسيات c++ - الدرس الثالث
#1
الدرس الثالث


* عبارات الشرط :

في جميع لغات البرمجة نرى ان هناك ثلاث فئات من  العناصر  ، الأولى لتخزين البيانات  ، الثانية  جمل التحكم   و الأخيرة  دوال اللغة   ،  فالاولى تشتمل  على جميع  أنواع الحاويات في اللغة من متغيرات و مصفوفات  و  ربما أنواع أخرى  خاصة باللغة لكنها في النهاية  تخزن البيانات  ، و الثالثة  هي  تلك الدوال  التي نستعملها في التعامل مع النصوص و العمليات الحسابية  و في الغالب هذه  الدوال  تكون متشابهة  بين اللغات المختلفة    ،   اما الثانية  و هي محور حديثنا  في هذا الدرس و الدرس القادم باذن الله  تسمى  بجمل التحكم  لانها الأساس  الذي بدونه لن توجد البرمجة  فالبرنامج يعتمد على امرين  لا ثالث  لهما الأول و هو الشرط  و الثاني  هو التكرار  .
.
.
.
عموما اذا  لم  تفهم  ما قيل في الأعلى  لا مشكلة فهو كلام نظري  خلاصته ان  الشرط و التكرار  هم  أساس البرمجة Big Grin

--------------------------------------------------


الصيغة العامة :
كود :
if(condition){
//some code
}
if  من ترجمتها  "اذا "  و دورها هو  حصر سطر/سطور  من الكود  تحت شرط معين  اذا تحقق ينفذ هذه المجموعة  و اذا لم يتحقق يتابع  سير البرنامج دون النظر لهم .

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 
لنأخذ مثال  شامل  على  الشروط  يوضح لنا هذا الشرح النظري Wink

كود :
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;
}
نبدأ في الشرح Cool
1 -    البرنامج  يستقبل درجتك و يبطع لك  تقديرك في المادة .
2 - في السطر الأول   عرفنا متغير  degree  من النوع int  يمكن جعله  float  .
3 - طبعنا جملة  للمستخدم  نطلب فيها  ان يدخل درجته  و لا تنسى استخدمنا  "n\"  للانتقال لسطر جديد .
4 - ادخل المستخدم درجته .
5 - بدأنا في التحقق  طبعا انا  وضعت خمسة مجموعات  يمكنك ان  تزيديهم او تقللهم .
6 -  في كل مجموعة استخدمنا  علامة ( &&)  و هي تعني "و"  و هي تعني وجود اكثر من شرط في الحالة الواحدة  و  تذكر ان "و"  يجب ان يتحقق فيها الشرطين  على  عكس ("او" -  ||)  اذا  تحقق احد الشرطين تعمل . و يحق لك ان تضع ما تشاء  من الشروط  ليس فقط اثنين  المهم ان تفصل بينهم ب ( && - ||)   على حسب حاجة برنامجك .
7 - لو لاحظت الشروط ستجد ان الدرجات محصورة بين  0 و 100  و أي قيمة خارجها  يتجه البرنامج ال else 
أتمنى يكون كل شيء واضح  Rolleyes

------------------------------------

- عبارة  الاختيار   (switch )  :
و كما  راينا if  هذه العبارة تشبها  لكن الفرق يكمن في ان  استخدام  switch  محصور على المتغير الذي يحمل اكثر من قيمة
الصيغة العامة :
كود :
switch(variable){
case 1:
//code 1
break;
case 2:
//code 2
break;
default:
//code
}
1 -  حددنا متغير .
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;
}
هذا البرنامج تدخل له رقم  من 1 الى 7  فيطبع لك  اسم اليوم  يعني برنامج لا يستحق الشرح .

----------------------------------------------------

- عبارة الشرط المختصرة :
كود :
condition ?  code 1 :  code 2

حيث ينظر الى الشرط قبل  ؟  فاذا تحقق ينفذ ما بعده و اذا لم يتحقق ينفذ  ما بعد :
مثال :
كود :
int main(){
int x;
x =5;
x > 0 ? cout<<"p" : cout<<"n";
 
    return 0;
}
لكن هذه الطريقة ليست   محببة جدا  و قليل  ما تراها  فانا  وضعتها فقط كمعلومة .

==============================

هذا الدرس هو البرمجة الفعلية فارجوا ان تجرب جميع الاكواد
و تغير فيها باسلوبك و اذا واجهتك أي مشكلة فلا تتردد
في السؤال  و الى اللقاء  في حلقة أخرى


الملفات المرفقة
.rar   lec 3 - examples.rar (الحجم : 578 بايت / التحميلات : 42)

العاب من برمجتي  

Smile
الرد }}}
تم الشكر بواسطة:
#2
اشكرك على المجهود الرائع في تقديم مثل هذه المعلومات القيمة والمفيدة
بارك الله فيك ونفع بك الامة
الرد }}}
تم الشكر بواسطة: rnmr , rnmr



التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم