منتديات المبرمج العراقي

موقع عراقي يختص بالبرمجة ومشاريعها واكوادها
 
الرئيسيةس .و .جبحـثالأعضاءالمجموعاتالتسجيلدخول

شاطر | 
 

 الدرس العاشر والاخير للبرمجة بلغة سي

اذهب الى الأسفل 
كاتب الموضوعرسالة
المبرمج العراقي
Admin


المساهمات : 24
تاريخ التسجيل : 04/07/2008

مُساهمةموضوع: الدرس العاشر والاخير للبرمجة بلغة سي   الأربعاء يوليو 09, 2008 6:48 pm

الفصل السادس : الحلقات التكرارية

كثيرا ما نحتاج في البرامج إلى تكرار أمر موجه للكمبيوتر عددا من المرات، وتوفر لغة C عدة وسائل تمكن المبرمج من أداء هذا التكرار.
وعادة ما تسمى هذه الوسائل " الحلقات التكرارية "، ويوجد العديد من الحلقات التكرارية في لغة C سنتناول منها هنا
1- الحلقة for ( for loop ).
2- الحلقة while ( while loop ).
3- الحلقة do…. while ( do-while loop).
وفيما يلي سنتناول كل حلقة بالدراسة من حيث الشكل العام و أسلوب الاستخدام وأمثلة توضيحية.

الحلقة for ( for loop):
تستخدم الحلقة for لتكرار أمر معين ( أو مجموعة من الأوامر) عددا من المرات وتحتاج الحلقة إلي ثلاث عناصر أساسية ( انظر الشكل التالي)

CODE
for ( counter statement; condition; step)



و هذه العناصر هي:
1- العداد ( counter ) : وظيفة العداد هي تسجيل عدد مرات التكرار.
2- الشرط ( condition): والشرط الذي يحدد نهاية التكرار إذ يظل التكرار قائما حتى ينتفي الشرط.
3- الخطوة(step) : وهي القيمة التي تحدد عدد مرات التكرار.

والشكل التالي يوضح برنامجا قمنا فيه باستخدام الحلقة for :

CODE

#include <stdio.h>
main()
{
int counter;
for ( counter=1;counter<=20;counter++)
printf(“%d”,counter);
}



ومن البرنامج السابق نجد أن الحلقة for بدأت بكلمة ( for ) متبوعة بقوسين بينهما ثلاثة عبارات تفصل بينها علامة الفاصلة المنقوطة.
العبارة الأولى تخزن القيمة الابتدائية في العداد.
والعبارة الثانية هي الشرط وهنا الشرط أن قيمة العداد أقل من أو تساوي 20.
أما العبارة الثالثة فهي تحدد الخطوة، وفي هذا البرنامج يزاد العداد بمقدار 1 كل مرة تنفذ فيها الحلقة.
والبرنامج السابق ينتج عنه طباعة الأرقام من 1 إلى 20.

ملاحظات:
1- العبارات الثلاثة المكونة لحلقة for يجب أن تفصل عن بعضها بالفاصلة المنقوطة، وهذا الخطأ من الأخطاء الشهيرة جدا في عالم البرمجة لذا وجب توخي الحذر.
2- في حالة تكرار أكثر من أمر يتم استبدال العبارة التي تلي بداية الحلقة for (في المثال السابق هي العبارة ( printf ( " %d",counter); ) ببلوك يحتوي العبارات المراد تنفيذها.


الحلقة while ( while loop):
في هذه الحلقة التكرارية نحتاج إلى الشرط فقط وطالما كان هذا الشرط متحققا استمرت الحلقة في التكرار..
والصورة العامة للحلقة while موضحة بالشكل التالي

CODE

while ( conditon )
{
statement 1;
statement 2;
.
.
statement n;
}




حيث ( condition ) هو الشرط اللازم لأداء التكرار، والعبارات بداخل أقواس البلوكات هي العبارات المراد تكرارها.
والمثال الموضح بالشكل التالي يوضح استخدام الحلقة while لطباعة الأعداد من 1 إلى 20

CODE

#include <stdio.h>
main()
{
int counter=1;
while ( counter <=20 )
{
printf(“%d”,counter);
counter++;
}
}




من المثال السابق يمكننا استخلاص النتاتج التالية عن الحلقة while:
1- تخصيص القيمة الابتدائية للعداد تتم خارج الحلقة while.
2- زيادة العداد تتم داخل الحلقة while

الحلقة التكرارية do-while:
تختلف هذه الحلقة عن الحلقتين السابقتين في مكان كتابة الشرط ، حيث يكتب الشرط هنا بعد العبارات المطلوب تكرارها.
والشكل التالي يوضح الصورة العامة للحلقة do-while

CODE

do
{
statement 1;
statement 2;
.
.
statement n;
}
while ( conditon




وأهم ملاحظة على الحلقة التكرارية do-while أنها تنفذ العبارات المطلوب تكرارها مرة واحدة على الأقل حتى ولو كان الشرط غير متحقق !!!
وتفسير ذلك أن التحقق من الشرط يتم بعد التنفيذ وليس قبله كما في الحلقتين السابقتين.






ويلاحظ أنه عند تنفيذ البرنامج قد يختلف عنوان الذاكرة المطبوع. ورمز الفورمات " %p " هو رمز خاص بالمؤشرات ويؤدي إلى طباعة عنوان الذاكرة بالنظام السداسي عشري.
الرجوع الى أعلى الصفحة اذهب الى الأسفل
معاينة صفحة البيانات الشخصي للعضو http://iq-prog.rigala.net
 
الدرس العاشر والاخير للبرمجة بلغة سي
الرجوع الى أعلى الصفحة 
صفحة 1 من اصل 1

صلاحيات هذا المنتدى:لاتستطيع الرد على المواضيع في هذا المنتدى
منتديات المبرمج العراقي :: لغات البرمجة :: منتدى البرمجة العام-
انتقل الى: