Strukturalar massivi. Strukturaga ko’rsatkich
Strukturalar massivi. Strukturaga ko’rsatkich Reja: 1. Struktura va ularni e‘lon qilish; 2. Strukturalarga murojat qilish va ulardan foydalanish; 3. Struktura massivi. Dasturlashtirish masalalarida biron bir tashkilot yoki muassasalarning ma‘lumotlar bazasini hosil qilish va ma‘lumotlar bazasi tarkibidagi ma‘lumotlarni qayta ishlashga tog‘ri keladi. Ma‘lumotlar bazasini hosil qilishda bitta ob‘yekt uchun bir nechta parametrlar saqlanadi, bunday holatlar uchun bitta ob‘yekt uchun bir nechta parametrlarni birlashtirilish kerak bo’ladi. Ma‘lumotlar bazasini hosil qilish uchun dasturlash tillaridan qulay bo’lgan dasturiy ta‘minotlar ham ko’p, lekin ba‘zi hollarda dasturlash tillari ham keng qo’llaniladi. Ma‘lumotlar bazasini yaratish jarayoni dasturlash tillari tarkibida keng imkoniyatlari mavjud. C++ dasturlash tilida bir nechta turlarni birlashtirib yangi tur hosil qilish jarayoni strukturalar yaratish deb ataladi. C++ dasturlash tilida ma‘lumotlar bazasini hosil qilish uchun strukturalardan foydalaniladi. Struktura tarkibida bitta turga bir nechta turlar birlashadi. Masalan talaba haqida ma‘lumotlar bazasi hosil qilishda talaba deb nomlangan struktura tarkibida talaba familyasi, ismi, reytingi, tug‘ilgan vaqti kabi parametrlari saqlanish kerak. Demak, har bir talaba uchun yuqoridagi barcha parametrlar inobatga olinishi kerak bo’ladi. Struktura tarkibida bitta o’zgaruvchini bir nechta qiymatlari bo’lishi mumkin. Bir nechta talabalar haqida ma‘lumotlarni qayta ishlash davrida bitta talaba uchun bir nechta parametrlar mavjud, bunday holatlarni hal etish uchun strukturalardan foydalaniladi. Struktura va ularni e’lon qilish C++ dasturlash tili tarkibida bir nechta turlarni birlashtirib bitta tur asosida ma‘lumotlar bazasini yaratish va ularni qayta ishlash imkoniyati keng yaratilgan. Bir nechta turlarni birlashtirish natijasida strukturalar hosil qilib C++ dasturlash tili tarkibida tashkilotlarga tegishli bo’lgan bir nechta masalalarni hal etish imkoniyati mavjud. Ta‘rif: C++ dasturlash tilida bir yoki bir nechta turlarni jamlanmasini birlashtirish struktura deb nomlanadi. Strukturalarni ba‘zi hollarda yozuvlar ham deb ataladi, strukturalar tarkibidagi turlarning har biri maydon deb nomlanadi. Ta‘rif: Ob‘yektning bitta xususiyatini uzida saqlaydigan parameter maydon deb nomlanadi. Talaba haqida ma‘lumotlar strukturasi hosil qilinishda quyidagi maydonlar bo’lishi mumkin: Talabani familyasi, ismi, otasining ismi, tug‘ilgan vaqti, telefoni, manzili va hakoza. Strukturalar maydonlardan tashkil topgan ekan, struktura tarkibidagi har bir maydon strukturani bitta parametrini o’zida saqlaydi. Struktura maydoni uchun xotira hajmi, maydon uzunligiga teng bo’ladi.
Struktura maydoni qiymatlari ifodalarda ishlatilishi mumkin. C++ dasturlash tilida strukturalarni e‘lon qilishda struct xizmatchi so’zidan foydalaniladi. Struktura e‘lon qilingandan so’ng dastur tarkibida o’zgaruvchilarni struktura nomi bilan e‘lon qilinadi. C++ dasturlash tilida strukturalarni tasvirlashning umumiy ko’rinishi quyidagicha ko’rinishda bo’ladi: struct <struktura nomi> { <tur1> <maydon 1>; <tur2> <maydon 2>; ‘ ‘ ‘ ‘ ‘ ‘ ‘ <tur n> <maydon n>; }; Strukturalarni tasvirlashda struct xizmatchi so’zidan keyin struktura nomi va fegurali qavsda uning maydonlari kiritilishi shart. Structura nomi masala mohiyatiga qarab tanlansa, maqsadga muvofiq. Masalan, talabalar haqida ma‘lumotlar bazasida struktura nomini talaba yoki supermarket mahsulotlari narxlari bazasida esa narx deb nomlash mumkin. Strukturalar tarkibidagi maydonlarni e‘lon qilish xuddi oddiy o’zgaruvchilarni e‘lon qilishdek bajariladi va oxiri blok yopilishidan so’ng, albatta, nuqtali vergul qo’yilishi shart. Strukturalar yartish jarayonini tushunish uchun C++ dasturlash tilida talabalar haqida ma‘lumotlar bazasini struktura yordamida quyidagicha hosil qilinadi: Misol: Talabalar(familyasi, ismi, telefoni, reytingi, tug‘ilgan yili) haqida ma‘lumotlarga asosan c++ dasturlash tilida struktura hosil qiling. #include <iostream> using namespace std; struct talaba { char[20] fam; //familyani saqlovchi maydon char[20] ism; //ismni saqlovchi maydon char[20] tel; //telefonni saqlovchi maydon int reyting; //reyting balini saqlovchi maydon int tugy; //tug‘ilgan vaqtini saqlovchi maydon }; int main() { return 0; }
Yuqoridagi masalada talaba haqida ma‘lumotlar strukturasini hosil qilishda struktura nomiga talaba deb nomlandi va uning maydonlari familyasi(fam), ismi(ism), telefoni(tel), reytingi(reyting), tug‘ilgan yili(tugy) ko‘rinishlarida tasvirlandi. Maydonlarni e‘lon qilishda dastur tarkibida qanday maqsadlarda foydalanishi e‘tiborga olinishi kerak. Agar dastur tarkibida maydonlar ustida hisob ishlari olib borilmasa , uning turini char yoki string turi ko ’ rinishida e ‘ lon qilinsa , dastur bir muncha yengil ishlaydi . Strukturalarga murojat qilish va ulardan foydalanish C++ dasturlash tili tarkibida yaratilgan strukturalardan foydalanish mumkin, faqat qayta ishlanadigan ma‘lumotlar bazasi uchun olingan struktura o’zgaruvchisini yaratilgan struktura nomi bilan e‘lon qilish kerak. Talaba haqida ma‘lumotlarni qayta ishlash davrida bitta talabaning bir nechta parametrlariga murojat qilish mumkin. Dasturlashda struktura o’zgaruvchisini e‘lon qilishda tur sifatida struktura nomi beriladi. Talaba haqida ma‘lumotlar bazasini hosil qilishda talaba deb nomlangan struktura yaratiladi, talabalar ma‘lumotlar bazasini esa A o’zgaruvchiga saqlanadi, A o’zgaruvchini turini talaba deb nomlanadi. Struktura o’zgaruvchisini e‘lon qilishning umumiy ko’rinishi quyidagicha bo’ladi: <struktura nomi> <struktura o’zgaruvchisi> Talaba ma‘lumotlar bazasini qayta ishlash uchun talaba nomi bilan struktura yaratib, ma‘lumotlarni esa A o’zgaruvchiga saqlanish holatini e‘lon qilish jarayonini quydagi dastur yordamida ko’rib chiqamiz: #include <iostream> using namespace std; struct talaba { char[20] fam; //familyani saqlovchi maydon char[20] ism; //ismni saqlovchi maydon char[20] tel; //telefonni saqlovchi maydon int reyting; //reyting balini saqlovchi maydon int tugy; //tug‘ilgan vaqtini saqlovchi maydon }; int main() { talaba A; // A o’zgaruvchini talaba turi bilan e‘lon qilish return 0; }
Demak ma‘lumotlar bazasini yaratishda uning uchun ajratilgan o’zgaruvchini struktura nomi bilan e‘lon qilish kerak. C++ dasturlash tilida struktura maydoniga murojat qilish uchun struktura nomi va maydon nomi nuqta bilan birlashtirilgan holda amalga oshiriladi.Struktura ma‘lumotlarini dastur tarkibiga kiritish vaqtida har bir maydon elementlarini kiritish kerak bo’ladi. C++ dasturlash tilida strukturalarga murojat qilishning umumiy ko’rinishi quyidagicha bo’ladi: <operator funksiya> <struktura o’zgaruvchisi>.<maydon nomi> Strukturalarga murojatni amalga oshirish uchun quyidagi masalaga e‘tibor qarating: Misol: Supermarketdagi ichimlik narxi, saqlash yili haqida ma‘lumot berilgan 2015 yildan hozirgacha chiqarilgan ichimliklarni narxini chiqaring aks holda muddati o’tganligini aniqlang. Bu masalani hal etish uchun ichimlik nomli struktura yaratiladi, strukturani ikkita narxi va saqlash muddati uchun maydonlari mavjud bo’ladi. Ichimlik haqidagi ma‘lumotni A o’zgaruvchiga saqlaymiz. A o’zgaruvchini saqlash muddati maydonini 2015 bilan solishtiriladi, agar kichik bo’lsa, muddati o’ tgan aks holda narxi chiqariladi. #include <iostream> using namespace std; struct ichimlik { string nomi; //ichimlik nomini saqlovchi maydon int narx; //ichimlik narxini saqlovchi maydon int muddat; //ichimlik saqlash muddattini saqlovchi maydon }; int main() { ichimlik A; cin>>A.nomi; cin>>A.narx; cin>>A.muddat; if(A.muddat<2015) cout<<"muddat utgan"; else cout<<A.narx<<"sum"; return 0; } Kiritishga ma‘lumot Pepsi 4500 2014 Fanta 5000 2016 Dastur natijasi muddat utgan 5000 sum
C++ dasturlash tilida strukturalar yaratib ularga murojat qilish oddiy o’zgaruvchilar kabi bajariladi faqat struktura o’zgaruvchisi nuqta bilan maydon nomi yoziladi. Biror bir tashkilot yoki mussasa ma‘lumotlar bazasi yaratish uchun struktura o’zgaruvchisini ko’p qiymatidan foydalanishga to’g‘ri keladi. Struktura o’zgaruvchisini ikki va undan ortiq qiymatlariga murojat qilish uchun struktura o’zgaruvchisini massiv sifatida qarash mumkin. Struktura massivi Dasturlash tarkibida strukturalardan yakka tartibda foydalanish maqsadga muvofiq bo’lmaydi. Strukturalar biror bir tashkilot ma‘lumotlar bazasi berilganda ularning qayta ishlash uchun qulay vosita hisoblanadi. Agar strukturalar bir nechta qiymatlar uchun ishlatilsa, struktura o’zgaruvchisini struktura massivi sifatida qarash kerak. Ta‘rif: struktura o’zgaruvchisi bir nechta qiymatlar uchun ishlatilsa, struktura o’zgaruvchisi struktura massivi deb ataladi. Struktura massivini e‘lon qilish, xuddi oddiy massiv kabi e‘lon qilinadi, faqatgina massiv turiga struktura nomi ko’rsatiladi. C++ dasturlash tilida struktura massivlarini e‘lon qilishning umimiy ko’rinishi quyidagicha bo’ladi: <struktura nomi> <struktura massivi>[<qiymatlar soni>] Struktura massiviga murojat qilish uchun massiv elementlariga murojat qilishdek bajariladi faqatgina massiv elementlari maydon nomi bilan birga murojat qilinadi. Talabalar haqida ma‘lumotlar yaratish va ularni qayta ishlash uchun struktura massividan foydalanish kerak, chunki bitta talaba uchun bir nechta parametr ishlatiladi va ma‘lumotlar bazasida n ta talaba haqida ma‘lumot saqlanadi. Misol: N ta talaba haqida ismi, familyasi, tug‘ilgan yili haqida ma‘lumot berilgan 20 yoshda katta bo’lgan talabalarning ismi va familyasini ekranga chiqaruvchi dastur tuzing.