9. Massivlar

Oldingi bo‘limlarda o‘zgaruvchilar bilan ishlashni o‘rgandik.

Masalan:

int yosh = 15;

Bu bitta qiymatni saqlaydi.

Lekin bir nechta sonlarni saqlash kerak bo‘lsa-chi?

Masalan:

10
20
30
40
50

Har bir son uchun alohida o‘zgaruvchi yaratish mumkin:

int son1 = 10;
int son2 = 20;
int son3 = 30;
int son4 = 40;
int son5 = 50;

Lekin bu usul juda qulay emas.

Buning o‘rniga massivdan foydalanamiz.


Massiv nima?

Massiv — bir xil turdagi bir nechta qiymatlarni bitta nom ostida saqlash uchun ishlatiladi.

Masalan:

int sonlar[5] = {10, 20, 30, 40, 50};

Bu yerda sonlar nomli massivda 5 ta son saqlanmoqda.

Uni shunday tasavvur qilish mumkin:

[10] [20] [30] [40] [50]

Massiv yaratish

Massivning oddiy ko‘rinishi:

tur nomi[o‘lcham];

Masalan:

int sonlar[5];

Bu yerda:

  • int — massivda butun sonlar saqlanishini bildiradi.
  • sonlar — massivning nomi.
  • 5 — massivda 5 ta element borligini bildiradi.

Massivga qiymat berish

Massivga yaratish vaqtida qiymat berish mumkin:

int sonlar[5] = {10, 20, 30, 40, 50};

Bu massivda:

10
20
30
40
50

sonlari bor.


Massiv indekslari

C tilida massivning eng muhim qoidalaridan biri:

Massiv indeksi 0 dan boshlanadi.

Masalan:

int sonlar[5] = {10, 20, 30, 40, 50};

Indekslar quyidagicha:

Indeks:   0    1    2    3    4
          ↓    ↓    ↓    ↓    ↓
Qiymat:  10   20   30   40   50

Demak:

sonlar[0] → 10
sonlar[1] → 20
sonlar[2] → 30
sonlar[3] → 40
sonlar[4] → 50

Birinchi elementni olish

Birinchi elementning indeksi 0.

Masalan:

#include <stdio.h>

int main() {
    int sonlar[5] = {10, 20, 30, 40, 50};

    printf("%d", sonlar[0]);

    return 0;
}

Natija:

10

Ikkinchi elementni olish

Ikkinchi elementning indeksi 1.

printf("%d", sonlar[1]);

Natija:

20

Shuning uchun indekslarni eslab qoling:

sonlar[0] → birinchi
sonlar[1] → ikkinchi
sonlar[2] → uchinchi

Massiv elementini o‘zgartirish

Massivdagi qiymatni o‘zgartirish mumkin.

Masalan:

int sonlar[5] = {10, 20, 30, 40, 50};

sonlar[0] = 100;

Endi massiv:

100
20
30
40
50

bo‘ladi.


Massiv elementlarini chiqarish

Har bir elementni alohida chiqarish mumkin:

#include <stdio.h>

int main() {
    int sonlar[5] = {10, 20, 30, 40, 50};

    printf("%d\n", sonlar[0]);
    printf("%d\n", sonlar[1]);
    printf("%d\n", sonlar[2]);
    printf("%d\n", sonlar[3]);
    printf("%d\n", sonlar[4]);

    return 0;
}

Natija:

10
20
30
40
50

Lekin 5 ta element uchun 5 ta printf() yozish shart emas.

Buning uchun for siklidan foydalanamiz.


Massiv va for

Massivlar bilan for sikli juda ko‘p ishlatiladi.

#include <stdio.h>

int main() {
    int sonlar[5] = {10, 20, 30, 40, 50};

    for (int i = 0; i < 5; i++) {
        printf("%d\n", sonlar[i]);
    }

    return 0;
}

Natija:

10
20
30
40
50

Bu yerda i quyidagi qiymatlarni oladi:

0
1
2
3
4

Shuning uchun sonlar[i] har safar boshqa elementni oladi.


Massiv uzunligi

Masalan:

int sonlar[5];

Bu massivda 5 ta element uchun joy bor.

Indekslar:

0
1
2
3
4

bo‘ladi.

Oxirgi element:

sonlar[4]

bo‘ladi.

sonlar[5] esa to‘g‘ri emas, chunki indeks 5 mavjud emas.


Massivdagi sonlarning yig‘indisi

Massivdagi barcha sonlarni qo‘shishimiz mumkin.

Masalan:

#include <stdio.h>

int main() {
    int sonlar[5] = {10, 20, 30, 40, 50};
    int yigindi = 0;

    for (int i = 0; i < 5; i++) {
        yigindi = yigindi + sonlar[i];
    }

    printf("%d", yigindi);

    return 0;
}

Natija:

150

Chunki:

10 + 20 + 30 + 40 + 50 = 150

float massiv

Massivda faqat int emas, boshqa ma'lumot turlarini ham saqlash mumkin.

Masalan:

float narxlar[3] = {10.5, 20.5, 30.5};

Bu massivda uchta kasr son bor.


char massiv

char turidan ham massiv yaratish mumkin.

Masalan:

char harflar[3] = {'A', 'B', 'C'};

Bu massiv:

harflar[0] → A
harflar[1] → B
harflar[2] → C

qiymatlariga ega.

char massivlari bilan keyingi bo‘limda matnlar bilan ishlashni o‘rganamiz.


Amaliy misol

O‘quvchilarning ballarini massivda saqlaymiz:

#include <stdio.h>

int main() {
    int ballar[5] = {90, 85, 75, 95, 80};

    for (int i = 0; i < 5; i++) {
        printf("%d\n", ballar[i]);
    }

    return 0;
}

Natija:

90
85
75
95
80

Amaliy mashqlar

1-mashq

Quyidagi massivni yarating:

10
20
30
40
50

Keyin for yordamida barcha elementlarni ekranga chiqaring.

2-mashq

Quyidagi massivning birinchi elementini chiqaring:

int sonlar[5] = {15, 25, 35, 45, 55};

3-mashq

Yuqoridagi massivning oxirgi elementini chiqaring.

4-mashq

Quyidagi massivdagi barcha sonlarning yig‘indisini toping:

int sonlar[5] = {5, 10, 15, 20, 25};

Natija:

75

bo‘lishi kerak.

5-mashq

Quyidagi kod nima chiqaradi?

int sonlar[4] = {10, 20, 30, 40};

printf("%d", sonlar[2]);

Avval javobni o‘ylab ko‘ring, keyin dasturni ishga tushirib tekshiring.


Muhim narsalarni eslab qoling

Massiv yaratish:

int sonlar[5];

Qiymat berish:

int sonlar[5] = {10, 20, 30, 40, 50};

Elementga murojaat qilish:

sonlar[0]

Massiv indekslari 0 dan boshlanadi.

Masalan:

sonlar[0] → birinchi element
sonlar[1] → ikkinchi element
sonlar[2] → uchinchi element

Massivlar bilan for sikli juda ko‘p ishlatiladi:

for (int i = 0; i < 5; i++) {
    printf("%d\n", sonlar[i]);
}

Xulosa

O‘zgaruvchi bitta qiymatni saqlashi mumkin:

int yosh = 15;

Massiv esa bir nechta qiymatni saqlashi mumkin:

int yoshlar[5] = {15, 16, 14, 17, 15};

Massivlar dasturlashda juda ko‘p ishlatiladi.