Mavzu: Ikki o‘lchamli massivlarni tashkil etish
Ishdan maqsad.Ikki o’lchovli massivlar va ular ustida amalllar bajarish ko’nikmalarini oshirish. Dasturini tuzish.
Ikki o’lchamli massiv – bu elementlari bir o’lchamli bo’lgan bir o’lchamli massiv. Boshqacha aytganda bir xil tipli ikkita indeks orqali murojaat qilinadigan jadval shaklidagi ma’lumotlar to’plami. Ikki o’lchamli massivni n ta satr, m ta ustundan iborat jadval ko’rinishida tasvirlash oson, i-satr va j-ustun kesishish nuqtasida a[i][j] elementi qiymati saqlanadi.
Ikki o’lchamli massiv matritsa deb ham nomlanadi.
Matritsa elementlarini kiritish.Matritsaning elementlari qator bo’yicha yuqoridan pastga, ustun bo’yicha chapdan o’nga tartibda kiritiladi. 3x3 matritsa elementlari a11, a12, a13, a21, a22, a23, a31, a32, a33 tartibda kiritiladi. Kiritishni amalga oshirish uchun qator bo’yicha sikl, uning ichida ustun bo’yicha sikl amalga oshirish lozim. Quyidagi blok sxema matritsani kiritish va elementlarining yig;indisini topadi:
C++ dasturlash tilida matritsani tavsiflash bir o’lchamli massivga o’xshash bo’ladi:
[][]
Masalan sartlari 1 dan n gacha, ustunlari 1 dan m gacha bo’lgan amatritsa ochish uchun inta[n+1][m+1]; Quyidagi dasturda matritsa elementlarini kiritish, chiqarish va yig’indisini xisoblash amalga oshirilgan.
#include usingnamespacestd;
int main() {
int n, m;
cin>>n>>m;
int a[n+1][m+1];
for (inti = 1; i<= n; i++) {
for (int j = 1; j <= m; j++) {
cin>>a[i][j];
}
}
// Matritsashaklidachiqarish
for (inti = 1; i<= n; i++) {
for (int j = 1; j <= m; j++) {
cout< }
cout< }
int sum = 0;
for (inti = 1; i<= n; i++) {
for (int j = 1; j <= m; j++) {
sum += a[i][j];
}
}
cout<<"Matritsaelementlariyig'indisi: "<}
Satrlar va ustunlar soni teng bo’lgan(n=m) matritsa kvadrat matritsa deb atatladi.
Kvadrat matritsaning asosiy diagonal elementlari chiqarish dasturi:
for (inti = 1; i<= n; i++) {
cout<}
Asosiy diagonaldan yuqori uchburchak elementlari:
Yuqori uchburchak elementlari ichidan maksimalinitoppish:
int max = a[1][1];
for (inti = 1; i<= n; i++) {
for (int j = i; j <= n; j++) {
if(a[i][j] > max)
max = a[i][j];
}
}
Vazifa: Pastki uchburchak elementlari orasida eng kattasini topishni mustaqil yozing.
Matritsaning satrlari va ustunlari bilan ishlash. Misol. Matritsaning har bir satri elementlari yi’gindilari va har bir ustun elementlari yig’indilaridan massivlar hosil qiling va ularni ekranga chiqaring.
#include
usingnamespacestd;
int main() {
int n, m;
cout<<"n=";
cin>> n;
cout<<"m=";
cin>> m;
int a[n+1][m+1];
for (inti = 1; i<= n; i++) {
for (int j = 1; j <= m; j++) {
cin>>a[i][j];
}
}
ints_r[n+1];//Satrlaryi'gindilarinisaqlovchimassiv
ints_c[m+1];//Ustunlaryig'indisinisaqlovchimassiv
//Satrlarvaustunlaryig'indilariningqiymatlarininolgatenglaymiz
for (inti = 1; i<= n; i++) {
s_r[i] = 0;
}
for (inti = 1; i<= m; i++) {
s_c[i] = 0;
}
for (inti = 1; i<= n; i++) {
for (int j = 1; j <= m; j++) {
s_r[i] += a[i][j]; // a[i][j] element i-satryig'indisinioshiradi
s_c[j] += a[i][j]; // a[i][j] element j-ustunyig'indisinioshiradi
}
}
cout<<"Qatorlaryig'indilari : ";
for (inti = 1; i<= n; i++) {
cout<}
cout< cout<<"Ustunlaryig'indilari : ";
for (inti = 1; i<= m; i++) {
cout<}
}