|
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,894
|
|
نشاط [ F.Abdelaziz ]
قوة السمعة:328
|
|
12-12-2010, 12:09 PM
المشاركة 1
|
|
10- البرمجة بلغة السى : التحكم فى البرنامج :حلقات التكرار باستخدام for
حلقات التكرار باستخدام for :
مقدمة :
أحد حلقات التكرار الثلاثة التى تدعمها البرمجة بلغة السى هى حلقات التكرار باستخدام for .
إذا كان لديك عبارة statement أو عبارات وتحتاج إلى تكرارها فإن حلقة for هى الوسيلة السهلة لتنفيذ ذلك .
الشكل العام :
وللتوضيح :
يأتى بعد كلمة for ثلاثة أجزاء (عبارات فرعية) كما فى الشكل :
الجزء الأول : initialization "التهيئة" أو البداية :
ويستخدم لإعطاء قيمة ابتدائية لعداد حلقة المتغير . لاحظ أنه يجب الإعلان عن متغير العداد قبل أن يمكنك استخدام الحلقة .ينفذ هذا الجزء من حلقة for مرة واحدة فقط .
الجزء الثانى : conditional_test " اختبار الشرط " :
يتم تقيمه (معرفة نتيجة الشرط) قبل تنفيذ كل حلقة . عادة يقوم هذا الجزء باختبار متغير عداد الحلقة لحالة "صحة الشرط" صواب true أو "عدم صحة الشرط" خطأ false .
إذا كانت نتيجة conditional_test " اختبار الشرط " هى الصواب true يتم تنفيذ الحلقة .
إذا كانت نتيجة conditional_test " اختبار الشرط " هى الخطأ false يتم الخروج من الحلقة وتقدم البرنامج .
الجزء الثالث : increment عادة يقوم بزيادة متغير عداد الحلقة .
مثال :
هذا البرنامج سوف يقوم بطبع الأعداد 0-9 على الشاشة . يعمل البرنامج بالطريقة التالية :
أولا يتم جعل متغير عداد الحلقة i بقيمة 0 .بعد ذلك يتم تعيين قيمة العبارة i<10 . فإن كانت النتيجة صواب true يتم تنفيذ العبارة printf("%d ",i); وفى كل مرة بعد تنفيذ العبارة السابقة يتم زيادة متغير عداد الحلقة بواحد 0 وتستمر العملية هكذا حتى تصبح قيمة العبارة i<10 خطأ false .عند هذه النقطة يتم الخروج من حلقة for ويتم تنفيذ العبارة printf("done"); .
كما ذكر سابقا يتم اختبار الشرط عند بداية كل تكرار للحلقة . لذلك عندما تكون نتيجة اختبار الشرط خطأ فلن تنفذ حلقة for أبدا .
أمثلة :
مثال للعد التصاعدى :
هنا نقوم أولا بالإعلان عن المتغير فى بداية البرنامج ثم نعطى المتغير قيمة داخل الكلمة المحجوزة for أى فى أول جزء لها حيث ستكون تلك القيمة هى بداية العداد , ثم المقارنة فى الجزء الثانى حيث يجب أت لا يتعدى المتغير i عن العدد 3 (إذا تعدى المتغير i العدد 3 فسيصبح الشرط خاطىء وسيتم الخروج من الحلقة ) ,وفى الجزء استعملنا مؤثر الزيادة .
فى المثال التالى يتم زيادة المتغير cnt10 مرات فى حلقة :
وفيه متغير عداد الحلقة هو i . يتم زيادة هذا المتغير بواحد فى كل تكرار للحلقة حتى تصل قيمته إلى 10 .
يمكن عمل حلقات متداخلة كما فى المثال التالى :
الحلقة الداخلية تنفذ (تتكرر) 5 مرات فى كل مرة تتكرر فيها الحلقة الخارجية .الحلقة الخارجية تنفذ 10 مرات وتتحكم فى المتغير i .
المثال التالى يتم فيه جمع جميع عناصر مصفوفة تسمى a وتخزينها فى متغير يسمى sum
القادم إن شاء الله :
حلقات التكرارا باستخدام while
|