Войти Регистрация

Docx

  • Рефераты
  • Дипломные работы
  • Прочее
    • Презентации
    • Рефераты
    • Курсовые работы
    • Дипломные работы
    • Диссертациии
    • Образовательные программы
    • Инфографика
    • Книги
    • Тесты

Информация о документе

Цена 3000UZS
Размер 77.1KB
Покупки 0
Дата загрузки 07 Ноябрь 2026
Расширение docx
Раздел Презентации
Предмет Информатика и ИТ

Продавец

Bohodir Jalolov

Algoritm kutubxonasi va ularni konteyner sinflari bilan ishlatish usullari

Купить
Algoritm kutubxonasi va ularni konteyner
sinflari bilan ishlatish usullari
1) Reja:
2) Kirish
3) Nazariy qism
a. Algoritm kutubxonasi haqida
b. Algoritm kutubxonasining STL kutubxonasi tarkibi
c. STL komponentalari
d. STL algoritmining asosiy toifalari va ularning  misollari
4) Xulosa
5) Foydalangan adabiyotlar Algoritm   kutubxonasi,   C++   dasturlarida   umumiy   algoritmlar   uchun
o'zlashtirilgan,   standart   C++   kirish   joyi   (header   files)   bo'lib,   har   birida   amaliy
algoritmni yoki alg'oritmik operatsiyani bajarish uchun funksiyalar jamlangan. Bu
kutubxona, professional dasturchilar tomonidan yaratilgan va umumiy sharoitlarda
ishlatiladigan algoritmik funksiyalarni o'z ichiga oladi.
Algoritm   kutubxonasi,   C++   standart   kutubxonasining   (STL)   bir   qismi
hisoblanadi. Bu kutubxonada yana boshqa STL konteynerlari (masalan, vector, list,
deque), iteratorlar, alg'oritm funksiyalari, maxsus data strukturalar (masalan, heap),
funksiya ob'ektlari va boshqalar jamlangan.
Ba'zi ko'p ishlatiladigan funksiyalar:
1. Sort : Ro'yxatni tartiblash.
2. Search : Elementni topish.
3. Count : Elementlar sonini hisoblash.
4. Copy :   Ma'lum   bir   qatorli   konteynerdagi   elementlarni   boshqa   bir   joyga
nusxalash.
5. Swap : O'zgaruvchilarni almashtirish.
6. Min/Max : Minimum va maksimum elementni topish.
7. Reverse : Ro'yxatni teskari tartibda tartiblash.
8. Merge : Ikki o'sish ketma-ketligini birlashtirish.
9. Unique : Duplikat elementlarni olib tashlash.
10. Transform : Elementlarni boshqacha ma'lum bir tartibda o'zgartirish.
STL bir  nechta muhim  komponentlardan, jumladan, konteynerlar, algoritmlar va
iteratorlardan iborat.  Keling, ushbu mavzudagi ba'zi atamalarni tushunaylik:
 Konteynerlar:   Konteynerlar   -   bu   ob'ektlar   to'plamini   tuzilgan   tarzda
saqlaydigan   sinflar   va   C++   dagi   konteynerlarga   vektorlar,   ro'yxatlar,
xaritalar va boshqalarni o'z ichiga oladi.  Algoritmlar:   Algoritmlar   konteynerlarda   saqlanadigan   ma'lumotlar   bilan
operatsiyalarni   bajaradigan   funktsiyalardir.   Ular   saralash,   qidirish   va
o'zgartirish funktsiyalarini o'z ichiga oladi.
 Iteratorlar:   Iteratorlar   -   bu   konteyner   elementlari   bo'ylab   harakatlanish
imkonini   beruvchi   ob'ektlar.   Ular   konteynerlar   va   algoritmlar   o'rtasida
ko'prik vazifasini bajaradi.
C++   tilida   STL   turli   xil   ma'lumotlar   tuzilmalari,   konteynerlar   va
iteratorlarda   ishlaydigan   keng   ko'lamli   algoritmlarni   taqdim   etadi.   Ushbu
algoritmlar   tabiatan   umumiydir,   ya'ni   ular   har   bir   maxsus   foydalanish   holati
uchun   qayta   yozilmasdan   har   xil   turdagi   ma'lumotlar   va   konteynerlar   bilan
ishlashi mumkin.
STL-dagi   algoritmlar   shablon   funktsiyalari   sifatida   amalga   oshiriladi,   bu
ularni   juda   ko'p   qirrali   va   qayta   foydalanishga   imkon   beradi.   Ushbu
algoritmlar   konteynerlarda   saqlangan   ma'lumotlarni   saralash,   qidirish   va
manipulyatsiya qilish kabi turli xil operatsiyalarni bajaradi.  STL algoritmlarini
funksionalligiga   ko‘ra   bir   necha   guruhlarga   bo‘lish   mumkin.   Quyida   STL
algoritmlarining asosiy toifalari keltirilgan:
1. Konteynerlarni o’zgartira olmaydigan algoritmlar   :
 Ushbu   algoritmlar   konteynerdagi   elementlarni   o'zgartirmaydi,   ular   faqat
tekshiradi yoki ular ustida ba'zi amallarni bajaradi.
 Misollar:    for_each,   count,   find, all_of,   any_of,   none_of va hokazo.
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
    // Vector tuzish      vector<int> vec = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
    // for_each
     for_each(vec.begin(), vec.end(), [](int& n) {  cout << n << " "; });
     cout << endl;
    // count
    int count1 = count(vec.begin(), vec.end(), 5);
     cout << "5 soni: " << count1 << endl;
    // find
    auto it = find(vec.begin(), vec.end(), 8);
    if (it != vec.end()) {
         cout << "Topildi: " << *it << endl;
    } else {
         cout << "Topilmadi!" << endl;
    }
    // all_of
    if (all_of(vec.begin(), vec.end(), [](int i) { return i % 2 == 0; })) {
         cout << "Juft sonlar" << endl;
    } else {
         cout << "Toq sonlar" << endl;
    }
    // any_of
    if (any_of(vec.begin(), vec.end(), [](int i) { return i % 2 == 0; })) {
         cout << "Juft son qaytarildi" << endl;
    } else {          cout << "Toq son qaytarildi" << endl;
    }
    // none_of
    if (none_of(vec.begin(), vec.end(), [](int i) { return i < 0; })) {
         cout << "Musbat son" << endl;
    } else {
         cout << "Manfiy son" << endl;
    }
    return 0;
}
2.   Konteynerlarni o’zgartira oladigan algoritmlar :
 Ushbu   algoritmlar   konteynerdagi   elementlarni   o'zgartiradi   yoki
o'zgartirilgan elementlar bilan yangi konteyner ishlab chiqaradi.
 Misollar:     copy,   transform,   replace,   remove,   fill,   generate,   unique   va
hokazo.
#include <iostream>
#include <list>
#include <algorithm>
#include <iterator>
#include <cstdlib> // srand, rand
#include <ctime>   // time using namespace std;
int main() {
    // List tuzish
     list<int> lst = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
    // copy
     list<int> copied_lst;
     copy(lst.begin(), lst.end(),  back_inserter(copied_lst));
     cout << "Copied list: ";
    for (const auto& element : copied_lst) {
         cout << element << " ";
    }
     cout << endl;
    // transform
     list<int> transformed_lst;
     transform(lst.begin(), lst.end(),  back_inserter(transformed_lst),
                   [](int n) { return n * n; });
     cout << "Transformed list: ";
    for (const auto& element : transformed_lst) {
         cout << element << " ";
    }
     cout << endl;
    // replace
     replace(lst.begin(), lst.end(), 5, 50);
     cout << "   5 ni 50 ga almashtirgandan keyin ro yxat qiling: ";ʻ     for (const auto& element : lst) {
         cout << element << " ";
    }
     cout << endl;
    // remove
    lst.remove(3);
     cout << " 3 element o’chirildi: ";
    for (const auto& element : lst) {
         cout << element << " ";
    }
     cout << endl;
    // fill
     fill(lst.begin(), lst.end(), 0);
     cout << "   Ro'yxat 0 bilan to'ldirilgandan keyin: ";
    for (const auto& element : lst) {
         cout << element << " ";
    }
     cout <<  endl;
    // generate
     srand(time(0));
     generate(lst.begin(), lst.end(), []() { return  rand() % 100; });
     cout << "   Tasodifiy sonlarni yaratgandan so'ng ro'yxat: ";
    for (const auto& element : lst) {
         cout << element << " ";     }
     cout << endl;
    // unique
    lst.unique();
     cout << "   Ketma-ket dublikatlarni olib tashlaganingizdan so'ng ro'yxatlang:
";
    for (const auto& element : lst) {
         cout << element << " ";
    }
     cout << endl;
    return 0;
}
3. Saralash va unga tegishli algoritmlar   :
 Ushbu algoritmlar konteynerdagi  elementlarni saralash  yoki saralash  bilan
bog'liq operatsiyalarni bajarish uchun ishlatiladi.
 Misollar:  
sort,   partial_sort,   nth_element,   binary_search,   merge,   inplace_merge   va
hokazo.
#include <iostream>
#include <deque>
#include <algorithm>
using namespace std;
int main() {
    // Deque tuzish      deque<int> dq = {5, 3, 9, 7, 1, 8, 2, 6, 4};
    // sort
     sort(dq.begin(), dq.end());
     cout << "Sortlangan deque: ";
    for (const auto& element : dq) {
         cout << element << " ";
    }
     cout << endl;
    // partial_sort
     deque<int> partial_sorted_dq = dq; // Asl dq saqlab qolish uchun nusxasini
yarating
          partial_sort(partial_sorted_dq.begin(),   partial_sorted_dq.begin()   +   3,
partial_sorted_dq.end());
     cout << "   Qisman tartiblangan deque (birinchi 3 element): ";
    for (const auto& element : partial_sorted_dq) {
         cout << element << " ";
    }
     cout << endl;
    // nth_element
          deque<int>   nth_element_dq   =   dq;   //   Asl   dq   saqlab   qolish   uchun
nusxasini //yarating
          nth_element(nth_element_dq.begin(),   nth_element_dq.begin()   +   4,
nth_element_dq.end());
     cout << "   nth_elementdan keyin deque (4-element median):";
    for (const auto& element : nth_element_dq) {
         cout << element << " ";     }
     cout << endl;
    // binary_search
    bool found = binary_search(dq.begin(), dq.end(), 6);
          cout   <<   "   6-element   uchun   ikkilik   qidiruv:"   <<   (found   ?   "topildi"   :
"topilmadi")<<endl;
    // merge
     deque<int> dq1 = {1, 3, 5, 7};
     deque<int> dq2 = {2, 4, 6, 8};
     deque<int> merged_dq(dq1.size() + dq2.size());
     merge(dq1.begin(), dq1.end(), dq2.begin(), dq2.end(), merged_dq.begin());
     cout << "   Birlashtirilgan deque: ";
    for (const auto& element : merged_dq) {
         cout << element << " ";
    }
     cout << endl;
    // inplace_merge
          deque<int>   inplace_merge_dq   =   dq;   //   //   Asl   dq   saqlab   qolish   uchun
nusxasini //yarating
          inplace_merge(inplace_merge_dq.begin(),   inplace_merge_dq.begin()   +  4,
inplace_merge_dq.end());
     cout << "   inplace_merge keyin deque: ";
    for (const auto& element : inplace_merge_dq) {
         cout << element << " ";
    }
     cout << endl;     return 0;
}
4.   Raqamli algoritmlar :
 Ushbu algoritmlar raqamli operatsiyalar uchun ishlatiladi.
 Misollar:     accumulate,0   inner_product,   iota,   min_element,   max_elementva
boshqalar.
#include <iostream>
#include <queue>
#include <vector>
#include <numeric> // accumulate
#include <algorithm> // min_element, max_element
using namespace std;
int main() {
    queue<int> q;
    // Elementlarni qo'shish
    for (int i = 1; i <= 10; ++i) {
        q.push(i);
    }
    // Barcha elementlarni qatordan vector ga nusxa olish
    vector<int> vec(q.size());
    for (size_t i = 0; i < vec.size(); ++i) {
        vec[i] = q.front();
        q.pop();     }
    // accumulate
    int sum = accumulate(vec.begin(), vec.end(), 0);
    cout << "Barcha elementlarning yig'indisi: " << sum << endl;
    //inner_product
        int   product   =   inner_product(vec.begin(),   vec.end(),   vec.begin(),   1,
multiplies<int>(), multiplies<int>());
    cout << "Barcha elementlar: " << product << endl;
    // iota
    iota(vec.begin(), vec.end(), 100);
    cout << "Vector uchun iota funksiyasidan so'ng : ";
    for (const auto& element : vec) {
        cout << element << " ";
    }
    cout << endl;
    // min_element
    auto min_elem = min_element(vec.begin(), vec.end());
    cout << "Minimum element: " << *min_elem << endl;
    // max_element
    auto max_elem = max_element(vec.begin(), vec.end());
    cout << "Maximum element: " << *max_elem << endl;
    return 0;
} Xulosa
Algoritm kutubxonasini va konteyner sinflarini birga ishlatish juda sodda va
samarali   yechimlar   toppish   uchun   foydalaniladi.   Biz   barcha   standart   algoritm
funksiyalarini   (masalan,   sort,   find,   accumulate   va   boshqalatrni   )   standart
konteyner   sinflari   bilan   ishlatishingiz   mumkin.   Konteyner   sinflari   esa
ma'lumotlarni saqlash va boshqa amallarni bajarish uchun mo'ljallangan.
Foydalanilgan adabyotlar va internet manbalari:
 https://hyperskill.org/learn/step/36769#algorithms   
 https://kompy.info/reja-algaritm-haqida-tushuncha-algaritm-kutubxonasi-   
sonli-hiso.html
 https://www.geeksforgeeks.org/the-c-standard-template-library-stl/

Algoritm kutubxonasi va ularni konteyner sinflari bilan ishlatish usullari

Купить
  • Похожие документы

  • 3d-max dasturida obektlarni yaratish
  • Algoritm va ma’lumotlar strukturasi
  • 3D-MAX dasturi haqida
  • 3D Studio MAX dasturiga kirish. 3D Studio MAX dasturi haqida tushuncha
  • Adobe photoshop dasturida tasvirlarda ishlov berish,taqdimot yaratish

Подтвердить покупку

Да Нет

© Copyright 2019-2026.

  • Инструкция по снятию с баланса
  • Контакты
  • Инструкция использования сайта
  • Инструкция загрузки документов
  • O'zbekcha