• [ ][ ];
  • O„zbekiston respublikasi oliy va o„rta maxsus ta‟lim vazirligi samarqand davlat universiteti s. Eshtemirov, F. M. Nazarov




    Download 2,67 Mb.
    Pdf ko'rish
    bet91/173
    Sana16.05.2024
    Hajmi2,67 Mb.
    #238775
    1   ...   87   88   89   90   91   92   93   94   ...   173
    Bog'liq
    Tarixi 37 bet

    Ikki o„lchovli massivlar 
    C++ dasturlash tilida ba‘zi hollarda bir nechta o‗lchamlari va turi bir xil 
    bo‗lgan bir o‗lchovli massivlardan foydalanishga to‗g‘ri keladi. Bir nechta bir 
    o‗lchovli massivlarni birlashtirish natijasida ikki o‗lchovli massivlarni hosil qilish 
    mumkin. Ikki o‗lchovli massivlarni tarkibida ma‘lumotlar satrlarning satri 
    ko‗rinishida tasvirlanadi. Ikki o‗lchovli massivlarning tarkibi ham bir o‗lchovli 
    massivlar kabi tartiblangan bir turga mansub bo‗lishi kerak. 
    Ikki o‗lchovli massivlarga matematikadagi matritsalar misol bo‗lishi 
    mumkin. Ikki o‗lchovli massivlar tarkibidagi elementlar xuddi matritsani 
    elementlari kabi tasvirlanadi. 
    Ta‘rif: Bir turga mansub bo‗lgan yagona nom bilan saqlangan matritsa 
    ko‗rinishdagi tartiblangan ma‘lumotlar majmuasi ikki o‗lchovli massivlar deyiladi. 
    Ikki o‗lchovli massivning barcha elementlari aniq turga mansub bo‗ladi va 
    uning elementlari bir nechta satrlar ko‗rinishda bo‗ladi. Ikki o‗lchovli massivlar 
    quyidagi shaklda bo‗ladi. 
    Yuqoridagi shakldan ko‗rinib turibdiki ikki o‗lchovli massiv bir o‗lchovli 
    massivlarning bir nechtasi yoki matritsa ko‗rinishida tasvirlanar ekan. Ikki 
    o‗lchovli massivlarning kompyuter xotirasiga har bir satr uchun alohida tartib 
    nomer bilan saqlanadi. Ikki o‗lchovli massivlarning har bir elementiga o‘zining 
    indeksi bo‗yicha murojat qilinadi. 


    132 
    Ikki o‗lchovli massivlarni C++ dasturlash tilida e‘lon qilish va uning 
    umumiy ko‗rinishi quyidagicha. 
    [][]; 
    Ikki o‗lchovli massivlarni C++ dasturlash tilida e‘lon qilish uchun massiv 
    turi, massiv nomi, massiv satrdagi elementlar soni va massiv ustunidagi elementlar 
    soni beriladi. Agar a[5,2] massiv berilgan bo‘lsa, uni C++ dasturlash tilida a[2][5] 
    ko‗rinishda e‘lon qilinadi. C++ dasturlash tilida massivlarni yozilishi, 
    matematikadan bir oz farq qilinadi, ya‘ni ustun va satrlari joyi almashtiriladi. Ikki 
    o‗lchovli massivlarni C++ dasturlash tilida e‘lon qilinishi. 

    #include  
    int main()
    { int a[10][10]; //butun turli 100ta elementli massiv 
    double b[10][10]; //haqiqiy turli 100ta elementli massiv 
    return 0;
    }
    Massivlarni elementlariga murojat qilish uchun uning har bir elementining 
    o‘z indeksi bo‗yicha murojat qilinadi. Massiv elementlariga murojat qilishni 
    quyidagi shakl orqali bajariladi. Quyidagi ikki o‗lchovli massiv berilgan bo‗lsin. 
    a(3,3) massivning elementlariga C++ dasturlash tilida murojat qilish 
    quyidagicha ko‗rinishda bo‗ladi. 
    a[1][1]=1, a[2][1]=2, a[3][1]=3, a[1][2]=4, a[2][2]=5, a[3][2]=5, a[1][3]=4, 
    a[2][3]=5, a[3][3]=5, 
     
    C++ dasturlash tilida ikki o‗lchovli massivlarning elementlarini boshlang‘ich 
    qiymatlarini quyidagi tartibda berilishi mumkin. 

    #include  
    int main()
    { int a[][]={{1,2,3}{4,5,6}{7,8,9}};
    return 0;
    }


    133 
    Massiv elementlari soni oldindan berilmasa, komplyator massiv elementlar 
    sonini boshlang‘ich qiymatlarga qarab aniqlaydi. 
    Ikki o‗lchovli massiv elementlari boshlang‘ich qiymatlari oldindan 
    berilmasa, albatta, uning elementlar sonini oldindan berish kerak bo‗ladi. Ikki 
    o‗lchovli massiv elementlari soni aniq, lekin uning elementlarini boshlang‘ich 
    qiymatlari berilmaganda, massiv elementlarini shakllantirish. 

    #include  
    int main()
    { int a[3][3]; 
    for(int i=0;i<=2;i++) 
    for(int j=0;j<=2;j++)
    cin>>a[i][j];
    return 0;
    }
    Misol: 
    A(2,3) massiv berilgan uning elementlarini ikkiga ko‗paytirib 
    ekranga chiqaring. 
    Bu masala yechimini aniqlashda ham bir o‗lchovli massivlar kabi har bir 
    elementiga murojat qilib, har bir elementini ikkiga ko‗paytirish kerak. 

    #include  
    int main()
    { int a[3][2]; 
    for(int i=0;i<=2;i++) 
    for(int j=0;j<=1;j++)
    cin>>a[j][i];
    for(int i=0;i<=2;i++) 

    for(int j=0;j<=1;j++)
    cout<<2*a[j][i]<<‖ ‖;
    cout<<‖\n‖; } 
    return 0;
    }
    Kiritish uchun ma‘lumot 
    1 2 3 
    4 5 6 
    Dastur natijasi 
    2 4 6 
    8 10 12 


    134 
    Ikki o‗lchovli massivlar yordamida C++ dasturlash tilida matematikani balki 
    boshqa sohalarning ham bir necha masalalarini hal etish mumkin. 
    Misol: 
    A(n,n) matritsa berilgan uning asosiy dioganalidan yuqoridagi 
    elementlarini ikkiga ko‗paytirib ekranga chiqaring. 

    #include  
    int main()
    { int a[90][90]; 
    int n,m; cout<<‖n=‖;
    cin>>n; m=n;
    for(int i=0;ifor(int j=0;jcin>>a[j][i];
    for(int i=0;i{ m=m-i; j=0; 
    while(j<=m) 
    { cout<<2*a[j][i]<<‖ ‖; 
    j++; 

    cout<<‖\n‖; } 
    return 0;
    }
    Kiritish uchun ma‘lumot 
    n=3 
    1 2 3 
    4 5 6 
    7 8 9 
    Dastur natijasi 
    2 4 6 
    8 10 
    14 
    Ikki o‗lchovli massiv elementlarining har birini tekshirish yoki ular ustida 
    amallar bajarish uchun ichma ich sikllardan foydalaniladi. Yuqoridagi masala 
    yechimida ikki o‗lchovli massivning barcha elementlari tekshirilmaydi shuning 
    uchun ichki siklning while yordamida yozish maqsadga muvofiq bo‘ladi. Masssiv 
    o‗lchami kattalashgan sayin uning elementlari uchun xotiradan ajratiladigan joy 
    hajmi juda tez o‗sadi. Masalan, 32 razryadli mashinada uch o‗lchamli float b [10] 
    [8] [10] massivi e‘lon qilingan bo‗lsa, u xotirada 10*10*8*4=3200 bayt joyni 
    egallaydi. 


    135 
    Agar shu massiv int b [10] [10] [10] [10] kabi to‗rt o‗lchamli ko‗rinishda 
    e‘lon qilinsa, xotiradan 40000 baytlik joyni band qilinadi. Demak, massivning 
    o‗lchamlari soniga chegara qo‗yilmagan, agar xotira muammosiga duch kelinmasa. 
    n o‗lchamli massivning xotiradan egallaydigan joyi formulasi quyidagicha. Baytlar 
    soni =1-o‗lcham * 2-o‗lcham *…..* n-o‗lcham * turning baytlardagi o‗lchami. 
    Amalda uch o‗lchamli massivlardan ham juda kam foydalaniladi. Uch o‗lchamdan 
    yuqori o‗lchamli massisvlardan esa deyarli foydalanilmaydi. 
    Massivlarga oid masalalar yuqoridagi holatlar bo‗yicha C++ dasturlash tilida 
    tasvirlanadi. 

    Download 2,67 Mb.
    1   ...   87   88   89   90   91   92   93   94   ...   173




    Download 2,67 Mb.
    Pdf ko'rish

    Bosh sahifa
    Aloqalar

        Bosh sahifa



    O„zbekiston respublikasi oliy va o„rta maxsus ta‟lim vazirligi samarqand davlat universiteti s. Eshtemirov, F. M. Nazarov

    Download 2,67 Mb.
    Pdf ko'rish