• Ikki olchovli massivni amalga oshirish
  • Qatorli dastur
  • Ustunli dastur
  • A elementining manzili [i] [j] = B + W (m (j-L2) + (i-L1))
  • O'xshash ma'lumotlar turlarining o'zgaruvchilar ro'yxati




    Download 32.59 Kb.
    bet4/4
    Sana09.03.2023
    Hajmi32.59 Kb.
    #44750
    1   2   3   4
    Bog'liq
    Bir o\'lchamli massivlar
    brendni bos
    Manzilni hisoblash
    Bir o'lchovli massivni amalga oshirish
    1D qatoridagi har qanday ma'lum bir elementning manzilini quyidagi tenglama bilan hisoblash mumkin,
    A elementining manzili [k] = B + W * k
    Bu erda B - massivning tayanch manzili, W - massivning har bir elementining kattaligi va massivda zarur bo'lgan elementlar soni k (ya'ni element ko'rsatkichi).
    Misol
    Masalan, biz bazaviy manzili 1000 ga teng bo'lgan 'a [10]' bir o'lchovli massivning 6-elementining manzilini topishni istaymiz.Ushbu misoldagi har bir elementning hajmi 4 bayt. Demak, shunga asoslanib hisoblash quyidagi usulda amalga oshirilishi mumkin.
    A elementining manzili [6] = 1000 + 4 * 6
    = 1000+24
    = 1024
    Ikki o'lchovli massivni amalga oshirish
    Satrlar va ustunlar tushunchasi boshlanganligi sababli 2D massivdagi manzilni hisoblash 1D massivdan farq qiladi. Amalga oshirishning ikki turi mavjud -

    • Row-major - asosiy satrda elementlar qatorga mos ravishda o'qiladi.

    • Asosiy ustun - ustun ustunida ustunlar ustuni bo'yicha olib boriladi.

    Qatorli dastur
    Ma'lumki, ushbu dasturda qatorlar birin ketin ikkinchisiga qadar saqlanadi. Satr-major yordamida elementlarning manzilini 2 o'lchovli massivda hisoblash uchun ishlatiladigan formula:
    A elementining manzili [i] [j] = B + W (n (i-L1) + (j-L2))
    Bu erda B asosiy manzilni bildiradi va W har bir massiv elementining hajmini belgilaydi va n - ustunlar soni. L1 satrning pastki chegarasini, L2 ustunning pastki chegarasini belgilaydi.
    Misol
    Deylik, har bir element uchun 2 baytni saqlaydigan, [4… 8, -2 ... 3] deb belgilangan 100 ta asosiy manzilga ega [6,2] joyda joylashgan ikki o'lchovli massivning manzilini topishimiz kerak.
    Birinchidan, pastki qatordan belgilangan qatorning yuqori chegarasi olib tashlanadigan n ustunlar sonini topishimiz kerak, ya'ni 3 - (- 2) va natijaga bittasi qo'shiladi (indeksatsiya 0 dan boshlanadi) , bu 6 ni beradi.
    A [6] [2] = 100 + 2 (6 (6-4) + (2 - (- 2))) manzili
    = 100+2(6×2+4)
    = 100+32 = 132
    Ustunli dastur
    Katta ustunli dastur asosan qator ustunidan farq qiladi, chunki u saqlash ustunlarini ustunlar bilan bajarishi bilan ajralib turadi. Uning element manzilini hisoblash uchun formulasi satr-majorga o'xshaydi, faqat ustun spetsifikatsiyalari qator spetsifikatsiyalari bilan o'zgargan.
    A elementining manzili [i] [j] = B + W (m (j-L2) + (i-L1))
    Bu erda "m" qatorlar sonini ko'rsatadi.
    Download 32.59 Kb.
    1   2   3   4




    Download 32.59 Kb.

    Bosh sahifa
    Aloqalar

        Bosh sahifa



    O'xshash ma'lumotlar turlarining o'zgaruvchilar ro'yxati

    Download 32.59 Kb.