22 – DARS. SATR, FUNKTSIYA, GRAFIKA.
Foydalanuvchi Funktsiyalari.
Funktsiyalarni ta'riflash va ularga murojaat kilish. Funktsiya ta'rifida funktsiya nomi, tipi va formal parametrlar ruyhati ko’rsatiladi. Formal parametrlar nomlaridan tashqari tiplari ham ko’rsatilishi shart. Formal parametrlar ro’yhati funktsiya signaturasi deb ham ataladi. Funktsiya ta'rifi umumiy kurinishi kuyidagichadir:
Funktsiya tipi funktsiya nomi(formal_parametrlar_ta'rifi)
Formal parametrlarga ta'rif berilganda ularninga boshlang’ich qiymatlari ham ko’rsatilishi mumkin. Funktsiya qaytaruvchi ifoda qiymati funktsiya tanasida return ; operatori orqali ko’rsatiladi.
Misol:
Float min(float, float b)
{ if (a
return b;
}
Funktsiyaga murojaat qilish quyidagicha amalga oshiriladi:
Funktsiya nomi (haqiqiy parametrlar ruyhati)
Haqiqiy parametr ifoda ham bo’lishi mumkin. Haqiqiy parametrlar qiymati hisoblanib mos formal parametrlar o’rnida ishlatiladi.
Misol uchun yuqoridagi funktsiyaga qo’yidagicha murojaat qilish mumkin:
Int x=5,y=6,z; z=min(x,y) eki int z=Min(5,6) eki int x=5; int z=min(x,6)
Funktsiya ta'rifida formal parametrlar initsializatsiya qilinishi, ya'ni boshlang’ich qiymatlar ko’rsatilishi mumkin. Funktsiyaga murojaat qilinganda biror haqiqiy parametr ko’rsatilmasa, uning urniga mos formal parametr ta'rifida ko’rsatilgan boshlang’ich qiymat ishlatiladi.
Misol uchun:
Float min(float a=0.0, float b)
{ if (a
return b;
}
Bu funktsiyaga yuqorida ko’rsatilgan murojaat usullaridan tashqari quyidagicha murojaat qilish mumkin:
Int y=6,z; z=min(,y) eki int z=Min(,6);
Agar funktsiya hech qanday qiymat qaytarmasa uning tipi void deb ko’rsatiladi.
Misol uchun:
Void print;
{ Cout<<(“\n Salom!);
};
Bu funktsiyaga Print; shaklida murojjat qilish ekranga Salom! Yozilishiga olib keladi.
Qiymat qaytarmaydigan funktsiya formal parametrlarga ega bo’lishi mumkin:
Void Pint_Baho(Int baho);
{
Switch(baho)
{case 2:Cout<<(“\n emon”);break;
case 3:Cout<<(“\n urta”);break;
case 4:Cout<<(“\n yahshi”);break;
case 5:Cout<<(“\n a'lo”);break;
default: Cout<<(“\n baho notugri kiritilgan”);
};
Bu funktsiyaga Print_Baho(5) shaklida murojaat qilish ekranga a'lo so’zi yozilishiga olib keladi.
Agar programmada funktsiya ta'rifi murojaatdan keyin berilsa, yoki funktsiya boshqa faylda joylashgan bo’lsa, murojjatdan oldin shu funktsiyaning prototipi joylashgan bulishi kerak. Prototip funktsiya nomi va formal parametrlar tiplaridan iborat bo’ladi. Formal parametrlar nomlarini berish shart emas.
Misol uchun y=min(a,b)+2*max(c,d) ifodani hisoblashni kuramaz:
#Include
int max(int a,int b)
{if (a
void main()
{int a,b,c,d,y;
int min(int ,int);
Cin>>(“\n %f%f%f%f”,&a,&b,&c,&d);
y=min(a,b)+2*max(c,d);
Cout<<(“\n %f”,y);
};
int min(int a,int b)
{if (a
Funktsiyaga parametrlar uzatish. Funktsiyaga parametrlar qiymat buyicha uzatiladi va quyidagi bosqichlardan iborat bo’ladi:
1. Funktsiya bajarishga tayyorlanganda formal parametrlar uchun hotiradan joy ajratiladi, ya'ni formal parametrlar funktsiyalarning ichki parametrlariga aylantiriladi. Agar parametr tipi float bo’lsa double tipidagi ob'ektlar hosil buladi, char va shortint bulsa int tipidagi ob'ektlar yaratiladi.
2. Haqiqiy parametrlar sifatida ishlatilgan ifodalar qiymatlari hisoblanadi.
3. Haqiqiy parametrlar ifodalar qiymatlari formal parametrlar uchun ajratilgan hotira qismlariga yoziladi. Bu jarayonda float tipi double tipiga, char va shortint tiplari int tipiga keltiriladi.
4. Funktsiya tanasi ichki ob'ektlar – parametrlar yordamida bajariladi va qiymat chaqirilgan joyga qaytariladi.
5. Haqiqiy parametrlar qiymatlariga funktsiya hech qanday ta'sir o’tkazmaydi.
6. Funktsiyadan chiqishda formal parametrlar uchun ajratilgan hotira qismlari bo’shatiladi.
C ++ tilida chaqirilgan funktsiya chaqiruvchi funktsiyadagi o’zgaruvchi qiymatini uzgartira olmaydi. U faqat o’zining vaqtinchalik nushasini o’zgartirishi mumkin holos.
Qiymat bo’yicha chaqirish qulaylik tug’diradi. Chunki funktsiyalarda kamroq o’zgaruvchilarni ishlatishga imkon beradi. Misol uchun shu hususiyatni aks ettiruvchi POWER funktsiyasi variantini keltiramiz:
power(x,n) /* raise x n-th power; n > 0;
version 2 */
int x,n;
int p;
for (p = 1; n > 0; --n)
p = p * x;
return (p);
Argument N vaqtinchalik o’zgaruvchi sifatida ishlatiladi. Undan to qiymati 0 bo’lmaguncha bir ayriladi. N funktsiya ichida o’zgarishi funktsiyaga murojjat qilingan boshlang’ich qiymatiga ta'sir qilmaydi.
Dostları ilə paylaş: |