• Yangi rekursiv chaqiruvni amalga oshirishda kompyuter quyidagilarni bajaradi
  • Rekursiv algoritmlarga misollar keltiring (faktorialni hisoblash, fibonachchi sonlari va h.k.)




    Download 5,63 Mb.
    bet21/71
    Sana18.12.2023
    Hajmi5,63 Mb.
    #122750
    1   ...   17   18   19   20   21   22   23   24   ...   71
    Bog'liq
    Test gift and xml-fayllar.org

    41. Rekursiv algoritmlarga misollar keltiring (faktorialni hisoblash, fibonachchi sonlari va h.k.)
          • Agar protsedura yoki funktsiyaning o’zida o’ziga murojaat bo’lsa rekursiv deb ataladi.


            • Misol uchun, faktorialni hisoblash funktsiyasini quyidagicha yozish mumkin:


    int Factorial (int n)


    {
    if (n<=0) return 1; //1 ni qaytarish
    else
    return n*Factorial(n-1); //rekursiv chaqirish
    }
          • Agar n > 0 bo’lsa, Factorial funktsiyasi o’zini o’zi chaqiradi. Bu masalani yechish uchun rekursiv protsedurani (funktsiyani emas) qo’llash mumkin.


          • Bunda ssilka bilan berilgan parametr orqali (protsedurani e’lon qilishda uning nomi oldiga ssilka & belgisi qo’yilgan) qo’llaniladi. Protsedurani rekursiv chaqirishda bu qiymat o’zgaradi.


    void Factorial (int n, int &fact)


    {
    if (n==0) fact=1; //rekursiya yakunlanadi
    else {
    Factorial(n-1, fact); //(n-1)! ni rekursiv hisoblash
    fact*=n; //n!=n*(n-1)!
    }
    }
          • Funktsiyadan farqli ravishda protsedura ssilka orqali berilgan parametr yordamida bir nechta qiymatlarni qaytarish mumkin.




          • Yangi rekursiv chaqiruvni amalga oshirishda kompyuter quyidagilarni bajaradi:
            • ushbu bosqichdagi hisoblashlar holatini eslab qoladi.


            • stek (asosan xotira sohasi)da lokal o’zgaruvchilarning yangi to’plamini hosil qiladi (chunki, joriy chaqiruvda o’zgaruvchini yo’qotib qo’ymaslik kerak).


            • har bir chaqiruvda yangi xotira sarflanadi va protsedura chaqiruvi hamda protseduraga qaytish uchun vaqt yo’qotiladi.






    Download 5,63 Mb.
    1   ...   17   18   19   20   21   22   23   24   ...   71




    Download 5,63 Mb.

    Bosh sahifa
    Aloqalar

        Bosh sahifa



    Rekursiv algoritmlarga misollar keltiring (faktorialni hisoblash, fibonachchi sonlari va h.k.)

    Download 5,63 Mb.