# include
# include
void main ( )
{ int k, n, funk (int n);
cin>>n;
k=funk(n);
cout << "k="<
getch( );
}
int funk(int a) // funksiyani aniklash
{ int c;
c=Sin(a)+Cos(a);
return c; } // funksiyaga natijani qaytarish
Yuqorida keltirilgan funksiya tanasini quyidagicha ham yozish mumkin:
int funk(int a)
{
return Sin(a)+Cos(a);
}
Funksiya bosh funksiyadan oldin e’lon qilinsa dastur quyidagi ko’rinishda yozilishi mumkin:
# include
# include
int funk (int a)
{ return Sin(a)+Cos(a); }
void main ( )
{ int k, n ;
cin>>n;
k=funk(n);
cout << "k="<
getch( );
}
Demak, funksiyalarga murojaat qilish jarayonida amallar quyidagi tartibda bajariladi:
1. Funksiya bajarilayotganda rasmiy parametrlar uchun xotiradan joy ajratiladi, ya’ni ular funksiyaning ichki parametrlariga aylantiriladi. Bunda parametr toifasi o’zgartiriladi: float toifasi double toifasiga, char va shortint toifalari int toifasiga aylantiriladi.
2. Haqiqiy parametrlar qiymatlari beriladi yoki hisoblanadi.
3. Haqiqiy parametrlar rasmiy parametrlar uchun ajratilgan xotira qismiga yoziladi.
4. Funksiya tanasi ichki parametrlar yordamida bajariladi va qiymat qaytarish joyiga yuboriladi.
5. Funksiyadan chiqishda rasmiy parametrlar uchun ajratilgan xotira qismi bo’shatiladi.
1-misol. Ikkita ixtiyoriy sonlarning kattasini topish uchun funksiya tashkil qiling.
# include
# include
void main( )
{ float x=10, b=34, c, max(float , float );
c = max(x, b);
cout << "c="<
getch( );
}
float max ( float x, float y) { if (x > y) return x; else return y; }
Ushbu misolda max funksiyasini e’lon qilishda rasmiy parametrlar ko’rsatilmagan, funksiya tanasida 2 ta return operatori ishlatilgan.
Protseduralar va ularni tashkil etish. Ba’zi masalalarda funksiya bilan ishlaganda funksiya tanasi ichida haqiqiy parametrlar qiymatlarini o’zgartirish zaruriyati tug’iladi, ya’ni natija bir emas, balki bir nechta bo’lishi kerak bo’ladi. Bunday jarayonni protseduralar yordamida amalga oshirish maqsadga muvofiq. Funksiyani aniqlashtirishda rasmiy parametrlar bilan bir satrda natijalar nomlari ham ko’rsatiladi. Shuning uchun protseduralar bilan ishlaganda funksiya toifasini bo’sh (void) deb olish maqsadga muvofiqdir, return operatorini ishlatmasa ham bo’ladi.
Masalan: Z = hisoblash dasturi tO’zilsin. Bu yerdagi darajani kisoblash prosedura sifatida tashkil etilsin. y = xn ni prosedura deb tashkil etamiz, bu yerda x, n - rasmiy parametrlar
# include
void dar1 (float x, int n, float *y)
{ *y=1;
for (int i=0; i<=n; i++)
*y = y*x; }
void main( )
{
int n=3 ; float a, z, z1, z2, z3;
cin>>a;
dar1(a, 5,&z1); dar2( 1/a, 4, &z2); dar1(a, n, &z3);
z = ( z1+z2) / z3 ;
cout << "z="<
}
Nazorat savollari:
1. C++ tilida qism-dastur tushunchasi va ulardan foydalanish (procedure, function, qism-dastur).
2. Protsеdura va funksiyaning dasturdagi o’rni. (protsеdura, funksiya).
3. Protsеduralarga qanday murojaat qilinadi, (protsеdura opеratori.)?
4. Haqiqiy paramеtrlar va ulardan foydalanish.
5. Funksiya va uning xususiyatlari (funksiya, ramziy va haqiqiy paramеtrlar, funksiya toifasi).
6. Lokal va global paramеtrlarga ta'rif bеring.
7. Rеkursiv protsеduralar.
Do'stlaringiz bilan baham: |