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

طريقة تحويل برنامج من for loop الى function

بدأه Beginner Programmer في 13 مايو 2011 · 3 رد · 572 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

برنامج يطبع الأعداد من 1 - 100 والعكس بـ for loop

#include<iostream>

using namespace std;

int i=1;

void print()

{

cout<<i<<endl;

}

int main()

{

for(i=1;i<=100;i++){print();}

cout<<"-------\n";

for(i=100;i>=1;i--){print();}

}

ماهي الطريقه الصحيحه لـ تحويل هذا البرنامج الى Function ؟

#2

مادام يبطبع دائما من 1-100 والعكس تقدر تخليه

void printFunc()

لو تشتي تتحكم بمدى الاعداد مثلا من 1 - x والعكس

تقدر تقول

void printFunc(int)

مع ملاحظة انك سوف تعدل في اللوب

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

والعكس

اذا كنت تريد التحكم بالمدى السفلي والمدى العلوي للدالة اي يطبع من x-y

اذا

void printFunc(int , int)

واللوب يصير

for(i =y ; i <=x ; i++)

طبعا لا يجوز ان اكتب البرنامج كاملا من و الى

اتمنى ان اكون قد افدتك

تم تعديل هذه المشاركة بواسطة mental-driller في 13 مايو 2011 في 21:01

No intellectual battle was ever won through retreat
You do not watch Gintama? Dude, you are missing a lot!


صورةmsrgb1485.gif ocajavase7programmerclr.gif

#3
Beginner Programmer كتب:

برنامج يطبع الأعداد من 1 - 100 والعكس بـ for loop

ماهي الطريقه الصحيحه لـ تحويل هذا البرنامج الى Function ؟

السلام عليكم

المقصود هو تحويل آداء وعملية for إلى Function

والشغلة الممكنة طبعاً هي استعمال تقنية الـ Recursion

استدعاء الـ function لذاتها لإتمام العمليات المطلوبة

هي الإشارة فقط إلى المطلوب ولكن آسفة لا يساعدني الجهد والجهاز لكتابة مثال او لكتابة البرنامج

أجمل الإمنيات

[وسط]

♥ Countess ♥

57899411.gif

♥

[/وسط]

#4

اذا افترضنا انك تريد ان تعمل الكود recursive كما قالت الاخت حورية ، اذا فالداله سوف تكون مشابه للتالي

void printFunc(){

	if(i % 10 == 0)
		cout << endl;
	if( i <= 100)
	{
	  cout << i++ << "\t" ;
	  printFunc();
	}
	if( i >= 100 && i <= 200){
	  if(i == 101)
			cout << endl << endl;
	  cout << (200+1-i++ ) << "\t" ;
	  printFunc();
	}

}

طبعا بفرض ان i متغير عمومي global كما ورد في الكود الخاص بك

تم تعديل هذه المشاركة بواسطة mental-driller في 14 مايو 2011 في 02:27

1

No intellectual battle was ever won through retreat
You do not watch Gintama? Dude, you are missing a lot!


صورةmsrgb1485.gif ocajavase7programmerclr.gif

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