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

ماهي recursive function

بدأه حسين احمد طالب في 29 أبريل 2011 · 3 رد · 1,221 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

ماهي recursive function ؟

هي استدعاء الدالة لنفسها لمرة او اكثر من مرة.

شكلها؟

Function recursive(ByVal paramenter) As Integer 
recursive(paramenter) 
End Function

مافائدتها في برامجنا ؟

فائدتها تقلل من عدد الاكواد البرمجيه وتسهل فهم البرنامج في مراجعته

كيف نستغلها؟

لفرض اننا اردنا ايجاد X^n

بهذه الطريقة اي الرقم يضرب في نفسه عدد من المرات. فنكون داله هكذا

:

Function power(ByVal x As Integer, ByVal n As Integer) As Integer 
 If n > 0 Then 
 Return (x * power(x, n - 1)) 
 Else 
 Return 1 
 End If 
 End Function

لو كان لدينا

power( 3,5)

فتسلسل العمليات داخل recursive تكون هكذا

 3*3(function recursive(3,5-1) 
3*3*3(function recursive(3,4-1) 
3*3*3*3(function recursive(3,3-1) 
3*3*3*3*3(function recursive(3,2-1) 
3*3*3*3*3 *3(function recursive(3,1-1)

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

لو اردنا البحث داخل قرص معيين او داخل الومبيوتر كله عن ملف معيين

باستخدام هذه الدالة لاحظ كم تبسط الكود

Public Sub FindFile(ByVal targetDirectory As String) 
  Try 
 Dim fileEntries As String() = Directory.GetFiles(targetDirectory) 
   Dim fileName As String 
  For Each fileName In fileEntries 
'هنا تظهر جميع الملفات بكا مجلد نستطيع ان نجدها بسهولة 
   Next 
  Dim subdirectoryEntries As String() = Directory.GetDirectories(targetDirectory) 
  Dim subdirectory As String 
   For Each subdirectory In subdirectoryEntries 
'في حال وجد مجلد داخل المجلد الحالي يرجع يبحث في داخله 
FindFile(subdirectory) 
  Next subdirectory 
        Catch ex As Exception 
        End Try 
End Sub

عند الاستدعاء نكتب

FindFile("D\")

في ما لو اردنا البحث ضمن هذه المحرك

1

------------------

حسين الربيعي

 

مهندس برامجيات من العراق

 

ادرس  في  RIT  في الولايات المتحدة

 

مدونتي

http://hussienahmmed.blogspot.com/

 

قناة اليوتيوب الخاصة بلدورات

https://www.youtube.com/user/alxs1aa

#3

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

اخي الدوال التعادويه لا تستخدم فقط في العمليات الحسابيه .. لأنه يمكن مثلا استخدامها في عرض المجلدات والملفات في قرص معين

.:: Wish to become better and better ::.

#4

اخي الكريم شكرا الى الاخ vbhelper على تجاوبه معك

ال recursive function ليس هناك شرط في استخدامها

اي تستخدم في اي مكان ومنها

ماذكرته في المثال البحث داخل ملفات النظام

------------------

حسين الربيعي

 

مهندس برامجيات من العراق

 

ادرس  في  RIT  في الولايات المتحدة

 

مدونتي

http://hussienahmmed.blogspot.com/

 

قناة اليوتيوب الخاصة بلدورات

https://www.youtube.com/user/alxs1aa

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