Tải bản đầy đủ (.pdf) (36 trang)

1 chương 06 ma trận

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (542.09 KB, 36 trang )

Khoa CNTT

KTLT

Chương 6
MA TRẬN

Trần Quốc Vinh

1


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.

Trần Quốc Vinh

2



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ác
biến có cùng kiểu dữ liệu và cùng tên.

Trần Quốc Vinh

3


Khoa CNTT

KTLT

3. KHAI BÁO MA TRẬN



Cú pháp

KDL <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ỗi
phầ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ỗi
phần tử trong ma trận có kiểu là kiểu số
thực.

Trần Quốc Vinh

4


Khoa CNTT

KTLT

3. KHAI BÁO MA TRẬN


Cú pháp

KDL <TenBien>[SoDongToiDa][SoCotToiDa];


1.
2.
3.
4.
5.
6.
7.


Ví dụ 3:
struct phanso
{
int tu;
int mau;
};
typedef struct phanso PHANSO;
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ểu
PHANSO.
Trần Quốc Vinh

5


Khoa CNTT

KTLT


4. CHỈ SỐ


Qui ước: Các dòng và cột trong ma
trận của C được đánh chỉ số bắt buộc
từ 0.



Như vậy trong ma trận có m dòng và n
cột thì các dòng trong ma trận đánh số
từ 0 cho đến m-1, các cột trong ma
trậ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
chỉ số từ 0 cho đến 19.

Trần Quốc Vinh

6


Khoa CNTT


KTLT

4. CHỈ SỐ

n
0

1

2

… n-2 n-1

0

1

m


m-2
m-1

Trần Quốc Vinh

7


Khoa CNTT


KTLT

4. CHỈ SỐ

j
0

1

2

3

4

… n-2 n-1

0

i

1

m—2
m-1

Trần Quốc Vinh

8



Khoa CNTT

KTLT

5. KỸ THUẬT NHẬP
MA 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
12. {
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23. }


Nhap(int a[][100],
int &m,int &n)

printf(“Nhap m: ”);
scanf(“%d”,&m);
printf(“Nhap n: ”);
scanf(“%d”,&n);
for(int i=0;ifor(int j=0;j{
printf(“Nhap a[%d][%d]: ”,i,j);
scanf(“%d”,&a[i][j]);
}

Trần Quốc Vinh

9


Khoa CNTT

KTLT

5. KỸ THUẬT NHẬP
MA 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
12. {
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23. }

Nhap(float a[][100],
int &m,int &n)

printf(“Nhap m: ”);
scanf(“%d”,&m);
printf(“Nhap n: ”);
scanf(“%d”,&n);
for(int i=0;ifor(int j=0;j{
printf(“Nhap a[%d][%d]: ”,i,j);

scanf(“%f”,&a[i][j]);
}

Trần Quốc Vinh

10


Khoa CNTT

KTLT

5. KỸ THUẬT NHẬP
MA 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
12. {
13.
14.
15.
16.
17.

18.
19.
20.
21.
22.
23. }

Nhap(long a[][100],
int &m,int &n)

printf(“Nhap m: ”);
scanf(“%d”,&m);
printf(“Nhap n: ”);
scanf(“%d”,&n);
for(int i=0;ifor(int j=0;j{
printf(“Nhap a[%d][%d]: ”,i,j);
scanf(“%ld”,&a[i][j]);
}

Trần Quốc Vinh

11


Khoa CNTT

KTLT


5. KỸ THUẬT NHẬP
MA 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
12. {
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23. }

Nhap(double a[][100],
int &m,int &n)

printf(“Nhap m: ”);
scanf(“%d”,&m);

printf(“Nhap n: ”);
scanf(“%d”,&n);
for(int i=0;ifor(int j=0;j{
printf(“Nhap a[%d][%d]: ”,i,j);
scanf(“%lf”,&a[i][j]);
}

Trần Quốc Vinh

12


Khoa CNTT

KTLT

5. KỸ THUẬT NHẬP
MA TRẬN


Vấn đề 5: Hãy định nghĩa hàm nhập ma
trận các phân số.



Định nghĩa hàm

11. struct


phanso

12.{

int tu;
int mau;

13.
14.
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.}
Trần Quốc Vinh

13



Khoa CNTT

KTLT

5. KỸ THUẬT NHẬP
MA TRẬN


Định nghĩa hàm

11. void

Nhap(PHANSO a[][100],
int &m,int &n)

12.{
13.
14.
15.

16.
17.
18.
19.
20.
21.
22.

printf(“Nhap m:”);

scanf(“%d”,&m);
printf(“Nhap n:”);
scanf(“%d”,&n);
for(int i=0;ifor(int j=0;j{
printf(“Nhap a[%d]][%d]:”,i,j);
Nhap(a[i][j]);
}

23.}

Trần Quốc Vinh

14


Khoa CNTT

KTLT

6. KỸ THUẬT XUẤT
MA 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
4.

{
for(int j=0;j
5.

printf(“%4d”,a[i][j]);

6.

printf(“\n”);

7.


}

8.
9.

}

Trần Quốc Vinh

15


Khoa CNTT

KTLT

6. KỸ THUẬT XUẤT
MA 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
4.

{
for(int j=0;j
5.

printf(“%8.3f”,a[i][j]);

6.

printf(“\n”);

7.

}

8.
9.


}

Trần Quốc Vinh

16


Khoa CNTT

KTLT

6. KỸ THUẬT XUẤT
MA 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
4.

{
for(int j=0;j
5.

printf(“%ld”,a[i][j]);

6.

printf(“\n”);

7.

}

8.
9.

}

Trần Quốc Vinh

17



Khoa CNTT

KTLT

6. KỸ THUẬT XUẤT
MA 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

4.

{
for(int j=0;j
5.

printf(“%lf”,a[i][j]);

6.

printf(“\n”);

7.

}

8.
9.

}

Trần Quốc Vinh

18


Khoa CNTT

KTLT


6. KỸ THUẬT XUẤT
MA TRẬN


Vấn đề 5: Hãy định nghĩa hàm xuất
ma trận các phân số.



Định nghĩa hàm

1.

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.}

Trần Quốc Vinh

19


Khoa CNTT

KTLT

6. KỸ THUẬT XUẤT

MA TRẬN


Định nghĩa hàm

1.

void Xuat(PHANSO a[][100],
int m,int n)

2.

{

3.

for(int i=0;i
4.

{
for(int j=0;j
5.

xuat(a[i][j]);

6.

printf(“\n”);


7.

}

8.
9.

}

Trần Quốc Vinh

20


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ác
số nguyên.



Định nghĩa hàm


1.

int DemChan(int a[][100],
int m,int n)
{
int dem=0;
for(int i=0;ifor(int j=0;jif(a[i][j]%2==0)
dem++;
return dem;
}

2.

3.
4.
5.
6.
7.

8.
9.

Trần Quốc Vinh

21



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ác
số nguyên.



Định nghĩa hàm

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.}
1.

Trần Quốc Vinh

22


Khoa CNTT

KTLT

7. KỸ THUẬT ĐẾM
TRÊN MA TRẬN


Định nghĩa hàm

1.

int DemNguyenTo(int a[][100],
int m,int n)

2.

{

3.


int dem=0;

4.

for(int i=0;i
5.

for(int j=0;j
6.

if(ktnt(a[i][j])==1)
dem++;

7.

return dem;

8.

9.

}

Trần Quốc Vinh

23



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)
{
int s = 0;
for(int i=0;ifor(int j=0;jif(a[i][j]%2!=0)
s=s+a[i][j];
return s;
}


2.

3.
4.
5.
6.
7.

8.
9.

Trần Quốc Vinh

24


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)
{
float s = 0;
for(int i=0;ifor(int j=0;jif(a[i][j]>0)
s=s+a[i][j];
return s;
}

2.

3.
4.
5.
6.
7.

8.
9.

Trần Quốc Vinh

25



Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×