C++ dasturlash tilida strukturalar. Strukturalardan foydalanish asosida dastur yaratish
O’ZBEKISTON RESPUBLIKASI OLIY VA O’RTA-MAXSUS TA’LIM VAZIRLIGI SHAROF RASHIDOV NOMIDAGI SAMARQAND DAVLAT UNIVERSITETI RAQAMLI TEXNOLOGIYALAR FAKULTETI KOMPYUTER ILMLARI VA DASTURLASH TEXNOLOGIYALARI YO’NALISHI MUSTAQIL ISHI 1
C++ dasturlash tilida strukturalar. Strukturalardan foydalanish asosida dastur yaratish. 1. MASALANING QO’YILISHI. Struktura va o`quvchining shaxsiy hujjatlaridan foydalanib Pasport formasi tuzilsin. 2. ISHNING MAQSADI Strukturalarni o’rganib chiqish. Qo’yilgan masala yuzasidan strukturalar tuzish. Struktura yordamida masalani yechish va Pasport formasini tayyorlash. 3. NAZARIY QISM Dasturlashtirish masalalarida biron bir tashkilot yoki muassasalarning ma`lu- motlar bazasini hosil qilish va ma`lumotlar bazasi tarkibidagi ma`lumotlarni qayta ishlashga to`g`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`minot-lar ham ko`p, lekin ba`zi hollarda dasturlash tillari ham keng qo`llaniladi. Ma`lu-motlar 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 ba-zasini hosil qilish uchun strukturalardan foydalaniladi. Struktura tarkibida bitta turga bir nechta turlar birlashadi. Masalan talaba haqida ma`lumotlar bazasi ho-sil qilishda talaba deb nomlangan struktura tarkibida talaba familyasi, ismi, rey-tingi, 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 birlashtirishdan hosil bo`lgan jarayon struktura deb nomlanadi. Strukturalarni ba`zi hollarda yozuvlar ham deb ataladi, strukturalartarkibidagi turlarning har biri maydon deb nomlanadi. 2
Ta`rif: Ob`yektning bitta xususiyatini uzida saqlaydigan parametr 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 tarki- bidagi har bir maydon strukturani bitta parametrini o`zida saqlaydi. Struktura maydoni uchun xotira hajmi, mayon uzunligiga teng bo`ladi. Struktura maydoni qiy-matlari ifodalarda ishlatilishi mumkin. C++ dasturlash tilida strukturalarni e`lon qi-lishda 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 figurali qavsda uning maydonlari kiritilishi shart. Structura nomi masala mohiya-tiga 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 talaba- lar 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 <bits/stdc++.h> using namespace std; struct talaba 3
{ 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 tasvir- landi. 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`zgaruvchi- sini 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 nom-langan 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 struk- tura yaratib, ma`lumotlarni esa A o`zgaruvchiga saqlanish holatini e`lon qilish jara- yonini quydagi dastur yordamida ko`rib chiqamiz: #include <bits/stdc++.h> using namespace std; 4
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`zgaruvchi- ni 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. Struktu- ra ma`lumotlarini dastur tarkibiga kiritish vaqtida har bir maydon elementlarini kiritish ke-rak bo`ladi. C++ dasturlash tilida strukturalarga murojat qilishning umumiy ko`ri-nishi 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`t-ganligini aniqlang. Bu masalani hal etish uchun ichimlik nomli struktura yaratiladi, strukturani ikkita narxi va saqlash muddati uchun maydonlari mavjud bo`ladi. Ichimlik haqida-gi ma`lumotni A o`zgaruvchiga saqlaymiz. A o`zgaruvchini saqlash muddati may-donini 2015 bilan solishtiriladi, agar kichik bo`lsa, muddati o`tgan aks holda narxi chiqariladi. #include <bits/stdc++.h> 5