Ma’lumotlar tuzilmasi va algoritmlar fanining maqsad va vazifasini izohlab bering



Download 1,85 Mb.
bet25/55
Sana16.03.2022
Hajmi1,85 Mb.
#492964
1   ...   21   22   23   24   25   26   27   28   ...   55
Bog'liq
MTA Yakuniy nazorat Hammasi

Rekursiya chuqurligi (tarkibidagi chaqiruvlar soni) – yetarli darajada kichik bo’lishi shart.

  • Katta chuqurlikdagi rekursiyadan foydalanishda dasturda uzoq vaqt ishlash va stekning to’lib toshib ketishi (stekli xotiraning yetishmovchiligi) holati yuz berishi mumkin. Shuning uchun ham, agar masalani rekursiyasiz ham yechish mumkin bo’lsa, u holda rekursiyani qo’llash tavsiya etilmaydi.

  • Masalan, faktorialni hisoblash uchun oddiygina for tsiklidan foydalanish mumkin (bunday tsikl yordamida olinadigan yechim iterativ (qadamma-qadam) deb ataladi):

    int Factorial (int n)
    {
    int i, fact=1;
    for (i=2; i<=n; i++)
    fact*=i;
    return fact;
    }
    Bu dastur rekursiv dasturga nisbatan tezroq ishlaydi. Ixtiyoriy rekursiv dasturlarni juda murakkab bo’lsa ham rekursiyasiz yozish mumkinligi isbotlangan.


    43. Shablon tushunchasi, funktsiya shabloni misol yordamida tushuntirib bering?

    • Shablon (angl. template) —umumlashgan algoritmlarni ba’zi parametrlarida o’zgarishlar kiritmasdan (masalan, ma’lumot turini, bufer o’lchami va h.k.) qabul qilish va kodlash uchun mo’ljallangan C++ tilining muhim vositasi hisoblanadi.

    • Shablonlarni tavsiflash template kalit so’zidan boshlanib, undan keyin burchakli qavs («<» va «>») ichida uning parametrlar ro’yxati keltiriladi. Shundan keyin shablon muhitini e’lon qilish amalga oshiriladi (masalan, funktsiya yoki klass), umumiy ko’rinishi quyidagicha bo’ladi:

    • template < template-parameter-list > declaration

    Funksiyalar

    • Oddiy misol orqali shablonli funksiyani o’rganamiz. Faraz qilaylik ikkita int turiga tegishli o’zgaruvchilar o’rnini almashtiruvchi funksiya mavjud bo’lsin:

    #include
    void my_swap(int&first,int&second)
    {
    Int temp (first);
    first=second;
    second=temp;
    }
    Int main ()
    {
    int a=5;
    int b=10;
    std::cout<my_swap(a,b);
    std::cout<}

    Download 1,85 Mb.

    Do'stlaringiz bilan baham:
  • 1   ...   21   22   23   24   25   26   27   28   ...   55




    Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
    ma'muriyatiga murojaat qiling

    kiriting | ro'yxatdan o'tish
        Bosh sahifa
    юртда тантана
    Боғда битган
    Бугун юртда
    Эшитганлар жилманглар
    Эшитмадим деманглар
    битган бодомлар
    Yangiariq tumani
    qitish marakazi
    Raqamli texnologiyalar
    ilishida muhokamadan
    tasdiqqa tavsiya
    tavsiya etilgan
    iqtisodiyot kafedrasi
    steiermarkischen landesregierung
    asarlaringizni yuboring
    o'zingizning asarlaringizni
    Iltimos faqat
    faqat o'zingizning
    steierm rkischen
    landesregierung fachabteilung
    rkischen landesregierung
    hamshira loyihasi
    loyihasi mavsum
    faolyatining oqibatlari
    asosiy adabiyotlar
    fakulteti ahborot
    ahborot havfsizligi
    havfsizligi kafedrasi
    fanidan bo’yicha
    fakulteti iqtisodiyot
    boshqaruv fakulteti
    chiqarishda boshqaruv
    ishlab chiqarishda
    iqtisodiyot fakultet
    multiservis tarmoqlari
    fanidan asosiy
    Uzbek fanidan
    mavzulari potok
    asosidagi multiservis
    'aliyyil a'ziym
    billahil 'aliyyil
    illaa billahil
    quvvata illaa
    falah' deganida
    Kompyuter savodxonligi
    bo’yicha mustaqil
    'alal falah'
    Hayya 'alal
    'alas soloh
    Hayya 'alas
    mavsum boyicha


    yuklab olish