قسم الميكروكنترولر والروبوت ودوائر الاتصال بالحاسب الالي قسم المتحكمات الـ microcontroller و المعالجات microprocessor و التحكم الرقمي بالكمبيوتر CNC والانظمة الآلية والروبوت Robots

أدوات الموضوع

الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,894
نشاط [ F.Abdelaziz ]
قوة السمعة:328
قديم 12-12-2010, 12:09 PM المشاركة 1   
افتراضي 10- البرمجة بلغة السى : التحكم فى البرنامج :حلقات التكرار باستخدام for Twitter FaceBook Google+





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

اعلانات

الصورة الرمزية صقر الافق
صقر الافق
:: مهندس جيد ::
تاريخ التسجيل: Dec 2009
الدولة: المغرب
المشاركات: 218
نشاط [ صقر الافق ]
قوة السمعة:0
قديم 12-12-2010, 01:26 PM المشاركة 2   
افتراضي


كل الشكر موصول لك أخي الكريم بارك الله فيك على الدروس الرائعة التي تقدم لهدا المنتدى الحبيب وفقك الله

اعلانات اضافية ( قم بتسجيل الدخول لاخفائها )
  

الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,894
نشاط [ F.Abdelaziz ]
قوة السمعة:328
قديم 12-12-2010, 03:08 PM المشاركة 3   
افتراضي


كل الشكر موصول لك أخي الكريم بارك الله فيك على الدروس الرائعة التي تقدم لهدا المنتدى الحبيب وفقك الله
اخى الكريم

شكرا جزيلا لك

تقدير اعتز به

بارك الله فيك

مع تمنياتى بدوام التوفيق


اسامه الهرفي
:: مهندس ::
تاريخ التسجيل: Oct 2010
المشاركات: 7
نشاط [ اسامه الهرفي ]
قوة السمعة:0
قديم 08-04-2011, 09:06 AM المشاركة 4   
افتراضي كيف اميز بين الثايرستور والترانزستور بالشكل


مشكور جدا استاذنا الفاضل على ماتقدمه لنا من علم وفائده
كبيره جعله الله في ميزان حسناتك
لي سؤال اخي الكريم :-
كيف اميز بين الثايرستور والترانزستور بالشكل
مشكور مره اخرى


الصورة الرمزية سعيد قادر
سعيد قادر
:: عضو ذهبي ::
تاريخ التسجيل: Apr 2009
الدولة: العراق/ كوردستان
المشاركات: 2,915
نشاط [ سعيد قادر ]
قوة السمعة:147
قديم 08-04-2011, 11:32 AM المشاركة 5   
افتراضي


جزاك الله كل الخير استاى العزيز


الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,894
نشاط [ F.Abdelaziz ]
قوة السمعة:328
قديم 08-04-2011, 11:33 AM المشاركة 6   
افتراضي


مشكور جدا استاذنا الفاضل على ماتقدمه لنا من علم وفائده
كبيره جعله الله في ميزان حسناتك
لي سؤال اخي الكريم :-
كيف اميز بين الثايرستور والترانزستور بالشكل
مشكور مره اخرى

اخى الكريم

شكرا جزيلا لك

من الصعب التمييز بينهما فى الشكل الخارجى فى معظم الحالات .

مع تمنياتى بدوام التوفيق


الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,894
نشاط [ F.Abdelaziz ]
قوة السمعة:328
قديم 08-04-2011, 11:36 AM المشاركة 7   
افتراضي


جزاك الله كل الخير استاى العزيز
اخى الكريم

شكرا جزيلا لك

بارك الله فيك

مع تمنياتى بدوام التوفيق


goldfinger2
:: مهندس متواجد ::
تاريخ التسجيل: Oct 2006
الدولة: egypt
المشاركات: 188
نشاط [ goldfinger2 ]
قوة السمعة:0
قديم 08-04-2011, 04:15 PM المشاركة 8   
افتراضي


جزاك الله خيرا

إضافة رد

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

«     الموضوع السابق       الموضوع التالي    »
أدوات الموضوع

الانتقال السريع إلى


الساعة معتمدة بتوقيت جرينتش +3 الساعة الآن: 08:56 AM
موقع القرية الالكترونية غير مسؤول عن أي اتفاق تجاري أو تعاوني بين الأعضاء
فعلى كل شخص تحمل مسئولية نفسه إتجاه مايقوم به من بيع وشراء وإتفاق وأعطاء معلومات موقعه
التعليقات المنشورة لا تعبر عن رأي موقع القرية الالكترونية ولايتحمل الموقع أي مسؤولية قانونية حيال ذلك (ويتحمل كاتبها مسؤولية النشر)

Powered by vBulletin® Version 3.8.6, Copyright ©2000 - 2024