Tekkislanmagan massivlar
Avvalgi programmada ikkio’lchamli massiv, ya’ni to’g’riburchakli massiv yaratilishi ko’rsatilgan edi. Jadvaliy ko’rinishda to’g’riburchakli massiv – bu ikkio’lchamlik massiv, unda Qatorla uzunligi bir xil. Bundan tashQari, C# da ikkio’lchamli massivning maxsus turini yaratish mumkin, u notekis massiv hisoblanadi. Tekislanmagan massiv – bu tashQi massiv, turli o’lchamlardagi massivlardan tashkil topgan. Notekis massivni turli uzunlikdagi Qatorlarni tashkil Qiluvchi jadval yaratish uchun ishlatish mumkin.
Notekis massivlar chaQirtirilganda har bir o’lchamni alohida ko’rsatish uchun alohida Qovuslar juftligi ishlatiladi. Masalan ikkio’lchamli notekis massiv Quyidagicha chaQiriladi:
Type[][] array-nameqnew type[size][];
Bu yerda Size so’zi massivdagi Qatorlar sonini ko’rsatadi. Qatorlar o’lchami ko’rsatilmaydi va ularga xotira ajratilmaydi. Har bir Qatorga alohida new operatorini ishlatish zarur. Bunday texnologiya turli uzunlikdagi Qatorlarni aniQlashga imkon beradi. Masalan, keyingi kod bilan jagged massivi e’lon Qilinganda xotira faQat tashQi massivga ajratiladi, so’ng esa 3 ta operator bajarilganda xotira har bir ichki massivga ajratiladi:
int[] [] jagged – new int[3] [];
jagged[0] – new int [2];
jagged[1] – new int [3];
jagged[2] – new int [4];
Bu operatorlar ketma-ket bajarilgandan so’ng notekis massiv Quyidagicha ko’rinishga ega:
jagged[0] [0] jagged[0] [1]
jagged[1] [0] jagged[1] [1] jagged[1] [2]
jagged[2] [0] jagged[2] [1] jagged[2] [2] jagged[2] [3]
Bu sxemani ko’rib chiQQandan so’ng nima uchun notekis massiv bunday nom olganini ko’rasiz.
Notekis massiv yaratilganda, uning elementlariga yo’lni kvadrat skobkalardagi xar bir indeksni ko’rsatgan holda topish mumkin. Masalan jagged[2] [1] masiviga 10 Qiymatni berish uchun Quyidagi operatorni ishlaish zarur: jagged[2] [1]q10;
Eslatma: to’g’riburchakli massiv elementlariga yo’lni topish uchun yozuvning o’zgacha formasi ishlatiladi.
Quyidagi programmada notekis ikkio’lchamli massiv ishlatilishi ko’rsatilgan. Massivda aeroportda boish uchun marshrut taksidan foydalanadigan pasajirlar soni haQida ma’lumot saQlanadi. Marshrut taksi xafta kunlari mobaynida bir xil bo’lmagan reyslar sodir etgani sababli ( 10 ta reys begim kunlari va 2 ta dam olish kunlari), ma’lumotlarni saQlash uchun notekis riders masividan foydalanish mumkin. Axamiyat beringki, 2 chi o’lcham birlamchi 5 ta Qatorda 10 Qiymatga ega, Qolgan 2 ta Qatorga – 2.
using system{
public static void main() {
int[] [] riders – new int [7][];
riders [0] q new int[10];
riders [1] q new int[10];
riders [2] q new int[10];
riders [3] q new int[10];
riders [4] q new int[10];
riders [5] q new int[2];
riders [6] q new int[2];
int i, j;
G’G’Massiv elementlariga ayrim Qiymatlar beriladi.
For(i-0; I < 5; iQQ)
For(jq0; j < 10; jQQ)
Riders[i][j] q I Q j Q 10;
Do'stlaringiz bilan baham: |