|
Axborot texnologiyalari” kafedrasi “MA’lumotlar tuzilmasi va algoritmlari” fanidan amaliy mashg‘ulotlarini bajarish bo‘yicha
|
bet | 19/39 | Sana | 12.06.2024 | Hajmi | 2,32 Mb. | | #262963 |
Bog'liq uslubiy qo\'llanma 3Nazorat savollari
Saralash nima?
Saralash nima maqsadda qo‘llaniladi?
Saralash qanday turlarga bo‘linadi?
Saralashning pufakchali usuli qanday?
7-Amaliy mashg‘ulot: Chiziqli ma’lumotlar tuzilmalarini qayta ishlash algoritmlari va dasturlarini tuzish.
Ishdan maqsad: Ushbu amaliyot ishining maqsadi talabalar ma’lumotlar tuzilmalarini qayta ishlash algoritmlari va dasturlarini tuzishni va va ularga oid dasturlar tuzishni o‘zlashtirishlari kerak.
Qo‘yilgan masala: Talabalar topshiriq variantiga mos ro‘yxatlar yordamida masalani yechish dasturini yaratish ko‘nikmasiga ega bo‘lishlari kerak.
Ish tartibi:
Tajriba ishi nazariy ma’lumotlarini o‘rganish;
Berilgan topshiriqning algoritmini ishlab chiqish;
C++ dasturlash muhitida dasturni yaratish;
Natijalarni tekshirish;
Hisobotni tayyorlash va topshirish.
Chiziqli ma’lumotlar tuzilmalarini qayta ishlash algoritmlari va dasturlarini o‘rganish uchun, sizga ko‘p qo‘llaniladigan konseptlar mavjud: statik va dinamik massivlar, konteynerlar, iteratorlar va ularning turlari.
1. Statik va dinamik massivlar:
- Statik massiv: Statik massivlar o‘lchami amaldagi boshlang‘ich qiymatlangan va o‘zgartirib bo‘lmaydigan massivlar. Ularni to‘g‘ridan-to‘g‘ri e’lon qilish zarur bo‘ladi.
int staticArray[5]; // Statik massiv
staticArray[0] = 42;
- Dinamik massiv: Dinamik massivlar esa o‘zgartirib bo‘lishingiz mumkin. Ularni o‘zgartirish uchun “new” va “delete” operatorlari yordamida xotirani ixtiyoriy o‘lchamda yaratishiz mumkin.
int* dynamicArray = new int[5]; // Dinamik massiv
dynamicArray[0] = 42;
delete[] dynamicArray; // Xotirani tozalash
2. Konteynerlar:
- C++ dasturlash tilida foydalanish uchun ko‘pchilik konteynerlari mavjud. Misollar uchun, `std::vector`, `std::list`, va `std::map`. Konteynerlar ma’lumotlarni boshqarish va ularga qo‘shishni osonlashtiradi.
#include
std::vector myVector; // Vector tuzish
myVector.push_back(42); // Ma’lumot qo‘shish
3. Iteratorlar:
- Iteratorlar konteynerlar ichidagi ma’lumotlarga erishish va ularga murojaat qilish uchun foydalaniladi. Asosiy konteynerlar bilan ishlayotgan har qanday operatsiyada iteratorlardan foydalanish mumkin.
std::vector myVector;
std::vector::iterator it = myVector.begin(); // Boshlang‘ich iterator
it++; // Iteratorni olib chiqish
4. Iterator turkumlari:
- Har bir konteyner turida o‘zining iterator turi mavjud. Masalan, `begin()` va end() metodlari, vectorlar uchun iteratorlar, `list` uchun esa `list::iterator`, va boshqa iterator turkumlari mavjud.
std::vector::iterator vectorIterator = myVector.begin();
std::list::iterator listIterator = myList.begin();
5. Iteratorlarning turini avtomatik aniqlash:
- C++11 va keyingi versiyalarda iteratorlar turini avtomatik aniqlash uchun auto kaliti foydalaniladi.
auto it = myVector.begin();
auto listIt = myList.begin();
Ushbu konseptlar chiziqli ma’lumotlar va boshqa turdagi ma’lumotlar bilan ishlashda yordam beradigan asosiy vazifalardir. C++ dasturlash tillarida ma’lumotlar tuzilmalari va algoritmlarini o‘rganayotganingizda, bu konseptlardan foydalanishingiz kerak bo‘ladi.
C++ dasturlash tilida `std::vector` konteyneri ma’lumotlarni saqlash va ularga erishish uchun ko‘p qo‘llaniladi. Bu o‘zgaruvchilarni dinamik ravishda saqlash imkoniyatini beradi va qo‘shimcha xizmatlar (masalan, dinamik o‘lcham) taqdim etadi. Quyidagi misol orqali `std::vector` ni ishlatishni o‘rganing:
#include
#include
int main() {
std::vector myVector;
myVector.push_back(42);
myVector.push_back(56);
myVector.push_back(78);
for (int i = 0; i < myVector.size(); i++) {
std::cout << myVector[i] << " ";
}
std::cout << std::endl;
std::cout << "Vectorning o‘lchami: " << myVector.size() << std::endl;
myVector.pop_back(); // O‘xshatilmagan elementni o‘chirish
std::cout << "Yangilangan o‘lcham: " << myVector.size() << std::endl;
return 0;}
Bu dastur std::vector yaratib, ma’lumotlarni unga qo‘shadi, chiqaradi va o‘lchamini aniqlaydi. push_back() metodi ma’lumot qo‘shish uchun, pop_back() esa o‘xshatilmagan elementni o‘chirish uchun ishlatiladi. size() metodi vectorning o‘lchamini aniqlaydi. Vectorlar dinamik ravishda o‘lchamini o‘zgartirish imkoniyatini beradi.
|
|
Bosh sahifa
Aloqalar
Bosh sahifa
Axborot texnologiyalari” kafedrasi “MA’lumotlar tuzilmasi va algoritmlari” fanidan amaliy mashg‘ulotlarini bajarish bo‘yicha
|