Test gift and xml Ma’lumot nima?



Yüklə 0,77 Mb.
səhifə25/73
tarix14.12.2023
ölçüsü0,77 Mb.
#177632
1   ...   21   22   23   24   25   26   27   28   ...   73
Test gift and xml-fayllar.org


delete obj.second; }



  • Kompilyator klass shabloni uchun turlarni avtomatik aniqlamaydi, shuning uchun ham uni mustaqil ko’rsatishimiz zarur.


    45. To’g’ridan-to’g’ri o’rin almashtirish algoritmi uchun klass yozing va misol yordamida uning ishlishini tushuntirib bering.

    46. Qidiruv algoritmining klasslar yordamida ifodalanishini misollar yordamida tushuntirib bering.
    47. Shablonlarning standart kutubxonasi va undan dastur yozishda foydalanishga misollar keltiring?



    • Kompilyatorlar tarkibida shablonlar kutubxonasini taqdim etadi. (Standart Template Library). Bu kutubxona bir qancha funksiya va klass shablonlaridan tashkil topgan.



    • Masalan, ikki bog’lamli ro’yxat klassi (list), “juft” klassi (pair), ikki o’zgaruvchining o’rnini almashtirish funktsiyasi shabloni (swap), saralash funksiyalari, massivni dinamik kengaytirish funksiyasi (vector) va h.k. Bulardan dasturlashda to’liq foydalanishingiz mumkin.



    Misol uchun std::vector ni olamiz:

    48. Функция параметрлари асосида шаблон параметрларини аниқлаш.




    • Umuman olganda, my_swap funksiyasini burchakli qavsda turni ko’rsatmasdan turib chaqirish mumkin. Kompilyator turni o’zi hosil qiladi.



    • Turni ko’rsatmasdan funksiyani chaqirish:



    • int a = 5;



    • int b = 10;



    • my_swap (a, b);



    • Bu yerda funksiya o’z parametrlariga mos ma’lumot turini qayta ishlaydi. Bu deducing template arguments (argumentlarni chiqarib tashlash) deb ataladi. Yuqoridagilarga asoslangan holda murakkabroq misol uchun shablon funksiyasini yozamiz. Masalan, massiv elementlarini saralash dasturi uchun (bunda “pufaksimon” saralash usulidan foydalanamiz). Tabiiyki, saralash algoritmi barcha massivlar uchun bir xil, lekin massivdagi elementlar turi farq qiladi. elementlar o’rnini almashtirish uchun yuqoridagi my_swap funksiyasidan foydalanamiz.



    #include
    template < typename T >
    void my_swap (T &first, T &second) {
    T temp(first); //vaqtincha parametr turga tegishli
    first = second;
    second = temp; }
    template
    void bubbleSort(ElementType *arr, size_t arrSize) {
    for(size_t i=0; i
    for(size_t j=0; j
    if (arr[j+1]
    my_swap (arr[j], arr[j+1]); }
    template
    void out_array (const ElementType *arr, size_t arrSize) {
    for (size_t i=0; i
    std::cout<
    std::cout<
    int main () {
    const size_t n=5 ;
    int arr1[n]={10, 5, 7, 3, 4};
    double arr2[n]={7.62, 5.56, 38.0, 56.0, 9.0};
    std::cout<<"Kirish massivlari:\n" ;
    out_array (arr1, n);
    out_array (arr2, n);
    bubbleSort (arr1, n);
    bubbleSort (arr2, n);
    std::cout <<"Saralangan massivlar:\n" ;
    out_array (arr1, n);
    out_array (arr2, n);
    }

    49. Statik ma’lumotlar tuzilmasi: To’plam, massiv tuzilmalariга таъриф беринг, улардан дастурлашда фойдаланишга оид мисоллар келтиринг;


  • 1   ...   21   22   23   24   25   26   27   28   ...   73




    Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©azkurs.org 2024
    rəhbərliyinə müraciət

    gir | qeydiyyatdan keç
        Ana səhifə


    yükləyin