Qarshi muhandislik-iqtisodiyot instituti "axborot texnologiyalari" kafedrasi "TEXNIK TIZIMLARDA axborot texnologiyalari"



Download 2,19 Mb.
Pdf ko'rish
bet51/105
Sana26.03.2022
Hajmi2,19 Mb.
#510793
1   ...   47   48   49   50   51   52   53   54   ...   105
Bog'liq
ma`ruza matni 2018

Murojaatlar. 
Murojaatlar e’londa, ko‘rsatilgan nomning sinonimi sifatida ishlatiladi, ya’ni 
bitta o‘zgaruvchiga xar xil nom bilan murojaat qilish imkonini beradi. Murojaatni doimiy 
qiymatga ega bo‘lgan ko’rsatkich deb qarash mumkin. Murojaat quyidagicha e’lon qilinadi: 
 & 


Bu yerda  - murojaat ko‘rsatuvchi qiymatning turi, ‘&’ belgisi, undan keyin yozilgan 
- murojaat turidagi o‘zgaruvchi nomi. Boshqacha aytganda, ‘&’ belgisiga adresni olish 
amali deyiladi. 
Misol: 
int ko1; 
int & pa1=ko1; // pa1 murojaati, y ko1 // o‘zgaruvchisining alternativ nomi 
const char & cr=’\n’;
// cr - o‘zgarmasga murojaat
Murojaatni ishlatishda quyidagi qoidalarga rioya qilish kerak: murojaat, agar u funksiya 
parametri sifatida ishlatilgan, extern bilan tavsiflangan va sinf maydoniga murojaat qilingandan 
tashqari barcha holatlarda boshlang‘ich qiymatga ega bo‘lishi kerak. 
Murojaat asosan funksiyalarda adres orqali uzatiluvchi parametrlar sifatida ishlatiladi. 
Murojaatni ko‘rsatkichdan farqi shundaki, u alohida xotira egallamaydi va faqat 
o‘zgaruvchining boshqa nomi sifatida ishlatiladi. 
Ko’rsatkichlar va murojaatlar funksiya parametri sifatida. 
Funksiya prototipida yoki aniqlanish sarlavhasida ko‘rsatilgan parametrlar formal 
parametrlar deyiladi, funksiya chaqirishida ko’rsatilgan argumentlarga faktik parametrlar 
deyiladi. 
Funksiya chaqirilishida faktik parametrning turi mos o‘rindagi formal parametr turiga 
to‘g‘ri kelmasa, kompilyatsiya xatosi ro‘y beradi. 
Faktik parametrlarni funksiyaga ikki xil usul bilan uzatish mumkin: qiymati yoki adresi 
bilan. 
Funksiya chaqirilishida argument qiymat bilan uzatilganda, argument yoki uning o‘rnidagi 
kelgan ifoda qiymati va boshqa argumentlarning nusxasi (qiymatlari) stek xotirasiga yoziladi. 
Funksiya faqat shu nusxalar bilan amal qiladi, kerak bo‘lsa bu nusxalarga o‘zgartirishlar qilinishi 
mumkin, lekin bu o‘zgarishlar argumentning o‘ziga ta’sir qilmaydi va funksiya o‘z ishini 
tugatishi bilan nusxalar o‘chiriladi (stek tozalanadi). 
Agar parametr adres bilan uzatilsa, stekka adres nusxasi yoziladi va xuddi shu adres 
bo‘yicha qiymatlar o‘qiladi (yoziladi). Funksiya o‘z ishini tugatgandan keyin shu adres bo‘yicha 
qilingan o‘zgarishlar saqlanib qolinadi va bu qiymatlarni boshqa funksiyalar ishlatishi mumkin. 
Argument qiymat bilan uzatilishi uchun mos formal parametr •sifatida o‘zgaruvchini turi 
va nomi yoziladi. Funksiya chaqirilishida mos argument sifatida o‘zgaruvchining nomi yoki 
ifoda bo‘lishi mumkin. 
Faktik parametr adres bilan uzatilganda unga mos keluvchi formal parametrni ikki xil usul 
bilan yozish mumkin: ko‘rsatkich orqali yoki murojaat orqali. Ko‘rsatkich orqali yozilganda 
formal parametr turidan keyin ‘*’ belgisi yoziladi, mos argumentda esa o‘zgaruvchining adresi 
(& amal orqali) yoki massiv nomi, yoki funksiya nomi bo‘lishi mumkin. Murojaat orqali 
parametr uzatishda formal parametrda turidan keyin ‘&’ belgisi yoziladi va funksiya 
chaqirilishida mos argument sifatida o‘zgaruvchi nomi keladi. 
Misol: 
#include  
void f(int,int*,int &) 
void main() 

int i=1, j=2, k=3; 
cout<
F(i,&j,k); 


cout<

void f(int i; int*j; int &k) 

i++; 
(*j)++; 
k++; 
*j=i+k; 
k=*j+I; 
}
Dastur ishlashi natijasida ekranga quyidagi qiymatlar chop qilinadi: 
1 2 3 
1 6 8 
Bu misolda birinchi parametr I qiymat bilan uzatiladi (“int I”). Uning qiymati funksiya 
ichida o‘zgaradi, lekin tashqaridagi i qiymati o‘zgarmaydi. Ikkinchi parametrni ko‘rsatkich 
orqali adresi bilan uzatilishi talab qilinadi (“int j”), adresni uzatish uchun ‘&’-adresni olish amali 
ishlatilgan (“&j”), Funksiya tanasida argument adresidan qiymat olish uchun ‘*’- qiymat olish 
amali qo‘llanilgan. Uchinchi para-metrda murojaat orqali (“&k”) argumentning adresi uzatish 
ko‘zda tutilgan. Bu holda funksiya chaqirilishida mos argument o‘rnida o‘zgaruvchi nomi turadi, 
funksiya ichida esa qiymat olish amalini ishlatishning hojati yo‘q. Funksiya ishlash natijasidagi 
qiymatlarni argumentlar ro‘yxati orqali olish qulay va tushunarli usul hisoblanadi. 
Agar funksiya ichida adres bilan uzatiladigan parametr qiymati o’zgarmasdan qolishi zarur 
bo‘lsa, bu parametr const modifikator bilan yozilishi kerak: 
F(int n, const char*str) ; 
Agarda funksiyani chaqirishda argumentlar faqat nomlari bilan berilgan bo‘lsa, kelishuv 
bo‘yicha massivlar va funksiyalar adresi bilan qolgan turdagi parametrlar qiymatlari bilan 
uzatilgan deb hisoblanadi. 
Misol tariqasida diskriminantni hisoblash usuli yordamida ax
2
+bx+c=0 ko‘rinishidagi 
kvadrat tenglama ildizlarini funksiya parametrlari vositasida olish masalasini ko’raylik. 
#include  
#include  
int Kvadrat_Ildiz(float a, float b, float c,float & x1, float &x2) 

float D; 
D=b*b-4*a*c; 
if(D<0) return 0; 
if (D==0) 

x1=x2=-b/(2*a); 
return 1; 

else 

x1=(-b+sqrt(D))/(2*a); 
x2=(-b-sqrt(D))/(2*a); 


return 2; 


int main() 

int a,b,c; 
float D,x1,x2; 
cout<<”ax^2+bx+c=0 tenglama ildizini topish.”; 
cout<<”\n a –koeffisiyentni kiriting: “; 
cin>>a; 
cout<<”\n b –koeffisiyentni kiriting: “; 
cin>>b; 
cout<<”\n c –koeffisiyentni kiriting: “; 
cin>>c; 
switch (Kvadrat_Ildiz(a,b,c,x1,x2)) 

case 0: cout<<”Tenglama haqiqiy ildizga ega emas!”; 
break; 
case 1: cout<<”Tenglama yagona ildizga ega: “; 
cout<<”\n x=”<
break; 
default: cout<<”Tenglama ikki ildizga ega:”; 
cout<<”\n x1= “<
 
cout<<”\n x2= “<

return 0; 

Dasturdagi Kvadrat_Ildiz() funksiyasi kvadrat tenglama ildizini hisoblaydi. Uning 
qaytaradigan qiymati tenglamaning nechta ildizi borligini anglatadi. Agar tenglamaning haqiqiy 
ildizi mavjud bo‘lmasa (D<0), funksiya 0 qiymatini qaytaradi. Agar D=0 bo‘lsa, funksiya 1 
qiymatini qaytaradi. Agar D>0 bo‘lsa funksiya 2 qiymatini qaytaradi. Mavjud ildizlar – x1 va x2 
murojaatli parametrlarda qaytariladi. 

Download 2,19 Mb.

Do'stlaringiz bilan baham:
1   ...   47   48   49   50   51   52   53   54   ...   105




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish