You are on page 1of 56

CHNG 5: KIU CON TR V KIU

CU TRC

Mc tiu
Gii thiu cc kin thc v kiu Con tr v kiu Cu
trc: khi nim, cch nh ngha, khai bo bin con tr,
bin cu trc, cch truy xut d liu bng con tr v
thao tc vi tng thnh phn ca cu trc.

Ngn ng Lp trnh C ++

Chng 5: Kiu con tr v kiu cu trc

1/56

CHNG 5: KIU CON TR V KIU


CU TRC

Ni dung
Kiu con tr
Kiu cu trc
Cu trc t tr
Mng cu trc
Con tr v mng
Mng con tr

Ngn ng Lp trnh C ++

Chng 5: Kiu con tr v kiu cu trc

2/56

5.1 Kiu Con tr


- a ch v php ton &
- Khai bo bin con tr
- Cc php ton trn con tr
- Cp pht v gii phng b nh
cho con tr

Ngn ng Lp trnh C ++

Chng 5: Kiu con tr v kiu cu trc

3/56

a ch v php ton &


- a ch L mt i lng dng nh v (xc nh) v tr
- i tng mun xc nh y l cc bin v cc phn t
( nh) cha d liu
- xc nh c a ch ca mt i tng no trong
C++, ta s dng php ton mt ngi ly a ch l & theo
c php:
&itng
\\ Dng xc nh v tr nh itng

Ngn ng Lp trnh C ++

Chng 5: Kiu con tr v kiu cu trc

4/56

a ch v php ton &


Trng hp, i tng l mt bin, ta vit
&Tenbien

\\Ly a ch ca bin

Yu cu:
Xc nh a ch ca i tng nu l mng, chui
k t?

Ngn ng Lp trnh C ++

Chng 5: Kiu con tr v kiu cu trc

5/56

a ch v php ton &


V d:
string st="hello";
float a[]={5.0,4.0,3.0,2.0,1.0};
int i;
char b[1]={'a'};
cout<<&st<<endl;
for (i=0; i<=4; i++)
cout<<&a[i]<<endl;
cout<<&a<<endl;
cout<<&b<<endl;
cout<<b[0]<<endl;
Ngn ng Lp trnh C ++

Chng 5: Kiu con tr v kiu cu trc

6/56

Khai bo bin con tr


- Con tr l mt bin cha a ch ca bin khc.
- Gi s P l con tr cha a ch ca bin x th ta gi p tr
ti x hay x c tr bi p.
- Thng qua con tr, ta c th lm vic c vi ni dung
ca nh m con tr tr n.

Ngn ng Lp trnh C ++

Chng 5: Kiu con tr v kiu cu trc

7/56

Khai bo bin con tr


- C php: kiu_d_liu

*tn_bin_con_tr;

Trong :
- Kiu_d_liu l kiu d liu ca nh m ta mun con
tr tr ti.
- Du (*) nhm bo cho trnh bin dch bit ang lm vic
vi kiu d liu l kiu con tr
- tn_bin_con_tr cng c t theo quy tc t tn
=> Khai bo con tr c tn tn_bin_con_tr tr ti nh
cha d liu c kiu_d_liu
Ngn ng Lp trnh C ++

Chng 5: Kiu con tr v kiu cu trc

8/56

Khai bo bin con tr


- S dng con tr
con tr c tnbincontr tr n bin ( nh) c
kiudliu ta cn phi gn con tr tnbincontr cho a
ch ca bin( nh) cn tr n:
tnbincontr = a ch ca nh (bin) cn tr ti
Lu : Khng th gn mt hng a ch c th cho
bincontr
ly ni dung nh m con tr tr ti ta s dng php
ton *.
Ngn ng Lp trnh C ++

Chng 5: Kiu con tr v kiu cu trc

9/56

Khai bo bin con tr


V d:

Ngn ng Lp trnh C ++

float a[]={5.2, 4.3, 3.1, 2.25, 1.0};


int i=9, *q;
float *p, *p1;
p=a; p1=&a[3];
cout<<a<<endl;
cout<<p<<endl;
cout<<p1<<endl;
cout<<a[3]<<endl;
cout<<*p1<<endl;
cout<<*p<<endl;
cout<<*p+*p<<endl;
q=&i; cout<<q<<endl;
Chng 5: Kiu con tr v kiu cu trc

10/56

Cc php ton trn con tr


+ Php gn:
- Gn con tr vi a ch mt bin
- Gn cc con tr vi nhau (phi cng kiu)

Ngn ng Lp trnh C ++

Chng 5: Kiu con tr v kiu cu trc

11/56

Cc php ton trn con tr


V d:
int i=9, j=4, *p, *q;
p=&i; q=&j;
cout<<p<<endl;
cout<<q<<endl;
cout<<*p<<endl;
cout<<*q<<endl;
p=q;
cout<<p<<endl;
cout<<q<<endl;
cout<<*p<<endl<<*q<<endl;
Ngn ng Lp trnh C ++

Chng 5: Kiu con tr v kiu cu trc

12/56

Cc php ton trn con tr


+ Php tng gim a ch:
p+n: Con tr tr n thnh phn th n sau p
p-n: Con tr tr n thnh phn th n trc p
Mt n v tng ca con tr bng kch thc ca bin c
tr.
Chng hn, bin c kiu nguyn th khi con tr tng hay
gim mt n v tng ng vi 2 bytes

Ngn ng Lp trnh C ++

Chng 5: Kiu con tr v kiu cu trc

13/56

Cc php ton trn con tr


V d:
int a[5]={1, 2, 3, 4, 5};
int *p, i;
p=a;
cout<<p<<endl<<endl;
cout<<*p<<endl<<endl;
for (i=0; i<5; i++)
{
cout<<p+i<<endl<<endl;
cout<<*(p+i)<<endl<<endl;
}
Ngn ng Lp trnh C ++

Chng 5: Kiu con tr v kiu cu trc

14/56

Cc php ton trn con tr


+ Php ton t tng, gim: p++, p--, ++p, --p
+ Hiu 2 con tr: p q
+ Php ton so snh: <, <=, >, >=
Cc php ton ny thng p dng cho cc con tr tr n
cc phn t ca cng mt mng d liu

Ngn ng Lp trnh C ++

Chng 5: Kiu con tr v kiu cu trc

15/56

Cp pht v gii phng b nh cho con tr


- Cp pht b nh: s dng ton t new
+ Cp pht tnh
+ Cp pht ng
C php:
p = new kieugiatri;
p = new kieugiatri[so_phan_tu]

Ngn ng Lp trnh C ++

Chng 5: Kiu con tr v kiu cu trc

16/56

Cp pht v gii phng b nh cho con tr


- Gii phng b nh: s dng ton t delete
C php:
delete p;
delete[] p;

Ngn ng Lp trnh C ++

Chng 5: Kiu con tr v kiu cu trc

17/56

Cp pht v gii phng b nh cho con tr


V d:
int *p;
cout<<"Nhap mot so nguyen : ";
cin>>*p;
cout<<*p<<endl;

Ngn ng Lp trnh C ++

int *p;
cout<<"Nhap mot so nguyen : ";
p = new int;
cin>>*p;
cout<<*p<<endl;

Chng 5: Kiu con tr v kiu cu trc

18/56

Cp pht v gii phng b nh cho con tr


Bi 1. Vit chng trnh khai bo bin con tr kiu nguyn.
Sau , nhp vo mt dy gm 10 s nguyn. Hin th
dy ra mn hnh:
-

Theo th t nhp vo

Theo th t ngc li

Bi 2. S dng con tr nhp vo mt dy gm n s thc.


Sau :
-

Hin th dy va nhp ra mn hnh

Hin th dy va nhp ra mn hnh sau khi sp xp

Ngn ng Lp trnh C ++

Chng 5: Kiu con tr v kiu cu trc

19/56

5.2 Kiu cu trc


- Kiu cu trc l g?
- Lm th no nh ngha m t cu
trc?
- Cch khai bo bin cu trc?
- Lm th no lm vi c vi cc thnh
phn ca cu trc?

Ngn ng Lp trnh C ++

Chng 5: Kiu con tr v kiu cu trc

20/56

Khi nim
- Kiu cu trc l kiu d liu bao gm nhiu thnh phn
c kiu khc nhau, mi thnh phn c gi l mt trng
(field)
- Chng hn, Sinh vin gm nhiu trng: m sinh vin, h
tn, ngy thng nm sinh, gii tnh, qu qun,

Ngn ng Lp trnh C ++

Chng 5: Kiu con tr v kiu cu trc

21/56

nh ngha cu trc
- Xc nh cc kiu d liu n gin ca cc bin thnh
phn c nhm li trong cu trc .
- Cn ch ra: tn ca cu trc v cc thnh phn ca n.
Phn bit thnh phn ny vi thnh phn khc thng qua
kiu d liu, tn bin v kt thc bng du chm phy (;).
Cc thnh phn ca cu trc c t trong cp du mc
nhn ({}) v dng du chm phy (;) kt thc vic nh
ngha mt cu trc.

Ngn ng Lp trnh C ++

Chng 5: Kiu con tr v kiu cu trc

22/56

nh ngha cu trc
C php tng qut nh ngha mt kiu cu trc nh sau:
struct
Tn_kiu_cu_trc
{
/*Bt u mt cu trc*/
<Kiudl> <Bin 1>;
<Kiudl> <Bin 2>;
..
<Kiudl> <Bin n>;
};
/*Kt thc mt cu trc

Ngn ng Lp trnh C ++

Chng 5: Kiu con tr v kiu cu trc

23/56

nh ngha cu trc
V d:
struct Ngaythang
{
unsigned int Ngay;
unsigned int Thang;
unsigned int Nam;
};

Ngn ng Lp trnh C ++

//struct lng nhau


struct Sinhvien
{
char MSSV[10];
char Hoten[40];
struct Ngaythang Ngaysinh;
char Gioitinh[5];
char Diachi[40];
};
Chng 5: Kiu con tr v kiu cu trc

24/56

Khai bo bin cu trc


C php khai bo bin kiu cu trc:
Tn_kiu_cu_trc
<Bin 1>, <Bin 2>, ;
struct Ngaythang
{
unsigned int Ngay;
unsigned int Thang;
unsigned int Nam;
};
Ngaythang Ngay_den, Ngay_di

Ngn ng Lp trnh C ++

//Va nh ngha va khai bo bin


struct Ngaythang
{
unsigned int Ngay;
unsigned int Thang;
unsigned int Nam;
}Ngay_den, Ngay_di;

Chng 5: Kiu con tr v kiu cu trc

25/56

Khai bo bin cu trc


Lu :
- C th va khai bo va khi to gi tr cho bin kiu cu
trc
- Khng c php gn trc tip mt b gi tr c th cho
mt bin cu trc.

Ngn ng Lp trnh C ++

Chng 5: Kiu con tr v kiu cu trc

26/56

Khai bo bin cu trc


V d:

struct Ngaythang
{
unsigned int Ngay, Thang, Nam;
};
Ngaythang Ngay_den={20,04,2010};
cout<<Ngay_den.Ngay<<endl;
cout<<Ngay_den.Thang<<endl;
cout<<Ngay_den.Nam<<endl;

Ngn ng Lp trnh C ++

Chng 5: Kiu con tr v kiu cu trc

27/56

Khai bo bin cu trc


V d: struct Ngaythang
{
unsigned int Ngay, Thang, Nam;
};
Ngaythang Ngay_den;
Ngay_den={20,04,2010};
cout<<Ngay_den.Ngay<<endl;
cout<<Ngay_den.Thang<<endl;
cout<<Ngay_den.Nam<<endl;

Ngn ng Lp trnh C ++

Chng 5: Kiu con tr v kiu cu trc

28/56

Phm vi ca cu trc
- Nu kiu struct c khai bo trc tt c cc hm, n c
hiu lc trong ton b chng trnh c s dng n.
- Nu n t bn trong mt hm, th ch c hm c
dng n.
- Thng thng kiu cu trc c khai bo trong tp tiu
(.h) v c s dng trong chng trnh bng lnh
#include.

Ngn ng Lp trnh C ++

Chng 5: Kiu con tr v kiu cu trc

29/56

Truy cp thnh phn ca cu trc


- Nu bin cu trc l thnh phn trc tip ca mt cu
trc, ta truy cp theo c php:
Tn_bin_cu_trc.tn_thnh_phn
- Nu bin cu trc l thnh phn trc tip ca mt cu trc
m bn thn cu trc ny li l thnh phn ca mt cu trc
khc ln hn, ta truy cp theo c php:
Tn_bin_cu_trc.tn_bin_cu_trc.tn_thnh_phn
Tn_bin_cu_trc.tn_bin_cu_trc.tn_bin_cu_tr
c.tn_thnh_phn
- lm vic vi mt bin cu trc, ta cn phi thao tc
trnngtng
thnh
Ngn
Lp trnh
C ++ phn ca n.
Chng 5: Kiu con tr v kiu cu trc 30/56

Truy cp thnh phn ca cu trc


Lu :
i vi cu trc, ta c th gn 2 gi tr bin cu trc cho
nhau. Php gn ny cng tng ng vi vic gn tng
thnh phn ca cu trc

Ngn ng Lp trnh C ++

Chng 5: Kiu con tr v kiu cu trc

31/56

Truy cp thnh phn ca cu trc


V d:
struct Diem
{
int Mon1, Mon2, Mon3;
} sv, hs;
cout<<"Nhap diem cho sinh vien!"<<endl;
cout<<"Mon 1 : "; cin>>sv.Mon1;
cout<<"Mon 2 : "; cin>>sv.Mon2;
cout<<"Mon 3 : "; cin>>sv.Mon3;
hs = sv;
cout<<Tong diem : "<<sv.Mon1+sv.Mon2+sv.Mon3<<endl;
cout<<Tong diem : "<<hs.Mon1+hs.Mon2+hs.Mon3<<endl;
Ngn ng Lp trnh C ++

Chng 5: Kiu con tr v kiu cu trc

32/56

Con tr cu trc
- Con tr cu trc l con tr cha a ch ca mt bin cu
trc hoc mt vng nh c kiu cu trc no .
- Cch khi to mt con tr cu trc:
+ Gn a ch ca mt bin cu trc cho mt thnh
phn ca mng
+ Con tr c khi to bng vic s dng ton t
new cp pht b nh
+ i vi con tr p tr n mng a, ta c th truy
cp n cc thnh phn ca phn t mng:
p[i].Hoten; (p+i)->Hoten; *(p+i).Hoten;
Ngn ng Lp trnh C ++

Chng 5: Kiu con tr v kiu cu trc

33/56

Con tr cu trc
struct Sinhvien
{
char Hoten[30], Gioitinh[5];
float Diem;
} lop[50];
Sinhvien *p;
cout<<"Nhap ho ten sinh vien thu 11: ";
cin.getline(lop[10].Hoten,30);
cout<<"Nhap gioi tinh : "; cin.getline(lop[10].Gioitinh,5);
cout<<"Nhap diem : "; cin>>lop[10].Diem;
p = lop;
cout<<p[10].Hoten<<endl;
cout<<(p+10)->Gioitinh<<endl;
cout<<"Diem : "<<(*(p+10)).Diem<<endl;
Ngn ng Lp trnh C ++

Chng 5: Kiu con tr v kiu cu trc

34/56

a ch ca cc thnh phn cu trc


- Cc thnh phn ca cu trc cng ging nh cc bin. Do
, vic ly a ch ca cc thnh phn ny cng tng t
nh vi bin.
Chng hn: &Sinhvien.Hoten;
&Lop[10].Gioitinh;
&(p->Diem);

Ngn ng Lp trnh C ++

Chng 5: Kiu con tr v kiu cu trc

35/56

5.3 Cu trc t tr
Cch 1:
typedef
struct
{

struct Tncutrc

tnbincutrc;

Tncutrc
cc thnh phn;
tnbincutrc *contr;

};

Ngn ng Lp trnh C ++

Chng 5: Kiu con tr v kiu cu trc

36/56

5.3 Cu trc t tr
Cch 2:
struct

Tncutrc

{
cc thnh phn;
Tncutrc *contr;
};
typedef Tncutrc
Ngn ng Lp trnh C ++

tnbincutrc;
Chng 5: Kiu con tr v kiu cu trc

37/56

5.3 Cu trc t tr
Cch 3:
typedef struct

tnbincutrc

{
cc thnh phn;
tnbincutrc *contr;
};

Ngn ng Lp trnh C ++

Chng 5: Kiu con tr v kiu cu trc

38/56

5.3 Cu trc t tr
Cch 4:
struct tnbincutrc
{
cc thnh phn;
tnbincutrc *contr;
};

Ngn ng Lp trnh C ++

Chng 5: Kiu con tr v kiu cu trc

39/56

5.3 Cu trc t tr
V d:
typedef
struct

struct

SV sinhvien;

SV

struct

SV

char Hoten[30];
char

Hoten[30];

float

float

Diem;

SV *tiep;

sinhvien *tiep;
};

Ngn ng Lp trnh C ++

Diem;

};
typedef

SV sinhvien;

Chng 5: Kiu con tr v kiu cu trc

40/56

5.3 Cu trc t tr
V d:
typedef

struct

sinhvien;

struct

sinhvien

{
char

Hoten[30];

char Hoten[30];

float

Diem;

float

sinhvien *tiep;
};

Ngn ng Lp trnh C ++

Diem;

sinhvien *tiep;
};

Chng 5: Kiu con tr v kiu cu trc

41/56

5.4 Mng cu trc


- Mng cu trc l mng m kiu phn t ca n l kiu
cu trc.
V d: ta xt khai bo sau struct sinhvien
{
char Hoten[30];
float Diem;
Xy dng danh sch
sinh vin ca lp gm n
sinh vin.
Ngn ng Lp trnh C ++

};
sinhvien

SV[60];

Chng 5: Kiu con tr v kiu cu trc

42/56

5.5 Con tr v mng


- Con tr v mng mt chiu
- Con tr v xu k t

Ngn ng Lp trnh C ++

Chng 5: Kiu con tr v kiu cu trc

43/56

Con tr v mng mt chiu


- Con tr c th tr n mt bin hoc mt mng.
- Khi , a ch ca mng chnh l a ch ca phn t u
tin ca mng a[0]. a+i l a ch thnh phn th i ca
mng a.
- Nu cho con tr *p tr n mng a ta gn: p=a hoc p=&a
- Khi , gi tr d liu ca ca phn t a[0] l *p=a[0],
phn t th i l *(p+i)=a[i]=*(a+i)
Ch : ta c th vit *(p+1), *(a+1), *(p++) nhng khng
th vit *(a++).
Ngn ng Lp trnh C ++

Chng 5: Kiu con tr v kiu cu trc

44/56

Con tr v mng mt chiu


V d:
int a[100];
int i, n, *p;
cout<<"Nhap so phan tu cua mang n= "; cin>>n;
for (i=0;i<n;i++)
{ cout<<"a["<<i<<"]= "; cin>>a[i];}
cout<<"In cac gia tri vua nhap "<<endl;
for (i=0;i<n;i++) cout<<a[i]; cout<<endl;
for (p=a;p<a+n;p++) cout<<*p; cout<<endl;
for (p=a,i=0;i<n;i++) cout<<*(p+i); cout<<endl;
for (i=0;i<n;i++) cout<<*(a+i); cout<<endl;

Ngn ng Lp trnh C ++

Chng 5: Kiu con tr v kiu cu trc

45/56

Con tr v xu k t
Mt con tr k t c th xem nh mt xu k t, trong
xu chnh l tt c cc k t k t byte con tr u tin n
byte \0 gp u tin. V vy, c th khai bo cc xu di
dng con tr k t nh sau:
char *st;
char *st1=Hello;

Ngn ng Lp trnh C ++

Chng 5: Kiu con tr v kiu cu trc

46/56

Con tr v xu k t
Cc hm trn xu vn c p dng nh khai bo n di
dng mng k t. Tuy nhin, ta c th gn trc tip 2 xu
di dng con tr.
V d: char
char

*st;
*s=Hello;

st = s;

Ngn ng Lp trnh C ++

Chng 5: Kiu con tr v kiu cu trc

47/56

Con tr v xu k t
Khi khai bo xu dng con tr, th n vn cha cp pht b
nh c th. Do , ta phi s dng ton t new xin cp
pht b nh cho xu vi di cn thit.
V d 1: char

*st, *s = new char[30];

strcpy(s, Hello);
st = s;
V d 2: char *st, *s = new char[30];
strcpy(s, Hello);
st = new char[30]; strcpy(st,s);
Ngn ng Lp trnh C ++

Chng 5: Kiu con tr v kiu cu trc

48/56

5.6 Mng con tr


Khi nim chung
- Mng con tr l mng m cc phn t ca n l cc con
tr c cng kiu.
- Do phn t ca mng con tr l mt con tr tr n mt
mng no -> cho php qun l nhiu mng d liu cng
kiu.

Ngn ng Lp trnh C ++

Chng 5: Kiu con tr v kiu cu trc

49/56

5.6 Mng con tr


Khai bo mng con tr
kiudliu

*tnmng[sphnt];

Tc dng: khai bo mng con tr c s phn t v kiu d


liu c ch ra.
Ch : mng xu k t l trng hp ring ca mng con
tr ni chung, trong kiu d liu l kiu char

Ngn ng Lp trnh C ++

Chng 5: Kiu con tr v kiu cu trc

50/56

5.6 Mng con tr


V d:
char *Hoten[35];
int i, n;
cout<<"Nhap so sinh vien n= ";
cin>>n;
cin.ignore();
for (i=0;i<n;i++)
{
Hoten[i] = new char[40];
cin.getline(Hoten[i],40);
}
cout<<"Xuat gia tri vua
nhap:"<<endl;
for (i=0;i<n;i++)
cout<<Hoten[i]<<endl;
Ngn ng Lp trnh C ++

Chng 5: Kiu con tr v kiu cu trc

51/56

BI TP THC HNH
1. Cho p, q l cc con tr tr n k t c. Gn *p = *q + 1. Khi
, c th khng nh *q = *p 1?
2. Cho p, q l 2 con tr tr n bin nguyn x = 10. Gn *p = *q +
5. Lc ny, gi tr ca *p v *q l bao nhiu?
3. Cho p, q, r, s l cc con tr tr n bin nguyn x = 5. Gn *q =
*p + 1; *r = *q + 1; *s = *r + 1. *q = *s 2. Hi gi tr ca
bin x l bao nhiu?
4. Khng dng mng, hy nhp vo mt dy s nguyn sau
xut dy ra mn hnh theo th t ngc li.
5. Khng dng mng, hy nhp vo mt dy s nguyn sau in
ra mn hnh dy c sp xp dy theo chiu tng (hoc
gim) dn?
Ngn ng Lp trnh C ++

Chng 5: Kiu con tr v kiu cu trc

52/56

BI TP THC HNH
6. Dng con tr, nhp gi tr vo cho mt dy cc s thc. Sau ,
tm v xut ra mn hnh phn t ln nht v b nht c trong
dy.
7. S dng con tr, nhp vo mt dy k t. Sau , tm v thay
th cc k t a bng k t b. Hin th ra mn hnh dy k t
trc v sau khi thay th.
8. Xy dng hm nhp, xut, sp xp mng bt k bng cch s
dng bin con tr lm tham s hnh thc ca hm. S dng cc
hm trn vit chng trnh nhp cc gi tr vo cho mng
sau xut ra mn hnh cc gi tr ca mng trc v sau khi
sp xp
9. S dng con tr xy dng hm tnh tng 2 mng. Sau ,
xut ra mn hnh kt qu tnh c.
Ngn ng Lp trnh C ++

Chng 5: Kiu con tr v kiu cu trc

53/56

BI TP THC HNH
10. S dng con tr, nhp vo mt xu k t. Sau , m v xut
ra mn hnh tn sut xut hin cc k t trong xu.
11. S dng con tr, nhp vo mt xu k t. Sau , m v xut
ra mn hnh cc t c trong xu.
12. Tnh s ngy qua k t u nm cho n ngy hin ti.
Quy c ngy c khai bo di dng cu trc.
13. Nhp mt ngy thng nm di dang cu trc. Tnh chnh xc
(k c nm nhun) s ngy qua bt u t ngy 1/ 1/ 1 n
ngy va nhp.
14. Khai bo ngy thng nm theo kiu cu trc. Vit chng
trnh tnh khong cch (s ngy) gia 2 thng bt k

Ngn ng Lp trnh C ++

Chng 5: Kiu con tr v kiu cu trc

54/56

BI TP THC HNH
15. Vit chng trnh nhp vo mt ngy thng nm bt k. Xut
ra mn hnh ngy l th my nu ta xem ngy 1/ 1/ 1 l th
2.
16. Vit chng trnh nhp vo 2 ngy no ca thng bt k
ca nm bt k. Tnh v hin th ra mn hnh khong cch gia
2 ngy l bao nhiu ngy.
17. Cho s phc di dng cu trc gm c 2 phn l phn thc
v phn o. Vit chng trnh nhp vo 2 s phc bt k. Tnh
v xut ra mn hnh kt qu tng, hiu, tch, thng ca chng
18. Cho phn s di dng cu trc gm 2 phn l t s v mu
s. Vit chng trnh nhp vo 2 phn s. Tnh v hin th ra
mn hnh tng, hiu, tch, thng ca chng sau khi rt gn.
Ngn ng Lp trnh C ++

Chng 5: Kiu con tr v kiu cu trc

55/56

BI TP THC HNH
19. Vit chng trnh nhp vo mt mng sinh vin, thng tin v
mi sinh vin gm: Hoten, tuoi, quequan. Sp xp mng va
nhp theo chiu tng dn ca chui. Sau , xut ra mn hnh
mng sau khi sp xp.
20. Cho hnh ch nht di dng cu trc gm chiu di v chiu
rng. Nhp vo mt mng cc hnh ch nht. Tnh v xut ra
mn hnh chu vi, din tch tng ng ca mi hnh.
21. To danh sch gm 10 s nguyn dng. Sau sp xp danh
sch theo th t tng dn.
22. To danh sch LIFO gm 100 s nguyn t u tin
23. To danh sch FIFO gm n sinh vin, mi sinh vin c
qun l bi: h tn, tui, im trung bnh. Sau sp xp danh
sch sinh vin theo th t gim dn ca im trung bnh.
Ngn ng Lp trnh C ++

Chng 5: Kiu con tr v kiu cu trc

56/56

You might also like