جمل التكرار Looping Statements
الجمل التكرارية تمكنك من إعادة تنفيذ مجموعة من التعليمات عدة مرات متتالية حسب شروط معينة تصاغ حسب نوع التكرار. يوفر ماتلاب نوعين من أوامر التكرار:
حلقة for
و حاقة while
حلقة for … end
بتكرار مجموعة من التعليمات لعدد محدد من المرات, و الشكل العام لهذه الحلقة هو:
for index = expression
statements
end
من الممكن أن تمثل العبارة
expression
عمود أو مصفوفة عناصر. حيث يعاد تنفيذ الأوامر الواقعة بين عبارتي
for و end
لكل عمود من أعمدة المصفوفة. و لكن في أغلب الحالات يكون المغير
index
على شكل التالي:
index = start_value : [increment :] end_value
يمكن لقيم البداية والزيادة والنهاية أن تكون أعداد حقيقية.
قيمة الزيادة اختيارية، يعتبرها البرنامج 1 إذا لم تحديد.
قيم المتغير يمكن أن تكون تصاعدية أو تنازلية.
ينتهي التكرار عندما يصل المتغير
index
إلى قيمة النهاية
index > end_value
فى الحالة التصاعدية أو
index < end_value
في الحالة التنازلية.
يتم تقييم المتغير
index
في البداية فقط و لا يمكن إنهاء الحلقة بتغيير قيمة داخل كتلة التعليمات.
يمكننا تنفيذ حلاقات متداخلة
nested for loops .
مثال :
حلقة while … end
تستخدم الحلقة
while
لتكرار مجموعة من التعليمات ما دام شرط منطقي
logical expression
معين محققا. خلافا لحلقة
for
ستنفذ التعليمات
statements
عددا غير محدد من المرات. الصيغة العامة لهذه الحلقة يكون كما يلي :
while (logical expression)
statements
end
- تحتاج الحلقة
while
إلي قيمة بدائية تسمح بدخول الحلقة و البدء في تنفيذ التعليمات.
- يتم اختبار الشرط في كل مرة قبل تنفيذ التعليمات.
- يجب تغيير قيمة عناصر التعبير المنطقي حتى يختل الشرط و يتم الخروج من الحلقة.
- يمكننا إنهاء الحلقة بتغيير قيمة الشرط داخل كتلة التعليمات.
- يمكننا تنفيذ حلقات متداخلة
nested while loops .
مثال: في هذا البرنامج سيستمر تكرار العبارات بين العبارة
while و end
حتى يصبح الشرط خطأ.
step = 0.01;
x = [0:step:2];
y = 0*x;
y(1) = 1;
i = 1;
size(x)
while(i<max(size(x)))
y(i+1) = y(i) + step*(x(i)-abs(y(i)));
i = i + 1;
end
plot(x,y,'r-')