際際滷

際際滷Share a Scribd company logo
VCVC
&&
BBBB
11
N畛i dung
NMLT - M畉ng hai chi畛u
Kh叩i ni畛m1
Khai b叩o2
Truy xu畉t d畛 li畛u ki畛u m畉ng3
M畛t s畛 bi to叩n tr棚n m畉ng 2 chi畛u4
VCVC
&&
BBBB
22
Ma Tr畉n
NMLT - M畉ng hai chi畛u
0

m-1
0 1  n-1
Am,n
0

n-1
An
0  n-1
VCVC
&&
BBBB
33
Ma Tr畉n
NMLT - M畉ng hai chi畛u
0

n-1
An
0  n-1
0

n-1
0  n-1
0

n-1
0  n-1
d嘆ng = c畛t d嘆ng > c畛t d嘆ng < c畛t
0

n-1
An
0  n-1
0

n-1
0  n-1
0

n-1
0  n-1
d嘆ng + c畛t = n-1 d嘆ng + c畛t > n-1 d嘆ng + c畛t < n-1
VCVC
&&
BBBB
44
Khai b叩o ki畛u m畉ng 2 chi畛u
C炭 ph叩p
 N1, N2: s畛 l動畛ng ph畉n t畛 m畛i chi畛u
V鱈 d畛
NMLT - M畉ng hai chi畛u
typedef <ki畛u c董 s畛> <t棚n ki畛u>[<N1>][<N2>];
typedef int MaTran[3][4];
0
1
2
0 1 2 3
Ki畛u MaTran
VCVC
&&
BBBB
55
Khai b叩o bi畉n m畉ng 2 chi畛u
C炭 ph叩p
 T動畛ng minh
 Kh担ng t動畛ng minh (th担ng qua ki畛u)
NMLT - M畉ng hai chi畛u
<ki畛u c董 s畛> <t棚n bi畉n>[<N1>][<N2>];
typedef <ki畛u c董 s畛> <t棚n ki畛u>[<N1>][<N2>];
<t棚n ki畛u> <t棚n bi畉n>;
<t棚n ki畛u> <t棚n bi畉n 1>, <t棚n bi畉n 2>;
VCVC
&&
BBBB
66
Khai b叩o bi畉n m畉ng 2 chi畛u
V鱈 d畛
 T動畛ng minh
 Kh担ng t動畛ng minh (th担ng qua ki畛u)
NMLT - M畉ng hai chi畛u
int a[10][20], b[10][20];
int c[5][10];
int d[10][20];
typedef int MaTran10x20[10][20];
typedef int MaTran5x10[5][10];
MaTran10x20 a, b;
MaTran11x11 c;
MaTran10x20 d;
VCVC
&&
BBBB
77
Truy xu畉t 畉n m畛t ph畉n t畛
Th担ng qua ch畛 s畛
V鱈 d畛
 Cho m畉ng 2 chi畛u nh動 sau
 C叩c truy xu畉t
 H畛p l畛: a[0][0], a[0][1], , a[2][2], a[2][3]
 Kh担ng h畛p l畛: a[-1][0], a[2][4], a[3][3]
NMLT - M畉ng hai chi畛u
<t棚n bi畉n m畉ng>[<gi叩 tr畛 cs1>][<gi叩 tr畛 cs2>]
int a[3][4];
0
1
2
0 1 2 3
VCVC
&&
BBBB
88
G叩n d畛 li畛u ki畛u m畉ng
Kh担ng 動畛c s畛 d畛ng ph辿p g叩n th担ng th動畛ng
m ph畉i g叩n tr畛c ti畉p gi畛a c叩c ph畉n t畛
V鱈 d畛
NMLT - M畉ng hai chi畛u
int a[5][10], b[5][10];
b = a; // Sai
int i, j;
for (i = 0; i < 5; i++)
for (j = 0; j < 10; j++)
b[i][j] = a[i][j];
VCVC
&&
BBBB
99
Truy畛n m畉ng cho hm
Truy畛n m畉ng cho hm
 Tham s畛 ki畛u m畉ng trong khai b叩o hm gi畛ng
nh動 khai b叩o bi畉n m畉ng
 Tham s畛 ki畛u m畉ng truy畛n cho hm ch鱈nh l 畛a
ch畛 c畛a ph畉n t畛 畉u ti棚n c畛a m畉ng
 C坦 th畛 b畛 s畛 l動畛ng ph畉n t畛 chi畛u th畛 2 ho畉c con tr畛.
 M畉ng c坦 th畛 thay 畛i n畛i dung sau khi th畛c hi畛n hm.
NMLT - M畉ng hai chi畛u
void NhapMaTran(int a[50][100]);
void NhapMaTran(int a[][100]);
void NhapMaTran(int (*a)[100]);
VCVC
&&
BBBB
1010
Truy畛n m畉ng cho hm
Truy畛n m畉ng cho hm
 S畛 l動畛ng ph畉n t畛 th畛c s畛 truy畛n qua bi畉n kh叩c
L畛i g畛i hm
NMLT - M畉ng hai chi畛u
void XuatMaTran(int a[50][100], int m, int n);
void XuatMaTran(int a[][100], int m, int n);
void XuatMaTran(int (*a)[100], int m, int n);
void NhapMaTran(int a[][100], int &m, int &n);
void XuatMaTran(int a[][100], int m, int n);
void main()
{
int a[50][100], m, n;
NhapMaTran(a, m, n);
XuatMaTran(a, m, n);
}
VCVC
&&
BBBB
1111
M畛t s畛 bi to叩n c董 b畉n
Vi畉t ch動董ng tr狸nh con th畛c hi畛n c叩c y棚u c畉u sau
 Nh畉p m畉ng
 Xu畉t m畉ng
 T狸m ki畉m m畛t ph畉n t畛 trong m畉ng
 Ki畛m tra t鱈nh ch畉t c畛a m畉ng
 T鱈nh t畛ng c叩c ph畉n t畛 tr棚n d嘆ng/c畛t/ton ma
tr畉n/動畛ng ch辿o ch鱈nh/n畛a tr棚n/n畛a d動畛i
 T狸m gi叩 tr畛 nh畛 nh畉t/l畛n nh畉t c畛a m畉ng
 
NMLT - M畉ng hai chi畛u
VCVC
&&
BBBB
1212
M畛t s畛 quy 動畛c
Ki畛u d畛 li畛u
C叩c ch動董ng tr狸nh con
 Hm void HoanVi(int x, int y): ho叩n v畛 gi叩 tr畛
c畛a hai s畛 nguy棚n.
 Hm int LaSNT(int n): ki畛m tra m畛t s畛 c坦 ph畉i
l s畛 nguy棚n t畛. Tr畉 v畛 1 n畉u n l s畛 nguy棚n
t畛, ng動畛c l畉i tr畉 v畛 0.
NMLT - M畉ng hai chi畛u
#define MAXD 50
#define MAXC 100
VCVC
&&
BBBB
1313
Th畛 t畛c HoanVi & Hm LaSNT
NMLT - M畉ng hai chi畛u
VCVC
&&
BBBB
1414
Nh畉p Ma Tr畉n
Y棚u c畉u
 Cho ph辿p nh畉p m畉ng a, m d嘆ng, n c畛t
驚 t動畛ng
 Cho tr動畛c m畛t m畉ng 2 chi畛u c坦 d嘆ng t畛i a l MAXD,
s畛 c畛t t畛i a l MAXC.
 Nh畉p s畛 l動畛ng ph畉n t畛 th畛c s畛 m, n c畛a m畛i chi畛u.
 Nh畉p t畛ng ph畉n t畛 t畛 [0][0] 畉n [m-1][n-1].
NMLT - M畉ng hai chi畛u
VCVC
&&
BBBB
1515
Hm Nh畉p Ma Tr畉n
NMLT - M畉ng hai chi畛u
void NhapMaTran(int a[][MAXC], int &m, int &n)
{
printf(Nhap so dong, so cot cua ma tran: );
scanf(%d%d, &m, &n);
int i, j;
for (i=0; i<m; i++)
for (j=0; j<n; j++)
{
printf(Nhap a[%d][%d]: , i, j);
scanf(%d, &a[i][j]);
}
}
VCVC
&&
BBBB
1616
Xu畉t Ma Tr畉n
Y棚u c畉u
 Cho ph辿p nh畉p m畉ng a, m d嘆ng, n c畛t
驚 t動畛ng
 Xu畉t gi叩 tr畛 t畛ng ph畉n t畛 c畛a m畉ng 2 chi畛u t畛 d嘆ng
c坦 0 畉n d嘆ng m-1, m畛i d嘆ng xu畉t gi叩 gi叩 tr畛 c畛a c畛t 0
畉n c畛t n-1 tr棚n d嘆ng 坦.
NMLT - M畉ng hai chi畛u
VCVC
&&
BBBB
1717
Hm Xu畉t Ma Tr畉n
NMLT - M畉ng hai chi畛u
void XuatMaTran(int a[][MAXC], int m, int n)
{
int i, j;
for (i=0; i<m; i++)
{
for (j=0; j<n; j++)
printf(%d , a[i][j]);
printf(n);
}
}
VCVC
&&
BBBB
1818
T狸m ki畉m m畛t ph畉n t畛 trong Ma Tr畉n
Y棚u c畉u
 T狸m xem ph畉n t畛 x c坦 n畉m trong ma tr畉n a k鱈ch
th動畛c mxn hay kh担ng?
驚 t動畛ng
 Duy畛t t畛ng ph畉n c畛a ma tr畉n a. N畉u ph畉n t畛 ang
x辿t b畉ng x th狸 tr畉 v畛 c坦 (1), ng動畛c l畉i tr畉 v畛 kh担ng c坦
(0).
NMLT - M畉ng hai chi畛u
VCVC
&&
BBBB
1919
Hm T狸m Ki畉m
NMLT - M畉ng hai chi畛u
int TimKiem(int a[][MAXC], int m, int n, int x)
{
int i, j;
for (i=0; i<m; i++)
for (j=0; j<n; j++)
if (a[i][j] == x)
return 1;
return 0;
}
VCVC
&&
BBBB
2020
Ki畛m tra t鱈nh ch畉t c畛a m畉ng
Y棚u c畉u
 Cho tr動畛c ma tr畉n a k鱈ch th動畛c mxn. Ma tr畉n a c坦
ph畉i l ma tr畉nton c叩c s畛 nguy棚n t畛 hay kh担ng?
驚 t動畛ng
 C叩ch 1: 畉m s畛 l動畛ng s畛 ngt畛 c畛a ma tr畉n. N畉u s畛
l動畛ng ny b畉ng 炭ng mxn th狸 ma tr畉n ton ngt畛.
 C叩ch 2: 畉m s畛 l動畛ng s畛 kh担ng ph畉i ngt畛 c畛a ma
tr畉n. N畉u s畛 l動畛ng ny b畉ng 0 th狸 ma tr畉n ton ngt畛.
 C叩ch 3: T狸m xem c坦 ph畉n t畛 no kh担ng ph畉i s畛 ngt畛
kh担ng. N畉u c坦 th狸 ma tr畉n kh担ng ton s畛 ngt畛.
NMLT - M畉ng hai chi畛u
VCVC
&&
BBBB
2121
Hm Ki畛m Tra (C叩ch 1)
NMLT - M畉ng hai chi畛u
int KiemTra_C1(int a[][MAXC], int m, int n)
{
int i, j, dem = 0;
for (i=0; i<m; i++)
for (j=0; j<n; j++)
if (LaSNT(a[i][j]==1)
dem++;
if (dem == m*n)
return 1;
return 0;
}
VCVC
&&
BBBB
2222
Hm Ki畛m Tra (C叩ch 2)
NMLT - M畉ng hai chi畛u
int KiemTra_C2(int a[][MAXC], int m, int n)
{
int i, j, dem = 0;
for (i=0; i<m; i++)
for (j=0; j<n; j++)
if (LaSNT(a[i][j]==0)
dem++;
if (dem == 0)
return 1;
return 0;
}
VCVC
&&
BBBB
2323
Hm Ki畛m Tra (C叩ch 2)
NMLT - M畉ng hai chi畛u
int KiemTra_C3(int a[][MAXC], int m, int n)
{
int i, j, dem = 0;
for (i=0; i<m; i++)
for (j=0; j<n; j++)
if (LaSNT(a[i][j]==0)
return 0;
return 1;
}
VCVC
&&
BBBB
2424
T鱈nh t畛ng c叩c ph畉n t畛
Y棚u c畉u
 Cho tr動畛c ma tr畉n a, k鱈ch th動畛c mxn. T鱈nh t畛ng c叩c
ph畉n t畛 tr棚n:
 D嘆ng d, c畛t c
 動畛ng ch辿o ch鱈nh, 動畛ng ch辿o ph畛 (ma tr畉n vu担ng)
 N畛a tr棚n/d動畛i 動畛ng ch辿o ch鱈nh (ma tr畉n vu担ng)
 N畛a tr棚n/d動畛i 動畛ng ch辿o ph畛 (ma tr畉n vu担ng)
驚 t動畛ng
 Duy畛t ma tr畉n v c畛ng d畛n c叩c ph畉n t畛 c坦 t畛a 畛 (d嘆ng,
c畛t) th畛a y棚u c畉u.
NMLT - M畉ng hai chi畛u
VCVC
&&
BBBB
2525
Hm t鱈nh t畛ng tr棚n d嘆ng
NMLT - M畉ng hai chi畛u
int TongDong(int a[][MAXC], int m, int n, int d)
{
int j, tong;
tong = 0;
for (j=0; j<n; j++) // Duy畛t c叩c c畛t
tong = tong + a[d][j];
return tong;
}
VCVC
&&
BBBB
2626
Hm t鱈nh t畛ng tr棚n c畛t
NMLT - M畉ng hai chi畛u
int TongCot(int a[][MAXC], int m, int c)
{
int i, tong;
tong = 0;
for (i=0; i<m; i++) // Duy畛t c叩c d嘆ng
tong = tong + a[i][c];
return tong;
}
VCVC
&&
BBBB
2727
Hm t鱈nh t畛ng 動畛ng ch辿o ch鱈nh
NMLT - M畉ng hai chi畛u
int TongDCChinh(int a[][MAXC], int n)
{
int i, tong;
tong = 0;
for (i=0; i<n; i++)
tong = tong + a[i][i];
return tong;
}
VCVC
&&
BBBB
2828
Hm t鱈nh t畛ng tr棚n 動畛ng ch辿o ch鱈nh
NMLT - M畉ng hai chi畛u
int TongTrenDCChinh(int a[][MAXC], int n)
{
int i, j, tong;
tong = 0;
for (i=0; i<n; i++)
for (j=0; j<n; j++)
if (i < j)
tong = tong + a[i][j];
return tong;
}
VCVC
&&
BBBB
2929
Hm t鱈nh t畛ng d動畛i 動畛ng ch辿o ch鱈nh
NMLT - M畉ng hai chi畛u
int TongTrenDCChinh(int a[][MAXC], int n)
{
int i, j, tong;
tong = 0;
for (i=0; i<n; i++)
for (j=0; j<n; j++)
if (i > j)
tong = tong + a[i][j];
return tong;
}
VCVC
&&
BBBB
3030
Hm t鱈nh t畛ng tr棚n 動畛ng ch辿o ph畛
NMLT - M畉ng hai chi畛u
int TongDCPhu(int a[][MAXC], int n)
{
int i, tong;
tong = 0;
for (i=0; i<n; i++)
tong = tong + a[i][n-i-1];
return tong;
}
VCVC
&&
BBBB
3131
T狸m gi叩 tr畛 l畛n nh畉t c畛a Ma Tr畉n
Y棚u c畉u
 Cho tr動畛c ma tr畉n a, k鱈ch th動畛c mxn. T狸m gi叩 tr畛 l畛n
nh畉t trong ma tr畉n a (g畛i l max)
驚 t動畛ng
 Gi畉 s畛 gi叩 tr畛 max hi畛n t畉i l gi叩 tr畛 ph畉n t畛 畉u ti棚n a[0]
[0]
 L畉n l動畛t ki畛m tra c叩c ph畉n t畛 c嘆n l畉i 畛 c畉p nh畉t max.
NMLT - M畉ng hai chi畛u
VCVC
&&
BBBB
3232
Hm t狸m Max
NMLT - M畉ng hai chi畛u
int TimMax(int a[][MAXC], int m, int n)
{
int i, j, max;
max = a[0][0];
for (i=0; i<m; i++)
for (j=0; j<n; j++)
if (a[i][j] > max)
max = a[i][j];
return max;
}

More Related Content

Nmlt c08 mang2_chieu

  • 1. VCVC && BBBB 11 N畛i dung NMLT - M畉ng hai chi畛u Kh叩i ni畛m1 Khai b叩o2 Truy xu畉t d畛 li畛u ki畛u m畉ng3 M畛t s畛 bi to叩n tr棚n m畉ng 2 chi畛u4
  • 2. VCVC && BBBB 22 Ma Tr畉n NMLT - M畉ng hai chi畛u 0 m-1 0 1 n-1 Am,n 0 n-1 An 0 n-1
  • 3. VCVC && BBBB 33 Ma Tr畉n NMLT - M畉ng hai chi畛u 0 n-1 An 0 n-1 0 n-1 0 n-1 0 n-1 0 n-1 d嘆ng = c畛t d嘆ng > c畛t d嘆ng < c畛t 0 n-1 An 0 n-1 0 n-1 0 n-1 0 n-1 0 n-1 d嘆ng + c畛t = n-1 d嘆ng + c畛t > n-1 d嘆ng + c畛t < n-1
  • 4. VCVC && BBBB 44 Khai b叩o ki畛u m畉ng 2 chi畛u C炭 ph叩p N1, N2: s畛 l動畛ng ph畉n t畛 m畛i chi畛u V鱈 d畛 NMLT - M畉ng hai chi畛u typedef <ki畛u c董 s畛> <t棚n ki畛u>[<N1>][<N2>]; typedef int MaTran[3][4]; 0 1 2 0 1 2 3 Ki畛u MaTran
  • 5. VCVC && BBBB 55 Khai b叩o bi畉n m畉ng 2 chi畛u C炭 ph叩p T動畛ng minh Kh担ng t動畛ng minh (th担ng qua ki畛u) NMLT - M畉ng hai chi畛u <ki畛u c董 s畛> <t棚n bi畉n>[<N1>][<N2>]; typedef <ki畛u c董 s畛> <t棚n ki畛u>[<N1>][<N2>]; <t棚n ki畛u> <t棚n bi畉n>; <t棚n ki畛u> <t棚n bi畉n 1>, <t棚n bi畉n 2>;
  • 6. VCVC && BBBB 66 Khai b叩o bi畉n m畉ng 2 chi畛u V鱈 d畛 T動畛ng minh Kh担ng t動畛ng minh (th担ng qua ki畛u) NMLT - M畉ng hai chi畛u int a[10][20], b[10][20]; int c[5][10]; int d[10][20]; typedef int MaTran10x20[10][20]; typedef int MaTran5x10[5][10]; MaTran10x20 a, b; MaTran11x11 c; MaTran10x20 d;
  • 7. VCVC && BBBB 77 Truy xu畉t 畉n m畛t ph畉n t畛 Th担ng qua ch畛 s畛 V鱈 d畛 Cho m畉ng 2 chi畛u nh動 sau C叩c truy xu畉t H畛p l畛: a[0][0], a[0][1], , a[2][2], a[2][3] Kh担ng h畛p l畛: a[-1][0], a[2][4], a[3][3] NMLT - M畉ng hai chi畛u <t棚n bi畉n m畉ng>[<gi叩 tr畛 cs1>][<gi叩 tr畛 cs2>] int a[3][4]; 0 1 2 0 1 2 3
  • 8. VCVC && BBBB 88 G叩n d畛 li畛u ki畛u m畉ng Kh担ng 動畛c s畛 d畛ng ph辿p g叩n th担ng th動畛ng m ph畉i g叩n tr畛c ti畉p gi畛a c叩c ph畉n t畛 V鱈 d畛 NMLT - M畉ng hai chi畛u int a[5][10], b[5][10]; b = a; // Sai int i, j; for (i = 0; i < 5; i++) for (j = 0; j < 10; j++) b[i][j] = a[i][j];
  • 9. VCVC && BBBB 99 Truy畛n m畉ng cho hm Truy畛n m畉ng cho hm Tham s畛 ki畛u m畉ng trong khai b叩o hm gi畛ng nh動 khai b叩o bi畉n m畉ng Tham s畛 ki畛u m畉ng truy畛n cho hm ch鱈nh l 畛a ch畛 c畛a ph畉n t畛 畉u ti棚n c畛a m畉ng C坦 th畛 b畛 s畛 l動畛ng ph畉n t畛 chi畛u th畛 2 ho畉c con tr畛. M畉ng c坦 th畛 thay 畛i n畛i dung sau khi th畛c hi畛n hm. NMLT - M畉ng hai chi畛u void NhapMaTran(int a[50][100]); void NhapMaTran(int a[][100]); void NhapMaTran(int (*a)[100]);
  • 10. VCVC && BBBB 1010 Truy畛n m畉ng cho hm Truy畛n m畉ng cho hm S畛 l動畛ng ph畉n t畛 th畛c s畛 truy畛n qua bi畉n kh叩c L畛i g畛i hm NMLT - M畉ng hai chi畛u void XuatMaTran(int a[50][100], int m, int n); void XuatMaTran(int a[][100], int m, int n); void XuatMaTran(int (*a)[100], int m, int n); void NhapMaTran(int a[][100], int &m, int &n); void XuatMaTran(int a[][100], int m, int n); void main() { int a[50][100], m, n; NhapMaTran(a, m, n); XuatMaTran(a, m, n); }
  • 11. VCVC && BBBB 1111 M畛t s畛 bi to叩n c董 b畉n Vi畉t ch動董ng tr狸nh con th畛c hi畛n c叩c y棚u c畉u sau Nh畉p m畉ng Xu畉t m畉ng T狸m ki畉m m畛t ph畉n t畛 trong m畉ng Ki畛m tra t鱈nh ch畉t c畛a m畉ng T鱈nh t畛ng c叩c ph畉n t畛 tr棚n d嘆ng/c畛t/ton ma tr畉n/動畛ng ch辿o ch鱈nh/n畛a tr棚n/n畛a d動畛i T狸m gi叩 tr畛 nh畛 nh畉t/l畛n nh畉t c畛a m畉ng NMLT - M畉ng hai chi畛u
  • 12. VCVC && BBBB 1212 M畛t s畛 quy 動畛c Ki畛u d畛 li畛u C叩c ch動董ng tr狸nh con Hm void HoanVi(int x, int y): ho叩n v畛 gi叩 tr畛 c畛a hai s畛 nguy棚n. Hm int LaSNT(int n): ki畛m tra m畛t s畛 c坦 ph畉i l s畛 nguy棚n t畛. Tr畉 v畛 1 n畉u n l s畛 nguy棚n t畛, ng動畛c l畉i tr畉 v畛 0. NMLT - M畉ng hai chi畛u #define MAXD 50 #define MAXC 100
  • 13. VCVC && BBBB 1313 Th畛 t畛c HoanVi & Hm LaSNT NMLT - M畉ng hai chi畛u
  • 14. VCVC && BBBB 1414 Nh畉p Ma Tr畉n Y棚u c畉u Cho ph辿p nh畉p m畉ng a, m d嘆ng, n c畛t 驚 t動畛ng Cho tr動畛c m畛t m畉ng 2 chi畛u c坦 d嘆ng t畛i a l MAXD, s畛 c畛t t畛i a l MAXC. Nh畉p s畛 l動畛ng ph畉n t畛 th畛c s畛 m, n c畛a m畛i chi畛u. Nh畉p t畛ng ph畉n t畛 t畛 [0][0] 畉n [m-1][n-1]. NMLT - M畉ng hai chi畛u
  • 15. VCVC && BBBB 1515 Hm Nh畉p Ma Tr畉n NMLT - M畉ng hai chi畛u void NhapMaTran(int a[][MAXC], int &m, int &n) { printf(Nhap so dong, so cot cua ma tran: ); scanf(%d%d, &m, &n); int i, j; for (i=0; i<m; i++) for (j=0; j<n; j++) { printf(Nhap a[%d][%d]: , i, j); scanf(%d, &a[i][j]); } }
  • 16. VCVC && BBBB 1616 Xu畉t Ma Tr畉n Y棚u c畉u Cho ph辿p nh畉p m畉ng a, m d嘆ng, n c畛t 驚 t動畛ng Xu畉t gi叩 tr畛 t畛ng ph畉n t畛 c畛a m畉ng 2 chi畛u t畛 d嘆ng c坦 0 畉n d嘆ng m-1, m畛i d嘆ng xu畉t gi叩 gi叩 tr畛 c畛a c畛t 0 畉n c畛t n-1 tr棚n d嘆ng 坦. NMLT - M畉ng hai chi畛u
  • 17. VCVC && BBBB 1717 Hm Xu畉t Ma Tr畉n NMLT - M畉ng hai chi畛u void XuatMaTran(int a[][MAXC], int m, int n) { int i, j; for (i=0; i<m; i++) { for (j=0; j<n; j++) printf(%d , a[i][j]); printf(n); } }
  • 18. VCVC && BBBB 1818 T狸m ki畉m m畛t ph畉n t畛 trong Ma Tr畉n Y棚u c畉u T狸m xem ph畉n t畛 x c坦 n畉m trong ma tr畉n a k鱈ch th動畛c mxn hay kh担ng? 驚 t動畛ng Duy畛t t畛ng ph畉n c畛a ma tr畉n a. N畉u ph畉n t畛 ang x辿t b畉ng x th狸 tr畉 v畛 c坦 (1), ng動畛c l畉i tr畉 v畛 kh担ng c坦 (0). NMLT - M畉ng hai chi畛u
  • 19. VCVC && BBBB 1919 Hm T狸m Ki畉m NMLT - M畉ng hai chi畛u int TimKiem(int a[][MAXC], int m, int n, int x) { int i, j; for (i=0; i<m; i++) for (j=0; j<n; j++) if (a[i][j] == x) return 1; return 0; }
  • 20. VCVC && BBBB 2020 Ki畛m tra t鱈nh ch畉t c畛a m畉ng Y棚u c畉u Cho tr動畛c ma tr畉n a k鱈ch th動畛c mxn. Ma tr畉n a c坦 ph畉i l ma tr畉nton c叩c s畛 nguy棚n t畛 hay kh担ng? 驚 t動畛ng C叩ch 1: 畉m s畛 l動畛ng s畛 ngt畛 c畛a ma tr畉n. N畉u s畛 l動畛ng ny b畉ng 炭ng mxn th狸 ma tr畉n ton ngt畛. C叩ch 2: 畉m s畛 l動畛ng s畛 kh担ng ph畉i ngt畛 c畛a ma tr畉n. N畉u s畛 l動畛ng ny b畉ng 0 th狸 ma tr畉n ton ngt畛. C叩ch 3: T狸m xem c坦 ph畉n t畛 no kh担ng ph畉i s畛 ngt畛 kh担ng. N畉u c坦 th狸 ma tr畉n kh担ng ton s畛 ngt畛. NMLT - M畉ng hai chi畛u
  • 21. VCVC && BBBB 2121 Hm Ki畛m Tra (C叩ch 1) NMLT - M畉ng hai chi畛u int KiemTra_C1(int a[][MAXC], int m, int n) { int i, j, dem = 0; for (i=0; i<m; i++) for (j=0; j<n; j++) if (LaSNT(a[i][j]==1) dem++; if (dem == m*n) return 1; return 0; }
  • 22. VCVC && BBBB 2222 Hm Ki畛m Tra (C叩ch 2) NMLT - M畉ng hai chi畛u int KiemTra_C2(int a[][MAXC], int m, int n) { int i, j, dem = 0; for (i=0; i<m; i++) for (j=0; j<n; j++) if (LaSNT(a[i][j]==0) dem++; if (dem == 0) return 1; return 0; }
  • 23. VCVC && BBBB 2323 Hm Ki畛m Tra (C叩ch 2) NMLT - M畉ng hai chi畛u int KiemTra_C3(int a[][MAXC], int m, int n) { int i, j, dem = 0; for (i=0; i<m; i++) for (j=0; j<n; j++) if (LaSNT(a[i][j]==0) return 0; return 1; }
  • 24. VCVC && BBBB 2424 T鱈nh t畛ng c叩c ph畉n t畛 Y棚u c畉u Cho tr動畛c ma tr畉n a, k鱈ch th動畛c mxn. T鱈nh t畛ng c叩c ph畉n t畛 tr棚n: D嘆ng d, c畛t c 動畛ng ch辿o ch鱈nh, 動畛ng ch辿o ph畛 (ma tr畉n vu担ng) N畛a tr棚n/d動畛i 動畛ng ch辿o ch鱈nh (ma tr畉n vu担ng) N畛a tr棚n/d動畛i 動畛ng ch辿o ph畛 (ma tr畉n vu担ng) 驚 t動畛ng Duy畛t ma tr畉n v c畛ng d畛n c叩c ph畉n t畛 c坦 t畛a 畛 (d嘆ng, c畛t) th畛a y棚u c畉u. NMLT - M畉ng hai chi畛u
  • 25. VCVC && BBBB 2525 Hm t鱈nh t畛ng tr棚n d嘆ng NMLT - M畉ng hai chi畛u int TongDong(int a[][MAXC], int m, int n, int d) { int j, tong; tong = 0; for (j=0; j<n; j++) // Duy畛t c叩c c畛t tong = tong + a[d][j]; return tong; }
  • 26. VCVC && BBBB 2626 Hm t鱈nh t畛ng tr棚n c畛t NMLT - M畉ng hai chi畛u int TongCot(int a[][MAXC], int m, int c) { int i, tong; tong = 0; for (i=0; i<m; i++) // Duy畛t c叩c d嘆ng tong = tong + a[i][c]; return tong; }
  • 27. VCVC && BBBB 2727 Hm t鱈nh t畛ng 動畛ng ch辿o ch鱈nh NMLT - M畉ng hai chi畛u int TongDCChinh(int a[][MAXC], int n) { int i, tong; tong = 0; for (i=0; i<n; i++) tong = tong + a[i][i]; return tong; }
  • 28. VCVC && BBBB 2828 Hm t鱈nh t畛ng tr棚n 動畛ng ch辿o ch鱈nh NMLT - M畉ng hai chi畛u int TongTrenDCChinh(int a[][MAXC], int n) { int i, j, tong; tong = 0; for (i=0; i<n; i++) for (j=0; j<n; j++) if (i < j) tong = tong + a[i][j]; return tong; }
  • 29. VCVC && BBBB 2929 Hm t鱈nh t畛ng d動畛i 動畛ng ch辿o ch鱈nh NMLT - M畉ng hai chi畛u int TongTrenDCChinh(int a[][MAXC], int n) { int i, j, tong; tong = 0; for (i=0; i<n; i++) for (j=0; j<n; j++) if (i > j) tong = tong + a[i][j]; return tong; }
  • 30. VCVC && BBBB 3030 Hm t鱈nh t畛ng tr棚n 動畛ng ch辿o ph畛 NMLT - M畉ng hai chi畛u int TongDCPhu(int a[][MAXC], int n) { int i, tong; tong = 0; for (i=0; i<n; i++) tong = tong + a[i][n-i-1]; return tong; }
  • 31. VCVC && BBBB 3131 T狸m gi叩 tr畛 l畛n nh畉t c畛a Ma Tr畉n Y棚u c畉u Cho tr動畛c ma tr畉n a, k鱈ch th動畛c mxn. T狸m gi叩 tr畛 l畛n nh畉t trong ma tr畉n a (g畛i l max) 驚 t動畛ng Gi畉 s畛 gi叩 tr畛 max hi畛n t畉i l gi叩 tr畛 ph畉n t畛 畉u ti棚n a[0] [0] L畉n l動畛t ki畛m tra c叩c ph畉n t畛 c嘆n l畉i 畛 c畉p nh畉t max. NMLT - M畉ng hai chi畛u
  • 32. VCVC && BBBB 3232 Hm t狸m Max NMLT - M畉ng hai chi畛u int TimMax(int a[][MAXC], int m, int n) { int i, j, max; max = a[0][0]; for (i=0; i<m; i++) for (j=0; j<n; j++) if (a[i][j] > max) max = a[i][j]; return max; }