C
C
á
á
c thu
c thu
ậ
ậ
t to
t to
á
á
n trên m
n trên m
ả
ả
ng
ng
hai chi
hai chi
ề
ề
u
u
Nguy
Nguy
ễ
ễ
n Đông H
n Đông H
à
à
Khoa CNTT
Khoa CNTT
–
–
ĐH KHTN
ĐH KHTN
N
N
ộ
ộ
i dung
i dung
Duy
Duy
ệ
ệ
t m
t m
ả
ả
ng 2 chi
ng 2 chi
ề
ề
u
u
T
T
í
í
nh t
nh t
ổ
ổ
ng s
ng s
ố
ố
, t
, t
í
í
ch s
ch s
ố
ố
Đ
Đ
ế
ế
m
m
T
T
ì
ì
m ki
m ki
ế
ế
m
m
T
T
ì
ì
m ph
m ph
ầ
ầ
n t
n t
ử
ử
l
l
ớ
ớ
n nh
n nh
ấ
ấ
t, nh
t, nh
ỏ
ỏ
nh
nh
ấ
ấ
t
t
Duy
Duy
ệ
ệ
t h
t h
ế
ế
t c
t c
á
á
c ph
c ph
ầ
ầ
n t
n t
ử
ử
c
c
ủ
ủ
a m
a m
ả
ả
ng
ng
1 1 2 2 5
7 5 4 2 5
7 8 9 3 8
M
M
ả
ả
ng a[3][5]:
ng a[3][5]:
so_dong = 3;
so_dong = 3;
so_cot = 5;
so_cot = 5;
Duy
Duy
ệ
ệ
t h
t h
ế
ế
t c
t c
á
á
c ph
c ph
ầ
ầ
n t
n t
ử
ử
c
c
ủ
ủ
a m
a m
ả
ả
ng
ng
for(i = 0; i < so_dong; i++)
for(j = 0; j < so_cot; j++)
{
/* Xử lý phần tử a[i][j] */
}
Duy
Duy
ệ
ệ
t c
t c
á
á
c ph
c ph
ầ
ầ
n t
n t
ử
ử
trên c
trên c
ù
ù
ng dòng ho
ng dòng ho
ặ
ặ
c c
c c
ộ
ộ
t
t
for(j = 0; j < so_cot; j++)
{
/* Xử lý phần tử a[k][j] */
}
Duyệt các phần tử trên dòng có chỉ số k
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
ng ch
é
é
o c
o c
ủ
ủ
a ma tr
a ma tr
ậ
ậ
n vuông
n vuông
for(i = 0; i < n; i++)
{
/* Xử lý phần tử a[i][i] */
}
Đường chéo chính
Đường chéo phụ
for(i = 0; i < n; i++)
{
/* Xử lý phần tử a[n-1-i][i] */
}
T
T
í
í
nh t
nh t
ổ
ổ
ng c
ng c
á
á
c ph
c ph
ầ
ầ
n t
n t
ử
ử
trên 1 dòng
trên 1 dòng
int tong = 0;
for(j = 0; j < so_cot; j++)
{
tong = tong + a[k][j]
}
Tính tổng các phần tử trên dòng chỉ số k
T
T
í
í
nh t
nh t
ổ
ổ
ng c
ng c
á
á
c s
c s
ố
ố
ch
ch
ẵ
ẵ
n trên đư
n trên đư
ờ
ờ
ng ch
ng ch
é
é
o ch
o ch
í
í
nh
nh
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;
}
T
T
í
í
nh t
nh t
ổ
ổ
ng c
ng c
á
á
c s
c s
ố
ố
ch
ch
ẵ
ẵ
n trên đư
n trên đư
ờ
ờ
ng ch
ng ch
é
é
o ch
o ch
í
í
nh
nh
T
T
í
í
nh t
nh t
í
í
ch c
ch c
á
á
c s
c s
ố
ố
l
l
ẻ
ẻ
trên đư
trên đư
ờ
ờ
ng ch
ng ch
é
é
o ph
o 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;
}
T
T
í
í
nh t
nh t
ổ
ổ
ng c
ng c
á
á
c s
c s
ố
ố
l
l
ẻ
ẻ
trên đư
trên đư
ờ
ờ
ng ch
ng ch
é
é
o ph
o ph
ụ
ụ
T
T
í
í
nh t
nh t
í
í
ch c
ch c
á
á
c s
c s
ố
ố
l
l
ẻ
ẻ
trên đư
trên đư
ờ
ờ
ng ch
ng ch
é
é
o ph
o 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;
}
T
T
í
í
nh t
nh t
ổ
ổ
ng c
ng c
á
á
c s
c s
ố
ố
l
l
ẻ
ẻ
trên đư
trên đư
ờ
ờ
ng ch
ng ch
é
é
o ph
o ph
ụ
ụ
Đ
Đ
ế
ế
m c
m c
á
á
c s
c s
ố
ố
dương trong ph
dương trong ph
ầ
ầ
n tam gi
n tam gi
á
á
c ph
c ph
í
í
a trên
a trên
đư
đư
ờ
ờ
ng ch
ng ch
é
é
o ch
o ch
í
í
nh
nh
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;
}
S
S
ử
ử
d
d
ụ
ụ
ng 1 bi
ng 1 bi
ế
ế
n đ
n đ
ế
ế
m đ
m đ
ể
ể
ghi nh
ghi nh
ậ
ậ
n s
n s
ố
ố
ph
ph
ầ
ầ
n t
n t
ử
ử
th
th
ỏ
ỏ
a đi
a đi
ề
ề
u ki
u ki
ệ
ệ
n
n
Đi
Đi
ề
ề
u ki
u ki
ệ
ệ
n c
n c
ủ
ủ
a c
a c
á
á
c ph
c ph
ầ
ầ
n t
n t
ử
ử
ph
ph
í
í
a trên đư
a trên đư
ờ
ờ
ng ch
ng ch
é
é
o ch
o ch
í
í
nh l
nh l
à
à
i >j
i >j
Đi
Đi
ề
ề
u ki
u ki
ệ
ệ
n s
n s
ố
ố
dương l
dương l
à
à
a[i][j] > 0
a[i][j] > 0
T
T
ì
ì
m ki
m ki
ế
ế
m
m
#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;
}
T
T
ì
ì
m xem m
m xem m
ộ
ộ
t s
t s
ố
ố
x c
x c
ó
ó
xu
xu
ấ
ấ
t hi
t hi
ệ
ệ
n trong ph
n trong ph
ầ
ầ
n tam gi
n tam gi
á
á
c ph
c ph
í
í
a
a
trên đư
trên đư
ờ
ờ
ng ch
ng ch
é
é
o ph
o ph
ụ
ụ
c
c
ủ
ủ
a m
a m
ả
ả
ng hay không
ng hay không
T
T
ì
ì
m ph
m ph
ầ
ầ
n t
n t
ử
ử
l
l
ớ
ớ
n nh
n nh
ấ
ấ
t trong m
t trong m
ả
ả
ng
ng
#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;
}
Duy
Duy
ệ
ệ
t qua t
t qua t
ấ
ấ
t c
t c
ả
ả
c
c
á
á
c ph
c ph
ầ
ầ
n t
n t
ử
ử
, d
, d
ù
ù
ng m
ng m
ộ
ộ
t bi
t bi
ế
ế
n max đ
n max đ
ể
ể
lưu tr
lưu tr
ữ
ữ
gi
gi
á
á
tr
tr
ị
ị
l
l
ớ
ớ
n nh
n nh
ấ
ấ
t
t
T
T
ì
ì
m ph
m ph
ầ
ầ
n t
n t
ử
ử
l
l
ớ
ớ
n nh
n nh
ấ
ấ
t trong m
t trong m
ả
ả
ng
ng
#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;
}
Duy
Duy
ệ
ệ
t qua t
t qua t
ấ
ấ
t c
t c
ả
ả
c
c
á
á
c ph
c ph
ầ
ầ
n t
n t
ử
ử
, d
, d
ù
ù
ng m
ng m
ộ
ộ
t bi
t bi
ế
ế
n max đ
n max đ
ể
ể
lưu tr
lưu tr
ữ
ữ
gi
gi
á
á
tr
tr
ị
ị
l
l
ớ
ớ
n nh
n nh
ấ
ấ
t
t
B
B
à
à
i t
i t
ậ
ậ
p
p
Chương
Chương
5: 6,7,8,9
5: 6,7,8,9