11-дәріс
Тақырып. Екі өлшемді массивтермен жұмыс Жоспар: Екі өлшемді массивтер
Кілттік сөздер: массив, индекс
С, С++ тілдері көпөлшемді массивтерді құруға мүмкіндік береді. Көпөлшемді массивтің қарапайым түрі – екі өлшемді массив. Көп өлшемді массив әрбір өлшемді квадрат жақшада көрсетумен беріледі. Екі өлшемді массивті матрица деп те атайды. Екі өлшемді массивтің әрбір элементі екі индекстан тұрады, олар: жол және бағана нөмірлері. Сондықтан, екі өлшемді массивтермен жұмыста екі цикл қолдану қажет. Егер бірінші цикл параметрінің мәндері матрица жолының нөмірлері болса, онда екінші цикл параметрінің мәндері оның бағандарының нөмірлері (немесе керісінше) болады.
Екі өлшемді массивті былай сипаттаймыз:
тип айнымалы_аты [n] [m];
Мұндағы тип массив элементтерінің типі, айнымалы_аты – матрица аты, n — жолдар саны, m — бағандар саны. Жолдар 0 ден n-1 -ге дейін, бағандар 0 ден m-1-ге дейін нөмірленеді.
Мысалы:
int math[6][8];
Оператор алты жолдан және сегіз бағанадан тұратын екі өлшемді массивтің сипаттамасын береді, жадта мұндай массив тізбек торларында жоласты орналасады. Көп өлшемді массив келесі элементке өту кезінде соңғы элементі тезірек өзгертетіндей болып орналасады.
Екі өлшемді массив элементтерін енгізу және шығару. Келесі мысалда екі өлшемді массивке 1- ден 12-ге дейінгі сандар формула бойынша енгізіледі де, соңынан нәтиже экранға шығады.
С тілінде жазылуы:
#include
int main(void)
{
int t,i, num[3][4];
/* сандарды енгізу */
for(t=0; t<3; ++t)
for (i=0; i<4; ++i)
num[t][i] = (t*4)+i+1;
/* сандарды шығару */
for (t=0; t<3; ++t)
{
for (i=0; i<4; ++i)
printf("%d ",num[t][i]);
printf ("\n");
}
return 0;
}
Бұл мысалда num[0][0] мәні 1, num[0][1] мәні 2, num[0][2] мәні 3, осы сияқты num[2][3] мәні 12 – ге тең болады.
С++ тілінде жазылуы:
#include
using namespace std;
int main()
{
int i,t,num[3][4];
for(t=0;t<3;++t) {
for(i=0;i<4;++i) {
num[t][i]=(t*4)+i+1;
cout<}
cout<<'\n';
}
return 0;
}
Блок-схемада A[n] [m] матрицасының элементтерін енгізу көрсетілген.
Енді матрицаның кейбір қасиеттерін қарастырайық:
егер жол мен баған нөмірлері бір-біріне тең болса (i = j), онда элемент бас диагоналда орналасады;
егер жол нөмірі баған нөмірінен артық болса (i > j), онда элемен бас диагоналдың төменгі жағында орналасады;
егер жол нөмірі баған нөмірінен кем болса (i < j), онда элемен бас диагоналдың жоғарғы жағында орналасады.
Мысал: Бас диагоналдың жоғары жағында орналасқан матрица элементтерінің қосындысын табу (сурет).
Есептің шығарылуы:
#include
using namespace std;
int main()
{
int S, i, j, N, M, a[20][20];
cout<<"N="; cin>>N;
cout<<"M="; cin>>M;
cout<<"Матрицаны енгізіңіз А \n";
for (i=0; ifor (j=0; jcin>>a[i][j];
for (S=i=0; ifor (j=0; j//егер элемент бас диагоналдан жоғары орналасса, қосындыны арттырамыз if (j>i) S+=a[i][j];
cout<<"S="<return 0;}
}
Пайдаланылатын әдебиеттер:
Б.А.Урмашев, Т.А.Шмыгалева Программирование на алгоритмическом языке С++: учебное пособие.-Алматы: Қазақ университеті, 2020.-129 с.
Балабекова М.Ж., Қожамқұлова Ж.Ж. С++ және C++Builder орталарында бағдарламалау: оқу құралы.-Алматы:ЭСПИ, 2021.-136 б.
Достарыңызбен бөлісу: |