التعليمة التكرارية loop - تعلم لغات البرمجة

التعليمة التكرارية loop

 


 
التعليمة التكرارية loop

 

التعليمة التكرارية while :

تستعمل التعليمة التكرارية لتكرار تنفيذ مجموعة من التعليمات يرتبط هذا التكرار بتحقق شرط، اذا يختبر الشرط فان كان الشرط محققا أي صحيحا ستنفذ عندها مجموعة التعليمات ويكرر تنفيذ هذه التعليمات طالما أن الشرط محقق.

 

وكشكل للتعليمة التكرارية :

مادام (شرط) كرر

بداية

   مجموعة تعليمات

نهاية

 

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

 

مثال:

كتابة جدول الضرب للعدد 5 .

الفكره الخوارزمية : هي ما تقوم به فعليا بيدك. اي تكرار كتابة أسطر من الشكل :

5*1=5

5*2=10

.

.

.

 5*10=50

اي تكرار كتابة 5*i حيث i تبدأ بالقيمة 1 ثم تزداد في كل عملية اعادة للحلقة التكرارية بمقدار واحد، حتى تتوقف عند القيمة 10.

الخطوة الأولى والاهم هي ان نكتب خوارزمية الحل فعند اتقاننا لكتابة الخوارزميات سيسهل علنا تطبيقها على شكل كود، فتكون خوارزمية الحل في مثالنا هذا:

i 1

مادام 10 ) ( i  كرر

بداية

5, " x", i ,"= ", 5*i  اكتب

 

i i +1

نهاية

 

في كثير من حالات التكرار نستخدم متحولا يتزايد مع تنفيذ التكرار، مثل حاله i في مثالنا هذا، يسمى هذا المتحول عداد اي يعد مرات التكرار، وبما ان التكرار هو حلقة نسميه ايضا عداد الحلقة التكرارية.

 

مثال 2:

المطلوب حساب مجموع الاعداد 1..2..3..g

حيث g تعطى كدخل.

الآن وبعد ان اكتملت لدينا التعليمات الخوارزمية الاساسية، لنفكر بخوارزمية الحل باستخدام هذه التعليمات.

 

بعد ان نفهم المسالة جيدا، نحدد المعطيات و النتائج بشكل دقيق، وتكون خوارزمية الحل بمحاولة بناء الخطوات لمعالجة المعطيات وصولا الى النتائج.

 

المعطيات : g عدد صحيح موجب.

النتائج : مجموع الاعداد 1...2...3..g وليكن رمز هذا المجموع المتحول s.

الخوارزمية : العلاقة بين المتحولين s و g هي s=1+2+3+...g

وكما هو امامكم ان الحل بديهي و هو تعليمة اسناد حتى نحصل على المطلوب :

اقرأ g

S 1+2+3+...g

اكتب s

 

ما رايكم بالحل!! بالطبع لن يكون هذا الكلام مقبولا خوارزميا لانه لن يكون مقبولا لا حاسوبيا ولا برمجيا.

لانه لا يمكن ان تكون تعليمة الاسناد مقبولة بهذا الشكل ...g انه مفهوم لنا لكنه غير قابل للحساب.

لكن لنتابع مع نفس الفكرة لكن باسلوب مختلف حيث اننا سنجمع الى المتحول s القيمة 1 ثم 2 ثم 3 الى … g

وجدنا بداية الفكرة : s s+i حيث سيكون i هو المتحول الذي سياخذ القيم من 1 حتى g  هكذا نكون تخلصنا من النقاط التي ادت لرفض الخوارزمية بداية بان جعلنا مكانها متحولا يعمل كعداد يتزايد بشكل تكراري نكرر زيادته بمقدار 1 الى ان يصل إلى القيمة g اي شرط التكرار (g >= i).

 

خوارزمية الحل هي :

اقرأ  g

S 0

i 1

مادام  M) (i  كرر

بداية

S S + i

→i i +1

نهاية

اكتب S

 

لنتاكد من صحة الخوارزمية وذلك باختبارها يدويا من اجل قيم مختلفة للمتحول g.

اذا كان الدخل g=1

شرط g >= i

تكرار

i

s

g

صح

0

1

0

1

خطا

1

2

1

1

الخرج يكون s=1

 

اذا كان الدخل  g=3

شرط g >= i

تكرار

i

s

g

صح

0

1

0

3

صح

1

2

1

3

صح

2

3

3

3

خطا

3

4

6

3

الخرج هنا g=6

 

ان خوارزمية الحل ليست وحيدة مع انها ذات فكرة واحدة، فدقة القيم و ترتيب المعلومات يمكن ان يعطي حلولا مختلفة.

اقرأ M

S 1

i 1

مادام( M < i ) كرر

بداية

i i +1

S S + i

نهاية

اكتب S

 

هذه طريقة ثانية لكتابة الخوارزمية. لكن لها نفس الفكرة و الحل.

 

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

فان كانت مجموعة التعليمات لا تحمل في داخلها اي تعديل علي اي من متحولاتها المضمنة بالشرط فهناك حتما حلقة تكرارية لا نهائية.

 

مثال:

اقرأ M

S→  0

i 1

مادام M) (i  كرر

بداية

S S + i

i i +1 هذا السطر من التعليمات غير موجود

نهاية

اكتب s

 

لاحظو ماذا سيحدث لو نسينا تعليمة تغيير المتحول :

g

s

i

تكرار

شرط g >= i

1

0

1

0

صح

1

1

1

1

صح

1

2

1

2

صح

1

3

1

3

صح

1

...

1

 

صح

1

لا نهاية اي اعلى قيمة ممكنة حاسوبياً

1

 

صح

 

اليكم فيديو توضيحي اصدقائي ...



مواضيع مهمه
لغة الخوارزميات وتعليماتها الاساسية

لا تنسى مشاركة هذا المقال!

أعط رأيك حول هذا المقال

الأشعارات
اهلا بك اخى الكريم فى مدونة تى جو
ان كنت من المهتمين بكل جديد فى العالم التقنى يمكنك الاشترك فى قناة تى جو على اليوتيوب بالضغط على زر اليوتيوب فى الاسفل حتى تكون اول المستفيدين من شروحاتنا .
=================================
وان كان لديك اى اسئله او اقتراحات يمكنك التواصل معنا عبر مواقع التواصل الاجتماعى اسفل الرساله وسوف نقوم بالرد فى اسرع وقت .
شكرا على المتابعه .

حسناً