CCáác thu

n trên mảảng ng

c thuậật tot toáán trên m hai chiềềuu hai chi

n Đông Hàà NguyNguyễễn Đông H ĐH KHTN Khoa CNTT –– ĐH KHTN Khoa CNTT

i dung NNộội dung

(cid:132)(cid:132) DuyDuyệệt mt mảảng 2 chi ng 2 chiềềuu (cid:132)(cid:132) TTíính tnh tổổng sng sốố, t, tíích sch sốố (cid:132)(cid:132) ĐĐếếmm (cid:132)(cid:132) TTììm kim kiếếmm (cid:132)(cid:132) TTììm phm phầần tn tửử llớớn nhn nhấất, nh

t, nhỏỏ nhnhấấtt

DuyDuyệệt ht hếết ct cáác phc phầần tn tửử ccủủa ma mảảngng

ng a[3][5]: (cid:132)(cid:132) MMảảng a[3][5]: so_dong = 3; (cid:132)(cid:132) so_dong = 3; so_cot = 5; (cid:132)(cid:132) so_cot = 5;

1

1

2

2

5

7

5

4

2

5

7

8

9

3

8

DuyDuyệệt ht hếết ct cáác phc phầần tn tửử ccủủa ma mảảngng

for(i = 0; i < so_dong; i++)

for(j = 0; j < so_cot; j++) {

/* Xử lý phần tử a[i][j] */ ....

}

trên cùùng dòng ho

ng dòng hoặặc cc cộộtt

DuyDuyệệt ct cáác phc phầần tn tửử trên c (cid:132) Duyệt các phần tử trên dòng có chỉ số k

for(j = 0; j < so_cot; j++)

{

/* Xử lý phần tử a[k][j] */ ....

(cid:132) Duyệt các phần tử trên cột có chỉ số k

}

for(i = 0; i < so_dong; i++)

{

/* Xử lý phần tử a[i][k] */ ....

}

ng chééo co củủa ma tr

n vuông a ma trậận vuông

ĐưĐườờng ch (cid:132) Đường chéo chính

for(i = 0; i < n; i++)

{ /* Xử lý phần tử a[i][i] */

....

(cid:132) Đường chéo phụ

}

for(i = 0; i < n; i++)

{ /* Xử lý phần tử a[n-1-i][i] */

....

}

trên 1 dòng TTíính tnh tổổng cng cáác phc phầần tn tửử trên 1 dòng

(cid:132) Tính tổng các phần tử trên dòng chỉ số k

int tong = 0; for(j = 0; j < so_cot; j++)

{

tong = tong + a[k][j]

}

TTíính tnh tổổng cng cáác sc sốố chchẵẵn trên đư

n trên đườờng ch

ng chééo cho chíínhnh

(cid:132)(cid:132) TTíính tnh tổổng cng cáác sc sốố chchẵẵn trên đư

n trên đườờng ch ng chééo cho chíínhnh

int Cheo1Chan (int a[5][5]) {

int tong = 0; for(i = 0; i < 5; i++) {

if(a[i][i]%2 == 0)

tong = tong + a[i][i];

} return tong;

}

TTíính tnh tíích cch cáác sc sốố llẻẻ trên đư

trên đườờng ch

ng chééo pho phụụ

(cid:132)(cid:132) TTíính tnh tổổng cng cáác sc sốố llẻẻ trên đư

trên đườờng ch ng chééo pho phụụ

int Cheo2Phu (int a[5][5]) {

int tong = 0; for(i = 0; i < 5; i++) {

if(a[i][i]%2 == 1)

tong = tong + a[5-1-i][i];

} return tong;

}

TTíính tnh tíích cch cáác sc sốố llẻẻ trên đư

trên đườờng ch

ng chééo pho phụụ

(cid:132)(cid:132) TTíính tnh tổổng cng cáác sc sốố llẻẻ trên đư

trên đườờng ch ng chééo pho phụụ

int Cheo2Phu (int a[5][5]) {

int tong = 0; int i,j; for(i = 0; i < 5; i++) {

if(a[i][i]%2 == 1)

tong = tong + a[5-1-i][i];

} return tong;

}

ĐĐếếm cm cáác sc sốố dương trong ph

dương trong phầần tam gi

a trên n tam giáác phc phíía trên

ng chééo cho chíính nh ghi nhậận sn sốố phphầần tn tửử ththỏỏa đia điềều kiu kiệệnn

a trên đườờng ch

i >j ng chééo cho chíính lnh làà i >j

đưđườờng ch ng 1 biếến đn đếếm đm đểể ghi nh (cid:132)(cid:132) SSửử ddụụng 1 bi (cid:132)(cid:132) ĐiĐiềều kiu kiệện cn củủa ca cáác phc phầần tn tửử phphíía trên đư a[i][j] > 0 dương làà a[i][j] > 0 (cid:132)(cid:132) ĐiĐiềều kiu kiệện sn sốố dương l int TamGiacTrenDuong (int a[5][5]) {

int dem = 0; int i,j; for(i = 0; i < 5; i++)

for(j = 0; j < 5; j++) {

if(i <= j && a[i][j] > 0)

dem++;

} return dem;

}

TTììm kim kiếếm m t hiệện trong ph

m xem mộột st sốố x cx cóó xuxuấất hi

n trong phầần tam gi

n tam giáác phc phíía a

(cid:132)(cid:132) TTììm xem m trên đườờng ch trên đư

ng hay không ng chééo pho phụụ ccủủa ma mảảng hay không

#define SIZE 5 int TimTrenCheo2 (int a[SIZE][SIZE], int x) {

int i,j; for(i = 0; i < SIZE; i++)

for(j = 0; j < SIZE; j++) {

if(i+j<=SIZE-1 && a[i][j] == x)

return 1;

}

return 0;

}

TTììm phm phầần tn tửử llớớn nhn nhấất trong m (cid:132)(cid:132) DuyDuyệệt qua t

t trong mảảng ng lưu trữữ n max đểể lưu tr t biếến max đ

t qua tấất ct cảả ccáác phc phầần tn tửử, d, dùùng mng mộột bi

gigiáá trtrịị llớớn nhn nhấấtt

#define SIZE 5 int LonNhat (int a[SIZE][SIZE]) {

int i,j; int max = a[0][0]; for(i = 0; i < SIZE; i++)

for(j = 0; j < SIZE; j++) {

if(a[i][j] > max)

max = a[i][j];

} return max;

}

TTììm phm phầần tn tửử llớớn nhn nhấất trong m (cid:132)(cid:132) DuyDuyệệt qua t

t trong mảảng ng lưu trữữ n max đểể lưu tr t biếến max đ

t qua tấất ct cảả ccáác phc phầần tn tửử, d, dùùng mng mộột bi

gigiáá trtrịị llớớn nhn nhấấtt

#define SIZE 5 int LonNhat (int a[SIZE][SIZE]) {

int i,j; int max = a[0][0]; for(i = 0; i < SIZE; i++)

for(j = 0; j < SIZE; j++) {

if(a[i][j] > max)

max = a[i][j];

} return max;

}

BBàài ti tậập p

(cid:132)(cid:132) Chương

5: 6,7,8,9 Chương 5: 6,7,8,9