TOIFASI
Reja:
1. Ko‘rsatkichlar
2. Ko’rsatkichga boshlang’ich qiymat berish
3. Ko’rsatkich ustida amallar
4. Murojaatlar
5. Ko’rsatkichlar va murojaatlar funksiya parametiri sifatida.
6. O’zgaruvchan parametrli funksiyalar.
Tayanch iboralar:
Ko‘rsatkichlar, murojaatlar, funksiyaga ko‘rsatkich, obyektga
ko‘rsatkich, , void ko‘rsatkich, ko‘rsatkichga boshlang‘ich qiymat berish, ko‘rsatkich ustida
amallar, ko’rsatkichlar va murojaatlar funksiya parametri sifatida, o‘zgaruvchan parametrli
funksiyalar.
Ko‘rsatkichlar.
Dastur matnida o‘zgaruvchi e’lon qilinganda, kompilyator o‘zgaruvchiga xotiradan joy
ajratadi. Boshqacha aytganda, dastur kodi xotiraga yuklanganda berilganlar uchun, ular
joylashadigan segmentning boshiga nisbatan siljishini, ya’ni nisbiy adresini aniqlaydi va obyekt
kod hosil qilishda o‘zgaruvchi uchragan joyga uning adresini joylashtiradi.
Umuman olganda, dasturdagi o‘zgarmaslar, o‘zgaruvchilar, funksiyalar va sinf obyektlar
adreslarini xotiraning alohida joyida saqlash va ular ustidan amallar bajarish mumkin.
Qiymatlari adres bo‘lgan o‘zgaruvchilarga ko‘rsatkich o‘zgaruvchilar deyiladi.
Ko‘rsatkich uch xil turda bo‘lishi mumkin:
- birorta obyektga, xususan o‘zgaruvchiga ko‘rsatkich;
- funksiyaga ko‘rsatkich;
- void ko‘rsatkich.
Ko‘rsatkichning bu xususiyatlari uning qabul qilishi mumkin bo‘lgan qiymatlarida
farqlanadi.
Ko‘rsatkich albatta birorta turga bog‘langan bo‘lishi kerak, ya’ni u ko‘rsatgan adresda
qandaydir qiymat joylanishi mumkin va bu qiymatning xotirada qancha joy egallashi oldindan
ma’lum bo‘lishi shart.
Funksiyaga ko‘rsatkich
. Funksiyaga ko‘rsatkich dastur joylashgan xotiradagi funksiya
kodining boshlang‘ich adresini ko‘rsatadi ya’ni funksiya chaqirilganda boshqaruv ayni shu
adresga uzatiladi. Ko‘rsatkich orqali funksiyani oddiy yoki vositali chaqirish amalga oshirish
mumkin. Bunda funksiya uning nomi bo‘yicha emas, balki funksiyaga ko‘rsatuvchi
o‘zgaruvchi orqali chaqiriladi. Funksiyani bosh funksiyaga argument sifatida uzatish ham
funksiya ko‘rsatkichi orqali bajariladi. Funksiyaga ko‘rsatkichning yozilish sintaksisi
quyidagicha:
(* ) (
);
Bunda
- funksiya qaytaruvchi qiymat turi;
*
- ko‘rsatkich; o‘zgaruvchining
nomi;
-funksiya parametrlarining (yoki ularning
turlarining) ro‘yxati.
Masalan:
int (*fun)(float,float);
Bu yerda butun son turida qiymat qaytaradi fun nomidagi funksiyaga ko‘rsatkich e’lon
qilingan va u ikkita haqiqiy turdagi parametrlarga ega.
Masala
. Berilgan butun n=100 va a,b- haqiqiy sonlar uchun
f
1
(x)=5sin(3x)+x, f
2
(x)=cos(x) va f
3
(x)=x
2
+1 funksiyalar uchun
a
b
f(x)dx
integralini to‘g‘ri to‘rtburchaklar formulasi bilan taqriban hisoblansin:
a
b
dx
x
f
)
(
h[f(x
1
)+f(x
2
)+…+f(x
n
)],
bu yerda
h=
n
a
b
, x
i
=a +ih-h/2, i=1..n.
Dastur bosh funksiya, integral hisoblash funksiyasi va ikkita matematik funksiyalar –
f
1
(x)
va
f
3
(x)
uchun aniqlangan funksiyalardan tashkil topadi,
f
2
(x)=cos(x)
funksiyaning adresi
math.h sarlavha faylidan olinadi. Integral hisoblash funksiyasiga funksiyaga ko‘rsatkich orqali
integrali hisoblanadigan funksiya adresi,
a
va
b
–integral chegaralari qiymatlari uzatiladi.
Oraliqni bo‘lishlar soni –
n
global o‘zgarmas qilib e’lon qilinadi.
#include
# include
const int n=100;
double f1(double x) {return 5*sin(3*x)+x;}
double f3(double x) {return x*x+1;}
double Integral (double(*f) (double), double a, double b)
{
double x,s=0;
double h=(b-a)/n;
x=a-h/2;
for(int i=1; i<=n; i++) s+=f(x+=h);
s*=h;
return s;
}
int main()
{
double a,b;
int menu;
while(1)
{
cout<<”\nIsh rejimini tanlang:\n”;
cout<<” 1:f1(x)=5*sin(3*x)+x integralni hisoblash\n”;
cout<<”2:f2(x)=cos(x) integralni hisoblash\n”;
cout<<”3:f3(x)=x^2+1 integralni hisoblash\n”;
cout<<”0:Dasturdan chiqish\n”;
do
{
cout<<”Ish rejimi-> “;
cin>>menu;
}
while (menu<0 || menu>3);
if(!menu) break;
cout<<”Integral oralig’ining quyi chegarasi a=”;
cin>>a;
cout<<”Integral oralig’ining yuqori chegarasi b=”;
cin>>b;
cout<<”Funksiya integrali S=”;
switch (menu)
{
case 1 :cout<
case 2 :cout<
case 3 :cout<
}
}
return 0;
}
Dasturning ishi cheksiz takrorlash operatori tanasini bajarishdan iborat. Takrorlash
tanasida foydalanuvchiga ish rejimini tanlash bo‘yicha menyu taklif qilinadi:
0> Do'stlaringiz bilan baham: |