الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

شرح كود برنامج صغير

مغلق
بدأه cold0zero في 18 ديسمبر 2003 · 8 رد · 614 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع
#include<iostream.h>
void main ()
{
	int i=0;
	while(i<5)
	{
  if(i<2)
  {
 	 i+=2;

  continue;
	}
	else cout<<++i<<endl;
	cout<<"b"<<endl;
}
}

ممكن شرح عمل البرنامج

تم تعديل هذه المشاركة بواسطة cold0zero في 18 ديسمبر 2003 في 04:09

#2

هلا أخوي ،، :)

بالنسبة للبرنامج ،،

عندنا هذه الأعداد فرضاً ،، مثل ما هو بالبرنامج ( 0 ، 1 ، 2 ، 3 ، 4 )

فهو يقوم بتنفيذ الآتي :

1 - إذا كان العدد أقل من 2 ،،

يزيد على العدد 2 و يكمل البرنامج .

2 - يزيد على العدد 1 ،، ثم يطبع الناتج ،،

ثم يطبع الحرف ( b ) .

-0-0-0-0-0-0-0-0-0-0-0-

النتيجة :

3

b

4

b

5

b

-0-0-0-0-0-0-0-0-0-0-0-

أما بالنسبة للكود ،، فلحظة و راجعة بها بإذن الله ،،

أختك ،،

#3

بوجه عام :

- عندنا حلقة تكرارية ( while-loop )

مطلوب منها تنفيذ عملية على مجموعة أعداد .

- بداخل الحلقة التكرارية يوجد شرط للتنفيذ ( if - else )

- سواءً تحقق الشرط أم لم يتحقق ،، نطبع الحرف ( b )

- بما أن جملة ( continue ) موجودة بجملة الشرط ( if ) ،،

إذن : راح نرجع للحلقة التكرارية بدون المرور على الجمل اللي تحت ( if ).

يعني ،، ماراح نطبع الحرف ( b ) ،، إن تحقق الشرط ،،

لاحظ معي أخي الكريم ،،

بأن جملة الـ ( if ) إذا تحققت ،، فراح نقوم بتنفيذ العمليات التابعة لها ،،

و التي تبدأ بفتحة القوس ( } ) و تنتهي بإغلاق القوس ( { )

و بداخلها عمليتين ،،

و لو ما كانت لها أقواس ،، فراح ننفذ أول أمر يتبع الـ ( if ) فقط ،،

فرضاً ،، العدد صفر ،، أقل من العدد 2 ،، إذن تحقق الشرط ،،

فيقوم بجمع 2 عليها ( 0 + 2 = 2 ) ،،

و راح يشوف كلمة ( continue ) ،، يعني خلاااااص ،،

لاتنفذ الأوامر اللي بعدها و ارجع للحلقة التكرارية ،،

- إذا ما دخل للجملة الشرطية ( if ) فراح يدخل لجملة الـ ( else )

و ينفذ اللي بأول سطر فقط ( زيادة بالعدد + طباعة ) ،، لعدم وجود الأقواس ،،

ثم ،، يطبع الحرف ( b )

وماراح يخرج من الحلقة ،، حتى نصل للعدد 5 ،،

- و على فكرة ،، الأمر ( continue ) أو ( break )

تجي عاااادة أو دائماً ،،

بداخل الجمل الشرطية التي بداخل الحلقة التكرارية ،،

مع وجود احتلاف بسيط ما بين ( continue ) و ( break )

و يارب أكون قدرت أفيدك بشئ ،، :)

#4

شرح رائع أختي العصامية

الفكرة و صلت و شكرا على سرعة ردك و استجابتك

#5

بس سؤال مرة تاني

طيب بالبداية كانت i تساوي الصفر و فاتت على حلقة if و صارت 2

وبعدين contiune شو عملت بظن هون السؤال يعني دائما شو هو عمل continue

#6
العصاميه كتب:
- بما أن جملة ( continue ) موجودة بجملة الشرط ( if ) ،،

إذن : راح نرجع للحلقة التكرارية بدون المرور على الجمل اللي تحت ( if ).

يعني ،، ماراح نطبع الحرف ( b ) ،، إن تحقق الشرط ،،

-0-0-0-0-

فرضاً ،، العدد صفر ،، أقل من العدد 2 ،، إذن تحقق الشرط ،،

فيقوم بجمع 2 عليها ( 0 + 2 = 2 ) ،،

و راح يشوف كلمة ( continue ) ،، يعني خلاااااص ،،

لاتنفذ الأوامر اللي بعدها و ارجع للحلقة التكرارية ،،

يعني ياخوي ،، :)

بياخد المتغير i و اللي قيمته تساوي صفر ، و يدخل للشرط if ،،،

و يجمع عليها 2 ،،

فتتغير قيمة ( i ) و تساوي 2 ،،

و بعدها ،، تجي وظيفة الـ continue ،،

و هي تقول للـ compiler ،، :

لا تخرج من الحلقة while

و لا تكمل بعد مانفذت الشرط ،،

لازم ألحين ترجع و تدخل الحلقة التكرارية التالية ،،

يعني لو هناك 10 أوامر بداخل الحلقة التكرارية و بعد الأمر if فماراح تتحقق ،،

ولا راح يشوفها و يمر عليها الـ compiler بسبب وجود الـ continue ،،

آسفة ،، و شكلي لخبطتك معاي ،، :(

-0-0-0-

ياليت لو ماوضحت لك بعد ،،

أحد من الأخوان اللي عنده أسلوب بالشرح ،، يشرحها لك ،،

أختك ،، :)

تم تعديل هذه المشاركة بواسطة العصاميه في 19 ديسمبر 2003 في 14:58

#7

أختي الكريمة اللي فهمتوا أنا الأن هو مايلي ياريت تشوفي اذا صح

بالبداية i تساوي الصفر تدخل حلقة وايل و من ثم حلقة if في هذي الحلقة يتم زيادة قيمة i الى 2 و الcontinue لا تسمح بتنفيذ الأوامر اللي بعد if و اللي هي طبعاة العبارة صح

بعدين تجي تختبر شرط if بعد ما أصبحت I تساوي 2 تطلع من الحلقة و ترجع لحلقة وايل و اللي بدورها تحتوي بقية شرط الجلمة if/else و هي ستقوم بالبداية بزيادة قيمة i و طبعاتها و طباعة الجملة اللي تحتها و هيك لوقت يختل شرط حلقة while صح الكلام

#8

هلا أخوي ،،

و الله طلع شرحك أفضل من شرحي ،، ماشاء الله عليك ،، :)

و هو بالزبط مثل ما قلت ،،

و للتأكيد ،، بأفرض إنه عندنا جملتين بعد continue ،،

cout<< ( i* 3 );

cout<< " HELLO ";

فماراح تتنفذ لنا أبداً ،،

مع إنها داخل الشرط ،، if ،،

 #include<iostream.h>
void main ()
{
int i=0;
while(i<5)
{
 if(i<2)
 {
  i+=2;

 continue;

cout<< ( i* 3 );

cout<< " HELLO ";

}
else cout<<++i<<endl;
cout<<"b"<<endl;
}
}

و تحية لك أخي الكريم ،،

و الحمد لله إنها وصلت ،، :)

و أي استفسار ،، نحن بالخدمة ،

تم تعديل هذه المشاركة بواسطة العصاميه في 19 ديسمبر 2003 في 19:22

#9

شكرا الك أنتي اللي تعبتي بالشرح

هذا الموضوع مغلق.

مواضيع مشابهة