Войти Регистрация

Docx

  • Рефераты
  • Дипломные работы
  • Прочее
    • Презентации
    • Рефераты
    • Курсовые работы
    • Дипломные работы
    • Диссертациии
    • Образовательные программы
    • Инфографика
    • Книги
    • Тесты

Информация о документе

Цена 2000UZS
Размер 21.3KB
Покупки 0
Дата загрузки 07 Ноябрь 2026
Расширение docx
Раздел Рефераты
Предмет Информатика и ИТ

Продавец

Bohodir Jalolov

Ko‘rsatkichlar (dasturlash)

Купить
K O ‘ R S A T K I C H L A R   ( D A S T U R L A S H )
Reja:
 
1.       Ko‘rsatkichlar haqida.
2.       Ko‘rsatkichlarni
 e’lon	 qilish.
3.       Ko‘rsatkichlar	
 ustida	 amallar.
4.       Ko‘rsatkichlar	
 va	 massivlar.
5.       Funksiyaga	
 ko‘rsatkich.
  Ko‘rsatkichlar.   Ko‘rsatkich - xotira	 uyasining	 unikal	 adresini	 saqlaydigan
o‘zgaruvchi.	
 Ko‘rsatkich	 operativ	 xotiradagi	 biron-bir	 o‘zgaruvchi	 mavjud	 bo‘lishi
mumkin	
 bo‘lgan	 biron-bir	 joyni	 belgilaydi.	 Ko‘rsatkichlarning	 qiymatlarini
o‘zgartirish,	
 	turli	 	variantlarda	 	qo‘llash	 	mumkinki,	 	bu	 	dasturning
moslashuvchanligini	
 oshiradi.
Ko‘rsatkich	
 odatda	 tipga	 ega	 bo‘lib	 quyidagicha	 e’lon	 qilinadi:
<turning	
 nomi>*<ko‘rsatkichning	 nomi>=<dastlabki	 qiymat>
Misol	
 uchun:
int	
 *pr;
char
 *alfa;
Bu
 holda	 ko‘rsatkichlar	 noaniq	 qiymatga	 ega	 bo‘ladi.	 Ko‘rsatkichlar
ta’riflanganda	
 ularning	 tiplari	 ko‘rsatilishi	 shart.	 Ko‘rsatkichlarni	 initsializatsiya
kilish	
 ya’ni	 boshlang‘ich	 qiymatlarini	 kiritish	 mumkin.	 Ma’lum	 turdagi	 biron-bir
o‘zgaruvchi	
 adresi	 yoki	 NULL	 qiymat	 dastlabki	 qiymat	 bo‘lishi	 mumkin.
Ko‘rsatkichlarga	
 boshlang‘ich	 maxsus	 NULL	 qiymati	 berilsa	 bunday	 ko‘rsatkich
bo‘sh	
 ko‘rsatkich	 deb	 ataladi.
Biron-bir	
 o‘zgaruvchi	 adresini	 olish	 hamda	 uni	 ko‘rsatkichga	 qiymat	 sifatida
berish	
 uchun	 «&»	 operatori	 qo‘llanadi.
Misol:
int	
 I=100;
int*p=&I;
unsigned	
 longint	 *ul=NULL;
Teskari	
 operator	 - «*»	 bo‘lib,	 ko‘rsatkichda	 saqlanayotgan	 adres	 bo‘yicha	 uya
qiymatiga	
 murojaat	 qilish	 imkonini	 beradi.
Misol:
int	
 I=100;
int*p=&I
int
 J=*p;
Ilova	
 tushunchasi.	 Ilova	 (ssыlka)	 –	 ilova	 ta’rifirda	 ko‘rsatilgan	 ob’ekt
nomining	
 sinonimi. Ilovani e’lon	 qilish	 shakli
tur	
 &	 ism	 =ism_ob’ekt;
Misollar:
int	
 x;	 // o‘zgaruvchining	 aniqlash
int&	
 sx=x;	 //x	 o‘zgaruvchiga	 iqtibosni	 aniqlash
const	
 char	 &	 CR='\n';	 //konstantaga	 iqtibosni	 aniqlash
Ilovalar	
 bilan	 ishlash	 qoidalari.
1)	
 O‘zgaruvchi	 ilova,	 agar	 u funksiya	 parametri	 bo‘lmasa,	 extern	 sifatida
tavsiflanmagan	
 bo‘lsa	 yoki	 sinf	 maydoniga	 ilova	 qilmasa,	 o‘ziga	 tavsif
berilayotganda	
 ochiq-oydin	 nomlanishi	 kerak.
2)	
 Nomlangandan	 so‘ng,	 ilovaga	 boshqa	 qiymat	 berilishi	 mumkin	 emas.
3)	
 Ilovalarga	 ko‘rsatkichlar,	 ilovalar	 massivlari	 va	 ilovalarga	 ilovalar	 bo‘lishi
mumkin	
 emas.
4)
 Ilova	 ustida	 o‘tkazilgan	 operatsiya	 o‘zi	 ilova	 qilayotgan	 qiymatning
o‘zgarishiga	
 olib	 keladi
Ko‘rsatkichlar	
 ustida	 o‘tkaziladigan	 operatsiyalar.	 Ko‘rsatkichlar	 ustida	 unar
operatsiyalar	
 bajarish	 mumkin:	 inkrement	 va	 dekrement	 ++	 va	 --	 operatsiyalarini
bajarishda,	
 ko‘rsatkich	 qiymati	 ko‘rsatkich	 murojaat	 qilgan	 tur	 uzunligiga
ko‘payadi	
 yoki	 kamayadi.
Misol:
int*ptr,	
 a[10];
ptr=&a[5];
ptr++;       */	
 = a[6]*/	 elementining	 adresiga
ptr--;       */	
 = a[5]*/	 elementining	 adresiga
Qo‘shish	
 va	 ayirish	 binar	 operatsiyalarida	 ko‘rsatkich	 va	 int	 turining	 qiymati
ishtirok	
 etishi	 mumkin.	 Bu	 operatsiya	 natijasida	 ko‘rsatkich	 qiymati	 dastlabkisidan
ko‘rsatilgan	
 elementlar	 soniga	 ko‘proq	 yoki	 kamroq	 bo‘ladi.
Misol:
int*ptr1,	
 *ptr2,	 a[10]; int i=2;
ptr1=a+(i+4);       /*	
 = a[6]*/	 elementining	 adresiga
ptr2=ptr1-i;         /*	
 = a[4]*/	 elementining	 adresiga
Ayirish	
 operatsiyasida	 bitta	 turga	 mansub	 bo‘lgan	 ikkita	 ko‘rsatkich	 ishtirok
etishi	
 mumkin.	 Operatsiya	 natijasi	 int	 turiga	 ega	 hamda	 kamayuvchi	 va	 ayiruvchi
o‘rtasidagi	
 dastlabki	 tur	 elementlarining	 soniga	 teng,	 bundan	 tashqari	 agar	 birinchi
adres	
 kichikroq	 bo‘lsa,	 u holda	 natija	 manfiy	 qiymatga	 ega	 bo‘ladi.
Misol:
int	
 *ptr1,	 *ptr2,	 a[10];
int	
 i;
ptr1=a+4;
ptr2=a+9;
i=ptr1-ptr2;	
 /*=5	 */
i=ptr1-ptr2;	
 /*=-5	 */
Bir	
 turga	 taalluqli	 bo‘lgan	 ikkita	 ko‘rsatkich	 qiymatlarini	 ==,	 !=,	 <,	 <=,	 >,	 >=
amallari	
 yordamida	 o‘zaro	 qiyoslash	 mumkin.	 Bunda	 ko‘rsatkichlarning	 qiymatlari
shunchaki	
 butun	 sonlar	 sifatida	 olib	 qaraladi,	 qiyoslash	 natijasi	 esa	 0 (yolg‘on)
yoki	
 1 (rost)	 ga	 teng	 bo‘ladi.
Misol:
int	
 *ptr1,	 *ptr2,	 a[10];
ptr1=a+5;
ptr2=a+7;
if(ptr1>ptr2)	
 a[3]=4;
Bu	
 misolda	 ptr1	 ning	 qiymati	 ptr2	 ning	 qiymatidan	 kamroq,	 shuning	 uchun
a[3]=4	
 operatori	 bajarilmay	 qoladi.
Konstanta	
 ko‘rsatkich	 va	 konstantaga	 ko‘rsatkichlar.	 Konstanta	 ko‘rsatkich
quyidagicha	
 ta’riflanadi:
<tip>*
 const<ko‘rsatkich	 nomi>=<konstanta	 ifoda>
Misol	
 uchun:	 char*	 const	 key_byte=(char*)0x0417. Bu misolda	 konstanta	 ko‘rsatkich	 klaviatura	 xolatini	 ko‘rsatuvchi	 bayt	 bilan
boglangandir.
  Konstanta	
 ko‘rsatkich	 qiymatini	 o‘zgartirish	 mumkin	 emas	 lekin	 * amali
yordamida	
 xotiradagi	 ma’lumot	 qiymatini	 o‘zgartirish	 mumkin.	 Misol	 uchun
*key_byte=’YO’	
 amali	 1047(0x0417)	 adres	 qiymati	 bilan	 birga	 klaviatura	 xolatini
ham	
 o‘zgartiradi.
Konstantaga	
 ko‘rsatkich	 quyidagicha	 ta’riflanadi:
<tip>const*<ko‘rsatkich	
 nomi>=<konstanta	 ifoda>.
Misol	
 uchun	 const	 int	 zero=0;	 int	 const*	 p=&zero;
Bu	
 ko‘rsatkichga	 * amalini	 qo‘llash	 mumkin	 emas,	 lekin	 ko‘rsatkichning
qiymatini	
 	o‘zgartirish	 	mumkin.	 	Qiymati	 	o‘zgarmaydigan	 	konstantaga
ko‘rsatkichlar	
 quyidagicha	 kiritiladi:
<tip>const*	
 const<ko‘rsatkich	 nomi>=<konstanta	 ifoda>.
Misol	
 uchun
const
 float	 pi=3.141593;	 float	 const*	 const	 pp=&pi;
Turlashtirilmagan	
 	ko‘rsatkich.	 	Turlashtirilmagan	 	(tipiklashtirilmagan)
ko‘rsatkich	
 void	 turga	 ega	 bo‘lib,	 ixtiyoriy	 turdagi	 o‘zgaruvchi	 adresi	 qiymat
sifatida	
 berilishi	 mumkin.
Maxsus	
 void	 tipidagi	 ko‘rsatkichlar	 ajdodiy	 ko‘rsatkichlar	 deb	 atalib	 har	 xil
tipdagi	
 ob’ektlar	 bilan	 bog‘lanish	 uchun	 ishlatiladi.
Misol	
 uchun:
int	
 I=77;
float
 Euler=2.18282;
void
 *vp;
Vp=&I;
cout<<	
 (*(int*)vp;
Vp=&Euler;
cout<<
 (*(float*)vp;
Quyidagi
 operatorlar	 ketma	 ketligi	 xatolikka	 olib	 keladi: void *vp;int	 *ip;	 ip=vp;
Bu	
 xatolik	 sababi	 bitta	 ob’ektga	 har	 xil	 tipdagi	 ko‘rsatkichlar	 bilan	 murojaat
kilish	
 mumkin	 emas.
Ko‘rsatkchlar	
 funksiya	 parametri	 sifatida.	 Ko‘rsatkichlar	 yordamida	 parametr
qiymatini	
 o‘zgartirish	 mumkin.
Misol	
 uchun	 turtburchak	 yuzi	 va	 perimetrini	 berilgan	 tomonlari	 bo‘yicha
hisoblash	
 funksiyasini	 quyidagicha	 tasvirlash	 mumkin.
 
void	
 pr(float	 a,float	 b,	 float*	 s, float*	 p)
{
*p=2(a+b);
*s=	
 a*b;
}
Bu
 funksiyaga	 quyidagicha	 murojaat	 kilinishi	 mumkin	 pr(a,b,&p,&s).
Funksiyaga	
 p va	 s o‘zgaruvchilarning	 adreslari	 uzatiladi.	 Funksiya	 tanasida	 shu
adreslar	
 bo‘yicha	 2*(a+b)	 va	 a*b	 qiymatlar	 yoziladi.
Ko‘rsatkichlar	
 o‘rniga	 ilovalardan	 foydalanish	 dasturning	 o‘qilishini
yaxshilaydi,	
 chunki	 bu	 o‘rinda	 adres	 bo‘yicha	 qiymat	 olish	 operatsiyasini
qo‘llamasa	
 ham	 bo‘ladi.	 Qiymat	 bo‘yicha	 uzatish	 o‘rniga	 ilovalardan	 foydalanish
samaraliroq	
 hamdir,	 chunki	 parametrlarni	 nusxalashni	 talab	 qilmaydi.	 Agar
funksiya	
 ichida	 parametrning	 o‘zgarishini	 taqiqlash	 lozim	 bo‘lib	 qolsa,	 bu	 holda
const	
 modifikatori	 qo‘llanadi.	 Bu	 modifikatorni	 funksiyada	 o‘zgarishi	 ko‘zda
tutilmagan	
 barcha	 parametrlar	 oldidan	 qo‘yish	 tafsiya	 qilinadi	 (undagi	 qaysi
parametrlar	
 o‘zgaradiyu,	 qaysilari	 o‘zgarmasligi	 sarlavhadan	 ko‘rinib	 turadi).
Ko‘rsatkich	
 	va	 	massiv	 	nomi.   Massivlar	 	nomi	 	dasturda	 	konstanta
ko‘rsatkichdir.	
 SHuning	 uchun	 ham	 int	 z[4]	 massiv	 elementiga	 *(z+4)	 shaklda
murojaat	
 kilish	 mumkin.
Massivlar
 bilan	 ishlanganda	 kavslarsiz	 ishlash	 mumkin.
Massivlarni	
 funksiyalar	 parametrlari	 sifatida.	 Massivlar	 funksiyaga	 turidagi
bir	
 o‘lchamli	 massivlar	 sifatida	 yoki	 ko‘rsatkichlar	 sifatida	 uzatilishi	 mumkin.
Masalan	
 satrlar	 funksiyaga	 char	 turidagi	 bir	 o‘lchamli	 massivlar	 sifatida	 yoki	 char*
turidagi	
 ko‘rsatkichlar	 sifatida	 uzatilishi	 mumkin.	 Oddiy	 massivlardan	 farqli o‘laroq, funksiyada	 satr	 uzunligi	 ko‘rsatilmaydi,	 chunki	 satr	 oxirida	 satr	 oxiri	 \0
belgisi	
 bor.
Misol:	
 Berilgan	 belgini	 satrda	 qidirish	 funksiyasi
int	
 find(char	 *s,char	 c)
{
for	
 (int	 i=0;i<strlen(s);i++)
if(s[i]==c)	
 return	 i;
return	
 –1
}
Massiv
 funksiya	 qiymati	 sifatida.	 Massiv	 qiymat	 qaytaruvchi	 funksiya	 ta’rifi:
float	
 *sum_vec(int	 n,float	 a,float	 b)
{
float	
 d[n];
for(int
 i=0;i<n;i++,d[i]=a[i]+b[i]);
return
 d;
}
Bu	
 funksiyaga	 quyidagicha	 murojaat	 kilish	 mumkin:
float	
 a[]={1,-1.5,-2},b[]={-5.2,1.3,-4};
float
 c[]=sum_vec(3,a,b);
Ko‘p
 o‘lchamli	 massivlar	 va	 ko‘rsatkichlar.	 C++	 da	 massivning	 eng	 umumiy
tushunchasi	
 - bu	 ko‘rsatkichdir,	 bunda	 har	 xil	 turdagi	 ko‘rstakich	 bo‘lishi	 mumkin,
ya’ni	
 massiv	 har	 qanday	 turdagi	 elementlarga,	 shu	 jumladan,	 massiv	 bo‘lishi
mumkin	
 bo‘lgan	 ko‘rsatkichlarga	 ham	 ega	 bo‘lishi	 mumkin.	 O‘z	 tarkibida	 boshqa
massivlarga	
 ham	 ega	 bo‘lgan	 massiv	 ko‘p	 o‘lchamli	 hisoblanadi.
Bunday	
 massivlarni	 e’lon	 qilishda	 kompyuter	 xotirasida	 bir	 nechta	 turli
xildagi	
 ob’ekt	 yaratiladi.
Ko‘rsatkichlar	
 massivlari.	 Ko‘rsatkichlar	 massivlari	 quyidagicha	 ta’riflanadi
<tip>	
 *<nom>[<son>] Misol uchun	 int	 *pt[6]	 ta’rif	 int	 tipidagi	 ob’ektlarga	 olti	 elementli	 massivni
kiritadi.
Ko‘rsatkichlar	
 massivlari	 satrlar	 masssivlarini	 tasvirlash	 uchun	 qulaydir.
Misol	
 uchun	 familiyalar	 ro‘yxatini	 kiritish	 uchun	 ikki	 o‘lchovli	 massivdan
foydalani	
 kerak.
char
 fam[][20]={   "Olimov","Raximov","Ergashev"}
Xotirada	
 60	 elementdan	 iborat	 bo‘ladi,	 chunki	 har	 bir	 familiya	 20	 gacha	 0 lar
bilan	
 to‘ldiriladi.
Ko‘rsatkichlar	
 massivi	 yordamida	 bu	 massivni	 quyidagicha	 ta’riflash
mumkin.
char	
 *pf[]=	 {   "Olimov","Raximov","Ergashev"}.
Bu	
 holda	 ro‘yxat	 xotirada	 23	 elementdan	 iborat	 bo‘ladi,	 chunki	 har	 bir
familiya	
 oxiriga	 0 belgisi	 kuyiladi
Har	
 xil	 chegarali	 jadvallar	 bilan	 funksiyalardan	 foydalanishning	 bir	 yuli	 bu
oldindan	
 kiritiluvchi	 konstantalardan	 foydalanishdir.	 Lekin	 asosiy	 yuli
ko‘rsatkichlar	
 massivlaridan	 foydalanish.
Bir	
 o‘lchovli	 dinamik	 massivlar.	 C++tilida	 o‘zgaruvchilar	 yo	 statik	 tarzda	 -
kompilyasiya	
 paytida,	 yoki	 standart	 kutubxonadan	 funksiyalarni	 chaqirib	 olish
yo‘li	
 bilan	 dinamik	 tarzda	 - dasturni	 bajarish	 paytida	 joylashtirilishi	 mumkin.
Asosiy	
 farq	 ushbu	 usullarni	 qo‘llashda	 ko‘rinadi	 - ularning	 samaradorligi	 va
moslashuvchanligida.	
 Statik	 joylashtirish	 samaraliroq,	 chunki	 bunda	 xotirani
ajratish	
 dastur	 bajarilishidan	 oldin	 sodir	 bo‘ladi.	 Biroq	 bu	 usulning
moslashuvchanligi	
 ancha	 past,	 chunki	 bunda	 biz	 joylashtirilayotgan	 ob’ektning	 turi
va	
 o‘lchamlarini	 avvaldan	 bilishimiz	 kerak	 bo‘ladi.	 Masalan,	 matniy	 faylning
ichidagisini	
 satrlarning	 statik	 massivida	 joylashtirish	 qiyin:	 avvaldan	 uning
o‘lchamlarini	
 bilish	 kerak	 bo‘ladi.	 Noma’lum	 sonli	 elementlarni	 oldindan	 saqlash
va	
 ishlov	 berish	 kerak	 bo‘lgan	 masalalar	 odatda	 xotiraning	 dinamik	 ajratilishini
talab	
 qiladi.
Xotirani	
 dinamik	 va	 statik	 ajratish	 o‘rtasidagi	 asosiy	 farqlar	 quyidagicha:
statik	
 ob’ektlar	 nomlangan	 o‘zgaruvchilar	 bilan	 belgilanadi,	 hamda	 ushbu	
ob’ektlar	
 o‘rtasidagi	 amallar	 to‘g‘ridan-to‘g‘ri,	 ularning	 nomlaridan
foydalangan	
 holda,	 amalga	 oshiriladi.	 Dinamik	 ob’ektlar	 o‘z	 shaxsiy	 otlariga
ega	
 bo‘lmaydi,	 va	 ular	 ustidagi	 amallar	 bilvosita,	 ko‘rsatkichlar	 yordamida,
amalga	
 oshiriladi;
statik	
 ob’ektlar	 uchun	 xotirani	 ajratish	 va	 bo‘shatish	 kompilyator	 tomonidan	
avtomatik	
 tarzda	 amalga	 oshiriladi.	 Dasturchi	 bu	 haqda	 o‘zi	 qayg‘urishi kerak emas.	 Statik	 ob’ektlar	 uchun	 xotirani	 ajratish	 va	 bo‘shatish	 to‘laligicha
dasturchi	
 zimmasiga	 yuklatiladi.	 Bu	 anchayin	 qiyin	 masala	 va	 uni	 echishda
xatoga	
 yo‘l	 qo‘yish	 oson.
Dinamik	
 tarzda	 ajratilayotgan	 xotira	 ustida	 turli	 xatti-harakatlarni	 amalga
oshirish	
 uchun	 new	 va	 delete	 operatorlari	 xizmat	 qiladi.
Ma’lum	
 bir	 turdagi	 elementlardan	 tashkil	 topgan	 berilgan	 o‘lchamlardagi
massivga	
 xotira	 ajratish	 uchun	 new	 operatoridan	 foydalanish	 lozim:
int	
 *pia=new	 int[4];
Bu	
 misolda	 xotira	 int	 turidagi	 to‘rtta	 elementdan	 iborat	 massivga	 xotira
ajratiladi.	
 Afsuski,	 new	 operatorining	 bu	 shakli	 massiv	 elementlarini	 nomlantirish
(initsiallashtirish)	
 imkonini	 bermaydi.
Dinamik	
 massivni	 bo‘shatish	 uchun	 delete	 operatoridan	 foydalanish	 lozim:
delete[]	
 pia;
Agar	
 ajratilgan	 xotirani	 bo‘shatish	 esdan	 chiqqudek	 bo‘lsa,	 bu	 xotira
bekordan-bekorga	
 sarflana	 boshlaydi,	 foydalanilmay	 qoladi,	 biroq,	 agar	 uning
ko‘rsatkichi	
 o‘z	 qiymatini	 o‘zgartirgan	 bo‘lsa,	 uni	 tizimga	 qaytarish	 mumkin	 emas.
Bu	
 hodisa	 xotiraning	 yo‘qotilishi	 (utechka	 pamyati)	 degan	 maxsus	 nom	 bilan
ataladi.	
 Pirovard	 natijada	 dastur	 xotira	 etishmagani	 tufayli	 avariya	 holatida
tugallanadi	
 (agar	 u ancha	 vaqt	 ishlayversa).
Ikki	
 o‘lchovli	 dinamik	 massivlar.	 Matritsani	 shakllantirishda	 oldin	 bir
o‘lchovli	
 massivlarga	 ko‘rsatuvchi	 ko‘rsatkichlar	 massivi	 uchun	 xotira	 ajratiladi,
keyin	
 esa	 parametrlissiklda	 bir	 o‘lchovli	 massivlarga	 xotira	 ajratiladi.
Misol:
int	
 n;
cin>>n;
double	
 *matr[100];
for	
 (i=0;i<n;i++)	 matr[i]=new	 int[n];
Xotirani	
 bo‘shatish	 uchun	 bir	 o‘lchovli	 massivlarni	 bo‘shattiruvchissiklni
bajarish	
 zarur.
for(int	
 i=0;i<n;i++)
delete
 matr[i]; Funksiyalarni chaqirishda	 foydalanish.	 C++   tili	 sintaksisiga	 ko‘ra	 funksiyaga
ko‘rsatkich	
 funksiya	 adresini	 aks	 ettiruvchi	 o‘zgaruvchi	 yoki	 ifodadir.	 Funksiyaga
ko‘rsatkich	
 bajariluvchi	 qiymati	 funksiya	 kodining	 birinchi	 bayti	 adresidir.
Funksiyaga	
 ko‘rsatkichlar	 ustida	 arifmetik	 amallar	 bajarish	 mumkin	 emas.	 Eng
keng	
 qo‘llanuvchi	 funksiyaga	 konstanta	 ko‘rsatkich	 funksiyaning	 nomidir.
Funksiyaga	
 o‘zgaruvchi	 ko‘rsatkich	 funksiya	 ta’rifi	 va	 prototipidan	 aloxida
kiritiladi.	
 Funksiyaga	 o‘zgaruvchi	 ko‘rsatkich	 quyidagicha	 tasvirlanadi:
  <funksiya	
 tipi>	 (*	 ko‘rsatkich	 nomi)(parametrlar	 spetsifikatsiyasi).
Misol	
 uchun	 int	 (*point)	 (void).
Bu	
 ta’rifda	 qavslar	 muxim	 ahamiyatga	 ega,	 chunki	 qavslar	 yozilmasa	 bu	 ta’rif
parametrsiz	
 funksiya	 prototipi	 deb	 karaladi.	 Funksiyaga	 o‘zgaruvchi	 ko‘rsatkich
qiymatlari	
 sifatida,	 bir	 xil	 tipga	 ega	 bo‘lgan	 har	 xil	 funksiyalar	 adreslarini	 berilishi
mumkin.
Qiymati	
 biror	 funksiya	 adresiga	 teng	 bo‘lgan	 funksiyaga	 o‘zgaruvchi
ko‘rsatkich	
 shu	 funksiyaga	 murojaat	 kilish	 uchun	 ishlatilishi	 mumkin.
Dasturda	
 funksiyaga	 kostanta	 ko‘rsatkich	 ya’ni	 nomlari	 orqali	 va	 o‘zgaruvchi
ko‘rsatkichlar	
 yordamida	 murojaat	 qilishning	 hamma	 usullari	 ko‘rsatilgandir.
SHuni	
 ta’kidlash	 lozimki	 adres	 olish	 * amali	 qo‘llanilganda	 qavslar	 ishlatish
shartdir.
Funksiyaga	
 o‘zgaruvchi	 ko‘rsatkich	 ta’riflanganda	 insializatsiya	 qilish,	 ya’ni
boshlang‘ich	
 qiymat	 sifatida	 o‘zgaruvchi	 ko‘rsatkich	 bilan	 bir	 xil	 tipga	 ega	 bo‘lgan
funksiya	
 adresini	 ko‘rsatish	 mumkin.	 Misol	 uchun:
int	
 fic	 (char);
int	
 (*pfic)	 (char)=fic;
Funksiyalarga	
 ilovalar.	 Funkiyaga	 ko‘rsatkich	 qanday	 aniqlansa	 funksiyaga
ilova	
 ham	 xuddi	 shunday	 aniqlanadi:
funksiya_turi(&ilova_nomi)(parametrlar)nomlantiruvchi_ifoda;
Misol:
int(&fret)(float,int)=f;//	
 ilovani	 aniqlash
Funksiya	
 nomini	 parametrlarsiz	 va	 qavslarsiz	 qo‘llash	 funksiya	 adresi	 sifatida
qabul	
 qilinadi.	 Funksiyaga	 ilova	 funksiya	 nomining	 sinonimi	 bo‘ladi.	 Funksiyaga
ilovaning	
 qiymatini	 o‘zgartirib	 bo‘lmaydi,	 shuning	 uchun	 ko‘p	 o‘rinda	 funksiyaga
ilovalar	
 emas,	 funksiyaga	 ko‘rsatkichlar	 qo‘llanadi. Funksiyaga ko‘rsatkichlar	 parametr	 sifatida.   Funksiyaga	 ko‘rsatkichlarlarni
funksiyalarga	
 parametr	 sifatida	 uzatish	 mumkin

Ko‘rsatkichlar (dasturlash)

Купить
  • Похожие документы

  • 3d-max dasturida obektlarni yaratish
  • Algoritm va ma’lumotlar strukturasi
  • 3D-MAX dasturi haqida
  • 3D Studio MAX dasturiga kirish. 3D Studio MAX dasturi haqida tushuncha
  • Adobe photoshop dasturida tasvirlarda ishlov berish,taqdimot yaratish

Подтвердить покупку

Да Нет

© Copyright 2019-2026.

  • Инструкция по снятию с баланса
  • Контакты
  • Инструкция использования сайта
  • Инструкция загрузки документов
  • O'zbekcha