«Aniq fanlar» kafedrasi fanidan ma’ruzalar matni
O‘zgaruvchan parametrli funksiyalar
Download 1.15 Mb.
|
dasturlash fanidan maruzalar matni 2
O‘zgaruvchan parametrli funksiyalar: C++ tilida parametrlar soni noma’lum bo‘lgan funksiyalarni ham ishlatish mumkin. Bundan tashqari ularning turlari ham noma’lum bo‘lishi mumkin. Parametrlar soni va turi funksiyani chaqirishdagi argumentlar soni va ularning turiga qarab aniqlanadi. Bunday funksiyalar sarlavhasi quyidagi formatda yoziladi:
Bu yerda oshkor parametrlar ro‘yxati – oshkor ravishda yozilgan parametrlar nomi va turi. Bu parametrlar majburiy parametrlar deyiladi. Bunday parametrlardan kamida bittasi bo‘lishi shart. Qolgan parametrlar soni va turi noma’lum hisoblanadi. Ularni aniqlash va ishlatish to‘la ravishda programma tuzuvchi zimmasiga yuklanadi. O‘zgaruvchan sondagi parametrlarni tashkil qilish usuli umuman olganda ikkita. Birinchi usulda, parametrlar ro‘yxati oxirida yana bir maxsus parametr yoziladi va uning qiymati parametrlar tugaganligini bildiradi. Kompilyator tomonidan funksiya tanasida parametrlar birma-bir ko‘rib chiqilib parametrlar aniqlanadi. Barcha parametrlar turi oxirgi maxsus parametr turi bilan ustma-ust tushadi deb hisoblanadi. Ikkinchi usulda birorta maxsus parametr sifatida noma’lum parametrlar soni kiritiladi va unga qarab parametrlar soni aniqlanadi. Ikkala usulda ham parametrlarga murojaat qilish uchun ko‘rsatkichlar ishlatiladi. Misollar keltiramiz. Birinchi usul: #include float Sonlar_kupaytmasi(float arg,…) { float p=1.0; float *ptr=&arg; if(*prt==0.0) return 0.0; for (;*prt;prt++)p*=*prt; return p; } void main() { cout<<”\n “< cout< }
Natija: 480
#include int Yigindi(int,…);
void main() {
cout<<”\nYigindi(2,6,4)==”< cout< }
int Yigindi (int k,…) int *ptr=&k int s=0;
for(;k;k--)s+=*(++ptr); return s;
}
Natija: Yigindi (6 , 1 , 2 , 3 , 4 , 5 , 6)=21 Ikkala misolda ham noma’lum parametrlar berilgan maxsus parametr turini qabul qilgan. Har xil turdagi parametrlarni ishlatish uchun turni aniqlaydigan parametr kiritish kerak: #include float Summa (char,int,…); void main() { cout< cout< }
int Summa(char z,int k,…); {
Case ‘i’: int *ptr=&k+1; int s=0; for(;k--;ptr++) s+=*(ptr); return (float)s; } case’f’:
{ float*ptr=(float*)(&k+1); float s=0.0; for (;k--;ptr++) s+=*(ptr); return s; } default:
{ cout<<”\n parametr xato berilgan”; return 9999999.0; } } } Yuqorida keltirilgan misolda noma’lum parametrlarni turini aniqlash masalasi kompilyator tomonidan emas, balki programma tuzuvchisi tomonidan hal qilingan. Download 1.15 Mb. Do'stlaringiz bilan baham: |
ma'muriyatiga murojaat qiling