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

ماذا لو لم تكن جملة For موجودة

مغلق
بدأه Dr.Pain في 24 مايو 2006 · 3 رد · 419 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاته .......

اخوكم مبتدئ سي بلس بلس لكن احببت ان اشارك اخوتي هذه المعلومة :

الكود التالي يقوم بطباعة الاعداد من 10 الى 1 على الشاشة :

for(int i=10;i>0;i--)
		{
			cout<<i<<"  ";
		}

حسنا الان تخيل معي انك لا تملك جملة For اي انها غير موجودة فما هو الحل بنظرك كي نقوم بمحاكاة

الكود السابق ؟؟؟ حسنا الحل يمكن في ما يسمى الاستدعاء التعاودي وهو استدعاء الدالة لنفسها !!!

اي اننا سف نقوم ببناء دالة تستدعي نفسها عدد من المرات كي تقوم بتنفيذ عمل معين والخروج

عندما يتحقق شرط معين وسوف تكون الدالة كالتالي :

void PrintNo(int no)
{
		if(no<=0)
		{
				return;
		}

		cout<<no<<"  ";
		PrintNo(no-1);
}

والان ماذا لو كان عندنا جملتين For واحدة داخل الاخرى كالتالي :

for(int i=4;i>=0;i--)
		{

	for(int j=i;j>=0;j--)
		{
			cout<<"*";
		}

	cout<<endl;
		}

الكود السابق يقوم بطباعة مثلث قائم الزاوية ولاحظ اننا استخدمنا جملتي For لذا فاننا سوف نقوم

ببناء دالتين الدالة الاولى سوف تمثل حلقة For الاولى والدالة الثانية سوف تمثل حلقة For الثانية :

void MainFor(int no);			//First For 
void PrintStars(int no);		  // Second For

main()
{
	MainFor(5);
	getchar();
	return 0;
}


void MainFor(int no)	 //First For 
{

	if(no<0)
	{
		return;
	}
		PrintStars(no-1);
		MainFor(no-1);
}

void PrintStars(int no)   // Second For
{

	if(no<0)
	{
		cout<<endl;
		return;
	}
		cout<<"*";
		PrintStars(no-1);
}

بس لي رجاء صغير :wacko: :wacko:

صراحة انا تعبت :wacko: يعني معي ال MSDN ولكني لم استطع ان اخرج منه بحق ولا باطل يعني مثلا عندما كنت ابحث عن شئ مختص ب VB

صراحة كنت اجد ما ابحث عنه بلمح البصر ولكن مع ++C الموضوع متعب مرة واحد .

حتى اني حاولت البحث عن كلمة Cout ولكن الذي حدث ان النتيجة كانت سطرين عمي لا طلعوا ولا نزلوا بالله عليكم اعينونا على فهم ملفات ال MSDN حيث انني لا اريد ان اعتمد على الكتب بل اريد الاعتماد على ملفات Microsoft بشكل اساسي .

للعلم انا استخدم VC++ :lol: :lol: :lol:

اخوكم Dr.Pain

#2

شكرا على المعلومات الجميلة يا أخى بارك الله فيك.

#3

معلومات روعه

يعطيك العافيه

#4

ممكن أستخدم أمر goto

ولكن من عيوبة انة بيعمل transfer for compiler

int x = 1;

 loop:
 if(x < 10)
 {
  cout<<x<<endl;
  x++;
 }
 else
 {
  getch();
  exit(0);

 }

 goto loop;

Muhammad Allam

Computer Science

@Resource(MappedURL="My Blog" )

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

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