1-mavzu: Turlarni dinamik ta’rifi
Download 1.08 Mb.
|
mustaqil ish
1-mavzu: Turlarni dinamik ta’rifi Turlarni dinamik tarifi C++ dasturlash tilida alohida tur klasslari orqali yaratiladi. Klasslar orqali tur obyektlari yasab, ularning xususiyatlariga murojat qilish, ularning qiymatlarini o'zgartirish va obyektlar orasida aloqa yaratish mumkin. Bu kodda "Student" klassining obyekti uchun xotira ajratish uchun new operatori foydalaniladi. Xususiyatlar esa -> operatori arqali yoziladi. Klass obyektining xususiyatlari dastur bajarilishida aniqlanmaydi, chunki klass o'zining xususiyatlarini aniqlash unvoniga ega. 2-mavzu: Turlarni almashtirish operatorlari Turlarni dinamik tarifi C++ dasturlash tilida alohida tur klasslari orqali yaratiladi. Klasslar orqali tur obyektlari yasab, ularning xususiyatlariga murojat qilish, ularning qiymatlarini o'zgartirish va obyektlar orasida aloqa yaratish mumkin. Quyidagi misol C++ dasturlash tili yordamida tur klassi yaratishni ko'rsatadi: - = - almashtirish operatori - += - qo'shishga almashtirish operatori - -= - ayirishga almashtirish operatori - *= - ko'paytirishga almashtirish operatori - /= - bo'lishga almashtirish operatori - %= - qoldiqni hisoblashga almashtirish operatori - <<= - bitni chapga surishga almashtirish operatori - >>= - bitni o'ngga surishga almashtirish operatori - &= - bit ko'paytirish va yig'ishga almashtirish operatori - ^= - bit xor operatoriga almashtirish operatori - |= - bit yig'ish va ko'paytirishga almashtirish operatori Quyidagi misol kod almashtirish operatorlarini ko'rsatadi: int main () { int a = 10, b = 4; a += b; cout << "a += b: " << a << endl; a -= b;
a *= b;
a /= b;
a %= b;
return 0; } Bu misolda, a va b nomli o'zgaruvchilar yaratilgan. a va bning qiymatlari belgilangan, keyinchalik aga bni qo'shish uchun += operatori ishlatilgan. So'ng adan bni ayirish uchun -= operatori foydalanilgan. *= operatori ko'paytirish amalini bajaradi, /= operatori bo'lish amalini bajaradi va %= operatori esa qoldiqni hisoblash uchun ishlatiladi. Shuningdek, boshqa almashtirish operatorlari ham shu usul bilan foydalaniladi.
Nomlar fazosi Ma’lumki, programmaga qo‘shilgan sarlavha fayllarida e’lon qilingan identifikator va o‘zgarmaslar kompilyator tomonidan yagona global nomlar fazosiga kiritiladi. Agar programma ko‘p miqdordagi sarlavha fayllami ishlatsa va undagi identifikatorlar (funksiya nomlari va o‘zgaruvchilar nomlari, sinflar nomlari va hakozalar) va o‘zgarmaslar nomlari turli programma tuzuvchilar tomonidan mustaqil ravishda aniqlangan bo4sa, bir xil nomlami ishlatish bilan bog‘liq muammolar yuzaga kelish ehtimoli katta bo4adi. Nomlar fazosi tushunchasini kiritilishi mazkur muammoni ma’lum bir ma’noda hal qilishga yordam beradi. Agar programmada yangi identifikatomi aniqlash kerak bo‘lsa va xuddi shu nomni boshqa modullarda yoki kutubxonalarda ishlatishi xavfi boMadigan boMsa, bu identifikatorlar uchun o‘zining shaxsiy nomlar fazosini aniqlash mumkin. Bunga namespace kalit so‘zidan foydalanilgan holda erishiladi: namespace { // e’lonlar } Nomlar fazosi ichida e’lon qilingan identifikatorlar faqat bo‘lgan kelishmovchiliklaming oldi olinadi. Misol tariqasida quyidagi nomlar fazosini yarataylik: namespace Shaxsiy_nomlar { int x,y,z; void Mening_funksiyam(char belgi); } Kompilyatorga konkret nomlar fazosidagi nomlami ishlatish kerakligini ko‘rsatish uchun ko‘rinish sohasiga ruxsat berish amalidan foydalanish mumkin: Shaxsiy_nomlar::x =5; #include #include using namespace std; int main() { vector names.push_back("John"); names.push_back("Jane"); names.push_back("Alice"); names.push_back("Bob"); for (auto name : names) { cout << name << endl; } return 0; } Bu misolda, std::vector turidan yangi nomlar fazosini saqlash uchun names nomli obyekt yaratilgan. push_back() funksiyasi yordamida, yangi nomlar ro'yxati namesga qo'shilgan. for tsikli yordamida names ichidagi barcha nomlar chiqarilgan. 4-mavzu: buferlashtirilgan kiritish va chiqarish Bu kod yordamida, std::cout obyektiga "Bu xat konsoldan chiqadi." matni kiritiladi va std::cerr obyektiga esa "Bu xat konsoldan xatoliklar uchun chiqadi." matni kiritiladi. std::cout obyektidan chiqarish avtomatik ravishda amalga oshiriladi, lekin std::cerr obyektidan chiqarish ishlatilgan qurilma xatolariga qarshi xabar berish uchun ishlatiladi. Buferlashtirilgan kiritish va chiqarishni o'chirish uchun, quyidagi kod yordamida std::ios::sync_with_stdio(false) va std::cin.tie(nullptr) funksiyalari ishlatiladi: 5-mavzu: stl kutubxonalari STL (Standard Template Library) C++ dasturlash tilining standart kutubxonalaridan biridir. Bu kutubxonada, qo'shimcha ko'p qatlamli ma'lumot tuzilmalari, algoritmik operatsiyalar va moslashuvchanlik qurilmalari mavjud. STL kutubxonasi qo'shimcha biznes loyihalari va yuqori darajadagi to'lovli dasturlar yaratishda keng qo'llaniladi. Bu kutubxonada odatda, quyidagi to'plamlar mavjud: Containers (Tuzilma toplamlari): STL kutubxonalarida ko'p qatlamli to'plamlar, masalan, vector, list, deque, set, map va boshqalar, kiritish va chiqarish uchun mo'ljallangan. Algorithms (Algoritmik operatsiyalar): STL kutubxonalarida ko'p qatlamli ma'lumotlar uchun algoritmik operatsiyalar, masalan, sorting, searching, shuffling va boshqalar, mavjud. Iterators (Tartibga solish): STL kutubxonalarida, tuzilma to'plamlari bilan ishlashda, tartibga solish uchun iteratorlar ishlatiladi. Functors (Funksiyalar): STL kutubxonalarida funksiyalar va obyektlar, ko'p qatlamli ma'lumotlar uchun ishlatiladi. Bu funksiyalar, algoritmik operatsiyalarni amalga oshirish uchun ishlatiladi. Adapters (Moslashuvchanlik qurilmalari): STL kutubxonalarida, moslashuvchanlik qurilmalari, masalan, stack, queue va priority_queue, mavjud. Quyidagi misolda, std::vector kutubxonasi va std::sort algoritmi yordamida o'lchamlari va tartiblari berilgan sonlar to'plamini tartibga solish keltirilgan: Bu kod yordamida, std::vector kutubxonasi yordamida numbers nomli o'lchamlari va tartiblari berilgan sonlar to'plami yaratiladi. std::sort algoritmi yordamida, numbers to'plami tartibga solinadi. Keyin, to'plamda bo'lgan sonlar for sikli yordamida chiqariladi. Quyidagi kodda std::map va std::pair kutubxonalaridan foydalanilgan: Bu kod yordamida, std::map kutubxonasi yordamida, ismi va yoshi berilgan insonlarning ma'lumotlari tuzilgan. std::pair kutubxonasi yordamida, insonning ismi va yoshi bir xil juftlikda saqlanadi. ages.insert yordamida, ma'lumotlar mapga saqlanadi. for sikli yordamida, mapdagi ma'lumotlar chiqariladi. STL kutubxonalarini o'rganish, dasturlashda ishlatishda va yuqori darajadagi dasturlar yaratishda juda muhimdir. Download 1.08 Mb. Do'stlaringiz bilan baham: |
ma'muriyatiga murojaat qiling