Page 95 - 9-sinf informatika yangi 2020. @informatika
P. 95

Rekursiya
                      Funksiyaning oӒzini oӒzi chaqirishiga rekursiya deyiladi va bunday funksiyalar rekursiv
               funksiyalar deb ataladi.
                      Rekursiv funksiyalar dasturlashning kuchli mexanizmi hisoblanadi, lekin ular har doim

               ham samarali emas. Chunki aksariyat hollarda xatolarga yo‘l qo‘yadi. Xatolar ichidan eng ko‘p
               tarqalgani ӏ cheksiz rekursiya. Unda funksiyaning chaqiruv zanjiri cheksiz boӒlib, kompyuter

               bo‘sh xotirasi tugamaguncha davom etaveradi. Cheksiz rekursiya ro‘y berishining sabablari:
                      ӏ  rekursiyada  shartni  notoӒgӒri  qoӒllash.  Masalan,  faktorialni  hisoblashda  if  n==0  ni

               unutib qoӒysak, factorial(0) funksiyasi factorial(ӏ1)ni, factorial(ӏ1) funksiyasi esa factorial(ӏ2)
               va hokazolarni chaqiradi;

                      ӏ rekursiv funksiyani notoӒgӒri parametr bilan chaqirish. Masalan, factorial(n) funksiya
               factorial(n)ni chaqirsa, yana cheksiz zanjir yuzaga keladi.
                      Shu  boisdan,  rekursiv  funksiyani  yaratishda  rekursiyani  yakunlash  sharti  hamda
               rekursiyani qachon, qanday tugatish haqida oӒylab koӒrish lozim.


                                                         factor nomli rekursiv funksiya e’lon qilindi.
               def factor(n):
                   if n==0:                              n==0 da funksiya 1 ni qaytaradi, aks
                       return 1                          holda ishini davom ettiradi.
                   else:                                 Funksiya oӒzi oӒzini chaqirib, res=n*(n-1)*ӝ*3*2*1ni
                       res= n*factor(n-1)                hisoblaydi, qachonki factor(0) bo‘lguncha.
                       return res
               n=int(input('n sonini kiriting: '))       res natijasini qaytaradi.
               print(factor(n))                          n ga qiymat beriladi.
                                                         n faktorialni hisoblovchi funksiya
                 n sonini kiriting: 5                    chaqirilib, ekranga natija chiqariladi.
                 120

         SAVOL VA  TOPSHIRIQLAR  ?  1. Qism dastur nima?
                        2. Dasturda protsedura vа funksiyalar qanday maqsadda qo‘llaniladi?
                        3. Qism dasturning qanday turlari mavjud?
                        4. Qism dastur qanday afzalliklarga ega?
                        5. Protsedura vа funksiyaning farqi nimada?
                        6. Qachon funksiyaning o‘rniga protsedurani qo‘llash mumkin?



           UY VAZIFASI  1. n va k butun musbat sonlar berilgan. n va k qatnashgan ushbu ifodani hisoblang.



                      Funksiyadan foydalaning.
                      2.  n  natural  son  berilgan.  Kvadrati  n
               chiqaruvchi dastur tuzing.                     dan kichik bo‘lgan barcha natural sonlarni
                      3. Bir birlik uzunlik Ӓ-ӓ ga teng. Berilgan n uzunlikdagi ‘-’ belgidan iborat chiziq chizuvchi
               dastur tuzing. Protseduradan foydalaning.

                               Kiruvchi ma’lumot                          Chiquvchi ma’lumot
                                       n                                     n ta chiziq (‘-’)

                                       5                                          -----



               94      IV BOB. DASTURLASH ASOSLARI
   90   91   92   93   94   95   96   97   98   99   100