O’zbekiston Respublikasi Raqamli Texnologiyalari Vazirligi


Download 1.18 Mb.
bet1/3
Sana16.06.2023
Hajmi1.18 Mb.
#1518152
  1   2   3
Bog'liq
1-mustaqil ish Dasturlash 2


O’zbekiston Respublikasi Raqamli
Texnologiyalari Vazirligi
Muhammad Al-Xorazmiy Nomidagi Toshkent
Axborot Texnologiyalari Universiteti Qarshi Filiali
TT va KT Fakulteti RI-11-22 guruh talabasi
Abdiaxatov Behruzning Dasturlash 2 fanidan
tayyorlagan mustaqil ishi N1



Bajardi: Abdiaxatov Behruz


Qabul qildi: Nusratova Shahzoda

Qarshi 2023


Reja:
1.Turlarning dinamik tarifi.Turlarni almashtirish
operatorlari
2.Yangi nomlar fazosi uchun joy yaratish
3.Buferlashtirilgan kirish va chiqish
4.STL kutubxonalar.Konteyner sinflar
5.Chiziqli konteynerlar(array,vector,deque,list,forward list)

1-mavzu
Turlarning dinamik tarifi.Turlarni almashtirish operatorlari


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.



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;
cout << "a -= b: " << a << endl;
a *= b;
cout << "a *= b: " << a << endl;
a *= b;
cout << "a *= b: " << a << endl;
a /= b;
cout << "a /= b: " << a << endl;
a %= b;
cout << "a %= b: " << a << endl;
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.


2-mavzuYangi nomlar fazosi uchun joy yaratish
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 
fazosining nomi> ko‘rinish sohasida bo'ladi va yuzaga kelishi mumkin
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;
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.
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.
3-mavzu Buferlashtirilgan kirish va chiqish

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.

4-mavzu STL kutubxonalarini o'rganish, dasturlashda ishlatishda va yuqori darajadagi dasturlar yaratishda juda muhimdir.


Download 1.18 Mb.

Do'stlaringiz bilan baham:
  1   2   3




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling