Professional Documents
Culture Documents
Bai Giang Hay Ve Cau Truc
Bai Giang Hay Ve Cau Truc
NHP MN LP TRNH
ng Bnh Phng
dbphuong@fit.hcmuns.edu.vn
CU TRC
VC
& BB
Ni dung
1
2 3 4
Bi tp
NMLT - Cu trc
VC
& BB
t vn
Thng tin 1 SV MSSV : kiu chui Tn SV : kiu chui NTNS : kiu chui Phi : k t im Ton, L, Ha : s thc Yu cu Lu thng tin n SV? Tuyn thng tin n SV vo hm?
NMLT - Cu trc
VC
& BB
t vn
Khai bo cc bin lu tr 1 SV char mssv[7]; // 0012078 char hoten[30]; // Nguyen Van A char ntns[8]; // 29/12/82 char phai; // y Nam, n N float toan, ly, hoa; // 8.5 9.0 10.0 Truyn thng tin 1 SV cho hm void xuat(char mssv[], char hoten[], char ntns[], char phai, float toan, float ly, float hoa);
NMLT - Cu trc
VC
& BB
t vn
Nhn xt t tn bin kh khn v kh qun l Truyn tham s cho hm qu nhiu Tm kim, sp xp, sao chp, kh khn Tn nhiu b nh tng Gom nhng thng tin ca cng 1 SV thnh mt kiu d liu mi => Kiu struct
NMLT - Cu trc
VC
& BB
C php
struct <tn kiu cu trc> { <kiu d liu> <tn thnh phn 1>; <kiu d liu> <tn thnh phn n>; };
V d
struct DIEM { int x; int y; };
NMLT - Cu trc
VC
& BB
V d
struct DIEM { int x; int y; } diem1, diem2;
NMLT - Cu trc
VC
& BB
V d
struct DIEM { int x; int y; }; struct DIEM diem1, diem2;// C++ c th b struct
NMLT - Cu trc
VC
& BB
S dng typedef
C php
typedef struct { <kiu d liu> <tn thnh phn 1>; <kiu d liu> <tn thnh phn n>; } <tn kiu cu trc>; <tn kiu cu trc> <tn bin>; typedef struct { int x; int y; } DIEM; struct DIEM diem1, diem2;
NMLT - Cu trc
V d
VC
& BB
V d
struct DIEM { int x; int y; } diem1 = {2912, 1706}, diem2;
NMLT - Cu trc
10
VC
& BB
c im Khng th truy xut trc tip Thng qua ton t thnh phn cu trc . hay cn gi l ton t chm (dot operation)
<tn bin cu trc>.<tn thnh phn>
V d
struct DIEM { int x; int y; } diem1; printf(x = %d, y = %d, diem1.x, diem1.y);
NMLT - Cu trc
11
VC
& BB
C 2 cch
<bin cu trc ch> = <bin cu trc ngun>;
<bin cu trc ch>.<tn thnh phn> = <gi tr>;
V d
struct DIEM { int x, y; } diem1 = {2912, 1706}, diem2; diem2 = diem1; diem2.x = diem1.x; diem2.y = diem1.y * 2;
NMLT - Cu trc
12
VC
& BB
Cu trc phc tp
13
VC
& BB
Cu trc phc tp
NMLT - Cu trc
14
VC
& BB
Cu trc phc tp
NMLT - Cu trc
15
VC
& BB
Cu trc phc tp
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
NMLT - Cu trc
16
VC
& BB
V d
struct A { int a; double b; }; sizeof(A) = ??? struct B1 { int a; int b; double c; }; sizeof(B1) = ??? struct B2 { int a; double c; int b; }; sizeof(B2) = ???
NMLT - Cu trc
17
VC
& BB
Ch th #pragma pack
Ch th #pragma pack (n) n = 1, 2, 4, 8, 16 (byte) Bin ln nht ca cc thnh phn trong struct
BC n mc nh l 1 VC++ n mc nh l 8 Project settings Compile Option C/C++ Code Generation Structure Alignment
18
VC
& BB
#pragma pack
a a a a a a a a b b b b c c c c b b b b m 4B a a a a a a a a c c c c m 4B b b b b c c c c a a a a a a a a
NMLT - Cu trc
19
VC
& BB
Cc lu v cu trc
Lu Kiu cu trc c nh ngha lm khun dng cn bin cu trc c khai bo s dng khun dng nh ngha. Trong C++, c th b t kha struct khi khai bo bin (hoc s dng typedef) Khi nhp cc bin kiu s thc trong cu trc phi nhp thng qua mt bin trung gian.
struct DIEM { float x, y;} d1; float temp; scanf(%f, &temp); d1.x = temp;
NMLT - Cu trc
20
VC
& BB
Mng cu trc
NMLT - Cu trc
21
VC
& BB
V d
struct DIEM { int x, y; }; void xuat1(int x, int y) { }; void xuat2(DIEM diem) { }; void xuat3(DIEM &diem) { }; void xuat4(DIEM *diem) { };
NMLT - Cu trc
22
VC
& BB
Hp nht union
Khi nim c khai bo v s dng nh cu trc Cc thnh phn ca union c chung a ch u (nm chng ln nhau trong b nh) Khai bo
union <tn kiu union> { <kiu d liu> <tn thnh phn 1>; <kiu d liu> <tn thnh phn 2>; };
NMLT - Cu trc
23
VC
& BB
V d
struct MYSTRUCT { char c; int n; } s;
s.c = 1; s.n = 2;
0 1 2 3 4
0 1 2 3
01 02 00 00 00
c n
02 01 00 00 00
c n
NMLT - Cu trc
24
VC
& BB
V d
NMLT - Cu trc
25
VC
& BB
V d
NMLT - Cu trc
26
VC
& BB
Bi tp v cu trc
1. Phn s Khai bo kiu d liu phn s (PHANSO) Nhp/Xut phn s Rt gn phn s Tnh tng, hiu, tch, thng hai phn s Kim tra phn s ti gin Quy ng hai phn s Kim tra phn s m hay dng So snh hai phn s
NMLT - Cu trc
27
VC
& BB
Bi tp v cu trc
2. n thc Khai bo kiu d liu n thc (DONTHUC) Nhp/Xut n thc Tnh tch, thng hai n thc Tnh o hm cp 1 ca n thc Tnh gi tr n thc ti x = x0
NMLT - Cu trc
28
VC
& BB
Bi tp v cu trc
3. a thc Khai bo kiu d liu a thc (DATHUC) Nhp/Xut a thc Tnh tng, hiu, tch, thng hai n thc Tnh o hm cp 1 ca n thc Tnh o hm cp k ca n thc Tnh gi tr n thc ti x = x0
NMLT - Cu trc
29
VC
& BB
Bi tp v cu trc
4. im trong mt phng Oxy Khai bo kiu d liu im (DIEM) Nhp/Xut ta im Tnh khong cch gia hai im Tm im i xng qua gc to /trc Ox/Oy Kim tra im thuc phn t no? 5. Tam gic Khai bo kiu d lu tam gic (TAMGIAC) Nhp/Xut tam gic Tnh chu vi, din tch tam gic 30
NMLT - Cu trc
VC
& BB
Bi tp v cu trc
6. Ngy Khai bo kiu d liu ngy (NGAY) Nhp/Xut ngy (ngy, thng, nm) Kim tra nm nhun Tnh s th t ngy trong nm Tnh s th t ngy k t ngy 1/1/1 Tm ngy trc , sau k ngy Tnh khong cch gia hai ngy So snh hai ngy
NMLT - Cu trc
31
VC
& BB
Bi tp v mng cu trc
7. Mng phn s Nhp/Xut n phn s Rt gn mi phn s m s lng phn s m/dng trong mng Tm phn s dng u tin trong mng Tm phn s nh nht/ln nht trong mng Sp xp mng tng dn/gim dn
NMLT - Cu trc
32
VC
& BB
Bi tp v mng cu trc
8. Mng im Nhp/Xut n im m s lng im c honh dng m s lng im khng trng vi cc im khc trong mng Tm im c honh ln nht/nh nht Tm im gn gc ta nht
NMLT - Cu trc
33