15-Mavzu. Takroriy va qayta tiklanadigan usullarning misollarini hal qiling.
Recursion-bu usulning rivojlanishi bo'lib, u o'z-o'zidan paydo bo'ladi. Muayyan shart-sharoitga erishilganda usulning takroriy chaqiruvlari bajarilishi kerak. Aks holda, xotira toshib ketadi va dastur kerakli natijani hisoblamasdan "to'xtaydi". Recursiv usul-bu o'z-o'zidan paydo bo'lgan usul. Recursiv usulda uning nomi bilan bir xil usulni chaqiradi.
Metodning takroriy chaqiruvlarining ketma-ket jarayoni davriy jarayonga o'xshaydi.Qanday recursive qo'ng'iroq usuli ishlaydi?
Agar usul o'z-o'zidan paydo bo'lsa, unda quyidagi jarayonlar xotirada sodir bo'ladi:tizim stakanida yangi mahalliy o'zgaruvchilar va parametrlar uchun xotira ajratiladi;usulning dasturiy kodi birinchi navbatda yangi mahalliy o'zgaruvchilar va parametrlar bilan amalga oshiriladi. Ushbu mahalliy o'zgaruvchilar va parametrlar yangi boshlang'ich qiymatlarni oladi. Usulning dasturiy kodi nusxa ko'chirilmaydi;recursive usuli (operator) dan qaytganda.
DASTURI:
1-Masala Sonlarni faktariollarini topish;
using System;
namespace Rahimjon{
class Program{
static void Main(string[] args){
Console.Write(" Введите число : ");
int p=int .Parse(Console.ReadLine());
int m=Factorial(p);
Console.WriteLine("Factorial : "+m);
}
static int Factorial(int n){
if(n==0)
{
return 1;
}
else
{
return n*Factorial(n-1);
}
}
}
}
2-Masala Fibonachi sonlarni topish;
using System;
namespace Rahimjon{
class Program{
static void Main(string[] args){
Console.Write(" Введите число : ");
int p=int .Parse(Console.ReadLine());
int m=Fibonacci(p);
Console.WriteLine("Fibonacci : "+m);
}
static int Fibonacci(int n){
if((n==0)||(n==1))
{
return 1;
}
else
{
return Fibonacci(n-1)+Fibonacci(n-2);
}
}
}
}
Do'stlaringiz bilan baham: |