Xem mẫu
- M ng nhi u chi u
Ki u c u trúc
GV. Nguy n Minh Huy
Nh p môn l p trình - Nguy n Minh Huy 1
- N i dung
M ng nhi u chi u.
u.
Ki
Ki u c u trúc.
trúc.
Nh p môn l p trình - Nguy n Minh Huy 2
- N i dung
M ng nhi u chi u.
u.
Ki
Ki u c u trúc.
trúc.
Nh p môn l p trình - Nguy n Minh Huy 3
- M ng nhi u chi u
Xét
Xét chương trình sau:
sau:
Nh p và xu t ma tr n 5 x 10.
Khai
Khai báo 5 m ng: int a1[10], a2[10], a3[10], a4[10], a5[10].
int
Nh
Nh p và xu t ma tr n 50 x 10.
Khai
Khai báo 50 m ng!!
ng!!
Làm
Làm sao bi u di n ma tr n M x N?
Nh p môn l p trình - Nguy n Minh Huy 4
- M ng nhi u chi u
Gi
Gi i pháp 1:
Dùng
Dùng m ng m t chi u!!
u!!
Bi
Bi u di n ma tr n M x N:
tr
Khai
Khai báo m ng M x N ph n t .
Đ truy xu t dòng i c t j
Truy
Truy xu t ph n t [ i * N + j ].
Nh p môn l p trình - Nguy n Minh Huy 5
- M ng nhi u chi u
Gi
Gi i pháp 2:
Dùng
Dùng m ng c a m ng.
ng.
T khóa typedef:
khóa
Đ t tên khác cho ki u d li u.
u.
Cú pháp:
Cú pháp:
typedef ;
u> khác>
typedef int SoNguyen;
typedef float MangThuc[10];
MangThuc
SoNguyen a, b, c;
MangThuc m;
printf(“%d
printf(“%d %d %d”, a, b, c);
m[5] = 123;
Nh p môn l p trình - Nguy n Minh Huy 6
- M ng nhi u chi u
Gi
Gi i pháp 2:
Bi
Bi u di n ma tr n M x N:
Đ t tên cho m ng N ph n t .
ph
Khai
Khai báo m ng M ph n t ki u đã đ t tên.
tên.
Đ truy xu t dòng i c t j
Truy
Truy xu t ph n t [ i ] [ j ].
Nh p môn l p trình - Nguy n Minh Huy 7
- M ng nhi u chi u
Gi
Gi i pháp 3:
Dùng
Dùng m ng nhi u chi u.
u.
Khai
Khai báo:
[] [];
u> ng>[ dòng> t>
, ph i là m t h ng s .
dòng>,
int m1[5][10]; // Ma tr n 5 x 10 s nguyên.
nguyên.
int m2[M][N]; // Sai.
Sai.
Truy
Truy xu t ph n t :
[ ] [ ]
dòng
: m t s nguyên t 0 đ n - 1.
dòng>: dòng>
: m t s nguyên t 0 đ n - 1.
t>: t>
m1[0][2] = 5;
m1[1][3] = 6;
6;
m1[-1][10] = 7;
7; // Sai.
Sai.
Nh p môn l p trình - Nguy n Minh Huy 8
- M ng nhi u chi u
Gi
Gi i pháp 3:
Dùng
Dùng m ng nhi u chi u.
u.
Kh
Kh i t o:
[] [] =
u> ng>[ dòng> t>
{
,
,
};
// Kh i t o t t c ph n t .
Kh ph // Kh i t o vài ph n t .
Kh // T đ ng bi t s dòng.
dòng
int m1[3][5] = int m1[3][5] = int m1[ ][5] =
{ { {
{ 1, 1, 1, 1, 1 }, { 1, 1 }, { 1, 1 },
{ 1, 2, 3, 4, 5 }, { 1, 2, 3 }, { 1, 2, 3 },
{ 5, 4, 3, 2, 1 } {0} {0}
}; }; };
Nh p môn l p trình - Nguy n Minh Huy 9
- Khái
Khái ni m m ng
Gi
Gi i pháp 3:
Dùng
Dùng m ng nhi u chi u.
u.
Truy
Truy n tham s m ng:
Khai
Khai báo tham s m ng gi ng bi n m ng.
ng.
void foo( int a[5][10] );
foo( int
Khai
Khai báo tham s m ng có th b s dòng.
dòng.
void foo( int a[ ][10] );
foo( int
Ph
Ph n t m ng có th b thay đ i sau khi ra kh i hàm.
hàm.
void main()
void foo( int a[ ][10] )
foo int ][10]
{
{
int a[5][10] = { { 0 } };
a[2][2]
a[2][2] = 9;
a[2][5]
a[2][5] = 8;
foo(a);
foo(a);
}
// a[2][2], a[2][5] b thay đ i.
a[2][2], a[2][5] i.
}
Nh p môn l p trình - Nguy n Minh Huy 10
- N i dung
M ng nhi u chi u.
u.
Ki
Ki u c u trúc.
trúc.
Nh p môn l p trình - Nguy n Minh Huy 11
- Ki
Ki u c u trúc
Xét
Xét chương trình sau:
sau:
Thông
Thông tin m t h c sinh g m:
m:
H tên.
Ngày sinh.
Ngày sinh.
Gi tính.
Gi i tính.
Đi
Đi m văn, toán, ngo i ng .
văn, toán,
Vi
Vi t chương trình:
trình:
Nh
Nh p vào 1 h c sinh.
sinh.
Xu
Xu t thông tin h c sinh v a nh p.
Nh p môn l p trình - Nguy n Minh Huy 12
- Ki
Ki u c u trúc
Ki
Ki u c u trúc trong C:
Ki
Ki u d li u ph c h p.p.
Gom
Gom nhóm d li u v i nhau.
li
Khai
Khai báo ki u c u trúc:
trúc: struct
struct HocSinh
{
struct
trúc>
char hoten[50];
hoten[50];
{
char ngaysinh[11];
ngaysinh[11];
; bool gioitinh;
gioitinh;
; float diemvan;
diemvan;
float diemtoan;
diemtoan
};
}; };
Khai
Khai báo bi n c u trúc:
trúc: void main()
;
trúc> n>; {
HocSinh hs1, hs2;
}
Nh p môn l p trình - Nguy n Minh Huy 13
- Ki
Ki u c u trúc
Ki
Ki u c u trúc trong C:
Kh
Kh i t o bi n c u trúc:
trúc:
void
void main()
=
{
{
HocSinh hs =
,
{
,
“Nguyen Van A”,
“01/01/1997”,
}; 1,
Truy
Truy xu t thành ph n:
n: 7, 8, 9
};
. .
hs.diemvan = 5;
hs.diemToan = 9;
}
Nh p môn l p trình - Nguy n Minh Huy 14
- Ki
Ki u c u trúc
Ki
Ki u c u trúc trong C: void cong1(HocSinh hs)
cong1
{
Truy
Truy n tham s : hs.diemvan++;
hs.diemvan++;
hs.diemtoan++;
Gi
Gi ng các ki u bình thư ng.
}
Truy
Truy n tham tr
Giá
Giá tr thành ph n không đ i.i. void cong2(HocSinh &hs)
cong2
{
Truy
Truy n tham chi u
hs.diemvan++;
hs.diemvan++;
Giá
Giá tr thành ph n thay đ i.
i.
hs.diemtoan++;
hs.diemtoan++;
}
void main()
main
{
HocSinh hs1;
cong1(hs1);
cong2(hs1);
}
Nh p môn l p trình - Nguy n Minh Huy 15
- Tóm
Tóm t t
M ng nhi u chi u:
u:
Gi
Gi i pháp 1: m ng m t chi u.
u.
Gi
Gi i pháp 2: m ng c a m ng.
Gi
Gi i pháp 3: m ng nhi u chi u th t s .
Ki
Ki u c u trúc:
trúc:
Ki
Ki u d li u ph c h p.p.
Gom
Gom nhóm d li u v i nhau.
nhau.
Khai
Khai báo: t khóa “struct”.
Truy
Truy xu t ph n t : d u “.”.
Nh p môn l p trình - Nguy n Minh Huy 16
- Bài
Bài t p
Bài
Bài t p 8.1:
Vi t chương trình C:
- Nh p vào ma tr n s nguyên M x N.
tr nguyên
- Hãy cho bi t:
t:
a) T ng ph n t n m trên đư ng chéo chính/ph .
chính/
b) Dòng có t ng l n nh t, nh nh t.
t, t.
c) Ma tr n M x N có là m t ma phương hay không.
không.
Nh p môn l p trình - Nguy n Minh Huy 17
- Bài
Bài t p
Bài
Bài t p 8.2:
Vi t chương trình C:
- Nh p vào 2 ma tr n s nguyên M1 x N1 và M2 x N2.
tr nguyên và
- Hãy:
Hãy:
a) Tính tích 2 ma tr n v a nh p.
p.
b) Trích ra danh sách các s xu t hi n c 2 ma tr n.
n.
Nh p môn l p trình - Nguy n Minh Huy 18
- Bài
Bài t p
Bài
Bài t p 8.3:
Vi t chương trình C:
- Khai báo ki u c u trúc phân s .
- Nh p vào 2 phân s .
- Tính và xu t k t qu t ng, hi u, tích, thương, ngh ch đ o, rút g n
ng, u, tích, thương, o,
c a 2 phân s v a nh p. p.
Nh p môn l p trình - Nguy n Minh Huy 19
- Bài
Bài t p
Bài
Bài t p 8.4:
Vi t chương trình C:
- Khai báo ki u c u trúc đơn th c.
- Nh p vào 2 đơn th c (có d ng axn).
- Tính và xu t k t qu tích, thương, đ o hàm, nguyên hàm c a hai
tích, thương, hàm,
đơn th c v a nh p. p.
Nh p môn l p trình - Nguy n Minh Huy 20
nguon tai.lieu . vn