Bajardi: Ahmadjonov Ibrohim Tekshirdi: Rahmonov Asqar
Download 376.25 Kb. Pdf ko'rish
|
- Bu sahifa navigatsiya:
- Bajardi: Ahmadjonov Ibrohim Tekshirdi: Rahmonov Asqar
OʻZBEKISTON RESPUBLIKASI AXBOROT TEXNOLOGIYALARI VA KOMMUNIKATSIYALARINI RIVOJLANTIRISH VAZIRLIGI MUHAMMAD AL-XORAZMIY NOMIDAGI TOSHKENT AXBOROT TEXNOLOGIYALARI UNIVERSITETI MA`LUMOTLAR TUZILMASI VA ALGORITMLASH Mustaqil ish Bajardi: Ahmadjonov Ibrohim Tekshirdi: Rahmonov Asqar Toshkent-2022 Mavzu: Ma’lumotlarning sozlangan turlari: massivlar ,vektorlar,yozuvlar,to’plamlar,ko’rsatkichli turlar . Reja: I Kirish II Asosiy qism 1.Ma’lumotlar turlari 2.Ma’lumotlarning sozlangan turlari: 2.1 Massivlar 2.2 Vektorlar 2.3 To’plamlar 2.4 Yozuvlar 2.5 Ko’rsatkichli turlar III Xulosa Hayotimizda biz turli muammolarni hal qilish uchun turli xil turdagi ma’lumotlar turidan foydalanishimizga to’g’ri keladi . Turli holatlarga nazar tashlasak , ma’lumotlar turi har bir ishlatilish jarayonida turli xil prinsip bilan ishlaydi . Misol uchun , kutish holatidagi navbat bilan idish yuvish jarayonida tarelkalarni olib qayta taxlash holatlari . Bu ikki ma’lumotlar turlari bir- biridan mantiqiy qurilishiga ko’ra farq qiladi . Bu kundalik hayotimizda ko’rishimiz mumkin sodda ma’lumotlar turiga misol bo’ladi . Turli murakkabroq ish sohalarida bundan ancha murakkabroq ma’lumotlar turlari ishlatiladi . Qisqa qilib aytganda ma’lumotlar turlari obyektlarni yoki obyektlar orasidagi bog’liqlikni ifodalagani uchun deyarli barcha hayot jarayonlarida ishlatiladi . Ma’lumotlar turlari asosan sodda va keltirilgan turlarga bo’linadi: Quyidagi artikl sodda ma’lumotlar turlarini tavsiflaydi: Integer: Butun ma’lumotlar turini ifodalash uchun ishlatiladigan ma’lumotlar turi bu – integer . Butun sonlar turi yana 3 turga bo’linadi : short int , int , long int. Short int turi odatda xotiradan 2 bayt joy egallaydi va bu turdagi sonlar manfiy qiymatlar ham qabul qilish mumkin bo’lsa qabul qilish oralig’i : -32768 dan 32767 gacha bo’lgan sonlarni , nomanfiy sonlar bilan chegaralanadigan bo’lsa, oralig’i : 0 dan 65535 gacha bo’ladi . Int turi odatda xotiradan 4 bayt joy egallaydi va bu turdagi sonlar manfiy qiymatlar ham qabul qilish mumkin bo’lsa qabul qilish oralig’i: -2147483648 dan 2147483647 gacha bo’lgan sonlarni , nomanfiy sonlar bilan chegaralanadigan bo’lsa, oralig’i : 0 ... 4294967295 gacha bo’ladi . Long int turi odatda xotiradan 2 bayt joy egallaydi va bu turdagi sonlar manfiy qiymatlar ham qabul qilish mumkin bo’lsa qabul qilish oralig’I : -32768 dan 32767 gacha bo’lgan sonlarni , nomanfiy sonlar bilan chegaralanadigan bo’lsa, oralig’i : 0 dan 65535 gacha bo’ladi . Long long int: Bu ma’lumotlar turi int ning kengaytirilgan shakli bo’lib, -2^63 dan 2^63-1 gacha bo’lgan qiymatlarni qabul qiladi va xotiradan 8 bayt joy egallaydi . Char : Turli xil simvollarni ifodalash uchun char ma’lumotlar turidan foydalaniladi . Xotiradan 1 bayt joy olib, -127 dan 127 yoki 0 dan 255 gacha bo’lgan qiymatlarni qabul qiladi . String : Bu ma’lumotlar turi simvollar ketma-ketligi bilan ishlash uchun ishlatiladi . Xotiradan 4 bayt joy egallab , o’lchami esa maksimal 4294967294 bo’la oladi . Buni string s; cout< Float: Bu ma’lumotlar turi o’nli kasr ko’rinishidagi haqiqiy sonlarni ifodalash uchun qo’llaniladi . Xotiradan 4 bayt joy egallaydi hamda ±1.18 x 10 -38 dan ±3.4 x 10 38 gacha bo’lgan oraliqlardagi sonlarni qabul qila oladi . Aniq yaxlitlash xususiyati 6-9 raqamgacha ,odatda esa 7 ta raqamgacha aniq hisoblay oladi . Double: Bu ma’lumotlar turi ham turli o’nli kasr ko’rinishidagi haqiqiy sonlarni ifodalash uchun ishlatiladi . Xotiradan 8 bayt joy egallaydi hamda ±1.18973 x 10 -4932 dan ±1.18973 x 10 4932 oraliqdagi sonlarni 1.0842* 10 − 19 aniqlik bilan hisoblaydi . Keltirilgan ma’lumotlar turlari deb , ko’plab sodda ma’lumotlar turlari ning mantiqiy bog’liqlik asosida bog’langan ketma-ketligiga aytiladi . Massiv bu – 1 turdagi sodda ma’lumotlar xususiyatidagi ma’lumotlar ketma-ketligiga aytiladi . Massivni ishlatishda ma’lum bir xususiyatlari va shartlari mavjud: *E’lon qilish jarayonida aniq o’lchami aytib ketilishi lozim *Elementlar massiv indeksi ko’rsatilgan joyga borib joylashadi . *Massivlar ko’p o’lchovli bo’ladi(ya’ni 2+ o’lchovli) *Massiv doimo 0 indeksdan boshlanadi(Dasturlashdagi ko’plab jarayonlar deyarli hamma holda 1 bilan emas,0 bilan boshlanadi) *Elementlar soni massivni o’lchamidan oshib keta olmaydi * Agar elementlar soni massiv o’lchamidan kichik bo’lsa , Qolgan elementlari 0 qilib e’lon qilinishi ma’qul , aks holda , o’sha elementlar kompyuter xotirasida qolib ketgan “chiqindi qiymat” li miqdorlarga ega bo’ladi . *Biz massivni effektiv yo’l bilan saralay olamiz *Biz massivni har qanday indeksini o’zgarmas vaqt ichida Bila olishimiz mumkin . *Massivning aniq bir xotira chegarasi kamchiligi bo’lib xizmat qilishi mumkin . Masala: Berilgan massivni c++ ning o’zi tayyor qurilgan funksiyasi yordamida saralash dasturi: Masala:Berilgan massivni insertion sort va selection sort yordamida saralash va nechta operatsiya bajarilganini hisoblovchi dastur: Vektorlar tuzilishi va xususiyati jihatidan massivning yaxshilangan holati hisoblanadi . Vektor- bu dinamik massiv bo’lib, element qo’shilganda yoki o’chirilganda o’lchami avtomatik tarzda o’zgaradi , hamda konteyner tomonidan xotirasi avtomatik boshqariladi . Vektorning ixtiyoriy elementlariga iterator yoki indeks yordamida murojaat qilish uchun vektor elementlari xotirada ketma- ket joylashadi . Vektorga element qo’shish yoki o’chirish chiziqli vaqt talab qiladi , chunki bu amallar bajarish jarayonida har xil holatlar mavjud bo’ladi , eng yaxshi holatda 1 ta operatsiya bajarilsa, eng yomon holatda n(vektor elementlari soni) vaqt talab qiladi . Vektorning oddiy massivdan bir qancha ustunliklarini keltirib o’tamiz: *Elementlar soni oldindan talab qilinmaydi. *Elementlarini e’lon qilish vaqtida bir vaqtning o’zida ortiqcha sikl dasturini tuzmasdan , elementlar sonini berish va har bir elementga bir xil ma’lum bir qiymat bersih mumkin . *Element qo’shish yoki o’chirishda vektor o’zini o’zi qayta to’g’irlaydi . *Bir qancha ichki qurilgan maxsus iterator qaytaruvchi va foydali funksiyalari mavjud . Masala:Vektor implementatsiyasi va uning ayrim funksiyalarini ishlatish To’plam deb shunday ma’lumotlar tuzilmasiga aytiladiki,undagi elementlar noyob bo’ladi(ya’ni biror elementga teng boshqa bir element to’plamda mavjud emas .) va elementlari odatda o’sish tartibida bo’ladi . C++ dasturlash tilida to’plam odatda set kalit so’zi bilan keladi . Lekin boshqa to’plamlar turi ham mavjud,bular – multiset va unordered_set lardir . Multiset ning set dan farqi shundaki, undagi elementlari noyob bo’lmaydi . unordered_set ning set bilan farqi esa , undagi elementlar saralanmagan bo’ladi . To’plamning massivdan ustunlik tomoni shundaki , ba’zi bir muammolarni yechish jarayonida aynan setning xususiyati juda qo’l keladi(ya’ni avtomatik tarzda elementlarning noyob elementlarga aylanishi va saralanishi),lekin setning elementlariga massiv kabi indekslar bilan murojaat qilishning iloji yo’q, faqatgina iteratorlar bilan murojaat qilish mumkin . Setdan unumli foydalanishning yana bir yo’llaridan biri bu muammoni hal qilish jarayonida uni massiv yoki vektor dan biri bilan uyg’unlikda ishlatib samarali natijaga erishish mumkin . Setning bir qancha metod(biror bir klass yoki struktura tegishli funksiyalarga aytiladi)larini keltirib o’tamiz: *Setda ham massiv kabi insert(ya’ni element qo’shish) funksiyasi ham mavjud . *find metodi mavjud bo’lib, bunda o’rnidagi xotirasidagi o’rnini qaytaradi . *lower_bound() metodi elementdan katta yoki unga teng bo’lgan eng yaqin bo’lgan elementning o’rnini qaytaradi *upper_bound() metodi elementdan katta bo’lgan eng yaqin bo’lgan elementning o’rnini qaytaradi . Masala:Yuqoridagi keltirilgan funksiyalardan foydalanib , Set elementlari ustida ushbu funksiyalarni ishlatish dasturini tuzish: Ba’zida biz shunday holatlarga duch kelamizki, unda bizga bir – biriga o’xshamagan(tur jihatidan) ma’lumotlarni xotirada saqlash muammosiga duch kelamiz . Biz yuqorida bir xil turdagi ma’lumotlarni massiv yordamida ketma-ket tarzda xotirada saqlanishini ko’rgandik . Massivlardan farqli ravishda, C++ da yozuvlar bir xil turda bo’lmagan lekin bitta katta tushunchani ifodalash uchun ishlatiladi . Yozuv deb shunday katta turga aytiladiki , buncha xilam- xil turga mansub ma’lumotlar yaxlit bir turni tavsiflaydi . Misol uchun kompyuterni olaylik . Uning juda ham ko’plab xususiyatlari bor ,lekin biz hozir hammaga iloji boricha tanishroq xususiyatini keltiramiz; RAM xotirasi, HDD/SDD(doimiy xotira),protsessor. Bu 3 turdagi ma’lumot yaxlit birgalikda katta turni , kompyuterni tavsiflaydi . Hayotimizda yozuvga juda ham ko’plab misollar keltirishimiz mumin . Yozuvlar C++ da Struct kalit so’zi yordamida yaratiladi . Biz bu yozuvlar bilan birgalikda massivni uyg’unlashtirimiz mumkin , shunda bizda jadval hosil bo’ladi , sababi ma’lumotlar bazasini misol qilib olsak , har bir odam yozuv;katta bir tushuncha, odamlardan esa bir qancha . Yozuv ichidagi joylashgan o’zgaruvchilar maydoni , funksiyalari esa metodlari deyiladi . Masala:Yozuvga doir dastur tuzish Masala:Jadval tuzish Ko’rsatkichli turlar – kompyuter adreslari bilan ishlaydigan ma’lumotlar turi . Bu turlar dasturlarga havola orqali murojaat qilish orqali ma’lumotlar tuzilmasini yaratishga va boshqarishga imkon beradi . Massivning yoki boshqa ma’lumotlarning barcha elementlari bo’ylab iteratsiyalash jarayoni ham aslida ko’rsatkichlardan foydalanishning bir qo’llanilishidir . Ko’rsatkich ma’lum bir ma’lumotni ko’rsatib turadi , o’zining qiymati esa shu ma’lumotning adresini qiymatini o’zlashtiradi . int var=20; int *ptr=&var; //ptr ko’rsatkich var elementning o’rnini //yo’naladi *ptr=9; // ptr ko’rsatib turayotgan element qiymati 9 ga //aylandi Ko’rsatkich yordamida dinamik massiv tuzish mumkin hamda xotiradan yutishda foydalanish mumkin . Masala: Dinamik massiv tuzish orqali elementlari yig’indisni topuvchi dastur tuzish: Xulosa o’rnida shuni aytmoqchimanki, ma’lumotlar turidan xabardor bo’lish dastur tuzish jarayonida xotiradan yutishda hamda aniq bir muammoni tezroq hamda qulayroq yechish uchun juda samarali bo’ladi. Download 376.25 Kb. Do'stlaringiz bilan baham: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling