2013/03/06

الدرس الخامس في لغة البرمجة السي شارب . نت C#.net الحلقات التكرارية for loops

الدرس الخامس في لغة البرمجة السي شارب . نت C#.net الحلقات التكرارية for loops

ما هي الحلقات التكرارية (loops) بالإنجليزية او boucles بالغة الفرنسية  ؟

الحلقات التكرارية هي سلسلة بسيطة من التعليمات و الأوامر ، تجنبنا كتابة آلاف الأوامر التي تكرر. مثلا نريد أن نكتب برنامج يقوم بإظهار الأرقام من واحد الى 100 أو 1000، فبالطرق التي درسناها سابقا نحتاج الى 100 سطر برمجي لإظهار 100 رقم ، أما باستعمالنا الحلقات التكرارية فيمكننا كتابة برنامج من حوالي 5 أسطر فقط يمكن أن يظهر لنا عدد غير منتهي من الأرقام. و توجد عدة أنواع من الحلقات التكرارية و هي :
- for
- foreach
- while
- do while
الدرس الخامس في لغة البرمجة السي شارب . نت C#.net الحلقات التكرارية for loops

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

تستعمل الحلقة التكرارية for لتكرار نفس الأوامر عدة مرات.
مثال:

for (int i = 0; i < 10; i++)
{
Console.WriteLine("hello");
}
استعملنا int i لإنشاء متغير جديد i من نوع integer و أعطيناه قيمة ابتدائية وهي 0 ، وهنا نستعمل المتغر i كعداد نحدد به القيمة التي ينطلق منها لحساب عدد مرات التكرار. كما يمكننا الإنطلااق من أي رقم نريد.و نستطيع ايضا تعريف المتغير خارج الحلقة for او استعمال متغير انشأناه سابقا.
نفس المثال بطريقة أخرى:
int i;
for (i = 1; i <= 5; i++)
{
Console.WriteLine("hello");
}
استعملنا أيضا i<10 في المثال الأول وi<=10 ( المتغير i أصغر من أو يساوي 10) في المثال الثاني و هنا حددنا الشرط الذي تتوقف فيه الحلقة، كما في المثال الثاني فالحلقة تبدأ من 1 و تنتهي في 5 . أي أن هذه الحلقة تقوم بإظهار الكلمة hello 5 مرات.
اما بالنسبة ل i++ فنحدد به طول الخطوة التي تقوم بها الحلقة عند التكرار مثلا :
i++ تعني نضيف الى المتغير i رقم واحد في كل مرة وهي تساوي i+1.
i+2 نضيف 2 كل مرة الى نقوم بالتكرار.

مثال آخر يقوم باضهار الأعداد من 0 الى 9
int i;
for (i = 0; i < 10; i++)
{
Console.WriteLine(i);
}
مثال آخر يقوم بإظهار الأعداد الفردية بين 0 الى 10
int i;
for (i = 1; i <= 10; i+2)
{
Console.WriteLine(i);
}
في هذا المثال انطلقنا من العدد 1 و في كل مرة نضيف 2 الى المتغير i أي 
i=1;
i+2=3;
i+2=5;
i+2=7;
i+2=9;

 مثال يقوم هذا البرنامج باظهار الأعداد من 0 الى 50 مع كتابة أمام كل عدد اذا كان عدد فردي odd أو زوجي Even.

في نفس الوقت نستعمل المتغير od لحساب عدد الأعداد الفردية و المتغير ev لحساب عدد الأعداد الزوجية.


using System;
using System.Collections.Generic;
using System.Text;

namespace Number_Status_Test
{
    class Program
    {
        static void Main(string[] args)
        {
            int number = 50;
            int i;
            int ev = 0;
            int od = 0;

            for (i = 0; i < number ; i++)
            {
                if ((i % 2) == 0)
                {
                    Console.WriteLine("{0} is an even number.", i);
                    ev = ev + 1;
                }
                else
                {
                    Console.WriteLine("{0} is an odd number.", i);
                    od = od + 1;
                }

                Console.WriteLine("        ***   ");
            }
 
            Console.WriteLine("the number of odd numbers is : {0}", od);
            Console.WriteLine("the number of even numbers is : {0}", ev);
            Console.ReadLine();
        }
    }
} 
   
أولا قمنا بانشاء عدة متغيرات:
 number و هو عدد مرات التكرار. 
 i هو العداد الذي استخدمناه للوصول الى المتغير number و الذي يساوي في مثالنا هذا 50. و الذي نضيف اليه 1 كل تكرار للحلقة بالتعليمة التالية i++ . 
 لكي نستطيع تحديد هل العدد زوجي أو فردي نقو باختبار اذا كان باقي قسمة العدد i على 2 هو 0 فالعدد اذن زوجي أما اذا كان الباقي لا يساوي 0 فالعدد فردي . و نقوم بهذا الإختبار بالتعليمة التالية :
   if ((i % 2) == 0)  : و التي تعني هل باقي قسمة i على 2 يساوي 0 فننفذ العمليات الأولى و هي   
  Console.WriteLine("{0} is an even number.", i); 
اظهار قيمة i بالضافة الى النص
 ev = ev + 1; 
نقوم باضافة 1 الى المتغير ev لأننا وجدنا أن المتغير i في الحلقة الحالية زوجي.
في حالة ما اذا كان باقي قسمة i على 2 لا يساوي 0 ننفذ التعليمات التالية:

Console.WriteLine("{0} is an odd number.", i);
                    od = od + 1;
ونضيف 1 الى المتغير od لأن المتغير i في هذه الحالة فردي.  

----------------------------------- 

 اذا كنت متابع جديد لدروس البرمجة بلغة سي شارب .نت C#.net على موقع بوابة التكنولوجيا يمكنك الإطلاع على الدروس السابقة:

* ما الفرق بين لغات البرمجة ؟ ماذا أختار ؟ و كيف أصبح مبرمج محترف ؟

* الدرس الأول : مقدمة الى تعلم لغة البرمجة سي شارب.نت c# sharp.net 

* الدرس الثاني المتغيرات و المعرفات و الثوابت في لغة البرمجة سي شارب.نت C#.net C Sharp.net

* الدرس الثالث من دورة دروس تعليم البرمجة بلغة السي شارب .نت C#.net الدوال الشرطية

* الدرس الرابع من دورة دروس تعليم البرمجة بلغة السي شارب .نت C#.net الدوال الشرطية الجزء الثاني



7 تعليقات :

  1. بارك الله فيك اخي احمد

    ردحذف
  2. بارك الله فيك اخي احمد

    ردحذف
  3. طيب هل فيه شرح لنفس هالمثال بس فيه فور ثانيه معآه الكود بهالطريقه
    } (++for (int i =1; i<=8;i

    } (++for (int j=1;j<=i;j
    ;("*")console.write
    {
    {

    ردحذف
  4. سؤال:بدي طباعة مجموع الأعداد الفردية من1 إلى 1000

    ردحذف
  5. سؤال:بدي طباعة مجموع الأعداد الفردية من1 إلى 1000

    ردحذف
  6. الحلقات التكراريه while لحساب حاصل جمع الارقام من 1 الي 100
    اكتب البرنامج بلغه الc#
    عايز الحل السؤال دا ف اقرب وقت

    ردحذف
    الردود
    1. ابغا برنامج يحسب عدد الكابيتال في السترينق

      حذف