C# Massiv

Dasturlash tillarida kompyuter xotirasiga bir o‘zgaruvchi yordamida bir nechta qiymatlarda foydalanishga to‘g‘ri keladi. Bir o‘zgaruvchi bilan bir nechta qiymat ustida amallar bajarish uchun berilgan ma’lumotlar bir turga mansub bo‘lishi kerak. Dasturlash tillarida ro‘yhat yoki jadval ko‘rinishidagi ma’lumotlarni massiv deb ataladi. Massiv so‘zining ma’nosi o‘lcham, o‘lchov demakdir. Massivning barcha elementlari bitta turga mansub bo‘lib, ular bitta nom bilan nomlanadi va bir-birlaridan nomerlari (indekslari) bilan farq qiladi.

Bir turga mansub bo‘lgan yagona nom bilan saqlanuvchi tartiblangan ma’lumotlar majmuasi massiv deyiladi.

C# bizga tanlash uchun 3 xil turdagi massivlarni beradi:

Bir o'lchovli massiv. U faqat bitta qator maʼlumotlarni oʻz ichiga oladi, shuning uchun massivda saqlangan elementga bitta raqamli indeks (0, 1, 2, va hokazo) bilan kiriladi.

Ko'p o'lchovli massiv. Bir nechta ma'lumotlar qatorini o'z ichiga oladi, shuning uchun uning indeksi qatorni aniqlaydigan va ustunni aniqlaydigan juft raqamlardan iborat bo'ladi. Bunday massiv ko'pincha to'rtburchaklar massivi deb ataladi, chunki u sxematik tasvirlanganda to'rtburchak shaklini oladi.

Qirrali massiv. Bu kichik massivlardan tashkil topgan massivdir (va bu kichik massivlar har qanday hajmda bo'lishi mumkin).

Massivlar yagona o‘zgaruvchi bilan kompyuter xotirasiga saqlanadi, uning elementlari ma’lum bir indekslar bilan tartiblab joylashtiriladi. Massivlar yagona nom bilan bir nechta qiymatni o‘zida mujassamlashtiradi, bularga matematikadagi vektorlarni misol keltirish mumkin. Vektor ham yagona nom bilan saqlanib uning tarkibida bir nechta qiymatni o‘zida mujassamlashadi. Vektorning ham elementlari bir turga mansub va tartiblangan bo‘ladi.

Massiv tarkibida elementlar mavjud bo‘ladi. Massivning eng ko‘pi bilan ketishi mumkin bo‘lgan elementlar soni uning o‘lchamini bildiradi. Massivning elementi turgan o‘rni uning indeksi deyiladi. Massivning elementiga uning indeksi orqali murojaat qilinadi. Massivning indeksi sifatida butun sonlar xizmat qiladi. Har bir massiv o‘zining individual nomiga ega bo‘lishi kerak, ya’ni bir xil nomdagi massivlar bo‘lmaydi. Ularning nomi oldin e’lon qilingan oddiy o‘zgaruvchi nomi bilan ustma-ust tushmasligi kerak.

Statik massivlarni e’lon qilishning umumiy ko‘rinishi quyidagicha:

<tip>[] <massiv_nomi>={boshlang’ich qiymatlar}

Dinamik tarzda massivni e’lon qilishning umumiy ko‘rinishi quyidagicha:

<tip>[] <massiv_nomi>=new <tur>[o’lcham]

Bu yerda tur-massiv elementining muayyan turini bildiradi. Element turi massiv tashkil etuvchi har bir elementning ma’lumot turini belgilaydi. Tur bilan birga kvadrat qavslar ham ishlatiladi. Ular bir o‘lchamli massiv e’lon qilinganligini ko‘rsatadi. [o’lcham] massiv elementlari sonini belgilaydi. new operatori [o’lcham] ga mos ravishda xotiradan joy ajratadi.

Dinamik massiv o‘lchami ham statik massiv kabi aniqlanishi lozim, faqat bunda u dastur ishlashi davomida aniqlanishi bilan static massivdan farq qiladi.

Indekslar massiv elementlariga murojaat qilish uchun ishlatiladi. Indeks massivdagi element sonini bildiradi .Massivdagi to‘rtinchi elementga murojat qilish uchun biz 3 indeksidan foydalanishimiz kerak. Massiv elementlarining qiymatlarini olish va o‘rnatish uchun indekslardan foydalanamiz.

Ko‘p o‘lchovli massivlar

Dasturlashda garchi bir o'lchovli massivlar ko'p ishlatilsada, ko'p o'lchovli massivlar ham unchalik kam ishlatilmaydi. Ko'p o'lchovli - bu ikki yoki undan ortiq o'lchamlardagi massiv bo'lib, bunday massivning har bir elementiga ikki yoki undan ortiq indekslarning ma'lum bir kombinatsiyasi yordamida kirish mumkin.

Ko'p o'lchovli massivning sodda shakli ikki o'lchovli qatordir. Har qanday elementning ikki o'lchovli massivdagi joylashuvi ikki indeks bilan ko'rsatilgan. Bunday massivni jadval shaklida ko'rsatish mumkin, ularning satrlari bitta indeks bilan ustunlari bitta indeks bilan ko'rsatiladi.

Quyida 10x20 o'lchovli butun sonli massiv berilgan.

	int[,] table = new int[10, 20];

Ushbu massivning e’loniga e'tibor bering. Uning ikkala o'lchami ham vergul bilan ajratilgan. Ushbu e’lonning birinchi qismi sintaksis:

[,] ikki o'lchovli massivga o'zgaruvchi murojaat qilishni anglatadi. Agar new operator yordamida massiv uchun xotira ajratilgan bo'lsa, unda quyidagi sintaksis qo'llaniladi.

	int[10, 20]

Ushbu e’lon 10x20 o'lchovli massivni yaratadi, ammo bu holda uning o'lchamlari vergul bilan ajratiladi.

Ikki o'lchovli massiv elementiga kirish uchun ikkala indeksni ham vergul bilan ajratib qo'yish zarur. Masalan, quyidagi satrda indekslari (3,5) bo'lgan jadval massivining elementi 10 ga qiymatlanadi.

	table[3, 5] = 10;

2×3×4 oʻlchamli butun sonli uch oʻlchovli massivga ishga tushirishga misol:

namespace UzbekDevs
{
   internal class Program
   {
       static void Main(string[] args)
       {
           short[,,] B = {
               {
                   { 1, 2, 3, 4 },
                   { 5, 6, 7, 8 },
                   { 9, 10, 11, 12 }
               },
               {
                   { 13, 14, 15, 16 },
                   { 17, 18, 19, 20 },
                   { 21, 22, 23, 24 }
               }
               };
           for (int i = 0; i < 2; i++)
           {
               for (int j = 0; j < 3; j++)
               {
                   for (int k = 0; k < 4; k++)
                   {
                       Console.Write(B[i, j, k] + " ");
                   }
                   Console.WriteLine();
               }
               Console.WriteLine();
           }
           Console.ReadKey();
       }
   }
}

Natija quyidagi ko’rinishda chiqadi:

1 2 3 4 5 6 7 8 9 10 11 12

13 14 15 16 17 18 19 20 21 22 23 24

Massivlar daraja yoki o'lchovlar soni kabi tushuncha bilan tavsiflanadi. Massivlar 1, 2, 3 yoki n o’lchamli bo’lishi mumkin. Ko’p o’lchmali massivlarni 2 o’lchamli massivlar misolida ko’rib boramiz Bir o’lchovli massivlarni bitta gorizontal qator kabi tasavvur qilishimiz mumkin, misol uchun:

	int[] nums1 = new int[] { 0, 1, 2, 3, 4 };

Bu massivning vizual ko’rinishi

0 1 2 3 4

Endi esa 2 o’lchamli massivga misol ko’ramiz:

	int[,] nums2 = { { 0, 1, 2 }, { 3, 4, 5 } };

Vizual ko’rinishda bu massiv:

0 1 2 3 4 5

Ko’p o’lchamli massivlarni e’lon qilish uchun kvadrat qavs ichiga vergul qo’yiladi, yani [,] ikki o’lchamli massiv, [,,] uch o’lchamli massiv va hokazo.

int[,] arr2d; // ikki o’lchamli massiv
int[,,] arr3d; // uch o’lchamli massiv
int[,,,] arr4d; // to’rt o’lchamli massiv
int[,,,,] arr5d; // besh o’lchamli massiv