_______________________________________
| الرئيسية | من انا | اتصل بي | روابط مفيدة | مشاريعي
_______________________________________

الثلاثاء، 4 نوفمبر 2008

من ظن أنه علم فقد جهل - Recursion Method

بسم الله
السلام عليكم
أصل الموضوع أنه في أحد محاضرات البرمجيات أستدعى الدكتور الميثود داخل نفسها وعندها قلت أنها أحدى أختراعاته لأنه مازال جديد في الجافا فهو يدرسها منذ عام وشهرين - أي بدأ معنا المهم أني فوجئت أن هذه الطريقة موجودة بالفعل ليس في الجافا فحسب بل في السي++ أيضاً -غفر الله لنا ظننا السيئ--ارجو ان يتقبل أستاذي أعتذاري- هذه الطريقة تشبه الحلقة التكرارية loop أن لم تكن تقوم بنفس الوظيفة
وسنشرح اليوم كيفية أستخدامها للمبتدئين
الامر بسيط نقوم بعمل ميثود ونضع داخلها شرط أن تحقق نقوم بأستدعاء الميثود التي نبنيها داخل نفسها وأن لم يتحقق يتم تنفيذ أمر آخر وتنتنهي الحلقة
الأكواد ستوضح أكتر
public static int factorial(int x){
int y;
if (x==0)
y=0;
else if(x==1)
y=1;
else{
y=x*factorial(x-1);
}
return y;
}
هذه ميثود تستقبل رقم وتقوم بإرجاع مضروبه
هناك مثال آخر لميثود تستقبل رقم وترجع ال Fibonacci المقابل له
public static int fibon(int x){
int flage=0;
if (x==0)
flage= 0;
else if(x==1)
flage= 1;
else{
flage=fibon(x-1)+fibon(x-2);
}
return flage;
}
لو هناك من يعرف معني كلمة Fibonacci بالعربي فليخبرني بها وجزاه الله خير
للعلم هناك في السي++ نقوم بنفس الطريقة
#include
using std::cout;
using std::endl;

#include
using std::setw;

unsigned long factorial( unsigned long ); // function prototype

int main()
{
// calculate the factorials of 0 through 10
for ( int counter = 0; counter <= 10; counter++ )
cout <<>
<<>

return 0; // indicates successful termination
} // end main

// recursive definition of function factorial
unsigned long factorial( unsigned long number )
{
if ( number <= 1 ) // test for base case
return 1; // base cases: 0! = 1 and 1! = 1
else // recursion step
return number * factorial( number - 1 );
} // end function factorial
----------------------------------------------------------------------------
#include
using std::cout;
using std::cin;
using std::endl;

unsigned long fibonacci( unsigned long ); // function prototype

int main()
{
// calculate the fibonacci values of 0 through 10
for ( int counter = 0; counter <= 10; counter++ ) cout << "fibonacci( " << number ="="" number ="="">
لو هناك من لم يفهم معني هذا الكلام فليخبرني وان شاء الله نقدر نوضح اكثر
أهم حاجة نصيحة ما تتغر بنفسك
-أكواد السي++ منقولة من how to program c++ ني مازلت مبتدا بها حديثاً-
دمتم في رعاية الله

هناك 4 تعليقات:

  1. ان تستعيد الدالة نفسها هذا شي معروف في البرمجة بـ Recursive

    http://www.cprogramming.com/tutorial/lesson16.html

    ردحذف
  2. أخي اعرف أنه شيء معروف ولكن لو لاحظت لوجدت أن كل ما بالمدونة للمبتدئين
    فيوجد بين أقوي طلاب عندي في دفعتي لا يعرفونها (مستوانا أساساً ضعيف لأننا نهمل الاساسيات)
    بسبب هذا كتبت هذه التدوينة ولاسبب الآخر هو واضح من عنوان التدوينة فلا تستغرب من ذكرها هناوجزاك الله خير علي الرابط

    ردحذف
  3. أتمنى وضع المزيد من الامثله ,,,


    ولك مني جزيل الشكر

    ردحذف
  4. إن شاء الله
    ولكن ستكون هنا http://abuouf.wordpress.com/
    هذا الدرس سيفيدك
    http://www.javagirl.ws/lessons/java/ex01.php

    ردحذف