I.Nazariy qism 1.1.Turlarni tarfi haqida tushuncha Dasturlashning programma tuzilgandan keyingi yana bir asosiy bosqichi „tekshirish“ (otladka) boʻlib, bunda yoʻl qoʻyilgan xatolar topiladi va tuzatiladi. Programmalar kodlanadi va mashinaga maxsus qurilma yordamida kiritiladi. Amaliyotda Dasturlashning yangi va tezkor usullari bor (2004); 2) matematik dasturlash — amaliy matematikaning bir boʻlimi; umumiy maʼnoda — biron-bir funksiya fo (x) ning ekstremumini (qarang Ekstremum) topish masalasi tushuniladi.
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;
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.
yangi 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 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: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.