بسم الله الرحمن الرخيم

مرحبا بكم مجددا بعد ان ناقشنا في الدروس السابقة العديد من المفاهيم
اكرر هذه المقولة دائما يجب مراجعة الدروس السابقة لكي تستطيعوا فهم ما سيتم ذكره في هذا الدرس حيث نافشنا في :
الدرس الأول مفهوم البرمجة و فكرة عمل البرمجة والأهداف من تعلمها ونماذج البرمجة ويمكن الإطلاع عليه من هنا
الدرس الثاني احد نماذج البرمجة وهو البرمجة المنظمة ويمكن الإطلاع عليه من هنا 
الدرس الثالث انتقلنا الي نموذج البرمجة الإجرائية وناقشنا فيه المتغيرات والمصفوفات والقواميس ومتغيرات خالية القيمة وكيفية التعامل معها الإطلاع عليه من هنا 
نبدا الأن مع الدرس الرابع لنبدا بسم الله الرحمن الرحيم



Lecture 4 :
بعد ان ناقشنا في الدرس السابق جزء من نموذج البرمجة الإجرائية وهو مفهوم المتغيرات سنكمل في هذا الدرس نموذج البرمجة الإجرائية سنبدا بالتحدث عن 
التحكم في سير البرنامج عن طريق المتغيرات
احيانا نريد ان نغير مسار تنفيذ الكود في البرنامج
وهذه الطريقة تتم عن طريقة دمج المتغيرات مع الشروط 
ويتم هذا في البرامج الضخمة التي تحتوي علي تشعيبات كثيرة 

ننتقل الأن الي الشروط وكيفية التعامل معها وجمل الشروط:
نبدأ بالجملة الشرطية اﻷشهر في عالم البرمجة وهي if
يمكننا ترجمة هذا الكود الي اذا تحقق الشرط نفذ الكود التالي 
if(__1__){__2__}
في الخانة الأولي نكتب الشرط الذي نريد التحقق منه 
مثلا اذا كانت قيمة متغير اقل من قيمة محددة او اكبر من قيمة محددة سنعطي مثال لنوضح اﻷمر
الخانة الثانية كود الشرط الذي يتحقق في حالة تحقق الشرط



فيقوم هذا الكود بأخذ قيمة درجة التلميذ من المستخدم واذا كانت القيمة اقل من قيمة 50 او تساويها يقوم البرنامج بطباعة faild
واذا كانت قيمة اكبر من 50 واقل من 100 يقوم بطباعة passed
وفي النهاية اذا لم يتحقق اي شرط يقوم البرنامج بطباعة 
enter correct data
لاحظتم اننا قمنا باستخدام علامة && وهذه العلامة التي سنشرحها مستقبلا ولكن يكفي معرفة الأن ان هذه العلامة توفر لنا امكانية وضع شرطين وتشترط هذه العملية تحقق الشرطين معين
هذا الكود يوضح آلية عمل شرط if
ويمكن ايضا اضافة عدة شروط تنفذ اذا لم يتحقق الشرط الأول
دعنا نوضح اكثر
if(__){__}
else if(__){__}
else if(__){__}
else{__}
الكود الذي في الأعلي سيوضح لنا فكرة الشروط اكثر
يذهب البرنامج للشرط الأول اذا لم يتحقق ينتقل البرنامج الي 
else if الأولي واذا لم يتحقق شرطها ينتقل الي else if الثانية 
واذا لم يتحقق شرطها ينتقل البرنامج في النهاية تنفيذ كود else 

حسنا توجد طريقة اخري مع الشروط وهي طريقة switch case
حيث نعطي داخل switch متغير ويقوم البرنامج بمقارنة قيمة المتغير مع قيمة معطاه تسمي case واذا تساوت قيمة المتغير مع case يتم تطبيق كود الموجود داخل case
مثال لكي نفهم طريقة العمل 

لكي نصل للمفهوم النهائي نري التجربة العملية 
فقمنا بعمل ما يسمي الحلقة اللانهائية والتي سنضع كود البرنامج الخاص بنا داخل هذه الحلقة لكي يستمر كود البرنامج بالعمل لمالانهاية 
نلاحظ عندما نضع x بقيمة 1 يقوم البرنامج مقارنة قيمة x مع كل cases الموجوده داخل switch  حتي يصل الي متي تتساوي قيمة x بواحد وعندما يجد هذه case يقوم بتنفيذ كود الموجود داخل case
ثم يخرج خارج switch عن طريق امر break
وهناك case تسمي ب default والتي يتم تنفيذها في حالة لم تتساوي x مع اي case من الموجودة داخل switch

ولتوضيح اهمية امر break في هذا الكود قمنا بعمل هذه التجربة
قمنا بحذف break من الكود ولنري ماذا يحدث

فبدون امر break يقوم الكود بعمل مساواة لقيم case مع قيمة المتغير x وعندما يجد case يقوم بتنفيذ الكود الموجود فيها ثم لايخرج بل يقوم بتنفيذ اكواد باقي cases كما هو واضح في الأعلي 
فنقوم بكتابة امر break لكي نخرج من case ولا يشترط كتابة break في آخر case لان البرنامج بعد تنفيذها يخرج تلقائيا من switch

ننتقل الأن الي موضوع آخر من الشروط وهو الحلقات التكرارية
حيث هذه الأوامر تقوم بتكرار كود موجود داخل الشرط عدد مرات محدد او غير محدد
مثل  while  for  do while
نبدا ب شرط for 
الغرض من هذا الأمر تنفيذ كود عدد معين من المرات ويكتب داخل الكود عداد ويكون العداد في صورة متغير 
وثم يكتب الشرط الذي يتم علي العداد مثلا لو كان العداد اقل من 5
ثم يكتب العملية التي تتم علي العداد مثل اجمع واحد علي العداد او اطرح واحد من العداد 
ويكتب داخلها كود الشرط 
for(__1__;__2__;__3__){__4__}
في الخانة الأولي يكتب العداد ويكون من نوع رقم ونعطي له قيمة التي نريد ان يبدأ العد منها 
الخانة الثانية نكتب الشرط الذي سيستمر الكود في الدوران حتي لا يتحقق الشرط
الخانة الثالثة نكتب فيها العملية علي العداد مثل جمع واحد او طرح واحد
والخانة الرابعة ننفذ كود الشرط او ما يتم تكراره
مثال
for(int counter=0;counter<5;++counter){__}
سنوضح لكم فائدة for loop في اكواد لكي تتضح الفكرة

التجربة العملية : 
حيث قام البرنامج بعمل تكرار لجملة counter is 
10 مرات وايضا طباعة قيمة المتغير
حسنا ماذا يمكننا ان نفعل ايضا مع for loop 
يمكننا ايضا طباعة المصفوفات 
قمنا سابقا باستخدام هذا الكود لطباعة المصفوفة والذي يعد سئ من ناحية الأداء 

يمكننا باستخدام for لإختصار هذا الكود 

نلاحظ قمنا بعمل عداد وقمنا بعمل الشرط الخاص به بان يكون العداد اقل من عدد العناصر ثم طباعة المصفوفة مع وضع رقم العنصر هو قيمة العداد ونتحصل منها علي طبيعة المصفوفة 
والتي سيتحصل عليها كما في الصورة الآتية 

ننتقل الأن الي حلقة اخري while و do while
تتشابه هذه الشروط مع if حيث عندما يتحقق الشرط يتنفذ الكود
لكن تتميز while بعدة خصائص فعند تحقق الشرط يظل الكود في دوران لانهائي حتي يتم كسر الشرط وتتشابه مع if من ناحية syntax
while(__1__){__2__}
حيث يتم كتابة الشرط في الحلقة الأولي ثم كتابة جواب الشرط في الحلقة الثانية 
ننتقل الي do while
الفرق بينها وبين while انه يتم تنفيذ جواب الشرط في البداية ثم يتم التحقق في الشرط وفي حالة كان الشرط محقق يتم تنفيذ الكود مره اخري حيث يتم كسر الشرط فيكمل الكود باقي مساره 
do{__1__}while(__2__);
يكتب في الخانة الأولي جواب الشرط والخانة الثانية شرط التحقق


هناك بعض الجمل الشرطية التي لا تعمل مع  لغة C وتعمل مع لغات اخري هي تختلف في syntax ولكن متفقة في طريقة التنفيذ
مثل امر unless يقوم البرنامج بتنفيذ كود جواب الشرط في حالة لم يتحقق الشرط
جملة given when وهي تماثل switch case حيث تعمل علي نفس المبدأ
جملة for each وهي تماثل for loop وتعمل علي نفس المبدأ ايضا
جملة until التي تقوم بتكرار الكود لعدد لانهائي حتي يتم كسر الشرط وتشبه while في نفس المبدأ في العمل 

في نهاية هذا الدرس نكون قد انتهينا من اهم نموذج من نماذج البرمجة الإلزامية وهو البرمجة الإجرائية 
نتطرق في الدرس القادم لنتحدث عن البرمجة المعتمدة علي الأحداث 
ومصطلح شهير جدا يسمي البرمجة الكائنية OOP

نلتقي في الدرس القادم

تصميم : بلال حسان سعدي
تعليقات