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.