Yalla7



لم يتم تسجيل دخولك بعد . اذا لم تكن مشترك معنا فنتمنى تسجيلك والانضمام لنا


البرمجة بلغة الc++ " الحلقات والتكرارات " 54828302


انضم إلى المنتدى ، فالأمر سريع وسهل

Yalla7



لم يتم تسجيل دخولك بعد . اذا لم تكن مشترك معنا فنتمنى تسجيلك والانضمام لنا


البرمجة بلغة الc++ " الحلقات والتكرارات " 54828302

Yalla7

هل تريد التفاعل مع هذه المساهمة؟ كل ما عليك هو إنشاء حساب جديد ببضع خطوات أو تسجيل الدخول للمتابعة.

3 مشترك

    البرمجة بلغة الc++ " الحلقات والتكرارات "

    .!?.ELFNkouٍٍSH
    .!?.ELFNkouٍٍSH
    -=| مشرف سابق |=-
    -=| مشرف سابق |=-


    ذكر
    عدد الرسائل : 874
    العمر : 34
    محل الاقامة : قلوب الناس
    تاريخ التسجيل : 25/04/2007

    البرمجة بلغة الc++ " الحلقات والتكرارات " Empty البرمجة بلغة الc++ " الحلقات والتكرارات "

    مُساهمة من طرف .!?.ELFNkouٍٍSH الأربعاء أبريل 25, 2007 3:47 pm

    تعلم ++c





    الدرس الثالث


    الحلقات
    والتكرارات






    مساء الخير

    سندخل في الموضوع
    مباشرة بدون لف أو دوران مع ان الموضوع يتعلق بالدوران والتكرار لقد تحدثنا عن
    فكرة الحلقات التكرارية او Loops في المقال العام عن البرمجة

    طريقتين لعمل هذه
    الحلقات الاسلوب الاول بلامر for
    والثاني بالامر while

    لنأخذ جزئية
    البرنامج التالي



    #include <iostream.h>


    int main()


    {

    int x;

    for(x=0;x<100;x++)


    {






    cout<<x<<endl;


    }

    return 0;

    }





    السطور ذات اللون
    الازرق تناولنا شرحها بالدرس الاول
    أما السطور ذات اللون الاحمر فهي موضوع دراستنا اليوم

    تقوم الحلقات
    التكرارية بتنفيذ عدة اوامر موضوعة داخل بلوك ونقصد ببلوك مابين القوسين }
    مجموعة اوامر{ الى ان تنتهي الحلقات او عدد الحلقات المحددة منك وعددها في
    مثالنا السابق 100 حلقة تكرارية وبدقة تبدء الحلقات من رقم صفر الى رقم 99 ومعنى
    ذلك ان العدد الاجمالي 100 حلقة بعد حساب الصفر من ضمن الارقام انتبه لذلك وتذكر
    ان المتغير x
    يجب الاعلان عنه قبل استخدامه وذلك حسب نوع استخدامك له وهنا استخدمنا
    نوعه كعدد صحيح بالطبع يمكنك استخدامه كعدد عشري واليك صيغة الامر بالتفصيل










    الصيغة



    التفسير





    for



    امر اللغة لعملية التكرار





    (



    قوس مفتوح يوضح بداخله بارامترات الامر





    x=0;



    المتغير = رقم بداية الحلقات





    x<100;



    شرط نهاية الحلقات





    x++



    المتغير يزيد بمقدار واحد مع بداية كل حلقة – لاتضع
    بعده فاصلة منقوطة






    )



    قوس نهاية بارامترات الامر – لاتضع بعده فاصلة
    منقوطة






    {



    قوس بداية بلوك الاوامر المطلوب تكرارها





    بداخل اقواس البلوك توضع الاوامر المطلوب تكرارها





    }



    قوس نهاية بلوك الاوامر المطلوب تكرارها








    بداخل بلوك
    الاوامر تم تنفيذ الامر



    cout<<x<<endl



    وهو امر يقوم
    بطبع قيمة x التي
    تتغير في كل مرة ابتداء من صفر حسب ماذكرت ان

    X=0 وتزيد في كل مرة بمقدار 1
    حسبما ذكرت ان x++ وذلك حتى يصل الى 99 حسبما ذكرت ان x<100

    وendl تعني end of line اي انتقل الى سطر جديد كلما
    طبعت قيمة حتى لا يسرد طبع الارقام متجاورة بل يطبع على كل سطر قيمة المتغير
    وبالتالي ستكون مخراجات البرنامج كما يلي

    0


    1


    2

    3

    4

    .

    .

    .

    99



    لنستفيد اكثر من
    قوة الحلقات التكرارية وايضا نرى امكانات اخرى لها بوضع حلقة داخل حلقة كما يلى في البرنامج الذي يطبع جدول الضرب من جدول واحد حتى
    جدول 12



    #include
    <iostream.h>


    int main()


    {

    int x , y ,
    z;

    for(x=1;x<13;x++)


    {


    for(y=1;y<13;y++)


    {

    z = x * y;


    cout<<x<<”*”<<y<<”=”<<z<<endl;


    }

    }



    return 0;



    }

    كما تعلم ان
    السطور الزرقاء سبق دراستها ولكن ننوه فقط اننا اعلنا عن ثلاث متغيرات لاعداد
    صحيحة الاول للحلقة الاولى والثاني للحلقة الثانية والثالث لاحتواء حاصل الضرب
    وهو الهدف من البرنامج.


    بنفس ماسبق شرحه
    وضعنا حلقة تكرارية تبدء من رقم واحد وتنتهي برقم 12 وتزيد بمقدار واحد واوامر
    هذه الحلقة مكتوبة للتوضيح بخلفية صفراء حيث بدأت الحلقة بالصيغة السابق شرحها
    ثم قوس بداية البلوك وقوس نهاية البلوك حيث يوضع مابين القوسين سلسلة اوامر
    لتنفيذها كما سبق واتفقنا عليه



    for(x=1;x<13;x++)


    {




    اوامر مطلوب تنفيذها

    }



    وبداخل اقواس
    البلوك للحلقة الاولى مطلوب وضع اوامر للتنفيذ فكانت اوامر التنفيذ داخل البلوك
    عبارة عن حلقة اخرى وما المانع فالحلقات وغيرها هي نفسها اوامر والحلقه الاخرى
    كانت عبارة عن عداد يعد من الرقم 1 الى الرقم 12 وهي ايضا تحتاج الى صيغة معينة
    واقواس بلوك للتنفيذ وهي موضوعة في البرنامج بخلفية خضراء كما يلي

    for(y=1;y<13;y++)


    {


    z = x * y;


    cout<<x<<"*"<<y<<"="<<z<<endl;


    }

    وبداخل بلوك
    الاوامر للحلقة الثانية وضعنا عدة اوامر لتفى بالغرض الذي من اجله تم عمل
    البرنامج وهو جدول الضرب – عبارة عن معادلة لحساب حاصل ضرب المتغيرين x و y

    ويوضع الناتج في
    المتغير z كما
    يلي




    z = x * y;

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



    ·
    يبدء البرنامج بالدخول الى الحلقه الاولى ويخصص للمتغير اكس القيمة واحد حيث
    انها قيمة عداد البداية ثم يدخل الى داخل اقواس بلوكه لتنفيذ ما بداخله فيجد
    حلقه اخرى فيبدء بتنفيذها وطلبت الحلقة ان يكون متغيرها واي يبدء بالقيمة واحد
    وينتهي بالقيمة 12 ثم تدخل الحلقة الثانية الى بلوك اوامرها فتجد معادلة يضرب
    فيها قيمة اكس التي هي واحد الآن وتتغير قيمة واي فيها ثم طبع النتائج وتظل
    الحلقة الداخلية تنفذ بتغير واي مع ثبات اكس بالطبع وتكون النتائج كما يلى




    1 * 1 = 1

    1 * 2
    = 2

    1 * 3
    = 3

    .

    .

    .

    1 * 12
    = 12

    وعند وصول نهاية
    عداد الحلقة الداخلية الى 12 وهو نهاية الحلقة ينتهي تنفيذ الحلقة فيستمر
    البرنامج فيجد امامه قوس نهاية الحلقه الخارجية ذو الخلفية الصفراء فيعود الى
    الحلقة الخارجيه حيث تزيد قيمة اكس بمقدار واحد وتصبح قيمتها = 2 فيدخل الى بلوك
    اوامره كما سبق فيجد حلقة اخرى تبدء من واحد وتنتهي ب 12 وبداخلها معادلة وامر
    طبع فيكون التنفيذ كما يلي

    2 * 1
    = 2

    2 * 2 = 4

    2 * 3
    = 6

    .

    .

    .

    2 * 12
    = 24



    وهكذا يستمر
    التنفيذ الى ان تصل الحلقة الخارجية الى نهايتها بالرقم 12 واثناء ذلك تنفذ
    الحلقة الداخلية من بدايتها الى نهايتها اي من 1 الى 12 وتطبق المعادلة وامر
    الطبع ليكون اخر تنفيذ كما يلي

    12 * 1
    = 12

    12 * 2 = 24

    12 * 3
    = 36

    .

    .

    .

    12 * 12
    = 144



    شرح صياغة امر
    الطبع بالصورة التالية






    cout<<x<<"*"<<y<<"="<<z<<endl;




    مابداخل علامات
    الاقتباس دائما يطبع كما هو وهو مميز اعلاه بالخلفية الخضراء وكل مايوضع داخل
    علامة الاقتباس يطبع نصه كما هو اما ماهو خارج علامات الاقتباس بين ازواج
    الاقواس >>متغير>> فيطبع
    قيمة المتغير وليس اسم المتغير فمثلا x لاتطبع x ولكن تطبع قيمتها فمثلا 1 – 2 – 3
    ----- 12 حيث انها متغيرات وتميز اعلاه بالخلفية الصفراء وذلك للحصول على شكل
    مقبول يوضح العملية المطلوبة لتظهر النتائج بالصورة



    12 * 12 = 144



    والآن الى النوع
    الثاني من الحلقات وهو ابسط من السابق ولكن السابق اكثر استخداما واكثر قوة



    While




    #include
    <iostream.h>




    int main()


    {

    int x=0;


    while(x<100)

    {

    cout<<x<<endl;

    x++;





    }


    return 0;

    }



    سوف اشرحها لك في
    سطور قليلة لبساطتها الاوامر باللون الازرق سبق شرحها اما الحلقة موضع النقاش
    فهي باللون الاحمر وصيغتها



    while(x<100)



    وبعد الاعلان عن
    المتغير اكس خلاصة شرح الامر السابق (أعد تنفيذ ما بداخل البلوك طالما اكس او
    المتغير اقل من 100 ثم اقواس بلوك تضع ماشئت بداخله من اوامر وقوس نهاية البلوك
    ويزيد معنا فقط عداد للمتغير ليزيده بالمقدار الذي تريده ويوضع في اي مكان داخل
    الحلقة او حسب افكارك عن البرنامج المهم لاتنساه والا سوف يدور البرنامج داخل
    الحلقة الى الابد حيث ان شرط نهايتها ان تزيد اكس عن 100 وطالما لم تضع عداد
    زياده للمتغير فلن يتحقق الشرط وبالتالى لن تنتهي الحلقه الى الابد ويظل يعمل الكومبيوتر
    بلا نهاية للبرنامج ويميز العداد بالخلفية
    الصفراء واليك جدول صياغة الامر الذي تعودنا عليه.







    الصيغة



    التفسير





    while



    امر اللغة لعملية التكرار





    (



    قوس مفتوح يوضح بداخله بارامترات الامر





    X<100



    المتغير مع شرط لنهاية الحلقة





    )



    قوس نهاية بارامترات الامر – لاتضع بعده فاصلة
    منقوطة






    {



    قوس بداية بلوك الاوامر المطلوب تكرارها





    بداخل اقواس البلوك توضع الاوامر المطلوب تكرارها





    x++;



    ولا تنسى عداد الزياده او النقصان ليتحقق الشرط
    لانهاء تنفيذ الحلقة






    }



    قوس نهاية بلوك الاوامر المطلوب تكرارها










    لقد ذكرت لك كلمة
    عداد الزيادة او النقصان نعم يمكن ان يتناقص العداد اذا كانت صيغة البرنامج كما
    يلي وذلك لطبع قيمة المتغير تناقصيا من 99 الى صفر بعد ان كان في البرنامج
    السابق تصاعديا من صفر الى 99 ويكون التعديل كما يلي




    #include
    <iostream.h>




    int main()


    {

    int x=99;


    while(x>0)


    {

    cout<<x<<endl;

    x--;





    }


    return 0;

    }



    بدء هنا تخصيص
    المتغير مع الاعلان بالقيمة 99 ثم شرط التكرار ان يكون متى كانت قيمة المتغير
    اكبر من الصفر ثم عداد تناقصي يظل يطرح واحد من القيمة الى ان يصل الى الصفر ثم
    يطرح من الصفر 1 فتصبح قيمته –1 وبالتالي لايتحقق الشرط حيث ان قيمة –1 ليست
    اكبر من الصفر وتنتهي الحلقه كما نريد لاحظ العداد
    التناقصي بالخلفية الصفراء





    الكاتب : م / محمود عادل





    [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط]
    SaFo
    SaFo
    -=| عضو vip |=-
    -=| عضو vip |=-


    ذكر
    عدد الرسائل : 4870
    العمر : 31
    محل الاقامة : ــــــــــــــــــــــــ
    تاريخ التسجيل : 19/06/2007

    البرمجة بلغة الc++ " الحلقات والتكرارات " Empty رد: البرمجة بلغة الc++ " الحلقات والتكرارات "

    مُساهمة من طرف SaFo الثلاثاء يوليو 17, 2007 1:08 am

    مشكوووووووووووووووووووووووووور يا معلم
    H.U.R.T
    H.U.R.T
    عضو ميه ميه
    عضو ميه ميه


    انثى
    عدد الرسائل : 195
    محل الاقامة : بلاد الله الواسعه
    تاريخ التسجيل : 17/07/2007

    البرمجة بلغة الc++ " الحلقات والتكرارات " Empty رد: البرمجة بلغة الc++ " الحلقات والتكرارات "

    مُساهمة من طرف H.U.R.T الثلاثاء يوليو 17, 2007 11:05 pm

    thxxxxxxxxxxxxxx

      الوقت/التاريخ الآن هو الأحد مايو 19, 2024 12:53 pm