161
qavsdan keyin (;) belgisi qo‗yilmagan.
15 va 18
satrlardagi figurali qavslar fak
funksiyasining blok belgilari.
Dasturning
15- satridan 18-satrigacha
bo‗lgan
qismi fak nomli funksiyaning tanasi deyiladi.
Bundan buyon tarkibida boshqa funksiyaga murojaat byurug‗i bo‗lgan
dasturni asosiy dastur deb, murojaat bo‗layotgan funksiyani esa yordamchi
dastur(podprogramma) deb ham ataymiz. Demak,
dasturning
4-satridan 13-
satrigacha
bo‗lgan qismi asosiy dastur,
14-satridan 18-satrigacha
bo‗lgan qismi
esa yordamchi dastur hisoblanadi.
Asosiy dasturning 8-satrida uchta chaqiriq byuruqlari (yoki funksiyaga
murojaat byurulari) berilgan. Ulardan biri, masalan, nf=fak (n); byurug‗ini
tahlil
qilaylik. C++ bu buyruqni uchratgach, dastur bajarilishini 15-satrdan davom
ettiradi, ya‘ni fak nomli funksiyaning tanasini bajaradi. Bunda 15 va 16-satrlarda
n! hisoblanadi. n! ning natijaviy qiymatini butun turli f o‗zgaruvchi oladi.
17-satrdagi return f; byurug‗i f o‗zgaruvchining qiymatini murojaat bo‗lgan
joyga qaytarishni ta‘minlaydi. Natijada nooshkor holda nf=f
qiymat berish
byurug‗i bajarilib, keyingi mf=fak (m) byuruqni bajarishga o‗tiladi.
Xulosa: demak, qism dastur tanasida bajarilgan hisob natijalarini return
operatoridan keyin yozilgan o‗zgaruvchi yoki ifoda yordamilda asosiy dasturga
olib chiqiladi.
Funksiya
prototipi, funksiya sarlavhasi va chaqiriq buyruqlaridagi
parametrlar nomlarining har xil bo‗lishi dastur bajarilishiga hech qanday ta‘sir
qilmaydi. Chunki funksiya prototipi va aniqlanishidagi argumentlar (bizning
dasturimizda n parametr) formal (nomiga turgan) parametrlar bo‗lib, ularning
qiymati shu funksiyaga murojaat bo‗lguncha aniq bo‗lmaydi. Demak,
yuqorida
keltirilgan dastur quyidagi ko‗rinishda ham bexato ishlaydi.
#include
using namespace std; int fak(int s);
int main()
{ int n, m, nf, mf, nm; float c;
cin>>n>>m; nf=fak(n); mf=fak(m); nm=fak(n-m); c=nf/(mf*nm);
cout<<"\nc="<}
int fak(int y)
{in t f=1, i=1; while(i<=y) {f=f*i; i++;}; return f;
}
Lekin zaruriyat bo‗lmaganda bu usuldan foydalanmaslik tavsiya etiladi,
chunki dasturni tushunish qiyinlashadi.