Darsliklar C Massiv

C C Massiv

Massiv (array) — bir turdagi bir necha qiymatni ketma-ket, bitta nom ostida saqlaydigan tuzilma. Yuzta talaba bahosini yuzta alohida o’zgaruvchida saqlash o’rinsiz; ularni bitta massivda saqlab, sikl bilan qayta ishlaymiz. Massiv — C’dagi eng asosiy ma’lumot tuzilmasi.

Massivxotirada ketma-ket joylashgan, bir xil turdagi elementlar to’plami. C’da massiv hajmi belgilangandan so’ng o’zgarmaydi. Indeks noldan boshlanadi.

Massiv e’lon qilish

C’da massiv tur nom[hajm] shaklida e’lon qilinadi:

#include <stdio.h>

int main(void) {
    int ballar[5] = {85, 92, 78, 90, 65};
    printf("Birinchi: %d\n", ballar[0]);
    printf("Uchinchi: %d\n", ballar[2]);
    return 0;
}
Birinchi: 85
Uchinchi: 78

Diqqat: ballar[0] — birinchi element, chunki indeks noldan boshlanadi. 5 elementli massivning indekslari 0 dan 4 gacha.

Massiv bo’ylab yurish

Massivning kuchi sikl bilan namoyon bo’ladi. for bilan barcha elementlarni jamlaymiz:

#include <stdio.h>

int main(void) {
    int ballar[5] = {85, 92, 78, 90, 65};
    int yigindi = 0;
    for (int i = 0; i < 5; i++) {
        yigindi += ballar[i];
    }
    printf("Yig'indi: %d\n", yigindi);
    printf("O'rtacha: %d\n", yigindi / 5);
    return 0;
}
Yig'indi: 410
O'rtacha: 82

Bu naqsh — massivni aylanib chiqib, qiymatlarni jamlash — dasturlashda cheksiz ko’p uchraydi.

Muhim: chegara nazorati

C’ning nozik va xavfli tomoni: u massiv chegarasidan chiqishni tekshirmaydi. Mavjud bo’lmagan indeksga murojaat qilsangiz, dastur qulashi yoki “axlat” qiymat berishi mumkin:

#include <stdio.h>

int main(void) {
    int arr[3] = {1, 2, 3};
    /* arr[5] — bu xavfli! chegaradan tashqarida */
    for (int i = 0; i < 3; i++) {   /* to'g'ri: 0 dan 2 gacha */
        printf("%d ", arr[i]);
    }
    printf("\n");
    return 0;
}
1 2 3 

Shuning uchun siklda doim to’g’ri chegara (i < hajm) qo’ying. Bu C’da mas’uliyat dasturchining zimmasida ekanini ko’rsatadigan yaqqol misol.

Ko’p o’lchamli massiv

Massiv ichida massiv — jadval (matritsa) hosil qiladi:

#include <stdio.h>

int main(void) {
    int jadval[2][3] = {{1, 2, 3}, {4, 5, 6}};
    printf("%d\n", jadval[1][2]);   /* ikkinchi qator, uchinchi ustun */
    return 0;
}
6

jadval[1][2] — avval ikkinchi ichki qator, so’ng undagi uchinchi element. Bunday tuzilmalar rasm pikselları va ilmiy hisoblarda ishlatiladi.

Xulosa

Bu bo’limda massiv e’lon qilish, indekslash (noldan), sikl bilan aylanib chiqish, chegara nazorati xavfi va ko’p o’lchamli massivlarni ko’rib chiqdik. Massiv — ko’p ma’lumot bilan ishlashning poydevori. Keyingi darsda satrlar — matn bilan ishlashga o’tamiz.