رمز فتح مرحلة هذا الدرس في تطبيق طورني : PQW

تَعلُمُ البرمجةِ للمبتدئينَ كلياً بواسطةِ #C –  الحلقة التكرارية

السلام عليكم و رحمة الله و بركاته , و أهلاً و سهلا بكم في دروس سلسلة تعلم البرمجة للمبتدئين كلياً بواسطة الـ #C

الحلقة التكرارية التي لا يخلو application  من استخدامها لما فيها من تسهيل و اختصار للوقت

و كما نبدأ عادةً

ندخل الى File ==> New ==> Project  ,
و نختار #Visual C  ثم نختار Consloe application

سنسمي هذا الـ application  باسم  ForIteration

كما تكلمنا في الدروس السابقة المكان المناسب للبدء بكتابة الأسطر البرمجية هو بين قوسي الدالة  void Main

 

يطلب مني أحد الزبائن أن أقوم بطباع جملة معينة خمس مرات , فمن خلال معلوماتنا السابقة يمكننا كتابة التالي

;Console.WriteLine(“Statement 1”)
;Console.WriteLine(“Statement 2”)
;Console.WriteLine(“Statement 3”)
;Console.WriteLine(“Statement 4”)
;Console.WriteLine(“Statement 5”)

;()Console.ReadLine

ثم نقوم بعمل تشغيل للبرنامج لنرى أن البرنامج قد قام بطباعة الجمل المطلوبة بشكل صحيح

لنفرض أن الزبون قد غير رأيه و أراد طباعة 100 جملة

بإمكاننا أن نقوم بنسخ الجمل السابقة و تكرارها لمئة مرة مع التعديل على كل جملة , لكن هذه الطريقة مهدرة للوقت و غير احترافية .

فكيف يمكننا عمل ” حلقة تكرارية ” لنصل إلى النتيجة ؟؟

هنا يأتي دور الحلقة التكرارية For Loop

For (    int  i   =  0;          i   <   20 ;      i++    )

و لتفصيل الـ  Expression الخاص بالحلقة :

;Int i = 0 : قمنا بتعريف متغير من النوع integer  و قمنا بإعطائه قيمة ابتدائية تساوي الصفر , حيث قمنا بعمليتي Declaration  و Assignment  في نفس الجملة .

;i < 20 : الشرط Condition  , و يجب أن يكون محققاً ليقوم بتنفيذ الحلقة

;i++ : معدل النقصان أو الزيادة للمتغير i  . و هو مشابه لـ i = i + 1 ;

 

تقوم بالحلقة بالتأكد من تحقق الشرط , و كما هو واضح فإن 0 و هي القيمة الأولية أصغر من 20 فالشرط محقق
تبدأ الزيادة بعد تنفيذ السطر الأخير من الحلقة , أي أنها تقوم بالتنفيذ حتى السطر الأخير ثم تبدأ بعملية الزيادة, و في تطبيقنا ستقوم بتنفيذ السطر

;Console.WriteLine(“statement” +i)

ثم تبدأ بعده بالزيادة

و نلاحظ عند التشغيل أن أول قيمة هي 0 مع أننا قمنا بكتابة  ++i , و يمكننا جعله يبدأ من القيمة 1 و ذلك بتعديل القيمة الأولية إلى 1 . كما يمكننا جعله ينفذ الجملة رقم 20 و ذلك من خلال تبديل الشرط إلى  (i  أصغر أو تساوي الـ 20 )


الآن سوف ننتقل لمرحلة جديدة , ألا و هي أن نستعمل الجملة الشرطية if statement  داخل حلقة For

سيقوم هنا بالتحقق من الشرط ” هل 1 أصغر أو يساوي الـ 20 ؟ ” نعم الشرط محقق ! سينتقل لتنفيذ الحلقة

سيقوم بالتحقق من محتوى الحلقة :

If (i == 8)
;Console.WriteLine(“Found  ” + i)

هل 1 = 8 ؟؟ الجواب لا … يعود للبداية مع زيادة 1
تصبح قيمة  i تساوي 2 و يسأل هل 2 أصغر أو تساوي 20 ؟ الجواب نعم ، يذهب لتنفيذ الحلقة فيسأل هل 2 تساوي 8 ؟ الجواب لا فيعود للبداية مع زيادة 1 في كل مرة

عندما يصل إلى الرقم 8 : يسأل هل i = 8 أصغر أو تساوي الـ 20 ؟ الجواب نعم
يذهب لتنفيذ الحلقة فيسأل هل 8 = 8 ؟ الجواب نعم فيقوم بتنفيذ الشرط و طباعة ” Found  8″. إلا أنه قام بتنفيذ الحلقة 20 مرة و لكن لم تتم كتابة سوى الحالة الثامنة و ذلك بسبب الشرط المذكور سابقاً .

إذاً : الـ Expression  الخاص بالحلقة يحتوي على :

◘ القسم الأول و هو القسم الذي يتم فيه تعريف المتغير الذي ستتم عليه عملية الزيادة و النقصان , و يتم في هذا القسم إعطاؤه قيمةً أوليةً .

◘ القسم الثاني و هو القسم الذي يحتوي على الشرط الواجب تحققه ليتم تنفيذ الحلقة و بمجرد أن يصبح شرط الحلقة غير محقق ( أي بعد الانتهاء من الرقم 20 ) يقوم بالخروج من الحلقة تلقائياً و تنفيذ الاسطر التالية ضمن التطبيق

◘ القسم الثالث و هو الذي يتم فيه تحديد مقدار الزيادة أو النقصان .و لا يشترط أن يكون i++  فيمكن التحكم به و جعله i +2  على سبيل المثال و عندها ستكون نتيجة التطبيق

Statement 1
statement 3
statement 5
.
.
statement 19

و بإمكانك جعل الـ Expression  كالتالي :

For    (   int i  =  20   ;        i  >=  1   ;    i – –   )

بالتالي قمنا بعكس العملية  , حيث سيبدأ من القيمة 20 و يقوم بالتحقق منها ثم البدء بعملية النقصان 1 ثم 1 ثم 1 ….

 

طباعة جدول الضرب

نستخدم لهذا الغرض حلقة For داخل حلقة For  ثانية .

و عند كتابة حلقة For    داخل حلقة ثانية فلا يجوز تعريف  نفس المتغير ، لأنه كما تعلمنا لا يجوز تعريف نفس المتغير مرتين
و نلاحظ أن + في هذا الـ Exprssion  ليست عملية حسابية ، بل هي لوصل نص مع نص آخر.

و لو اردنا طباعة جدول الضرب كاملا (مئة جملة ) بدون حلقة For  قد تقع في الأخطاء ، فضلاً عن الوقت المهدور

 

يمكننا أيضاً عمل بعض الرسومات باستخدام For Loop
عندما يبدأ التطبيق يبدأ بحالة i = 1
يدخل إلى الحلقة الثانية ، و يسأل هل j = 1   ، نعم صحيح ، فيقوم بطباعة نجمة  ثم الانتقال إلى حالة j = 2
و هي لا تحقق الشرط ( 2 اصغر او تساويi (1)  ) فيخرج من الحلقة و يقوم بتنفيذ تتمة الحلقة الأولى و هي كتابة سطر جديد ،
ثم  يذهب للحلقة الأولى ، و يقوم بعملية الزيادة على i   لتصبح 2
و هي تحقق الشرط ، فيذهب لتنفيذ الحلقة الثانية ويسأل هل  j   أصغر أو تساوي i  (2) ؟ نعم صحيح فيقوم بطباعة ” * ”
ثم يقوم بعملية الزيادة على  j  لتصبح 2 ثم يسأل هل j أصغر او تساوي i(2) ؟ هي تحقق الشرط فيقوم بكتابة نجمة أخرى على نفس السطر ، لأننا استخدمنا الدالة Write  و ليس WriteLine
ثم يذهب للحالة الثالثة و هي لا تحقق الشرط … فيخرج من الحرق الثانية و ينتقل من طباعة النجمات على نفس السطر إلى طباعة سطر جديد ،
و هكذا حتى يصل إلى i  تساوي 10 ليقوم بكتابة 10 نجمات ،
و عندما يصل إلى i = 11 يصبح شرط الحلقة غير محققاً فيقوم بالخروج منها


و هكذا نكون قد تعلمنا استخدام الجملة الشرطية داخل حلقة For  كما تعلمنا استعمال حلقة For  داخل حلقة For  أُخرى

 

نصل إلى نهاية درسنا ، ألقاك في الدرس التالي إن شاء الله

 ملخص الدرس :

مفهوم الحلقة التكرارية:

السلامُ عليكم ورحمةُ اللهِ وبركاته، وأهلاً بكمْ في الدرسِ الثاني عشر من دروسِ سلسلةِ، تَعلُمِ البرمجةِ للمبتدئينَ كلياً بواسطةِ السي شارب، في هذا الدرس سنتعرف على معنى الحلقة التكرارية for Iteration Statement وكيف يمكننا أن ننفذ أسطر برمجية معينة عدد من المرات بناءاً على تحقق شرط معين

الحلقة التكرارية for Iteration Statement :

لا يخلو أي تطبيق برمجي من تواجد الحلقات التكرارية لما فيها من أهمية وإختصار للوقت والجهد والحصول على نتائج عالية، ومن أشهر الحلقات التكرارية جملة For التي يمكن بواسطتها تنفيذ عدد من الأسطر البرمجية عند تحقق شرط معين، وتتكون هذه الحلقة من 3 أقسام رئيسية هي :
– تعريف متغير الحلقة : حيث يتم هنا تعريف المتغير الذي ستستخدمه الحلقة التكرارية ويتم إعطاءه قيمة أولية أي أننا نقوم بعمل Variable Declaration و Variable Initialization في نفس المقطع
– شرط الحلقة : وسحتوي على تعبير Expression حيث أن الناتج لهذا التعبير سيكون إما قيمة صحيحة True أو خاطئة False وبناءاً عليه ستستمر الحلقة التكرارية بالعمل طالما هذا الشرط محقق
– معدل التغيير : وهو مقدار الزيادة أو النقصان بعد إنتهاء تنفيذ دورة واحدة، ويكون التغيير على المتغير الذي تم تعديله في القسم الأول.

مصطلحات الدرس :

FOR Loop :

Efficient :

Syntax :

Iteration :

increment :

initial :

Two FOR Loop :

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *