السام عليكم لو سمحت انا اريد شرح recursive and non-recursive
functions
السام عليكم لو سمحت انا اريد شرح recursive and non-recursive
functions
أولا يا أختي لا بد من إختيار العنوان المناسب لموضوعك ...
ثانيا بالنسبة لسؤالك ....
بسم الله الرحمن الرحيم
أولا non-recursive لم أسمع بهذا الإسم ولكن تسمي الداله العاديه ...
هي إستخدام الداله بشكل عادي لتنفيذ أوامرها عند إستدعائها ... من داخل دالة main() >>
مثال ..
#include <iostream>
using namespace std;
void print(int n)
{
cout << n;
}
int main()
{
int x=5;
print(x);
return 0;
}نبدأ دائما من الداله main() نقوم بالإعلان عن متغير ونقوم بإعطائه القيمه 5
بعدها نستدعي الداله print()يقوم المترجم بالبحث عن تعريف لهذه الداله فيجده خارج في منطقة الglobal
فتقوم بأخد القيمه الممرره إليها وهي x أي القيمه 5 وتقوم بتنفيذ الأوامر التي بداخلها أي تقوم بطباعة الرقم 5.
أما بالنسبه لل recursive هي الداله العوديه
تعريفها :هي الداله التي تسدعي نفسها
لاحظي الفرق بينها وبين الاولي هي ان الأولي تُستدعي بواسطة ال main مره واحده فقط
أما هنا فإن الداله الغوديه تسدعي بواسطه نفسها
مثال
#include <iostream>
using namespace std;
void print(int n,int m)
{
cout << n;
if (m<5)
print(n,m+1);
}
int main()
{
int x=5;
print(x,1);
return 0;
}هنا أيضا نبدا من ال main عرفنا متغير وإستدعينا داله print بوسيطين هما x و رقم 1 .
في الخارج تستقبل الداله الوسيطين فتقوم بطبع الوسيط الأول .. وبعدها تختبر إذا كان الشرط m<5 إذا كان كذلك تنفذ هذه التعليمه print(n,m+1);
وهي .... تقوم بإستدعاء نفسها مره أخري " أي تبدأ من جديد " ولكن بوسيط مختلف m+1 >> نبدأ من أول تعليمه في الداله وهي طبع المتغير فتتطبعه ثم تختبر مره أخري
الشرط ولكن m أصبحت 2 فتكمل وتنفذ أيضا التعليمه print(n,m+1); تقوم بإستدعاء نفسها أيضا ولكن بوسيط مختلف m+1 وهكذا حتي يكون m مساوي لل 5 فتخرج من الداله
الخلاصه
* الدوال العاديه تستدعي بواسطة المين لتنفيذ أوامرها مره واحده ثم تنتقل إل المين مره أخري
*الدوال العوديه تستدعي من قبل المين بتنفيذ اوامرها ثم تختبر شرط معين به أحد وسائط الداله حتي تعيد تنفيذ أوامرها مره أخري
*لابد أن يكون هناك شرط لتنفيذ الداله العوديه وإلا لأصيحت لا نهائيه أي مستمره ....
وشكرا والسلام عليكم
.............. بسم الله الرحمن الرحيم ...............ز
"فمن إتبع هداي فلا يضل ولا يشقي " صدق الله العظيم
ماض في الطريق إلي .... C++
الأخ الكريم/الأخت الكريمة
السلام عليكم ورحمة الله وبركاته
مرحباً بكم في منتدى الفريق العربي للبرمجة
نود تنبيهك أن العنوان غير مناسب.
الرجاء اختيار عنوان مناسب أكثر في مواضيعك القادمة، وهذا بمثابة إشعار للأهمية.
وفي حال التكرار سيتعرض موضوعك للإغلاق والحذف!!!
قواعد المشاركة
شاكرين لكم حُسن تعاونكم
Do as I say, not as I do
We are Anonymous. We are Legion. We don't forgive. We don't forget
ممكن التوضيح اكثر لاني مااستوعبت recursive and non-recursive function
المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية
جارٍ التحقق من المتواجدين…