Test gift and xml Ma’lumot nima?



Yüklə 0,77 Mb.
səhifə22/73
tarix14.12.2023
ölçüsü0,77 Mb.
#177632
1   ...   18   19   20   21   22   23   24   25   ...   73
Test gift and xml-fayllar.org


//Bezu koeffitsientlari



#include "stdafx.h"
#include
using namespace std;
int nod(int m, int n);
void bezu(int d, int m, int n, int bm, int bn);
int _tmain(int argc, _TCHAR* argv[]) {
int x,y,del,buf;
printf("Bezu koeffitsientlarini topish masalasi");
printf("\nIkkita natural son kiriting:");
printf("\nX= "); scanf("%d",&x);
printf("Y= "); scanf("%d",&y);
if (x < y) { buf = x; x = y; y = buf; }
del=nod(x,y);
printf("\nChiziqli kombinatsiya:\n");
bezu(del,x,y,1,1); system("pause"); return 0; }

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.



  • Yüklə 0,77 Mb.

    Dostları ilə paylaş:
1   ...   18   19   20   21   22   23   24   25   ...   73




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©azkurs.org 2024
rəhbərliyinə müraciət

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin