Dasturlash asoslari



Download 0,64 Mb.
bet1/4
Sana29.07.2021
Hajmi0,64 Mb.
#132198
  1   2   3   4

Mirzo Ulug’bek nomidagi

O’zbekiston Milliy universiteti Jizzax filiali


“Amaliy matematika” fakulteti
“Amaliy matematika va informatika” kafedrasi
“DASTURLASH ASOSLARI” fanidan


KURS ISHI


Mavzu: C++ da ko`rsatkichlar bilan ishlash masalalarni dasturlash.

Bajardi: 102-guruh talabasi Tirkashov Qahramon Bekmurod o'g'li


Ilmiy rahbar: Raximov N.

Jizzax-2021

MUNDARIJA



KIRISH ...................................................................................................3

1. Ko`rsatkich operatorlari......................................................................6

2. Ko`rsatkich argumentli funksiyalar...................................................10

3. const Sifatli ko`rsatkichlar ...............................................................12

4. Ko`rsatkich va oddiy o`zgaruvchilarning egallagan adres kattaligi.....19

AMALIY ISHLAR ..............................................................................22

XULOSA .............................................................................................27

FOYDALANILGAN ADABIYOTLAR RO`YXATI.........................28

KIRISH.

C++ dasturlash tili univеrsal tildir. U UNIX sistеmasi bilan bog`langan bo`lib, bu sistеmada ishlatiladigan bir qancha dasturlar Si tilida yozilgan. Lеkin Si dasturlash tili biron-bir sistеma yoki mashina bilan qattiq bog`lanib qolmagan. Si dasturlash tilida bеlgi (litеr) lar, shuningdеk turli o`lchamli butun, suzuvchi sonlar asos bo`lib xizmat qiladi. Bundan tashqari, ko`rsatkichlar, massivlar, opеrandalardan, tuzilma va birlashmalardan, chiqariluvchi ma`lumotlarning to`la iеrarxiyasini hosil qilish mumkin. Ifodalar opеranda va ko`rsatkichlardan tashkil topadi. Qiymat uzatish funksiyasini chaqirishni qo`shib hisoblaganda har bir ifoda ko`rsatkich bo`lishi mumkin. Ko`rsatkichlar bog`liqmas adrеsli (manzili) mashina arifmеtikasini bеlgilaydi. Si ko`rsatma tuzuvchisi ( {} ), (if-else) shart bo`yicha tarmoqlanish, ko`p (switch) dan bir muqobilini tanlash, yuqoriga qarab takrorlash (while, for) va quyiga (do) qarab takrorlash, shuningdеk takrorlashni to`xtatish (break) kabi boshqaruvchi tuzilmalar mavjuddir. Xar bir funksiyaga rеkursiv yondashadi, lеkin bir funksiyaning tasviri ikkinchi funksiyaning orasida yotishi mumkin emas. Si tilining boshqa tillarga o`xshash kamchiligi mavjud bo`lib, bu tilning tuzilmalari sintaksisi noqulay. C Dеnis Ritchi tomonidan 1972 yili UNIX tipidagi opеrasion sistеmalarini yaratish uchun loyihalashtirilgan. Unda opеrasiyalar, skalyar qiymatlar ish olib boradi. Tarkibiy qiymatlar esa ularning elеmеntlariga yaqinlashishni tartiblash uchun ishlatiladi.

C++ da ikki ko'rinishdagi ko'rsatkichlar - &-ko'rsatkichlar va pointerlar mavjuddir. Aslida bularning farqi faqat qo'llanilishi va ko'rinishida desak ham bo'ladi. Bu qismda biz C dan meros qolgan pointerlar bilan yaqindan tanishamiz. &-ko'rsatkichlarni biz o'tgan qismda ko'rgan edik.

 Pointerlar C/C++ dasturlash tillarining eng kuchli qurollaridandir. Lekin pointer tushunchasini anglash ham oson emas. Pointerlar yordamida funksiyalarning ko'rsatkich bo'yicha chaqirish mehanizmini amalga oshirish mumkin. Undan tashqari pointerlar yordamida dinamik strukturalar – stek (stack), ro'yhat (list), navbat (queue) va darahtlar (tree) tuzish mumkin.

 Undan tashqari pointer, satr va massivlar orasida yaqin aloqa bordir. Satr va massivlarni pointerlar yordamida berish bizga C dan meros bo'lob qoldi.

 Pointerlar qiymat sifatida hotira adreslarini oladilar. Oddiy o'zgaruvchilar ma'lum bir qiymatga ega bo'lgan bir paytda, pointerlar boshqa bir o'zgaruvchining adresini o'z ichlariga oladilar. Shunda o'zgaruvchi bevosita qiymatga ko'rsatib tursa, pointer qiymatga bilvosita ko'rsatadi. 

 Pointer e'lonida, pointer ismidan oldin '*' (yulduzcha, ko'paytiruv) belgisi qo'yilishi kerak. Misolda ko'raylik:

 char *charPtr, c = 8, *pc, ff[] = "IcyCool";

 Bu yerda  charPtr va pc lar char tipidagi ko'rsatkichlardir. Yani, charPtr ni "char tipidagi oz'garuvchiga ga ko'rsatkich" deb o'qisak bo'ladi. Ko'rsatkich sifatida e'lon qilinayatgan har bir o'zgaruvchi ismi oldida '*' bo'lishi shartdir.

 Pointerlarni boshqa o'zgaruvchilar kabi e'lon davrida, yoki dastur ichida qiymat berish yordamida initsalizatsiya qilish mumkin. Pointerlar qiymat sifatida faqat o'zgaruvchi yoki ob'ektlarning adreslarini va NULL yoki 0 ni oladilar. NULL simvolik konstantasi va boshqa bir necha standart e'lon fayllarida aniqlangan. Pointerga NULL qiymatini berish pointerni 0 ga tenglashtirish bilan tengdir, ammo C++ pointerga to'g'ridan-to'g'ri 0  qiymatini berish afzalroqdir, chunki agar NULL emas, 0 qiymati berilsa, ushbu qiymat avtomatik ravishda pointerning tipiga keltiriladi. Butun sonlardan faqat 0 qiymati pointerga keltirilishsiz berilishi mumkin. Agar ma'lum bir hotira adresini pointerga bermoqchi bo'lsak, quyidagicha yozishimiz mumkin: 

 int *iPtr, address = 0x45ad7 ;

iPtr = static_cast(address); // C++    "        "         "

Lekin, albatta, yuqoridagi yozganimizni kamdam-kam qo'llashga to'g'ri kelsa kerak, chunki adres olishning soddaroq yo'llari bordir. Aslida, pointer e'lon qilinsa-yu lekin hali qo'llanilmayatgan bo'lsa, unga 0 qiymatini berish tavsiya etiladi. Chunki, agar biz bu 0 qiymatli pointerni bilmasdan qo'llamoqchi bo'lsak, kompilyator hato beradi, bunga sabab odatda operatsiyon sistemalar 0 adresli hotira maydoni bilan ishlashga ruhsat bermaydilar. Shu tariqa qiymatsiz pointer qo'llanilganidan ogoh bo'lamiz.  


Download 0,64 Mb.

Do'stlaringiz bilan baham:
  1   2   3   4




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