Bir necha indeksli massivlar




Download 27 Kb.
Sana18.09.2023
Hajmi27 Kb.
#82384
Bog'liq
2 massiv
Вода Зам Зам с точки зрения медицины

BIR NECHA INDEKSLI MASSIVLAR
Massivlar bir necha indeksga ega bo'lishlari mumkin. C++ kompilyatorlari
eng kamida 12 ta indeks bilan ishlashlari mumkin. Masalan, matematikadagi
m x n kattalikdagi matritsani ikkita indeksli massiv yordamida berisak
bo'ladi.
int matritsa [4][10];
Yuqorida to'rt satrlik, 10 ustunlik matritsani e'lon qildik. Bir indeksli
massivlar kabi ko'p indeksli massivlarni initsalizatsiya ro'yhati bilan birga
e'lon qilish mumkin. Masalan:
char c[3][4] = {
{ 2, 3,9, 5}, // birinchi satr qiymatlari
{-10, 77,5, 1}, // ikkinchi " "
{ 90,233,3,-3} // uchinchi " "
};
int m[2][2] = {56,77,8,-3}; // oldin birinchi satrga qiymatlar beriladi,
// keyin esa ikkinchi satrga
double d[4][3][6] = {2.55, -46,0988}; // birinchi satrning dastlabki ikkita
// elementi qiymat oladi,
// massivning qolgan elementlari esa
// nolga tenglashtiriladi
Massivning har bir indeksi alohida [] qavslar ichiga olinishi kerak.
Yuqoridagi c[][] massivining ikkinchi satr, birinchi ustunidagi elementi
qiymatini birga oshirish uchun
++c[1][0]; // yoki c[1][0]++;
// c[1][0] += 1;
// c[1][0] = c[1][0] + 1;
deb yozishimiz mumkin. Massiv indekslari 0 dan boshlanishini unutmaslik zarur.
Agar
++c[1,0];
deb yozganimizda hato bo'lar edi. C++ bu yozuvni
++c[0];
deb tushunar edi, chunki kompilyator vergul bilan ajratilgan ro'yhatning
eng ohirgi elementini qabul qilardi. Hullas, C++ dagi ko'p indeksli massivlar
dasturchiga behisob imkoniyatlar beradi. Undan tashqari, ular hotirada statik
joylashganligi uchun ularning ishlash tezligi kattadir.
C++ dagi ko'p indeksli massivlar hotirada ketma-ket joylashgandir. Shu sababli
agar massiv funksiyaga kirish parametri sifatida berilsa, faqat birinchi
indeks tushurilib qoldiriladi, qolgan indekslar esa yozilishi shartdir.
Aks taqdirda funksiya massiv kattaligini to'g'ri keltirib chiqarolmaydi.
Massiv parametrli bir funksiya e'lonini beraylik.
//Ko'p indeksli massivlar
# include
int indeks = 3;
int intArray[indeks][4] = {}; // hamma elementlar 0 ga tenglashtirildi
void printArray(int mass[][4], int idx){ // funksiya e'loni
for (int i = 0; i < idx; i++) { // massivning birinchi indeksini
// o'zgartirsa bo'ladi
for (int k = 0; k < 4; k++){ // massivning ikkinchi indeksi o'zgarmaydi
cout << mass[i][k];
}
cout << endl;
}
return;
}
...
int main()
{
...
printArray(intArray); // funksiya chaqirig'i
...
return (0);
}
Massivning indekslarini funksiyaga bildirish yana muammoligicha qoladi.
Albatta, birinchi indeksdan tashqari qolgan boshqa indekslar kattaligini
funksiya ichida berish ma'noga egadir. Lekin birinchi indeks kattaligini
tashqaridan, qo'shimcha parametr sifatida bersak, funksiyamiz chiroyliroq
chiqadi, turli kattalikdagi massivlarni o'lish imkoniga ega bo'ladi.
Download 27 Kb.




Download 27 Kb.