You are on page 1of 22

Tin hc i cng

Bi 9: Cu trc

NGUYN Th Oanh oanhnt@soict.hut.edu.vn


B mn H thng thng tin - Vin CNTT v Truyn Thng i hc Bch Khoa H ni

2010 - 2011

Khi nim Khai bo v s dng X l d liu Mng

cu cu cu cu

trc trc trc trc

Ni dung

Khi nim cu trc Khai bo v s dng cu trc X l d liu cu trc Mng cu trc

2 / 23

Khi nim Khai bo v s dng X l d liu Mng

cu cu cu cu

trc trc trc trc

Khi nim cu trc

! Kiu d liu cu trc (struct ):


L kiu d liu phc hp, bao gm nhiu thnh phn c th thuc cc kiu d liu khc nhau Cc thnh phn: gi l trng d liu (field )

! V d:
Thng tin v kt qu hc tp mn Tin i cng ca sinh vin: TenSV, MaSV, Diem Thng tin v cu th: Ten, Tuoi, CLB, SoAo, Vitri,. . .

3 / 23

Khi nim Khai bo v s dng X l d liu Mng

cu cu cu cu

trc trc trc trc

Khai bo kiu d liu cu trc Khai bo bin cu trc nh ngha kiu d liu cu trc vi typedef

Khi nim cu trc Khai bo v s dng cu trc Khai bo kiu d liu cu trc Khai bo bin cu trc nh ngha kiu d liu cu trc vi typedef X l d liu cu trc Mng cu trc

4 / 23

Khi nim Khai bo v s dng X l d liu Mng

cu cu cu cu

trc trc trc trc

Khai bo kiu d liu cu trc Khai bo bin cu trc nh ngha kiu d liu cu trc vi typedef

Khai bo kiu d liu cu trc


! Khai bo:
struct ten_cau_truc {
khai bo cc trng DL;

! VD:
struct sinh_vien{
char SBD[10]; char ho_va_ten[40]; float diem_thi[10];

} }

struct point_3D{
float x; float y; float z;

}
5 / 23

Khi nim Khai bo v s dng X l d liu Mng

cu cu cu cu

trc trc trc trc

Khai bo kiu d liu cu trc Khai bo bin cu trc nh ngha kiu d liu cu trc vi typedef

Khi nim cu trc Khai bo v s dng cu trc Khai bo kiu d liu cu trc Khai bo bin cu trc nh ngha kiu d liu cu trc vi typedef X l d liu cu trc Mng cu trc

6 / 23

Khi nim Khai bo v s dng X l d liu Mng

cu cu cu cu

trc trc trc trc

Khai bo kiu d liu cu trc Khai bo bin cu trc nh ngha kiu d liu cu trc vi typedef

Khai bo bin cu trc

! Khai bo bin:
struct ten_cau_truc ten_bien_cau_truc;

! VD:
struct sinh_vien a, b, c;

! Kt hp khai bo:
struct [ten_cau_truc ]{
khai bo cc trng DL;

} ten_bien_cau_truc ;

7 / 23

Khi nim Khai bo v s dng X l d liu Mng

cu cu cu cu

trc trc trc trc

Khai bo kiu d liu cu trc Khai bo bin cu trc nh ngha kiu d liu cu trc vi typedef

Khai bo bin cu trc


! Cc cu trc c th c khai bo lng nhau struct diem_thi {
float dToan, dLy, dHoa;

struct sinh_vien{
char SBD[10]; char ho_va_ten[40]; struct diem_thi {
float dToan, dLy, dHoa;

} struct sinh_vien{
char SBD[10]; char ho_va_ten[40]; struct diem_thi ket_qua;

} ket_qua;

} thi_sinh_1, thi_sinh_2;

} thi_sinh_1, thi_sinh_2;
8 / 23

Khi nim Khai bo v s dng X l d liu Mng

cu cu cu cu

trc trc trc trc

Khai bo kiu d liu cu trc Khai bo bin cu trc nh ngha kiu d liu cu trc vi typedef

Khi nim cu trc Khai bo v s dng cu trc Khai bo kiu d liu cu trc Khai bo bin cu trc nh ngha kiu d liu cu trc vi typedef X l d liu cu trc Mng cu trc

9 / 23

Khi nim Khai bo v s dng X l d liu Mng

cu cu cu cu

trc trc trc trc

Khai bo kiu d liu cu trc Khai bo bin cu trc nh ngha kiu d liu cu trc vi typedef

nh ngha kiu d liu cu trc vi typedef


! Mc ch:
t tn mi cho kiu d liu cu trc Gip khai bo bin quen thuc v t sai hn

! C php:
typedef struct tn_c tn_mi ; hoc typedef struct [tn_c ] {
khai bo cc trng d liu;

} danh_sch_cc_tn_mi ;

! tn_mi c th trng tn_c

10 / 23

Khi nim Khai bo v s dng X l d liu Mng

cu cu cu cu

trc trc trc trc

Khai bo kiu d liu cu trc Khai bo bin cu trc nh ngha kiu d liu cu trc vi typedef

V d
! Khai bo cu trc:
struct point_3D {
float x, y, z;

! nh ngha kiu d liu:


typedef struct point_3D {
float x, y, z;

} diem3D, ten_bat_ky;

Khai bo bin:
struct point_3D p1;

Khai bo bin:
diem3D p1; ten_bat_ky p2;

! nh ngha kiu d liu: typedef struct point_3D diem3D; Khai bo bin: diem3D p1;
11 / 23

Khi nim Khai bo v s dng X l d liu Mng

cu cu cu cu

trc trc trc trc

Khai bo kiu d liu cu trc Khai bo bin cu trc nh ngha kiu d liu cu trc vi typedef

V d

! Lu :
p1, p2: cc bin diem3D, ten_bat_ky: kiu d liu cu trc, khng phi l tn bin point_3D: tn cu trc

12 / 23

Khi nim Khai bo v s dng X l d liu Mng

cu cu cu cu

trc trc trc trc

Truy cp cc trng d liu Php gn gia cc bin cu trc

Khi nim cu trc Khai bo v s dng cu trc X l d liu cu trc Truy cp cc trng d liu Php gn gia cc bin cu trc Mng cu trc

13 / 23

Khi nim Khai bo v s dng X l d liu Mng

cu cu cu cu

trc trc trc trc

Truy cp cc trng d liu Php gn gia cc bin cu trc

Truy cp cc trng d liu

! C php: tn_bin_cu_trc.tn_trng ! Lu :
Du .: ton t truy cp vo trng d liu trong cu trc Nu trng d liu l mt cu trc s dng tip du . truy cp vo thnh phn mc su hn

! V d: p1.x, p1.y, p1.z

14 / 23

Khi nim Khai bo v s dng X l d liu Mng

cu cu cu cu

trc trc trc trc

Truy cp cc trng d liu Php gn gia cc bin cu trc

V d v cu trc

! Xy dng mt cu trc biu din im trong khng gian 2 chiu. Nhp gi tr cho mt bin kiu cu trc ny, sau hin th gi tr cc trng d liu ca bin ny ra mn hnh.
Cu trc: tn im, ta x, ta y Nhp, hin th tng trng ca bin cu trc nh cc bin d liu khc

15 / 23

Khi nim Khai bo v s dng X l d liu Mng

cu cu cu cu

trc trc trc trc

Truy cp cc trng d liu Php gn gia cc bin cu trc

V d v cu trc
#i n c l u d e <s t d i o . h> #i n c l u d e <c o n i o . h> typedef struct { char ten [ 1 0 ] ; int x , y ; } toado ; v o i d main ( ) { toado t ; p r i n t f ( "Nhap t h o n g t i n t o a do \n" ) ; p r i n t f ( "Ten diem : " ) ; g e t s ( t . t e n ) ; p r i n t f ( "Toa do x : " ) ; s c a n f ( "%d" ,& t . x ) ; p r i n t f ( "Toa do y : " ) ; s c a n f ( "%d" ,& t . y ) ; p r i n t f ( " G i a t r i c a c t r u o n g da nhap vao l a : \ n" ) ; p r i n t f ( "%10s%3d%3d\n" , t . t e n , t . x , t . y ) ; getch () ; }

16 / 23

Khi nim Khai bo v s dng X l d liu Mng

cu cu cu cu

trc trc trc trc

Truy cp cc trng d liu Php gn gia cc bin cu trc

Khi nim cu trc Khai bo v s dng cu trc X l d liu cu trc Truy cp cc trng d liu Php gn gia cc bin cu trc Mng cu trc

17 / 23

Khi nim Khai bo v s dng X l d liu Mng

cu cu cu cu

trc trc trc trc

Truy cp cc trng d liu Php gn gia cc bin cu trc

Php gn gia cc bin cu trc

! Sao chp d liu t bin cu trc ny sang bin cu trc khc cng kiu
gn ln lt tng trng trong hai bin cu trc => th cng:
p2.x = p1.x; p2.y = p1.y; p2.z = p1.z;

C cung cp php gn hai bin cu trc cng kiu: bien_1 = bien_2;

18 / 23

Khi nim Khai bo v s dng X l d liu Mng

cu cu cu cu

trc trc trc trc

Truy cp cc trng d liu Php gn gia cc bin cu trc

Php gn gia cc bin cu trc


#i n c l u d e <s t d i o . h> #i n c l u d e <c o n i o . h> typedef struct { char hoten [ 2 0 ] ; i n t diem ; } sinhvien ; v o i d main ( ) { sinhvien a ,b , c ; p r i n t f ( "Nhap t h o n g t i n s i n h v i e n \n" ) ; p r i n t f ( "Ho t e n : " ) ; g e t s ( a . h o t e n ) ; p r i n t f ( "Diem : " ) ; s c a n f ( "%d" ,& a . diem ) ; b = a; s t r c p y ( c . hoten , a . hoten ) ; c . diem = a . diem ; p r i n t f ( " Bien a : " ) ; p r i n t f ( "%20s%3d\n" , a . h o t e n , a . diem ) ; p r i n t f ( " Bien b : " ) ; p r i n t f ( "%20s%3d\n" , b . h o t e n , b . diem ) ; p r i n t f ( " Bien c : " ) ; p r i n t f ( "%20s%3d\n" , c . h o t e n , c . diem ) ; getch () ; }

19 / 23

Khi nim Khai bo v s dng X l d liu Mng

cu cu cu cu

trc trc trc trc

Mng cu trc
! L tp hp cc phn t c cng kiu d liu l kiu cu trc ! Mc ch:
Lu tr mt tp hp cc phn t c cng kiu Mi phn t c cc thnh phn c th c gi tr khc nhau: thng tin cc sinh vin trong lp, i bng. . .

! Khai bo: struct tn_cu_trc tn_bin_mng [s phn t]; kiu_cu_trc tn_bin_mng [s phn t]; ! V d: struct point_3D mang_3D[10]; diem3D mang_3D[10];

20 / 23

Khi nim Khai bo v s dng X l d liu Mng

cu cu cu cu

trc trc trc trc

Bi tp

1 2 3 4 5 6

Khai bo mt cu trc gm: tn v im thi Tin i cng Khai bo mng tn l sv thuc kiu trn Nhp t bn phm s n l s sinh vin trong lp Nhp thng tin n sinh vin v lu vo mng sv Sp xp mng theo th t tng dn ca im, tn Hin th ra mn hnh danh sch cc sinh vin c im >=8

../VD_C/VD_Cautruc_Baitap.c

21 / 23

Khi nim Khai bo v s dng X l d liu Mng

cu cu cu cu

trc trc trc trc

Questions & Answers

22 / 23

You might also like