Массивҳое, ки мо то ин дам муоина намудем массивҳои якченака номида мешаванд. Дар C++ ташкили массивҳои бисёрченака низ имконпазир аст, ки ин ҷо массивҳои дученакаро дида мебароем. Масалан, барои ифода намудани тахтаи шоҳмот массиви дученакаи 8 бар 8 лозим аст. Массивҳои дученакаро чунин тасаввур кардан мумкин аст:

[ ]   [ ]   [ ]   [ ]   ...   [ ] 
[ ] [ ] [ ] [ ] ... [ ]
[ ] [ ] [ ] [ ] ... [ ]
[ ] [ ] [ ] [ ] ... [ ]
.................................
[ ] [ ] [ ] [ ] ... [ ]

Сохтори умумии эълони массиви дученака чунин аст:

type array_name[size1][size2]; 

Дар ин ҷо type - намуди элементҳои массив, array_name - номи массив, ҳосили зарби size1 ба size2 - миқдори умумии элементҳои массив мебошанд. Қайд кардан зарур аст, ки ҳар як элементи массиви дученака низ рақами тартибии худро дорад ва он бо ду индекс муайян мешавад:

array_name[ i ][ j ], 

ки дар ин ҷо i ва j - индексҳои массив.

Мисол:

//namuna22.cpp 
using namespace std;
#include <iostream>
int main() {
const int n=7, m=9;
int x, y, massiv2[n][m];
for(x=0; x<n; x++) {
for(y=0; y<m; y++) {
massiv2[x][y]=x;
}
}
for(x=0; x<n; x++) {
for(y=0; y<m; y++) {
cout<<massiv2[x][y]<<" ";
}
cout<<endl;
}
return 0;
}

ё ки:

//namuna22a.cpp
using namespace std;
#include <iostream>
int main() {
const int n=7, m=9;
int x, y, massiv2[n][m];
for(x=0; x<n; x++)
for(y=0; y<m; y++)
massiv2[x][y]=x;
for(x=0; x<n; x++) {
for(y=0; y<m; y++)
cout<<massiv2[x][y]<<" ";
cout<<endl;
}
return 0;
}

Мисоли дигар:

//namuna23.cpp
using namespace std;
#include <iostream>
#include <iomanip>
int main() {
const int n=9, m=9;
int x, y, z, massiv2[n][m];
for(x=0; x<n; x++)
for(y=0; y<m; y++) {
z=10*(x+1)+y+1;
massiv2[x][y]=z*z;
}
cout<<" ";
for(x=0; x<n; x++)
cout<<x+1<<" ";
cout<<endl;
cout<<"---";
for(x=0; x<n; x++)
cout<<"-----";
cout<<endl;
for(x=0; x<n; x++) {
cout<<x+1<<" | ";
for(y=0; y<m; y++)
cout<<setw(4)<<massiv2[x][y]<<" ";
cout<<endl;
}
return 0;
}

Дар ин барнома функсияи setw() истифода шудааст (set width - муайян кардани бар). Вазифаи ин функсия аз муайян кардани миқдори мавқеъҳое, ки адади минбаъда дар экран банд мекунад иборат аст. Бо оператори setw(4) мо фармон медиҳем, ки ҳар як элементи массив дар экран 4 мавқеъро ишғол кунад. Ин барои дар шакли зеботар ба экран баровардани ҷадвали квадратҳо зарур аст. Шумо метавонед қисми кодро <<setw(4) тоза кунед ва фарқро бо чашми худ бинед. Ҳамроҳ кардани файли сарлавҳавии <iomanip> низ аз хотир бояд набарояд. Бо функсияҳои дигари ин файли сарлавҳавӣ мо дертар шинос мешавем.

САВОЛҲО БАРОИ МУСТАҲКАМКУНӢ
1. Оид ба массивҳои дученака мисол оред.
2. Матрисаи квадратии тартиби 4 чӣ хел эълон карда мешавад?
3. Элементи массиви дученака чанд индекс дорад?
4. Функсияи setw() барои чӣ лозим аст?