1. chương 06 - ma trận
TRANSCRIPT
![Page 1: 1. Chương 06 - Ma Trận](https://reader035.vdocuments.mx/reader035/viewer/2022062405/5571f8f749795991698e7d60/html5/thumbnails/1.jpg)
Khoa CNTT KTLT
ThS. Nguyễn TấnTrần Minh Khang
Chương 06 - 1
Chƣơng 6MA TRẬN
![Page 2: 1. Chương 06 - Ma Trận](https://reader035.vdocuments.mx/reader035/viewer/2022062405/5571f8f749795991698e7d60/html5/thumbnails/2.jpg)
ThS. Nguyễn TấnTrần Minh Khang
Chương 06 - 2
Khoa CNTT KTLT
1. HÌNH ẢNH MA TRẬN
Hình vẽ
Ma trận là một bảng gồm nhiều dòng và nhiều cột.
![Page 3: 1. Chương 06 - Ma Trận](https://reader035.vdocuments.mx/reader035/viewer/2022062405/5571f8f749795991698e7d60/html5/thumbnails/3.jpg)
ThS. Nguyễn TấnTrần Minh Khang
Chương 06 - 3
Khoa CNTT KTLT
2. KHÁI NIỆM
Ma trận làcái quái gì?
Khái niệm: Ma trận là một tập hợp cácbiến có cùng kiểu dữ liệu và cùng tên.
![Page 4: 1. Chương 06 - Ma Trận](https://reader035.vdocuments.mx/reader035/viewer/2022062405/5571f8f749795991698e7d60/html5/thumbnails/4.jpg)
Khoa CNTT KTLT
3. KHAI BÁO MA TRẬN
Cú phápKDL <TenBien>[SoDongToiDa][SoCotToiDa];
Ví dụ 1: int a[20][20];
Trong ví dụ trên ta nói a là ma trận cótối đa 20 dòng và tối đa 20 cột. Mỗiphần tử trong ma trận có kiểu là kiểu sốnguyên.
Ví dụ 2: float b[10][30];
Trong ví dụ trên ta nói b là ma trận cótối đa 10 dòng và tối đa 30 cột. Mỗiphần tử trong ma trận có kiểu là kiểu sốthực.
ThS. Nguyễn Tấn Trần Minh
![Page 5: 1. Chương 06 - Ma Trận](https://reader035.vdocuments.mx/reader035/viewer/2022062405/5571f8f749795991698e7d60/html5/thumbnails/5.jpg)
KhangChương 06 - 4
![Page 6: 1. Chương 06 - Ma Trận](https://reader035.vdocuments.mx/reader035/viewer/2022062405/5571f8f749795991698e7d60/html5/thumbnails/6.jpg)
Khoa CNTT KTLT
3. KHAI BÁO MA TRẬN
Cú phápKDL <TenBien>[SoDongToiDa][SoCotToiDa];
Ví dụ 3:
1. struct phanso
2. {
3. int tu;
4. int mau;
5. };
6. typedef struct phanso PHANSO;
7. PHANSO c[10][15];
Trong ví dụ trên ta nói c là ma trận có tối đa 10 dòng và tối đa 15 cột. Mỗi phần tử trong ma trận có kiểu là kiểuPHANSO.
ThS. Nguyễn TấnTrần Minh Khang
Chương 06 - 5
![Page 7: 1. Chương 06 - Ma Trận](https://reader035.vdocuments.mx/reader035/viewer/2022062405/5571f8f749795991698e7d60/html5/thumbnails/7.jpg)
Khoa CNTT KTLT
ThS. Nguyễn TấnTrần Minh Khang
Chương 06 - 6
4. CHỈ SỐ
Qui ước: Các dòng và cột trong matrận của C được đánh chỉ số bắt buộctừ 0.
Như vậy trong ma trận có m dòng và ncột thì các dòng trong ma trận đánh sốtừ 0 cho đến m-1, các cột trong matrận đánh số từ 0 cho đến n-1.
Ví dụ 1: int a[15][20];
Trong ví dụ trên ta nói a là ma trận có tối đa 15 dòng và tối đa 20 cột. Các dòng trong ma trận được đánh chỉ sốtừ 0 cho đến 14, các cột được đánh
![Page 8: 1. Chương 06 - Ma Trận](https://reader035.vdocuments.mx/reader035/viewer/2022062405/5571f8f749795991698e7d60/html5/thumbnails/8.jpg)
Khoa CNTT KTLT
ThS. Nguyễn TấnTrần Minh Khang
Chương 06 - 7
chỉ số từ 0 cho đến 19.
![Page 9: 1. Chương 06 - Ma Trận](https://reader035.vdocuments.mx/reader035/viewer/2022062405/5571f8f749795991698e7d60/html5/thumbnails/9.jpg)
ThS. Nguyễn TấnTrần Minh Khang
Chương 06 - 8
Khoa CNTT KTLT
4. CHỈ SỐ
n
0
1
m …
m-2
m-1
0 1 2 … n-2 n-1
![Page 10: 1. Chương 06 - Ma Trận](https://reader035.vdocuments.mx/reader035/viewer/2022062405/5571f8f749795991698e7d60/html5/thumbnails/10.jpg)
4. CHỈ SỐ
j
0
i 1
…
m—2
m-1
0 1 2 3 4 … n-2 n-1
![Page 11: 1. Chương 06 - Ma Trận](https://reader035.vdocuments.mx/reader035/viewer/2022062405/5571f8f749795991698e7d60/html5/thumbnails/11.jpg)
5. KỸ THUẬT NHẬPMA
TRẬN
Vấn đề 1: Hãy định nghĩa hàm nhập ma trận các số nguyên.
Định nghĩa hàm
11. void Nhap(int a[][100], int &m,int &n)
12. {13. printf(“Nhap m: ”);14. scanf(“%d”,&m);15. printf(“Nhap n: ”);16. scanf(“%d”,&n);17. for(int i=0;i<m;i++)18. for(int j=0;j<n;j++)19. {20. printf(“Nhap a[%d][%d]: ”,i,j);21. scanf(“%d”,&a[i][j]);
![Page 12: 1. Chương 06 - Ma Trận](https://reader035.vdocuments.mx/reader035/viewer/2022062405/5571f8f749795991698e7d60/html5/thumbnails/12.jpg)
22. }23. }
![Page 13: 1. Chương 06 - Ma Trận](https://reader035.vdocuments.mx/reader035/viewer/2022062405/5571f8f749795991698e7d60/html5/thumbnails/13.jpg)
Khoa CNTT KTLT
5. KỸ THUẬT NHẬPMA
TRẬN
Vấn đề 2: Hãy định nghĩa hàm nhập ma trận các số thực.
Định nghĩa hàm
11. void Nhap(float a[][100], int &m,int &n)
12. {13. printf(“Nhap m: ”);14. scanf(“%d”,&m);15. printf(“Nhap n: ”);16. scanf(“%d”,&n);17. for(int i=0;i<m;i++)18. for(int j=0;j<n;j++)19. {20. printf(“Nhap a[%d][%d]: ”,i,j);21. scanf(“%f”,&a[i][j]);22. }23. }
![Page 14: 1. Chương 06 - Ma Trận](https://reader035.vdocuments.mx/reader035/viewer/2022062405/5571f8f749795991698e7d60/html5/thumbnails/14.jpg)
ThS. Nguyễn TấnTrần Minh Khang
Chương 06 - 10
![Page 15: 1. Chương 06 - Ma Trận](https://reader035.vdocuments.mx/reader035/viewer/2022062405/5571f8f749795991698e7d60/html5/thumbnails/15.jpg)
Khoa CNTT KTLT
5. KỸ THUẬT NHẬPMA
TRẬN
Vấn đề 3: Hãy định nghĩa hàm nhập ma trận các số nguyên dài.
Định nghĩa hàm
11. void Nhap(long a[][100], int &m,int &n)
12. {13. printf(“Nhap m: ”);14. scanf(“%d”,&m);15. printf(“Nhap n: ”);16. scanf(“%d”,&n);17. for(int i=0;i<m;i++)18. for(int j=0;j<n;j++)19. {20. printf(“Nhap a[%d][%d]: ”,i,j);21. scanf(“%ld”,&a[i][j]);22. }23. }
![Page 16: 1. Chương 06 - Ma Trận](https://reader035.vdocuments.mx/reader035/viewer/2022062405/5571f8f749795991698e7d60/html5/thumbnails/16.jpg)
ThS. Nguyễn TấnTrần Minh Khang
Chương 06 - 11
![Page 17: 1. Chương 06 - Ma Trận](https://reader035.vdocuments.mx/reader035/viewer/2022062405/5571f8f749795991698e7d60/html5/thumbnails/17.jpg)
Khoa CNTT KTLT
5. KỸ THUẬT NHẬPMA
TRẬN
Vấn đề 4: Hãy định nghĩa hàm nhập ma trận các số thực dài.
Định nghĩa hàm
11. void Nhap(double a[][100], int &m,int &n)
12. {13. printf(“Nhap m: ”);14. scanf(“%d”,&m);15. printf(“Nhap n: ”);16. scanf(“%d”,&n);17. for(int i=0;i<m;i++)18. for(int j=0;j<n;j++)19. {20. printf(“Nhap a[%d][%d]: ”,i,j);21. scanf(“%lf”,&a[i][j]);22. }23. }
![Page 18: 1. Chương 06 - Ma Trận](https://reader035.vdocuments.mx/reader035/viewer/2022062405/5571f8f749795991698e7d60/html5/thumbnails/18.jpg)
ThS. Nguyễn TấnTrần Minh Khang
Chương 06 - 12
![Page 19: 1. Chương 06 - Ma Trận](https://reader035.vdocuments.mx/reader035/viewer/2022062405/5571f8f749795991698e7d60/html5/thumbnails/19.jpg)
Khoa CNTT KTLT
5. KỸ THUẬT NHẬPMA
TRẬN
Vấn đề 5: Hãy định nghĩa hàm nhập matrận các phân số.
Định nghĩa hàm
11. struct phanso12.{13. int tu;14. int mau;15.};16.typedef struct phanso PHANSO;17.void Nhap(PHANSO &x)18.{19. printf(“Nhap tu:”);20. scanf(“%d”,&x.tu);21. printf(“Nhap mau:”);22. scanf(“%d”,&x.mau);23.}
![Page 20: 1. Chương 06 - Ma Trận](https://reader035.vdocuments.mx/reader035/viewer/2022062405/5571f8f749795991698e7d60/html5/thumbnails/20.jpg)
ThS. Nguyễn TấnTrần Minh Khang
Chương 06 - 13
![Page 21: 1. Chương 06 - Ma Trận](https://reader035.vdocuments.mx/reader035/viewer/2022062405/5571f8f749795991698e7d60/html5/thumbnails/21.jpg)
Khoa CNTT KTLT
5. KỸ THUẬT NHẬPMA
TRẬN
Định nghĩa hàm
11. void Nhap(PHANSO a[][100], int &m,int &n)
12.{13. printf(“Nhap m:”);14. scanf(“%d”,&m);15. printf(“Nhap n:”);16. scanf(“%d”,&n);17. for(int i=0;i<m;i++)18. for(int j=0;j<n;j++)19. {20. printf(“Nhap a[%d]][%d]:”,i,j);21. Nhap(a[i][j]);22. }
![Page 22: 1. Chương 06 - Ma Trận](https://reader035.vdocuments.mx/reader035/viewer/2022062405/5571f8f749795991698e7d60/html5/thumbnails/22.jpg)
23.}
ThS. Nguyễn TấnTrần Minh Khang
Chương 06 - 14
![Page 23: 1. Chương 06 - Ma Trận](https://reader035.vdocuments.mx/reader035/viewer/2022062405/5571f8f749795991698e7d60/html5/thumbnails/23.jpg)
Khoa CNTT KTLT
6. KỸ THUẬT XUẤTMA
TRẬN
Vấn đề 1: Hãy định nghĩa hàm xuất ma trận các số nguyên.
Định nghĩa hàm
1. void Xuat(int a[][100], int m,int n)
2. {
3. for(int i=0;i<m;i++)
4. {
5. for(int j=0;j<n;j++)
6. printf(“%4d”,a[i][j]);
7. printf(“\n”);
8. }
![Page 24: 1. Chương 06 - Ma Trận](https://reader035.vdocuments.mx/reader035/viewer/2022062405/5571f8f749795991698e7d60/html5/thumbnails/24.jpg)
9. }ThS. Nguyễn TấnTrần Minh Khang
Chương 06 - 15
![Page 25: 1. Chương 06 - Ma Trận](https://reader035.vdocuments.mx/reader035/viewer/2022062405/5571f8f749795991698e7d60/html5/thumbnails/25.jpg)
Khoa CNTT KTLT
6. KỸ THUẬT XUẤTMA
TRẬN
Vấn đề 2: Hãy định nghĩa hàm xuất ma trận các số thực.
Định nghĩa hàm
1. void Xuat(float a[][100], int m,int n)
2. {
3. for(int i=0;i<m;i++)
4. {
5. for(int j=0;j<n;j++)
6. printf(“%8.3f”,a[i][j]);
7. printf(“\n”);
8. }
![Page 26: 1. Chương 06 - Ma Trận](https://reader035.vdocuments.mx/reader035/viewer/2022062405/5571f8f749795991698e7d60/html5/thumbnails/26.jpg)
9. }ThS. Nguyễn TấnTrần Minh Khang
Chương 06 - 16
![Page 27: 1. Chương 06 - Ma Trận](https://reader035.vdocuments.mx/reader035/viewer/2022062405/5571f8f749795991698e7d60/html5/thumbnails/27.jpg)
Khoa CNTT KTLT
6. KỸ THUẬT XUẤTMA
TRẬN
Vấn đề 3: Hãy định nghĩa hàm xuất ma trận các số nguyên dài.
Định nghĩa hàm
1. void Xuat(long a[][100], int m,int n)
2. {
3. for(int i=0;i<m;i++)
4. {
5. for(int j=0;j<n;j++)
6. printf(“%ld”,a[i][j]);
7. printf(“\n”);
8. }
![Page 28: 1. Chương 06 - Ma Trận](https://reader035.vdocuments.mx/reader035/viewer/2022062405/5571f8f749795991698e7d60/html5/thumbnails/28.jpg)
9. }ThS. Nguyễn TấnTrần Minh Khang
Chương 06 - 17
![Page 29: 1. Chương 06 - Ma Trận](https://reader035.vdocuments.mx/reader035/viewer/2022062405/5571f8f749795991698e7d60/html5/thumbnails/29.jpg)
Khoa CNTT KTLT
6. KỸ THUẬT XUẤTMA
TRẬN
Vấn đề 4: Hãy định nghĩa hàm xuất ma trận các số thực dài.
Định nghĩa hàm
1. void Xuat(double a[][100], int m,int n)
2. {
3. for(int i=0;i<m;i++)
4. {
5. for(int j=0;j<n;j++)
6. printf(“%lf”,a[i][j]);
7. printf(“\n”);
8. }
![Page 30: 1. Chương 06 - Ma Trận](https://reader035.vdocuments.mx/reader035/viewer/2022062405/5571f8f749795991698e7d60/html5/thumbnails/30.jpg)
9. }ThS. Nguyễn TấnTrần Minh Khang
Chương 06 - 18
![Page 31: 1. Chương 06 - Ma Trận](https://reader035.vdocuments.mx/reader035/viewer/2022062405/5571f8f749795991698e7d60/html5/thumbnails/31.jpg)
Khoa CNTT KTLT
6. KỸ THUẬT XUẤTMA
TRẬN
Vấn đề 5: Hãy địnhma trận các phân số.
nghĩa hàm xuất
1.
Định nghĩa hàm
struct phanso
2. {
3. int tu;
4. int mau;
5. };
6. typedef struct phanso PHANSO;
7. void Xuat(PHANSO x)
8. {
9. printf(“%d/%d”, x.tu,x.mau);
10.}
![Page 32: 1. Chương 06 - Ma Trận](https://reader035.vdocuments.mx/reader035/viewer/2022062405/5571f8f749795991698e7d60/html5/thumbnails/32.jpg)
ThS. Nguyễn TấnTrần Minh Khang
Chương 06 - 19
![Page 33: 1. Chương 06 - Ma Trận](https://reader035.vdocuments.mx/reader035/viewer/2022062405/5571f8f749795991698e7d60/html5/thumbnails/33.jpg)
Khoa CNTT KTLT
6. KỸ THUẬT XUẤTMA
TRẬN
Định nghĩa hàm
1. void Xuat(PHANSO a[][100], int m,int n)
2. {
3. for(int i=0;i<m;i++)
4. {
5. for(int j=0;j<n;j++)
6. xuat(a[i][j]);
7. printf(“\n”);
8. }
9. }
![Page 34: 1. Chương 06 - Ma Trận](https://reader035.vdocuments.mx/reader035/viewer/2022062405/5571f8f749795991698e7d60/html5/thumbnails/34.jpg)
ThS. Nguyễn TấnTrần Minh Khang
Chương 06 - 20
![Page 35: 1. Chương 06 - Ma Trận](https://reader035.vdocuments.mx/reader035/viewer/2022062405/5571f8f749795991698e7d60/html5/thumbnails/35.jpg)
Khoa CNTT KTLT
7. KỸ THUẬT ĐẾM
TRÊN MA TRẬN
Vấn đề 1: Hãy định nghĩa hàm đếm số lượng giá trị chẵn trong ma trận cácsố nguyên.
Định nghĩa hàm
1. int DemChan(int a[][100], int m,int n)
2. {
3. int dem=0;
4. for(int i=0;i<m;i++)
5. for(int j=0;j<n;j++)
6. if(a[i][j]%2==0)
7. dem++;
8. return dem;
9. }
![Page 36: 1. Chương 06 - Ma Trận](https://reader035.vdocuments.mx/reader035/viewer/2022062405/5571f8f749795991698e7d60/html5/thumbnails/36.jpg)
ThS. Nguyễn TấnTrần Minh Khang
Chương 06 - 21
![Page 37: 1. Chương 06 - Ma Trận](https://reader035.vdocuments.mx/reader035/viewer/2022062405/5571f8f749795991698e7d60/html5/thumbnails/37.jpg)
Khoa CNTT KTLT
7. KỸ THUẬT ĐẾM
TRÊN MA TRẬN
Vấn đề 2: Hãy định nghĩa hàm đếm số lượng số nguyên tố trong ma trận cácsố nguyên.
Định nghĩa hàm
1. int ktnt(int k)
2. {
3. int dem=0;
4. for(int i=1;i<=k;i++)
5. if (k%i==0)
6. dem++;
7. if(dem==2)
8. return 1;
9. return 0;
10.}
![Page 38: 1. Chương 06 - Ma Trận](https://reader035.vdocuments.mx/reader035/viewer/2022062405/5571f8f749795991698e7d60/html5/thumbnails/38.jpg)
ThS. Nguyễn TấnTrần Minh Khang
Chương 06 - 22
![Page 39: 1. Chương 06 - Ma Trận](https://reader035.vdocuments.mx/reader035/viewer/2022062405/5571f8f749795991698e7d60/html5/thumbnails/39.jpg)
Khoa CNTT KTLT
7. KỸ THUẬT ĐẾM
TRÊN MA TRẬN
Định nghĩa hàm
1. int DemNguyenTo(int int
a[][100], m,int n)
2. {
3. int dem=0;
4. for(int i=0;i<m;i++)
5. for(int j=0;j<n;j++)
6. if(ktnt(a[i][j])==1)
7. dem++;
8. return dem;
9. }
![Page 40: 1. Chương 06 - Ma Trận](https://reader035.vdocuments.mx/reader035/viewer/2022062405/5571f8f749795991698e7d60/html5/thumbnails/40.jpg)
ThS. Nguyễn TấnTrần Minh Khang
Chương 06 - 23
![Page 41: 1. Chương 06 - Ma Trận](https://reader035.vdocuments.mx/reader035/viewer/2022062405/5571f8f749795991698e7d60/html5/thumbnails/41.jpg)
Khoa CNTT KTLT
8. KỸ THUẬT TÍNH TOÁN
TRÊN MA TRẬN
Vấn đề 1: Hãy định nghĩa hàm tính tổng các giá trị lẻ trong ma trận các số nguyên.
Định nghĩa hàm
1. int TongLe(int a[][100], int m,int n)
2. {
3. int s = 0;
4. for(int i=0;i<m;i++)
5. for(int j=0;j<n;j++)
6. if(a[i][j]%2!=0)
7. s=s+a[i][j];
8. return s;
9. }
![Page 42: 1. Chương 06 - Ma Trận](https://reader035.vdocuments.mx/reader035/viewer/2022062405/5571f8f749795991698e7d60/html5/thumbnails/42.jpg)
ThS. Nguyễn TấnTrần Minh Khang
Chương 06 - 24
![Page 43: 1. Chương 06 - Ma Trận](https://reader035.vdocuments.mx/reader035/viewer/2022062405/5571f8f749795991698e7d60/html5/thumbnails/43.jpg)
Khoa CNTT KTLT
8. KỸ THUẬT TÍNH TOÁN
TRÊN MA TRẬN
Vấn đề 2: Hãy định nghĩa hàm tính tổng các giá trị dương trong ma trận các số thực.
Định nghĩa hàm
1. float TongDuong(float a[][100], int m,int n)
2. {
3. float s = 0;
4. for(int i=0;i<m;i++)
5. for(int j=0;j<n;j++)
6. if(a[i][j]>0)
7. s=s+a[i][j];
8. return s;
9. }
![Page 44: 1. Chương 06 - Ma Trận](https://reader035.vdocuments.mx/reader035/viewer/2022062405/5571f8f749795991698e7d60/html5/thumbnails/44.jpg)
ThS. Nguyễn TấnTrần Minh Khang
Chương 06 - 25
![Page 45: 1. Chương 06 - Ma Trận](https://reader035.vdocuments.mx/reader035/viewer/2022062405/5571f8f749795991698e7d60/html5/thumbnails/45.jpg)
6. if(ktnt(a[i][j])==1)
7. s=s+a[i][j]
8. return s;
9. }
Khoa CNTT KTLT
8. KỸ THUẬT TÍNH TOÁN
TRÊN MA TRẬN
Vấn đề 3: Hãy định nghĩa hàm tính tổng các giá trị nguyên tố trong ma trận các số nguyên.
Định nghĩa hàm
1. int TongNguyenTo(int a[][100],
int m,int n)
2. {
3. int s = 0;
4. for(int i=0;i<m;i++)
5. for(int j=0;j<n;j++)
;
![Page 46: 1. Chương 06 - Ma Trận](https://reader035.vdocuments.mx/reader035/viewer/2022062405/5571f8f749795991698e7d60/html5/thumbnails/46.jpg)
ThS. Nguyễn TấnTrần Minh Khang
Chương 06 - 26
![Page 47: 1. Chương 06 - Ma Trận](https://reader035.vdocuments.mx/reader035/viewer/2022062405/5571f8f749795991698e7d60/html5/thumbnails/47.jpg)
7.
8. return lc;
9. }
Khoa CNTT KTLT
9. KỸ THUẬT ĐẶT
LÍNH CANH
Vấn đề 1: Hãy định nghĩa hàm tìm giátrị lớn nhất trong ma trận các số thực.
Định nghĩa hàm
1. float LonNhat(float a[][100],
int m,int n)
2. {
3. float lc = a[0][0];
4. for(int i=0;i<m;i++)
5. for(int j=0;j<n;j++)
6. if(a[i][j]>lc)
lc=a[i][j];
ThS. Nguyễn Tấn Trần Minh
![Page 48: 1. Chương 06 - Ma Trận](https://reader035.vdocuments.mx/reader035/viewer/2022062405/5571f8f749795991698e7d60/html5/thumbnails/48.jpg)
KhangChương 06 - 27
![Page 49: 1. Chương 06 - Ma Trận](https://reader035.vdocuments.mx/reader035/viewer/2022062405/5571f8f749795991698e7d60/html5/thumbnails/49.jpg)
Khoa CNTT
10. KỸ THUẬT ĐẶT CỜ HIỆU
KTLT
Vấn đề 1: Hãy định nghĩa hàm kiểmtra trong ma trận các số thực có tồn tại giá trị dương hay ko?
Định nghĩa hàm
1. int TonTaiDuong(float a[][100],
int m,int n)
2. {
3. int flag = 0;
4. for(int i=0;i<m;i++)
5. for(int j=0;j<n;j++)
6. if(a[i][j]>0)
7. flag = 1;
8. return flag;
9. }
ThS. Nguyễn Tấn Trần Minh
![Page 50: 1. Chương 06 - Ma Trận](https://reader035.vdocuments.mx/reader035/viewer/2022062405/5571f8f749795991698e7d60/html5/thumbnails/50.jpg)
KhangChương 06 - 28
![Page 51: 1. Chương 06 - Ma Trận](https://reader035.vdocuments.mx/reader035/viewer/2022062405/5571f8f749795991698e7d60/html5/thumbnails/51.jpg)
Khoa CNTT KTLT
ThS. Nguyễn TấnTrần Minh Khang
Chương 06 - 29
11. KỸ THUẬT SẮP XẾP
Vấn đề 1: Hãy định nghĩa hàm sắp xếp
ma trận các số thực tăng dần?
Định nghĩa hàm11. void SapTang(float a[][100],
int m,int n)12.{13. for(int i=0;i<=m*n-2;i++)14. for(int j=i+1;j<=m*n-1;j++)15. if(a[i/n][i%n]>a[j/n][j%n])16. {17. float temp=a[i/n][i%n];18. a[i/n][i%n]=a[j/n][j%n];19. a[j/n][j%n]=temp;20. }21.}
![Page 52: 1. Chương 06 - Ma Trận](https://reader035.vdocuments.mx/reader035/viewer/2022062405/5571f8f749795991698e7d60/html5/thumbnails/52.jpg)
89 88 13 -7 34 12
89 88 13 -7 34 12
89 88 13 -7 34 12
89 88 13 -7 34 12
89 88 13 -7 34 12
ThS. Nguyễn TấnTrần Minh Khang
Chương 06 - 30
Khoa CNTT KTLT
11. KỸ THUẬT SẮP XẾP
6
0 1 2 3 4 5
0
1
5 2
3
4
![Page 53: 1. Chương 06 - Ma Trận](https://reader035.vdocuments.mx/reader035/viewer/2022062405/5571f8f749795991698e7d60/html5/thumbnails/53.jpg)
0 1 2 3 4 5
6 7 8 9 10 11
12 13 14 15 16 17
18 19 20 21 22 23
24 25 26 27 28 29
ThS. Nguyễn TấnTrần Minh Khang
Chương 06 - 31
Khoa CNTT KTLT
11. KỸ THUẬT SẮP XẾP
6
0 1 2 3 4 5
0
1
5 2
3
4
![Page 54: 1. Chương 06 - Ma Trận](https://reader035.vdocuments.mx/reader035/viewer/2022062405/5571f8f749795991698e7d60/html5/thumbnails/54.jpg)
ThS. Nguyễn TấnTrần Minh Khang
Chương 06 - 32
Khoa CNTT KTLT
12. CHƢƠNG TRÌNH
ĐẦU TIÊN
Bài toán: Viết chương trìnhthực hiện các yêu cầu sau:
Nhập ma trận các số nguyên.
Xuất ma trận
Tính tổng các số chẵn cótrong ma trận.
![Page 55: 1. Chương 06 - Ma Trận](https://reader035.vdocuments.mx/reader035/viewer/2022062405/5571f8f749795991698e7d60/html5/thumbnails/55.jpg)
Khoa CNTT KTLT
12. CHƢƠNG TRÌNHĐẦU TIÊN
11. #include <stdio.h>12. #include <conio.h>13. void Nhap(int [][100],
int &,int &);14. void Xuat(int [][100],
int,int);15. int TongChan(int [][100],
int,int);16. void main()17. {18. int b[50][50];19. int k,l;20. Nhap(b,k,l);21. Xuat(b,k,l);22. int kq=TongChan(b,k,l);23. printf(“\n…: %d”, kq);24. }
ThS. Nguyễn TấnTrần Minh Khang
Chương 06 - 33
![Page 56: 1. Chương 06 - Ma Trận](https://reader035.vdocuments.mx/reader035/viewer/2022062405/5571f8f749795991698e7d60/html5/thumbnails/56.jpg)
Khoa CNTT KTLT
12. CHƢƠNG TRÌNHĐẦU TIÊN
1. void Nhap(int a[][100], int &m,int &n)
2. {3. printf(“Nhap m: ”);4. scanf(“%d”,&m);5. printf(“Nhap n: ”);6. scanf(“%d”,&n);7. for(int i=0;i<m;i++)8. for(int j=0;j<n;j++)9. {10. printf(“Nhap a[%d][%d]: ”,i,j);11. scanf(“%d”,&a[i][j]);12. }13. }
![Page 57: 1. Chương 06 - Ma Trận](https://reader035.vdocuments.mx/reader035/viewer/2022062405/5571f8f749795991698e7d60/html5/thumbnails/57.jpg)
ThS. Nguyễn TấnTrần Minh Khang
Chương 06 - 34
![Page 58: 1. Chương 06 - Ma Trận](https://reader035.vdocuments.mx/reader035/viewer/2022062405/5571f8f749795991698e7d60/html5/thumbnails/58.jpg)
Khoa CNTT KTLT
12. CHƢƠNG TRÌNHĐẦU TIÊN
1. void Xuat(int a[][100], int m,int n)
2. {
3. for(int i=0;i<m;i++)
4. {
5. for(int j=0;j<n;j++)
6. printf(“%4d”,a[i][j]);
7. printf(“\n”);
8. }
9. }
![Page 59: 1. Chương 06 - Ma Trận](https://reader035.vdocuments.mx/reader035/viewer/2022062405/5571f8f749795991698e7d60/html5/thumbnails/59.jpg)
ThS. Nguyễn TấnTrần Minh Khang
Chương 06 - 35
![Page 60: 1. Chương 06 - Ma Trận](https://reader035.vdocuments.mx/reader035/viewer/2022062405/5571f8f749795991698e7d60/html5/thumbnails/60.jpg)
7.
8. return s;
9. }
Khoa CNTT KTLT
12. CHƢƠNG TRÌNHĐẦU TIÊN
1. int TongChan(int a[][100], int m,int n)
2. {
3. int s = 0;
4. for(int i=0;i<m;i++)
5. for(int j=0;j<n;j++)
6. if(a[i][j]%2==0)
s=s+a[i][j];
![Page 61: 1. Chương 06 - Ma Trận](https://reader035.vdocuments.mx/reader035/viewer/2022062405/5571f8f749795991698e7d60/html5/thumbnails/61.jpg)
ThS. Nguyễn TấnTrần Minh Khang
Chương 06 - 36