C++ massivlari
C++ tilida massiv bir xil turdagi bir nechta qiymatlarni saqlashi mumkin bo'lgan o'zgaruvchidir. Masalan,
Aytaylik, sinfda 27 o'quvchi bor va biz ularning barcha baholarini saqlashimiz kerak. 27 ta alohida o'zgaruvchini yaratish o'rniga, biz oddiygina massiv yaratishimiz mumkin:
double grade[27];
Bu yerda grade double tipidagi maksimal 27 ta elementni sig‘dira oladigan massivdir.
C++ da massivlarning o‘lchami va turini uning e’lon qilinganidan keyin o‘zgartirib bo‘lmaydi.
dataType arrayName[arraySize];
Masalan,
int x[6];
Bu yerga,
int - type of element to be stored6 - massivning o'lchamiC++ tilida massivdagi har bir element raqam bilan bog'langan. Raqam massiv indeksi sifatida tanilgan. Biz ushbu indekslar yordamida massiv elementlariga kirishimiz mumkin.
// massiv elementlariga kirish uchun sintaksis
array[index];
Yuqorida ko'rgan x massivni ko'rib chiqing.
Elements of an array in C++

n bo'lsa, oxirgi element (n-1) indeksida saqlanadi. Bu misolda x[5] oxirgi element hisoblanadi.Masalan, x[0] ning boshlang'ich manzili 2120 deylik. Keyin, keyingi x[1] elementining manzili 2124, x[2] manzili 2128 bo'ladi va hokazo. Bu yerda har bir elementning hajmi 4 ga oshiriladi. Buning sababi int hajmi 4 bayt.
C++ da deklaratsiya paytida massivni ishga tushirish mumkin. Masalan,
//
int x[6] = {19, 10, 8, 17, 9, 15};
C++ Array elements and their data

Deklaratsiya paytida massivni ishga tushirishning yana bir usuli:
//
int x[] = {19, 10, 8, 17, 9, 15};
Bu erda biz massivning o'lchamini eslatmadik. Bunday hollarda kompilyator o'lchamni avtomatik ravishda hisoblab chiqadi.
C++ da, agar massiv n o'lchamiga ega bo'lsa, biz massivda n tagacha elementlarni saqlashimiz mumkin. Biroq, agar biz n dan kamroq elementlarni saqlasak nima bo'ladi.
Masalan,
// massivda faqat 3 ta elementni saqlang
int x[6] = {19, 10, 8};
Bu erda x massivi 6 o'lchamiga ega. Biroq, biz uni faqat 3 elementlari bilan ishga tushirdik.
Bunday hollarda kompilyator qolgan joylarga tasodifiy qiymatlarni belgilaydi. Ko'pincha, bu tasodifiy qiymat oddiygina 0 dir.
Massivning bo'sh a'zolariga avtomatik ravishda 0 qiymati beriladi

int mark[5] = {19, 10, 8, 17, 9}
// 4-elementni 9 ga o'zgartiring
mark[3] = 9;
// foydalanuvchidan ma'lumot oling
// qiymatni uchinchi holatda saqlang
cin >> mark[2];
// foydalanuvchidan ma'lumot oling
// i holatiga kiriting
cin >> mark[i-1];
// massivning birinchi elementini chop eting
cout << mark[0];
// massivning uchinchi elementini chop eting
cout >> mark[i-1];
#include <iostream>
using namespace std;
int main() {
int numbers[5] = {7, 5, 6, 12, 35};
cout << "The numbers are: ";
// Massiv elementlarini chop etish
// for loop asosidagi diapazondan o'tkazish
for (int n : numbers) {
cout << n << " ";
}
cout << "\nThe numbers are: ";
// Massiv elementlarini chop etish
// an'anaviy for loop va jo'natish
for (int i = 0; i < 5; ++i) {
cout << numbers[i] << " ";
}
return 0;
}
Chiqish
The numbers are: 7 5 6 12 35
The numbers are: 7 5 6 12 35
Bu erda biz i = 0 dan i = 4 ga takrorlash uchun for loop dan foydalandik. Har bir iteratsiyada biz numbers[i] ni chop etdik.
Massiv elementlarini chop etish uchun biz yana diapazonga asoslangan for siklidan foydalandik. Ushbu sikl haqida ko'proq bilish uchun C++ Ranged for Loop ni tekshiring.
#include <iostream>
using namespace std;
int main() {
int numbers[5];
cout << "Enter 5 numbers: " << endl;
// foydalanuvchidan massivga kirishni saqlash
for (int i = 0; i < 5; ++i) {
cin >> numbers[i];
}
cout << "The numbers are: ";
// massiv elementlarini chop etish
for (int n = 0; n < 5; ++n) {
cout << numbers[n] << " ";
}
return 0;
}
Chiqish
Enter 5 numbers:
11
12
13
14
15
The numbers are: 11 12 13 14 15
Yana bir bor, biz i = 0 dan i = 4 ga takrorlash uchun for siklidan foydalandik. Har bir iteratsiyada biz foydalanuvchidan ma'lumot oldik va uni numbers[i] da saqladik.
Keyin, biz massivning barcha elementlarini chop etish uchun boshqa for siklidan foydalandik.
Agar biz 10 o'lchamli massivni e'lon qilsak, u holda massiv indeks 0 dan 9 gacha bo'lgan elementlarni o'z ichiga oladi.
Biroq, agar biz 10 yoki 10 dan ortiq indeksdagi elementga kirishga harakat qilsak, bu aniqlanmagan xatti-harakatlarga olib keladi.
Ushbu turdagi xatolik, biz normal for siklidan foydalanganimizda va massiv elementiga [] operatori yordamida kirishimiz mumkin.
[!NOTE] Ushbu turdagi xatolarni bartaraf qilish uchun biz range based for loop ni afzal ko'rishimiz kerak, bu erda massiv elementlariga kirish uchun bunday operatorlar kerak emas.
#include <iostream>
using namespace std;
int main() {
// massivni o'lchamni ko'rsatmasdan ishga tushirish
double numbers[] = {7, 5, 6, 12, 35, 27};
double sum = 0;
double count = 0;
double average;
cout << "The numbers are: ";
// massiv elementlarini chop etish
// diapazonga foydalanish uchun loopdan jo'natish
for (const double &n : numbers) {
cout << n << " ";
// summasini hisoblang
sum += n;
// raqamni hisoblang. massiv elementlaridan
++count;
}
// summani chop eting
cout << "\nTheir Sum = " << sum << endl;
// o'rtachani toping
average = sum / count;
cout << "Their Average = " << average << endl;
return 0;
}
Chiqish
The numbers are: 7 5 6 12 35 27
Their Sum = 92
Their Average = 15.3333
Ushbu dasturda:
double massivini ishga tushirdik, lekin uning hajmini ko'rsatmasdan. Shuningdek, biz uchta double o'zgaruvchisini e'lon qildik: sum, count va o'rtacha. Bu erda sum =0 va count = 0 .for siklidan foydalandik. Davrning har bir iteratsiyasida biz joriy massiv elementini summaga qo'shamiz.1 ga oshiramiz, shunda massiv hajmini for siklining oxiriga qadar olishimiz mumkin.
4.Barcha elementlarni chop etgandan so'ng, biz barcha raqamlarning yig'indisini va o'rtachasini chop etamiz. Raqamlarning o'rtacha qiymati average = sum / count; tomonidan berilganShuningdek oʻqing