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.