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

ارجوا المساعده كيف يمكن حساب المضروب بالأوراكل

مغلق
بدأه windows2009 في 3 سبتمبر 2007 · 3 رد · 1,491 مشاهدة · في قواعد بيانات Oracle
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

ارجوا المساعده كيف يمكن حساب المضروب بالأوراكل

لأنه لايمكن استخدام recursive في الأوراكل

كيف يمكن احسبه بدون recursive

تم تعديل هذه المشاركة بواسطة windows2009 في 3 سبتمبر 2007 في 13:15

#2

عفواً أخي ما قصدك بالمضروب ؟؟

تم تعديل هذه المشاركة بواسطة IGBSpeed في 4 سبتمبر 2007 في 13:57

#3

ليست لدى خبره فى الأوراكل و لكن المضروب من الممكن حسابة ب For Loop ومن دون Recursion

#4

تعريف دالة المعاودة ( Recursion Function ):

هي عبارة عن دالة مثل أي دالة ( برنامج فرعي يقوم بعملية ما على مدخلات ويعود بناتج معين ) ولكنها تتميز عن بقية الدوال بأنها تستدعي نفسها عدد من المرات حتى يتحقق شرط ما ، ثم تتوقف وتعود بالقيمة .

* ملاحظة :

لابد من وجود شرط( قيمة معينة ) عند تحققه تعود الدالة بالقيمة ، حتى لا تكون الدالة تستدعي نفسها عدد لا نهائي من المرات.

* مثال يوضح المقصود من هذا النوع من الدوال:

دالة المضروب ( أو المعاملي ) هي من أشهر الأمثلة على هذا النوع .

نحن نعرف المضروب بأنه التالي:

N! = N ( n-1)! ( n-2)! …

مثلاً:

مضروب الخمسة هو :

5! = 5 * 4 * 3 * 2 * 1

*** وعندما نريد كتابة أي نوع من هذه الدوال لا بد أولا أن نفكر متى ستنتهي الدالة من استدعاء نفسها والعودة بالقيمة ؟

*** متى ما أجبنا على هذا السؤال سهل علينا كتابة البرنامج بكل سهولة.

نعود على مثالنا فنجد أن مضروب الصفر هو دائما واحد أي أن ( 0! = 1 )

5! = 5 * 4!

4! = 4 * 3!

3! = 3 * 2!

2! = 2 * 1!

1! = 1 * 0!

0! = 1

أي عندما نكتب البرنامج سنجعل الدالة تكررنفسها إلى أن تصل إلى مضروب الصفر فتعيد لمكان استدعاء الدالة القيمة واحد ثم تتم عملية ضرب القيم ( 5*4*3*2*1 ) ثم العودة بالناتج وهو ( 120 ) وهو ناتج مضروب الخمسة وهذا ما سوف يحصل بالضبط في البرنامج التالي:

اقتباس
اقتباس
#include <iostream.h>

int Fact( int N );

int main()

{

int N;

cout << "Enter Number : ";

cin >> N;

cout << "\n Fact = " << Fact(N) << "\n\n";

return 0;

}

int Fact( int N )

{

if( N == 0 )

return 1;

else

return N * Fact( N-1 );

}

علما بأن Recursion Function غيرموجوده في الأوراكل

تم تعديل هذه المشاركة بواسطة windows2009 في 8 سبتمبر 2007 في 11:57

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

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

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…