سارة الحميدي نشر 7 أبريل 2020 أرسل تقرير نشر 7 أبريل 2020 اريد شرح للاستدعاء الذاتي اذا ممكن لانو مش فاهمته كويس اقتباس
0 Mohammed Ahmed13 نشر 7 أبريل 2020 أرسل تقرير نشر 7 أبريل 2020 مرحباً بك @سارة الحميدي. الـ Recursion أو الإستدعاء الذاتي كمفهوم هو طريقة لحل المشاكل إعتماداً على تقسيم المشكلة إلى عدد من الأجزاء الصغيرة وحلها مع بعض لتكوين حل شامل للمشكلة الأساسية. أما برمجياً يمكن تعريفه بأنه إستدعاء الدالة (Function) لنفسها عدة مرات بمعطيات مختلفة أقل صعوبة في الحل لإيجاد الغرض المطلوب منها. من أجل التوضيح أدناه يوجد مثال لإيجاد مضروب العدد بإستخدام الإستدعاء الذاتي (يعرف مضروب العدد Factorial بأنه حاصل ضرب العدد في جميع الأعداد الأصغر منه ماعدا الصفر): def factorial(n): if n <= 1: return 1; else return n * factorial(n-1) يلاحظ أنه تم أولا التوصل للحلول الأبسط أولا (مضروب العدد 1 هو 1 بدون حساب). بعدها إذا كان العدد المدخل أكبر من الواحد فتقوم الدالة بضرب هذا العدد مع حاصل إستدعائها بنفسها للعدد ناقصاً واحد. يمكن توضيح خطوات التنفيذ من خلال المثال الآتي لإيجاد مضروب العدد 3: >>> factorial(3) >>> return 3 * factorial(2) >>> return 3 * 2 * factorial(1) >>> return 3 * 2 * 1 // لأنه معطى أن مضروب العدد 1 يساوي 1 >>> return 6 >>> 6 أتمنى أن الشرح قد أفادك. تحياتي لك. 1 اقتباس
0 Othmane Othwsav نشر 7 أبريل 2020 أرسل تقرير نشر 7 أبريل 2020 بتاريخ 50 دقائق مضت قال سارة الحميدي: اريد شرح للاستدعاء الذاتي اذا ممكن لانو مش فاهمته كويس السلام عليكم, الاستدعاء الذاتي هو عندما تستدعي دالة نفسها, ونستخدم هته الطريقة في الكثير من الأحيان لحل المشاكل البرمجية, سأعطيك مثالا بلغة الجافاسكربت, مثلا: // هذا مثال بسيط جدا لبرنامج أعطيه عددين موجبين ثم يرجع لي العدد الأول أس العدد الثاني // Math.pow() عموما هته الدالة موجودة مسبقا هي // الدالة بدون استخدام الاستدعاء الذاتي function pow(number, power){ let result = number for(let i = 1; i < power; i++){ result = result * number } return result } //الدالة باستخدام الاستدعاء الذاتي function pow(number, power){ if(power > 1) return number * pow(number, power-1) else return number } إذا كان هناك شيء لم تستوعبيه أو لم تفهميه أنا في الخدمة. تحياتي الحارة. اقتباس
السؤال
سارة الحميدي
اريد شرح للاستدعاء الذاتي اذا ممكن لانو مش فاهمته كويس
3 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.