Professional Documents
Culture Documents
KTLT C18 DuLieuKieuCauTruc - PPT (By Bsquochoai - Ga)
KTLT C18 DuLieuKieuCauTruc - PPT (By Bsquochoai - Ga)
K THUT LP TRNH
ThS. ng Bnh Phng
dbphuong@fit.hcmus.edu.vn
1
&
VC
BB
Ni dung
4 Bi tp
Thng tin 1 SV
MSSV: kiu chui
Tn SV: kiu chui
NTNS: kiu chui
Phi: kiu k t
im Ton, L, Ha: kiu s thc
Yu cu
Lu thng tin n SV?
Truyn thng tin n SV vo hm?
D liu kiu cu trc
3
&
VC
BB
t vn
Khai bo cc bin lu tr 1 SV
char mssv[8]; // 0012078
char hoten[30]; // Nguyen Van A
char ntns[9]; // 29/12/82
char phai; // 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);
D liu kiu cu trc
4
&
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
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;
};
V d
struct DIEM
{
int x;
int y;
} diem1, diem2;
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>;
V d
typedef struct
{
int x;
int y;
} DIEM;
struct DIEM diem1, diem2;
D liu kiu cu trc
9
&
VC
BB
Khi to cho bin cu trc
V d
struct DIEM
{
int x;
int y;
} diem1 = {2912, 1706}, diem2;
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);
D liu kiu cu trc
11
&
VC
BB
Gn d liu kiu cu trc
C 2 cch
<bin cu trc ch> = <bin cu trc ngun>;
V d
struct DIEM
{
int x, y;
} diem1 = {2912, 1706}, diem2;
diem2 = diem1;
diem2.x = diem1.x;
diem2.y = diem1.y * 2;
struct HINHCHUNHAT
{
struct DIEM traitren;
struct DIEM phaiduoi;
} hcn1;
hcn1.traitren.x = 2912;
hcn1.traitren.y = 1706;
D liu kiu cu trc
13
&
VC
BB
Cu trc phc tp
struct NODE
{
int value;
struct NODE *pNext;
};
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
V d
struct A
{
int a;
double b;
};
sizeof(A) = ???
struct B1 struct B2
{ {
int a; int a;
int b; double c;
double c; int b;
}; };
sizeof(B1) = ??? sizeof(B2) = ???
D liu kiu cu trc
17
&
VC
BB
Ch th #pragma pack
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;
Mng cu trc
Tng t nh mng vi kiu d liu c s
(char, int, float, )
struct DIEM
{
int x;
int y;
};
DIEM mang1[20];
DIEM mang2[10] = {{3, 2}, {4, 4}, {2, 7}};
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>;
};
V d
struct MYSTRUCT union MYUNION
{ {
char c; char c;
int n; int n;
} s; } u;
0 1 2 3 4 0 1 2 3
01 02 00 00 00 02 00 00 00
01
c n c
n
D liu kiu cu trc
24
&
VC
BB
V d
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
D liu kiu cu trc
27
&
VC
BB
Bi tp
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 o hm cp k ca n thc
Tnh gi tr n thc ti x = x0
a thc
Khai bo kiu d liu a thc (DATHUC)
Nhp/Xut a thc
Tnh tng, hiu, tch hai a thc
Tnh o hm cp 1 ca a thc
Tnh o hm cp k ca a thc
Tnh gi tr n thc ti x = x0
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
D liu kiu cu trc
31
&
VC
BB
Bi tp
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
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