المسيلة M'sila 28 لكل الجزائريين و العرب
 
الرئيسيةالتسجيلالأعضاءس .و .جمكتبة الصوردخول

شاطر | 
 

 حلقات التكرار While - For - Repeat

استعرض الموضوع السابق استعرض الموضوع التالي اذهب الى الأسفل 
كاتب الموضوعرسالة
ouali
مدير منتدى المسيلة
مدير منتدى المسيلة
avatar

الجزائر : الجـزائـــــــــر
ذكر عدد الرسائل : 2373
تاريخ الميلاد تاريخ الميلاد : 24/12/1982
العمر : 34
الموقع : http://msila.sd.ma
المزاج : الحمد لله
الدولة : الجزائر
نقاط : 41194
تقييم الاعضاء لك : 56
تاريخ التسجيل : 30/08/2007

مُساهمةموضوع: حلقات التكرار While - For - Repeat   الجمعة مارس 21, 2008 10:06 pm

حلقات التكرار





تستخدم الحلقات لأداء عمل معين بشكل متكرر حتى يتحقق شرط معين.


ويتم إستخدامها في البرامج بشكل واسع








الحلقة التكرارية For


وهي تعد أكثر أنواع الحلقات التكرارية شيوعا


تتطلب هذه الحلقة محددتين القيمةالبدائية والقيمة النهائية إذا كانت الحلقة تصاعدية تستخدم To وإذا كانت تنازلية نستخدم كلمة DownTo .


الصيغة العامة لجملة for التصاعدية هي





for var := initial_value to end_value do



begin

statment;


end;






في المثال السابق حلقة تكرر الشيفرة الممثلة بعبارة statement حتى تصل إلى القيمة النهائية end_value . لا داعي لاستخدام begin , end إذا كان جسم التكرار يتكون من عبارة واحدة. ولكن عندما نريد إضافة العديد من السطور فنحتاج لإستخدام Begin – End





الصيغة العامة لجملة for التنازلية:










for var := initial_value DownTo end_value do

begin

statment;

end;









في المثال السابق كتلة الشيفرة يجب أن تكون initial_value أكبر من end_value وتتناقص قيمة العداد المتغير var واحداً في كل تكرار للحلقة








مثال عملي :


أنشئ مشروعاً جديداً


وأضف له زراً Button1 ومكون المفكرة Memo1 غير الخاصة Caption للزر واجعله " ابدأ " أنشئ الحدث OnClick له ، واكتب معالج الحدث كالتالي








var

I:Integer;


begin



Memo1.Clear;



for I := 0 to 9 do


Memo1.Lines.Add('هذا السطر رقم '+IntToStr(I));



end;






الآن يمكنك تشغيل البرنامج ، إضغط الزر ابدأ وشاهد عمل الحلقة …






الحلقتين التكراريتين While - Repeat





والآن بعد أن رأيت كيف تعمل حلقة for لن يكون صعباً جداً عليك أن تطبق ذات المعنى على حلقتي while , repeat


لنلقي الآن نظرة عليهما الآن.





حلقة while


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


إليك الشكل العام للحلقة while





While cond_expr do

Begin



Statements;



End;







حيث يفحص البرنامج الشرط cond_expr وعند تحقق الشرط فإن البرنامج ينفذ الأوامر بين الأمرين End – Begin ويعود لقراءة الشرط مرة أخرى وهكذا يستمر في تنفيذ التكرار إلى أن يصبح الشرط غير متحقق فيخرج من التكرار


وإذا كان جسم الحلقة مؤلف من عبارة واحدة فليس هناك داعي لإستخدام Begin – End








حلقة Repeat


مثل حلقة while ولكن الحلقة While تقوم بفحص الشرط في بداية الحلقة ولكن في حالة الحلقة Repeat فإن الشرط يفحص في نهاية الحلقة


إليك هذا البرنامج الذي يبين عمل الحلقة Repeat وهو نفس مثال البرنامج للحلقة For مع تعديل سطور البرنامج





ويمكن ملاحضة ان الحلقة repeat تتنفذ على الأقل مرة واحدة ولكن الحلقة While يمكن أن لا تنفذ ولا مرة










Var



I:Integer;


begin


I:=5;



Memo1.Clear;



Repeat



Memo1.Lines.Add('هذا السطر رقم '+IntToStr(I));


Dec(I);


Until I=-1;

end;





الإجرائين Break , Continue


قبل أن ننهي الحديث عن الحلقات يجب أن نتعرف على إجرائين يساعدان على التحكم بتنفيذ البرنامج ضمن الحلقة .


- استخدم الأمر Continue لتجبر البرنامج على الانتقال إلى نهاية الحلقة متجاوزاً كل العبارات التي تليه .


- استخدم الأمر Break لتوقف عمل الحلقة مباشرة ولاتستحدم خارج الحلقات.
الرجوع الى أعلى الصفحة اذهب الى الأسفل
http://msila.4umer.net
 
حلقات التكرار While - For - Repeat
استعرض الموضوع السابق استعرض الموضوع التالي الرجوع الى أعلى الصفحة 
صفحة 1 من اصل 1

صلاحيات هذا المنتدى:لاتستطيع الرد على المواضيع في هذا المنتدى
المسيلة 28 لكل الجزائريين و العرب m'sila 28 :: ¤®§(§ منتدى البرامج والبرمجة §)§®¤ :: قسم البرمجة :: لغة دلفى delphi-
انتقل الى: