• Valarray sinfi. Boshqa STL konteynerlarida bolgani kabi, valarray
  • Valarray sinfi. Valarray sinfi funksiyalari Vazifalari
  • Slice sinfi. slice()
  • Dastur natijasi Xulosa
  • valarray array1(ar, sizeof(ar)/sizeof(ar[0]))




    Download 3,59 Mb.
    bet4/4
    Sana17.07.2024
    Hajmi3,59 Mb.
    #267776
    1   2   3   4
    Bog'liq
    Hd5nlT7jqpJKv289QizxDT2s1tKYjszhHdm6EOlJ

    valarray array1(ar, sizeof(ar)/sizeof(ar[0]));
    Valarray sinfi.
    Esda tutish kerak bo'lgan yana bir narsa, agar biz har qanday arifmetik amallarni qiymatlar massivi bilan bajaradigan bo'lsak, ularning ma'lumotlar turlari bir xil bo'lishi kerak, aks holda xato bo'ladi. Mana bir misol:
    valarray array(5);
    array = 4 * array; // hato
    array = float(4) * array;
    Shuning uchun buni quyidagi holda yozish maqsadga muvofiq:
    Ma'lumot turi int o'rniga double bo'lsa ham, ma'lumotlar turiga mos kelmaslik deb qaraladi.
    Valarray sinfi.
    #include "stdafx.h"
    #include
    #include
    #include
    #include
    using namespace std;
    int main()
    {
    srand(time(NULL));
    valarray array1(15);
    valarray array2(15);
    Valarray sinfi.
    cout << setw(21) << left << "1- massiv: ";
    for(int i = 0; i < array1.size(); i++) {
    array1[i] = rand() % 10;
    cout << setw(2) << array1[i] << " ";
    }
    cout << endl << setw(21) << "2- massiv: ";
    for(int i = 0; i < array2.size(); i++) {
    array2[i] = rand() % 10;
    cout << setw(2) << array2[i] << " ";
    }
    Valarray sinfi.
    cout << "\nMassivlar yigindisi: ";
    valarray array3 = array1 + array2;
    for(int i = 0; i < array3.size(); i++) {
    cout << setw(2) << array3[i] << " ";
    }
    cout<system("pause");
    return 0;
    }
    Valarray sinfi.
    Boshqa STL konteynerlarida bo'lgani kabi, valarray ham solishtirish operatsiyalarni qayta yuklaydi, ammo ular qaytaradigan natija tubdan farq qiladi. Masalan, quyidagi kodni ko'rib chiqing:
    #include "stdafx.h"
    #include
    #include
    #include
    using namespace std;
    int main()
    {
    srand(time(NULL));
    valarray array1(5);
    valarray array2(5);
    Valarray sinfi.
    cout << "1 - massiv: ";
    for(int i = 0; i < array1.size(); i++)
    cout << (array1[i] = rand() % 10) << " ";
    cout << "\n2 - massiv: ";
    for(int i = 0; i < array2.size(); i++)
    cout << (array2[i] = rand() % 10) << " ";
    valarray res(5);
    res = (array1 < array2);
    cout << "\nNatija: ";
    for(int i = 0; i < res.size(); i++)
    cout << res[i] << " ";
    cout<system("pause");
    return 0;}
    Valarray sinfi.

    Valarray sinfi funksiyalari

    Vazifalari

    apply()

    Funktsiyani qo`llash

    max()

    Eng katta qiymatni qaytaradi

    min()

    Eng kichik qiymatni qaytaradi

    operator=()

    Qiymat berish, o’zlashtirish

    operator[]()

    Murojat qilish, qiymat olish

    resize()

    Massiv hajmini o’zgartiradi

    shift()

    Siklik siljish

    size()

    Massiv elemetlar soni

    sum()

    Massiv elemetlari yig’indisi

    swap()

    Massivlar qiymatlarini almashtiradi

    Slice sinfi.
    slice() - bu biron bir tarzda yoki boshqa usulda qayta ishlanadigan qism to'plamini, massiv qiymatlari oralig'ini belgilaydigan funktsiya. slice() funksiyasi uchta parametrga ega:
    • birinchisi, tanlov boshlanadigan massiv elementi indeksidir, misolda indeks 0, ya'ni tanlov birinchi qator elementidan boshlanadi.
    • uchinchisi - namuna olish qadami, misolda qadam 2, ya'ni har bir ikkinchi element qism to’plamga tushishini anglatadi.

    array[slice(0, 3, 2)] = 5;
    Slice sinfi.
    #include "stdafx.h"
    #include
    #include
    using namespace std;
    int main()
    {
    valarray array(-1, 20);
    cout << "Massiv: ";
    for(int i = 0; i < array.size(); i++) cout << array[i] << " ";
    Slice sinfi.
    array[slice(2, 5, 4)] = 5;
    // 2 indeksdan boshlab, har 4 chisiga 5 tasiga 5 qiymati //o'zlashtirilsin
    cout << "\nslice ni qollagandan keyin massiv: ";
    for(int i = 0; i < array.size(); i++)
    {
    cout << array[i] << " ";
    }
    Slice sinfi.
    array[slice(0, 7, 3)] = 2;
    // 0 indeksdan boshlab, har 3 chisiga 7 tasiga 2 qiymati //o'zlashtirilsin
    cout << "\nslice ni qollagandan keyin massiv: ";
    for(int i = 0; i < array.size(); i++) {
    cout << array[i] << " ";
    }
    Slice sinfi.
    // 0 indeksdan boshlab har 2 chisiga 10 tasini kvadratga //oshirish
    array[slice(0, 10, 2)] = pow(static_cast >(array[slice(0, 10, 2)]), 2);
    cout <<"\nslice ni qollagandan keyin massiv: ";
    for(int i = 0; i < array.size(); i++) {
    cout << array[i] << " ";
    }
    gslice sinfi sintaksisi.
    gslice();
    gslice ( size_t _StartIndex, const valarray& _LenArray,
    const valarray& _IncArray);

    gslice::gslice

    gslice ni qurish
    (public funksiya-a’zosi)

    gslice::start

    gslice ning dastlabki holati
    (public funksiya-a’zosi)

    gslice::stride

    gslice ning qadam-baqadam massivga ruxsat berish
    (public funksiya-a’zosi)

    gslice::size

    gslice dan massiv o’lchamlariga ruxsat berish
    (public funksiya-a’zosi)

    gslice sinfi.
    0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 – asl massiv
    gslice sinfi.
    0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22…
    gslice sinfi.
    #include "stdafx.h"
    #include
    #include
    #include
    using namespace std;
    int main()
    {
    valarray array(0, 60);
    gslice sinfi.
    // umumiy kesib olish massivlarini aniqlab olamiz
    size_t length[] = {2, 6};
    // har qaysida 6 tadan 2 ta qism to'plam
    size_t stride[] = {4, 10};
    // bir qism elemeentlari orasidagi masofa 10, gism to'plamlar //orasidagi masofa 4.
    // 2 ta obyekt yaratamiz, va ularga massivlarni joylaymiz
    valarray len(length, 2);
    valarray str(stride, 2);
    // qism to'plam indekslari bo'yicha 1 qiymat beramiz
    array[gslice(2, len, str)] = 1;
    gslice sinfi.
    cout << "O'zgartirilgan massiv: ";
    for(int i = 0; i < array.size(); i++) {
    cout << array[i] << " "; }
    cout << "\nQism to'plam(massiv indekslari): ";
    for(int i = 0, j = 0; i < array.size(); i++, j++) {
    if ( array[i] == 1) {
    cout << setw(2) << i << " ";}
    }
    Dastur natijasi

    Xulosa


    MUHAMMAD AL-XORAZMIY NOMIDAGI TOSHKENT AXBOROT TEXNOLOGIYALARI UNIVERSITETI
    E’TIBORINGIZ UCHUN RAXMAT!
    ISHNIYAZOV
    ODIL OLIMOVICH
    KATTA O’QITUVCHI
    SHOKIROV SHODMON
    SHOYIMOVICH
    Informatika asoslari kafedrasi
    ASSISTENT

    Download 3,59 Mb.
    1   2   3   4




    Download 3,59 Mb.

    Bosh sahifa
    Aloqalar

        Bosh sahifa



    valarray array1(ar, sizeof(ar)/sizeof(ar[0]))

    Download 3,59 Mb.