Ma’lumotlarning murakkab turlani tasvirlash va qayta ishlash
Ma’lumotlarning murakkab turlani tasvirlash va qayta ishlash MUNDARIJA I. KIRISH ....................................................................................................................................................... 2 II. ASOSIY QISM ............................................................................................................................................ 4 1. Murakkab ma’lumotlar turlari nima? ................................................................................................... 4 2. Ma’lumotlarning murakkab turlari. Massivlar ..................................................................................... 4 3. Ko’rsatkichlar ....................................................................................................................................... 7 4. Strukturalar .......................................................................................................................................... 8 5. Ma’lumotlarni qayta ishlash uchun STL konteynerlari. Vectorlar. ..................................................... 12 6. STL ning map konteyneri .................................................................................................................... 16 III. XULOSA ................................................................................................................................................. 20 IV. FOYDALANILGAN ADABIYOTLAR ........................................................................................................... 21
I. KIRISH C++ da murakkab ma'lumotlar turlari asosiy ma'lumotlar turlarini (masalan, int yoki double) murakkab tuzilmalarga guruhlaydi. Ushbu tuzilmalar sizga asosiy raqamlar yoki belgilar doirasidan tashqariga chiqadigan ma'lumotlarni ko'rsatish va boshqarish imkonini beradi. Quyida C++ tilidagi ba zi asosiy murakkabʼ ma lumotlar turlarining taqsimoti keltirilgan: ʼ Massivlar: massiv bitta nom ostida bir xil ma'lumotlar turidagi elementlar to'plamini saqlaydi. Siz alohida elementlarga massiv ichidagi indeksidan foydalanib kirishingiz mumkin. Strukturalar (strukturalar): Struktura turli xil ma'lumotlar turlarining o'zgaruvchilarini bitta nom ostida to'playdigan foydalanuvchi tomonidan belgilangan ma'lumotlar turini belgilaydi. Bu sizga tegishli ma'lumotlarni birgalikda guruhlash va yanada mazmunli ma'lumotlar birliklarini yaratish imkonini beradi. Ko'rsatkichlar: Ko'rsatkichlar xotira manzillarini saqlaydi. Ular xotirada boshqa o'zgaruvchilarning joylashuvini saqlaydigan o'zgaruvchilar kabi ishlaydi. Bu ma'lumotlarga bilvosita kirish va manipulyatsiya qilish imkonini beradi. Ma'lumotnomalar: Ma'lumotnomalar asosan mavjud o'zgaruvchilar uchun taxalluslardir. Ular nusxa yaratmasdan bir xil ma'lumotlarga kirishning boshqa usulini taqdim etadi. Sanalgan turlar (enumlar): Enumlar nomli butun son konstantalaridan tashkil topgan foydalanuvchi tomonidan belgilangan ma lumotlar turlarini ʼ belgilaydi. Ular xom raqamli qiymatlar o'rniga mazmunli nomlar yordamida kodni o'qishni yaxshilaydi. Sinflar: Sinflar tuzilmalarga o'xshaydi, lekin inkapsulyatsiya (ma'lumotlarni yashirish) va meros (mavjud sinflar asosida yangi sinflar yaratish) kabi kuchliroq xususiyatlarni taklif qiladi. Ular o'zlarining ma'lumotlari va xatti-harakatlarini boshqaradigan ob'ektlarni yaratish rejasini taqdim etadilar. 2
Birlashmalar (kamroq): Uyushmalar bir xil xotira joyida turli xil ma'lumotlar turlarini saqlashga imkon beradi. Biroq, ittifoqning faqat bitta a'zosi istalgan vaqtda qiymatga ega bo'lishi mumkin. Bundan tashqari, C++ standart kutubxonasi <complex> murakkab raqamlar bilan ishlash uchun sarlavhani taqdim etadi. Ushbu sarlavha haqiqiy va xayoliy qismlarga ega murakkab raqamlarni ifodalovchi shablon sinfini belgilaydi , bu erda T yoki kabi asosiy son turi bo'lishi mumkin . std::complex<T>floatdouble Ushbu murakkab ma'lumotlar turlarini tushunish va ulardan foydalanish orqali siz murakkabroq ma'lumotlar tuzilmalarini boshqaradigan va har xil turdagi ma'lumotlarni manipulyatsiya qilishni talab qiladigan muammolarni hal qiladigan C++ dasturlarini yaratishingiz mumkin. 3
II. ASOSIY QISM 1. Murakkab ma’lumotlar turlari nima? Murakkab tiplar - bu ibtidoiy ma'lumotlar turlaridan tashkil topgan ichki ma'lumotlar tuzilmalari. Ushbu ma'lumotlar tuzilmalari boshqa murakkab turlardan ham iborat bo'lishi mumkin. Murakkab turlarning ba'zi misollariga struct (satr), massiv/ro'yxat, xarita va ittifoq kiradi. Murakkab turlar Python, C++ va Java kabi ko'pgina dasturlash tillari tomonidan qo'llab-quvvatlanadi. Ular, shuningdek, 8.0 da kompozit (struct) turini joriy etgan PostgreSQL kabi ma'lumotlar bazalari tomonidan qo'llab-quvvatlanadi. Va ular Vertica-da qo'llab-quvvatlanadi. Biz qo'shayotganimiz bu turlar uchun yanada boyroq, to'liqroq qo'llab-quvvatlashdir, bu nafaqat ORC va Parket- da murakkab turlarni so'rash, balki faylni birinchi navbatda ancha kattaroq satr va ustun formatiga o'zgartirmasdan tezda amalga oshirishdir. Murakkab ma'lumotlar turlari C++ dasturlashda mustahkam va samarali ilovalar yaratish uchun asosiy hisoblanadi. Murakkab ma’lumotlar turlariga yana ma’lumotlarni qayta ishlash C++ standart kutubxonasi tomonidan taqdim etilgan konteynerlar ya’ni STL konteylari kiradi. STL konteynerlariga vector, list, set, map kabilar kiradi. 2. Ma’lumotlarning murakkab turlari. Massivlar Agar struktura bir hil kattalikdagi tiplardan tuzilgan bo'lsa, uning nomi massiv (array) deyiladi. Massivlar dasturlashda eng ko'p qo'laniladigan ma’lumot tiplaridir. Massivlar hotirada ketma-ket joylashgan, bir tipdagi o'zgaruvchilar guruhidir. Alohida bir o’zgaruvchini ko’rsatish uchun massiv nomi va kerakli o’zgaruvchi indeksini yozamiz. C/C++ dagi massivlardagi elementlar indeksi har doim noldan boshlanadi. Bizda char tipidagi m nomli massiv bor bo'lsin va uning 4 dona elementi mavjud bo'lsin. Sxemada bunday ko’rsataylik: 4
m[0] -> 4 m[1] -> -44 m[2] -> 109 m[3] -> 23 Ko’rib turganimizdek, elementga murojaat qilish uchun massiv nomi va [] qavslar ichida element indeksi yoziladi. Bu yerda birinchi element qiymati 4, ikkinchi element - 1 nomerli indeksda -44 qiymatlari bor ekan. Ohirgi element indeksi n-1 bo'ladi (n - massiv elementlari soni). [] qavslar ichidagi indeks butun son yoki butun songa olib keluvchi ifoda bo'lmog'i lozim. Masalan: int k = 4, l = 2; m[ k-l ] = 77; // m[2] = 77 m[3] *= 2; // m[3] = 46 double d = m[0] * 6; // d = 24 cout << m[1]; // Ekranda: -44 Massivlarni ishlatish uchun ularni e’lon qilish va kerak bo'lsa massiv elementlarini initsalizatsiya qilish kerak. Massiv e’lon qilinganda kompilyator elementlar soniga teng hajmda hotira ajratadi. Masalan yuqorida qo’llanilgan char tipidagi m massivini e’lon qilaylik. char m[4]; Bu yerdagi 4 soni massivdagi elementlar miqdorini bildiradi. Bir necha massivni e'londa bersak ham bo'ladi: int m1[4], m2[99], k, l = 0; Massiv elementlari dastur davomida initsalizatsiya qilishimiz mumkin, yoki boshlang’ich qiymatlarni e’lon vaqtida, {} qavslar ichida ham bersak bo’ladi. {} qavslardagagi qiymatlar massiv initsalizaytsiya ro’yhati deyiladi. int n[5] = {3, 5, -33, 5, 90}; Yuqorida birinchi elementning qiymati 3, ikkinchiniki 5 ... ohirgi beshinchi element qiymati esa 90 bo’ldi. 5