You are on page 1of 431

Khoa CNTT

LTHT

Chng 1
n Tp

Download T i Tienichmaytinh.Com

GV. Nguyn Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 01 - 1

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

1. MC TIU

n li cc khi nim, cc kin thc lp


trnh c bn

Bin ton cc

Bin cc b

Hm v bin ton cc

Tham s v hm

Tru tng ha d liu

GV. Nguyn Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 01 - 2

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

2. BI TON

ton:
Vit
chng trnh nhp
h tn, im ton,
im vn ca mt
hc sinh. Tnh
im trung bnh v
xut kt qu.

Bi

GV. Nguyn Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 01 - 3

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

3. BIN TON CC

Khi nim:Bin ton cc l bin


c khai bo bn ngoi tt c
cc hm v c hiu bn trong
tt c cc hm.

Thng thng bin ton cc


c khai bo u chng
trnh.

Lu : Bin khai bo bn trong


thn hm main khng l bin
ton cc m l bin cc b ca
hm main.

GV. Nguyn Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 01 - 4

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

11. #include <conio.h>


12.#include <stdio.h>
13.char hoten[30];
14.int toan;
15.int van;
16.float dtb;
17.void main()
18.{
19.
printf(Nhap ho ten:);
20.
gets(hoten);
21.
printf(Nhap toan:);
22.
scanf(%d,&toan);
23.
printf(Nhap van:);
24.
scanf(%d,&van);
25.
dtb=(float)(toan+van)/2;
26.
printf(\n Ho ten: %s ,
27.
28.
29.

hoten);
printf(\n Toan: %d ,
toan);
printf(\n Van: %d , van);
printf(\n Trung binh:%f,
dtb);

30.}
GV. Nguyn Sn Hong Quc
ThS. Nguyn Tn Trn Minh Khang

Chng 01 - 5

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

4. BIN CC B

Khi nim: Bin cc b l


bin c khai bo v c
hiu bn trong mt phm vi
no ca chtrnh, ra khi
phm vi ny bin khng cn
c bit n na v khng
gian b nh cp pht cho
bin c t ng thu hi.
Thng thng bin cc b c
khai bo bn trong thn ca mt
hm hay mt khi lnh.
Lu : Mt bin c khai bo
bn trong thn hm main l bin
cc b ca hm main.

GV. Nguyn Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 01 - 6

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

11. #include <conio.h>


12.#include <stdio.h>
13.void main()
14.{
15.
char hoten[30];
16.
int toan;
17.
int van;
18.
float dtb;
19.
printf(Nhap ho ten:);
20.
gets(hoten);
21.
printf(Nhap toan:);
22.
scanf(%d,&toan);
23.
printf(Nhap van:);
24.
scanf(%d,&van);
25.
dtb=(float)(toan+van)/2;
26.
printf(\nHo ten:%s,
27.
28.
29.

hoten);
printf(\n Toan: %d ,
toan);
printf(\n Van: %d , van);
printf(\n Trung binh:%f ,
dtb);

30.}
GV. Nguyn Sn Hong Quc
ThS. Nguyn Tn Trn Minh Khang

Chng 01 - 7

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

5. HM V BIN TON CC

Kin trc chng trnh C.

Khi khai bo

Khi hm main

Khi nh ngha hm.

GV. Nguyn Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 01 - 8

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

5.1 KIN TRC MT CHNG


TRNH C N GIN

Kin trc ca mt
chng trnh C c bn
bao gm 3 khi lnh
chnh nh sau: khi
khai bo, khi hm
main v khi nh
ngha hm. Ba khi
lnh ny c trnh
by theo th t ca
hnh v bn di.

GV. Nguyn Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 01 - 9

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

5.1 KIN TRC MT CHNG


TRNH C N GIN

Khi
khai
bo

Khi
hm
main

Khi
nh
ngha
hm

GV. Nguyn Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 01 - 10

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

5.1 KIN TRC MT CHNG


TRNH C N GIN

Khi khai bo: cha cc khai


bo hm, khai bo bin ton cc,
khai bo s dng th vin, khai
bo hng, khai bo kiu d
liu

Khi hm main: cha duy nht


hm main v thn hm ca n.
Trong thn hm main cha cc
li gi hm cn thit cho chng
trnh.

Khi nh ngha hm: cha cc


nh ngha hm c khai
bo trong khi khai bo.

GV. Nguyn Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 01 - 11

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

5.2 CHNG TRNH

ton:
Vit
chng trnh nhp
h tn, im ton,
im vn ca mt
hc sinh. Tnh
im trung bnh v
xut kt qu.

Bi

GV. Nguyn Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 01 - 12

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

5.2 CHNG TRNH


1.

#include <conio.h>

2.

#include <stdio.h>

3.

char hoten[30];

4.

int toan;

5.

int van;

6.

float dtb;

7.

void Nhap();

8.

void XuLy();

9.

void Xuat();

GV. Nguyn Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 01 - 13

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

5.2 CHNG TRNH


1.

void main()

2.

3.

Nhap();

4.

XuLy();

5.

Xuat();

6.

GV. Nguyn Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 01 - 14

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

5.2 CHNG TRNH


11. void

Xuat()

12. {

13.

printf(Ho ten:%s, hoten);

14.

printf(Toan: %d, toan);

15.

printf(Van: %d:, van);

16.

printf(DTB: %f, dtb);

17. }
18. void

XuLy()

19. {
20.

dtb=(float)(toan + van)/2;

21. }

GV. Nguyn Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 01 - 15

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

5.2 CHNG TRNH


1.

void Nhap()

2.

3.

printf(Nhap ho ten:);

4.

gets(hoten);

5.

printf(Nhap toan:);

6.

scanf(%d,&toan);

7.

printf(Nhap van:);

8.

scanf(%d,&van);

9.

GV. Nguyn Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 01 - 16

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

6. THAM S V HM

Khi nim: Cc thng s u


vo ca mt hm c gi l
tham s ca hm.
Phn loi tham s: c 2 loi
tham s l tham tr v tham
bin.

Tham tr: Khng i.


Tham bin: Thay i.

Cp pht b nh:

Tham tr: Cp pht.


Tham bin: Khng cp pht b
nh khi hm c gi thc hin
m s dng b nh ca i s
tng ng.

GV. Nguyn Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 01 - 17

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

6. THAM S V HM
1.

#include <conio.h>

2.

#include <stdio.h>

3.

void Nhap(char [],int&,int &);

4.

void XuLy(int, int, float &);

5.

void Xuat(char[],int,int,float);

GV. Nguyn Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 01 - 18

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

6. THAM S V HM
1.

void main()

2.

3.

char ht[30];

4.

int t,v;

5.

float tb;

6.

Nhap(ht,t,v);

7.

Xuly(t,v,tb);

8.

Xuat(ht,t,v,tb);

9.

GV. Nguyn Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 01 - 19

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

6. THAM S V HM (tip)
11. void

Xuat(char hoten[],int
toan,int van,float dtb)

12. {
13.

printf(Ho ten:%s,hoten);

14.

printf(Toan: %d,toan);

15.

printf(Van: %d,van);

16.

printf(DTB: %f,dtb);

17. }
18. void

XuLy(int toan, int van,


float&dtb)

19. {
20.

dtb=(float)(toan + van)/2;

21. }
GV. Nguyn Sn Hong Quc
ThS. Nguyn Tn Trn Minh Khang

Chng 01 - 20

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

6. THAM S V HM (tip)
1.

void Nhap(char hoten[30],


int &toan, int &van)

2.

3.

printf(Nhap ho ten:);

4.

gets(hoten);

5.

printf(Nhap toan:);

6.

scanf(%d,&toan);

7.

printf(Nhap van:);

8.

scanf(%d,&van);

9.

GV. Nguyn Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 01 - 21

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

7. TRU TNG HA
D LIU

Khi nim: Tru tng ha d liu l


mt phng php tch hp cc kiu
d liu n, cc kiu d liu c sn
nhm m t, biu din mt khi nim
hay mt i tng trong th gii thc.

C php:

1.

struct KieuDuLieu

2.

3.

Thnh phn 1;

4.

Thnh phn 2;

5.

6.

};

7.

typedef struct KieuDuLieu


KIEUDULIEU;

GV. Nguyn Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 01 - 22

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

7. TRU TNG HA
D LIU (tip)
11. #include

<stdio.h>
12. #include <conio.h>
13. struct HocSinh
14. {
15.
char hoten[31];
16.
int toan;
17.
int van;
18.
float dtb;
19. };
20. typedef struct HocSinh HOCSINH;
21. void Nhap(HOCSINH &);
22. void Xuat(HOCSINH);
23. void XuLy(HOCSINH&);
GV. Nguyn Sn Hong Quc
ThS. Nguyn Tn Trn Minh Khang

Chng 01 - 23

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

7. TRU TNG HA
D LIU (tip)
1.

void Nhap(HOCSINH &);

2.

void Xuat(HOCSINH);

3.

void XuLy(HOCSINH&);

4.

void main()

5.

6.

HOCSINH hs;

7.

Nhap(hs);

8.

XuLy(hs);

9.

Xuat(hs);

10. }

GV. Nguyn Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 01 - 24

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

7. TRU TNG HA
D LIU (tip)
1.

void Xuat(HOCSINH x)

2.

3.

printf(Ho ten:%s,x.hoten);

4.

printf(Toan: %d,x.toan);

5.

printf(Van: %d,x.van);

6.

printf(DTB: %f,x.dtb);

7.

8.

void XuLy(HOCSINH &x)

9.

10.

x.dtb=(float)(x.toan+x.van)/2;

11. }

GV. Nguyn Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 01 - 25

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

7. TRU TNG HA
D LIU (tip)
1.

void Nhap(HOCSINH&x)

2.

3.

printf(Nhap ho ten:);

4.

gets(x.hoten);

5.

printf(Nhap toan:);

6.

scanf(%d,&x.toan);

7.

printf(Nhap van:);

8.

scanf(%d,&x.van);

9.

GV. Nguyn Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 01 - 26

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

8. NG DNG

ng dng 1:
Vit chng trnh
nhp vo mt phn
s. Rt gn phn
s v xut kt
qu.

8.1

GV. Nguyn Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 01 - 27

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

8. NG DNG

ng dng 2:
Vit chng trnh
nhp vo ta 2
im trong mt
phng Oxy. Tnh
khong cch gia
chng v xut kt
qu

8.2

GV. Nguyn Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 01 - 28

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

9. BI TP

Bi 1: Vit chng trnh


nhp vo mt phn s.
Hy cho bit phn s
l phn s m hay dng
hay bng khng.

Bi 2: Vit chng trnh


nhp ta hai im
trong khng gian. Tnh
khong cch gia chng
v xut kt qu.

GV. Nguyn Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 01 - 29

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

9. BI TP

Bi 3: Vit chng trnh


nhp vo 2 phn s. Tm
phn s ln nht v xut
kt qu.

Bi 4: Vit chng trnh


nhp vo hai phn s.
Tnh tng, hiu, tch,
thng gia chng v
xut kt qu.

GV. Nguyn Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 01 - 30

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

9. BI TP

Bi 5: Vit chng trnh


nhp vo 2 s phc. Tnh
tng, hiu, tch v xut
kt qu.

Bi 6: Vit chng trnh


nhp vo mt ngy. Tm
ngy k tip v xut kt
qu.

GV. Nguyn Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 01 - 31

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

9. BI TP

Bi 7: Vit chng trnh


nhp vo mt ngy. Tm
ngy hm qua v xut kt
qu.

Bi 8: Vit chng trnh


nhp to 3 nh A,B,C
ca 1 tam gic trong mt
phng Oxy. Tnh chu vi,
din tch v tm ta
trng tm.

GV. Nguyn Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 01 - 32

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

9. BI TP

Bi 9: Vit chng trnh


nhp ta tm v bn knh
ca mt ng trn. Tnh
din tch v chu vi ca
ng trn.

GV. Nguyn Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 01 - 33

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

9. BI TP

Yu cu chung:

Lm tt c cc bi tp trong
mt workspace c tn l
MSSV_BT01.

Trong workspace c 9 project


tng ng vi tng bi tp.

Np bi tp ln h thng
Moodle theo qui nh.

GV. Nguyn Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 01 - 34

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

Chng 2
CC PHNG PHP
LP TRNH

GV. Nguyn Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 02 - 1

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

1. MC TIU
Trong chng ny cc sinh vin
s c mt ci nhn s b v cc
phng php lp trnh khc
nhau:

Phng php lp trnh hng


lnh.

Phng php lp trnh hng


th tc, hm.

Phng php lp trnh hng


n th.

Phng php lp trnh hng


i tng (Tn Mn Hc).

GV. Nguyn Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 02 - 2

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

2. PHNG PHP
LP TRNH HNG LNH

Khi nim: Trong phng


php ny ngi ta xem
chng trnh l tp hp cc
lnh. Khi vic vit chng
trnh l xc nh xem
chng trnh gm nhng
lnh no, th t thc hin
ca cc lnh ra sao.

GV. Nguyn Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 02 - 3

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

2. PHNG PHP
LP TRNH HNG LNH

Hnh v
chng trnh

lnh

GV. Nguyn Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 02 - 4

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

3. PHNG PHP LP TRNH


HNG TH TC, HM

Khi nim: Trong phng


php ny ngi ta xem
chng trnh l mt h thng
cc th tc v hm. Trong
, mi th tc v hm l
mt dy cc lnh c sp
th t. Khi , vic vit
chng trnh l xc nh
xem chng trnh gm cc
th tc v hm no, mi
quan h gia chng ra sao?

GV. Nguyn Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 02 - 5

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

3. PHNG PHP LP TRNH


HNG TH TC, HM

Hnh v

chng trnh

Khi khai bo
void main()
{
}

Th tc
Hm

GV. Nguyn Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Lnh

Chng 02 - 6

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

4. PHNG PHP LP
TRNH HNG N TH

Khi nim: Trong phng


php ny ngi ta xem
chng trnh l 1 h thng
cc n th, mi mt n
th l 1 h thng cc th tc
v hm. Khi , vic vit
chng trnh l xc nh
xem chng trnh gm
nhng n th no? n
th no c sn, n th
no phi i mua v n th
no phi t vit.

GV. Nguyn Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 02 - 7

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

4. PHNG PHP LP
TRNH HNG N TH

Phn loi n th: Ngi ta


chia n th thnh 2 loi l
n th hng d liu v
n th hng chc nng.

GV. Nguyn Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 02 - 8

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

4. PHNG PHP LP
TRNH HNG N TH

Phn loi n th

n th hng d liu: l
n th c thit k v xy
dng phc v cho mt
kiu d liu no bn
trong chng trnh.

V d: Th vin string.h

GV. Nguyn Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 02 - 9

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

4. PHNG PHP LP
TRNH HNG N TH

Phn loi n th

n th hng chc nng:


l n th c thit k v
xy dng phc v cho
mt nhm chc nng no
bn trong chng trnh.

V d: Th vin math.h

GV. Nguyn Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 02 - 10

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

4. PHNG PHP LP
TRNH HNG N TH

chng trnh

n
th 1

n
th 2

n
th n

n th
chnh
Khi khai bo

void main()
{
}

GV. Nguyn Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 02 - 11

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

5. PHNG PHP LP
TRNH HNG I TNG

Khi nim: Trong phng


php ny ngi ta xem
chng trnh l mt h thng
cc i tng. Mi mt i
tng l s bao bc bn
trong n 2 thnh phn:

GV. Nguyn Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 02 - 12

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

5. PHNG PHP LP
TRNH HNG I TNG

Khi nim

Thnh phn d liu: l cc


thng tin v chnh i tng.
Trong mt s ti liu, sch v
thnh phn ny cn c gi
l thnh phn thuc tnh,
thnh phn thng tin.

Thnh phn hnh ng: l


cc kh nng m i tng c
th thc hin. Thnh phn
ny cn c cc tn gi nh
sau: phng thc, hm
thnh phn, hnh vi.

GV. Nguyn Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 02 - 13

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

5. PHNG PHP LP
TRNH HNG I TNG

Mi mt i tng s c
ci t bn trong chng
trnh di dng n th
cha d liu. Thm vo
tnh cht k tha cho php
chng ta xy dng i tng
mi da trn c s i
tng c.

GV. Nguyn Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 02 - 14

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

Chng 3
LP TRNH HNG
I TNG VI C++

GV. Nguyn Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 03 - 1

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

0. T VN

Vit chng trnh nhp h


tn, im ton, im vn ca
mt hc sinh. Tnh im
trung bnh v xut kt qu.

GV. Nguyn Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 03 - 2

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

1. LP I TNG (class)

1.
2.
3.
4.
5.

Khi nim: Lp i tng


tng hiu mt cch n
gin nht l s tch hp ca
hai thnh phn: Thnh phn
d liu v Thnh phn x
l.
C php khai bo lp
class CTenLop
{
// Thnh phn d liu.
// Thnh phn x l
};

GV. Nguyn Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 03 - 3

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

1. LP I TNG (class)
V d: Hy khai bo lp cho bi ton
c nu ra trong phn t vn .

11. struct

HocSinh

12. {
13.
14.
15.
16.

char hoten[31];
int toan;
Thnh phn
int van;
d liu
float dtb;

17. };
18. typedef

struct hocsinh HOCSINH;

19. void

Nhap(HOCSINH&);
20. void Xuat(HOCSINH);
21. void XuLy(HOCSINH &);
GV. Nguyn Sn Hong Quc
ThS. Nguyn Tn Trn Minh Khang

Thnh phn
x l
Chng
03 - 4

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

1. LP I TNG (class)
11. class

CHocSinh

12. {
13.
14.
15.
16.
17.
18.
19.
20.
21.

private:
char hoten[31];
int toan;
int van;
float dtb;
public:
void Nhap();
void Xuat();
void XuLy();

22. };

GV. Nguyn Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 03 - 5

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

2. I TNG (object)

Khi nim: i tng l


mt s th hin ca mt
lp. Trong mt lp c th
c nhiu s th hin khc
nhau. Ni mt cch khc:
c th c nhiu i tng
cng thuc v mt lp.

C php khai bo i tng.

1.

CTenLop <Tent>;

GV. Nguyn Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 03 - 6

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

2. I TNG (object)

V d 1: CHocSinh x;

Trong v d trn ta ni x l mt
i tng thuc v lp i
tng CHocSinh.

V d 2: CHocSinh a,b;

CHocSinh y;
Trong v d trn ta ni a,b,y l
ba i tng thuc v lp i
tng CHocSinh. Ni mt cch
khc: Lp i tng CHocSinh
c ba s th hin khc nhau.
GV. Nguyn Sn Hong Quc
ThS. Nguyn Tn Trn Minh Khang

Chng 03 - 7

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

3. PHNG THC (method)

Khi nim: Phng thc l kh


nng m i tng thuc v lp
c th thc hin.

C php nh ngha phng


thc:

1.

KDL CTenLop::PhuongThuc
(<Tham S>)

2.

{
// Thn Phng Thc

3.
4.

GV. Nguyn Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 03 - 8

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

3. PHNG THC (method)

V d 1: nh ngha phng thc


nhp ca lp CHocSinh.

1.

void CHocSinh::Nhap()

2.

3.

printf(Nhap ho ten:);

4.

gets(hoten);

5.

printf(Nhap toan:);

6.

scanf(%d, &toan);

7.

printf(Nhap van:);

8.

scanf(%d, &van);

9.

GV. Nguyn Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 03 - 9

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

3. PHNG THC (method)

V d 2: nh ngha phng thc


XuLy ca lp CHocSinh.

1.

void CHocSinh::XuLy()

2.

{
dtb=(float)(toan+van)/2;

3.
4.

GV. Nguyn Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 03 - 10

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

3. PHNG THC (method)

V d 3: nh ngha phng thc


Xuat ca lp CHocSinh.

1.

void CHocSinh::Xuat()

2.

3.

printf(\nHo ten:%s,
hoten);

4.

printf(\nToan: %d,toan);

5.

printf(\nVan: %d,van);

6.

printf(\nDTB: %f,dtb);

7.

GV. Nguyn Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 03 - 11

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

4. I TNG HNH NG

Khi nim: i tng hnh


ng l i tng gi thc hin
phng thc m lp i tng
n thuc v cung cp.

C php
TenDoiTuong.PhuongThuc(<TS>)

1.

V d 1:

1.

CHocSinh hs;

2.

hs.Nhap();

GV. Nguyn Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 03 - 12

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

4. I TNG HNH NG

V d 1:

1.

CHocSinh hs;

2.

hs.Nhap();

Trong cu lnh th hai ca


on chng trnh trn ta
ni: i tng hs gi thc
hin phng thc Nhp.

GV. Nguyn Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 03 - 13

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

4. I TNG HNH NG

V d 2:

1.

CHocSinh a,b,c;

2.

a.Nhap();

3.

b.Nhap();

4.

c.Nhap();

Trong cu lnh th hai ca


on chng trnh trn ta
ni: i tng a gi thc
hin phng thc Nhp.

v..v..

GV. Nguyn Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 03 - 14

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

1.
2.
3.
4.

CHocSinh a,b,c;
a.Nhap();
b.Nhap();
hoten
c.Nhap();
toan
van
dtb

void Nhap()
void Xuat()
void XuLy()

hoten
toan
van
dtb

GV. Nguyn Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

c
hoten
toan
van
dtb
Chng 03 - 15

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

4. I TNG HNH NG

V d 1: nh ngha phng thc


nhp ca lp CHocSinh.

1.

void CHocSinh::Nhap()

2.

3.

printf(Nhap ho ten:);

4.

gets(hoten);

5.

printf(Nhap toan:);

6.

scanf(%d, &toan);

7.

printf(Nhap van:);

8.

scanf(%d, &van);

9.

GV. Nguyn Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 03 - 16

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

4. I TNG HNH NG

V d 2: nh ngha phng thc


XuLy ca lp CHocSinh.

1.

void CHocSinh::XuLy()

2.

{
dtb=(float)(toan+van)/2;

3.
4.

GV. Nguyn Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 03 - 17

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

4. I TNG HNH NG

V d 3: nh ngha phng thc


Xuat ca lp CHocSinh.

1.

void CHocSinh::Xuat()

2.

3.

printf(\nHo ten:%s,
hoten);

4.

printf(\nToan: %d,toan);

5.

printf(\nVan: %d,van);

6.

printf(\nDTB: %f,dtb);

7.

GV. Nguyn Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 03 - 18

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

5. CHNG TRNH
U TIN

Bi
ton:
chng trnh
h tn, im
im vn ca
hc sinh. Tnh
trung bnh v
kt qu.

Chng trnh

GV. Nguyn Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Vit
nhp
ton,
mt
im
xut

Chng 03 - 19

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

5. CHNG TRNH
U TIN
11. #include

<stdio.h>
12. #include <conio.h>
13. class CHocSinh
14. {
15.
private:
16.
char hoten[31];
17.
int toan;
18.
int van;
19.
float dtb;
20.
public:
21.
void Nhap();
22.
void Xuat();
23.
void XuLy();
24. };
GV. Nguyn Sn Hong Quc
ThS. Nguyn Tn Trn Minh Khang

Chng 03 - 20

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

5. CHNG TRNH
U TIN
11. void

main()

12. {
13.
14.
15.
16.

CHocSinh hs;
hs.Nhap();
hs.XuLy();
hs.Xuat();

17. }
18. void

CHocSinh::Xuat()

19. {
20.
21.
22.
23.

printf(\nHo ten:%s,
hoten);
printf(\nToan: %d,toan);
printf(\nVan: %d,van);
printf(\nDTB: %f,dtb);

24. }

GV. Nguyn Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 03 - 21

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

5. CHNG TRNH
U TIN
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.

22.
23.

void CHocSinh::Nhap()
{
printf(Nhap ho ten:);
gets(hoten);
printf(Nhap toan:);
scanf(%d, &toan);
printf(Nhap van:);
scanf(%d, &van);
}
void CHocSinh::XuLy()
{
dtb=(float)(toan+van)/2;
}

GV. Nguyn Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 03 - 22

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

6. NG DNG

6.1 ng dng 1: Vit


chng trnh nhp
vo mt phn s. Rt
gn phn s v
xut kt qu.

Chng trnh

GV. Nguyn Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 03 - 23

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

6. NG DNG
11. #include

<stdio.h>
12. #include <conio.h>
13. class CPhanSo
14. {
15.
private:
16.
int tu;
17.
int mau;
18.
public:
19.
void Nhap();
20.
void Xuat();
21.
void RutGon();
22. };

GV. Nguyn Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 03 - 24

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

6. NG DNG
11. void

main()

12. {
13.
14.
15.
16.

CPhanSo ps;
ps.Nhap();
ps.RutGon();
ps.Xuat();

17. }
18. void

CPhanSo::Nhap()

19. {
20.
21.
22.
23.

printf(Nhap tu: );
scanf(%d,&tu);
printf(Nhap mau: );
scanf(%d,&mau);

24. }

GV. Nguyn Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 03 - 25

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

6. NG DNG
11.
12.

void CPhanSo::RutGon()
{

13.
14.
15.
16.
17.
18.
19.
20.
21.

22.
23.

}
void CPhanSo::Xuat()
{
printf(%d/%d,tu,mau);
}

GV. Nguyn Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 03 - 26

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

6. NG DNG

6.2 ng dng 2: Vit


chng trnh nhp
vo ta 2 im
trong mt phng Oxy.
Tnh khong cch
gia chng v xut
kt qu.

Chng trnh

GV. Nguyn Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 03 - 27

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

6. NG DNG
11. #include

<stdio.h>
12. #include <conio.h>
13. #include <math.h>
14. class CDiem
15. {
16.
private:
17.
float x;
18.
float y;
19.
public:
20.
void Nhap();
21.
void Xuat();
22.
float KhoangCach(CDiem);
23. };
GV. Nguyn Sn Hong Quc
ThS. Nguyn Tn Trn Minh Khang

Chng 03 - 28

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

6. NG DNG
11. void

main()

12. {
13.
14.
15.
16.
17.
18.
19.

CDiem A,B;
A.Nhap();
B.Nhap();
float kq = A.KhoangCach(B);
A.Xuat();
B.Xuat();
printf(\n Khoang cach:
%f, kq);

20. }

GV. Nguyn Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 03 - 29

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

6. NG DNG
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.

22.
23.
24.

void CDiem::Nhap()
{
float temp;
printf(Nhap x:);
scanf(%f,&temp);
x = temp;
printf(Nhap y:);
scanf(%f,&temp);
y = temp;
}
void CDiem::Xuat()
{
printf((%f,%f),x,y);
}

GV. Nguyn Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 03 - 30

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

6. NG DNG
11.
12.
13.
14.
15.

float CDiem::KhoangCach(CDiem P)
{
return sqrt((x-P.x)*(x-P.x)
+(y-P.y)*(y-P.y));
}

GV. Nguyn Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 03 - 31

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

6. NG DNG
11. void

main()

12. {
13.
14.
15.
16.
17.
18.
19.

CDiem A,B;
A.Nhap();
B.Nhap();
float kq = A.KhoangCach(B);
A.Xuat();
B.Xuat();
printf(\n Khoang cach:
%f, kq);

20. }

GV. Nguyn Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 03 - 32

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

6. NG DNG
11. #include

<stdio.h>
12. #include <conio.h>
13. #include <math.h>
14. class CDiem
15. {
16.
private:
17.
float x;
18.
float y;
19.
public:
20.
void Nhap();
21.
void Xuat();
22.
float KhoangCach(CDiem);
23. };
GV. Nguyn Sn Hong Quc
ThS. Nguyn Tn Trn Minh Khang

Chng 03 - 33

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

6. NG DNG
11.
12.
13.
14.
15.

float CDiem::KhoangCach(CDiem P)
{
return sqrt((x-P.x)*(x-P.x)
+(y-P.y)*(y-P.y));
}

GV. Nguyn Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 03 - 34

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

6. NG DNG
11.
12.
13.
14.
15.

float CDiem::KhoangCach(CDiem P)
{
return sqrt((x-P.x)*(x-P.x)
+(y-P.y)*(y-P.y));
}

GV. Nguyn Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 03 - 35

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

6. NG DNG
11.
12.
13.
14.
15.

float CDiem::KhoangCach(CDiem P)
{
return sqrt((x-P.x)*(x-P.x)
+(y-P.y)*(y-P.y));
}

GV. Nguyn Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 03 - 36

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

6. NG DNG
11.
12.
13.
14.
15.

float CDiem::KhoangCach(CDiem P)
{
return sqrt((x-P.x)*(x-P.x)
+(y-P.y)*(y-P.y));
}

float kq = A.KhoangCach(B);
float kq = B.KhoangCach(A);

GV. Nguyn Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 03 - 37

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

7. BI TP V NH

Lm tt c cc bi
tp ca chng 01
bng phng php
lp trnh hng i
tng (9 bi).

GV. Nguyn Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 03 - 38

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

Chng 4
S LC TH VIN
IOSTREAM.H

GV. Nguyn Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 04 - 1

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

1. V D DN NHP 1

Bi ton: Vit lnh nhp gi tr cho


mt s nguyn a v xut s nguyn
ra mn hnh bng cch s dng th
vin iostream.h

Phong cch c
1. int a;
2. printf(Nhap mot so nguyen:);
3. scanf(%d,&a);
4. printf(So nguyen vua nhap:%d,a);

on chng trnh vi th vin


iostream.h
1. int a;
2. cout<<Nhap mot so nguyen: ;
3. cin>>a;
4. cout<<So nguyen vua nhap:<<a;
GV. Nguyn Sn Hong Quc
ThS. Nguyn Tn Trn Minh Khang

Chng 04 - 2

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

2. V D DN NHP 2

Bi ton: Vit hm nhp thng


tin ca mt phn s bng cch
s dng th vin iostream.h

Cu trc d liu

1.

struct phanso
{
int tu;
int mau;
};
typedef struct phanso
PHANSO;

2.
3.
4.
5.
6.

nh ngha hm

GV. Nguyn Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 04 - 3

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

2. V D DN NHP 2 (tip)

nh ngha hm

11. void

Nhap(PHANSO &x)

12. {
13.

cout<<Nhap tu:;

14.

cin>>x.tu;

15.

cout<<Nhap mau:;

16.

cin>>x.mau;

17. }
18. void

Xuat(PHANSO x)

19. {

20.

cout<<x.tu<</<<x.mau;

21. }
GV. Nguyn Sn Hong Quc
ThS. Nguyn Tn Trn Minh Khang

Chng 04 - 4

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

3. T VN

Nhp xut mt i tng phn s


1.

CPhanSo a;

2.

a.Nhap();

3.

a.Xuat();

Nhp, xut mt i tng phn s vi


th vin iostream.h
1.

CPhanSo a;

2.

cin>>a;

3.

cout<<a;

Lm sao?

Lu

K hiu >> c gi l ton t vo.

K hiu << c gi l ton t ra.

GV. Nguyn Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 04 - 5

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

4. GII QUYT VN

gii quyt vn trn ta phi nh


ngha

Ton t vo (operator>>)

Ton t ra (operator <<)

cho lp i tng CPhanSo.

Ngoi ra, trong khi gii quyt vn


ny ta cn s dng k thut hm bn
(friend function) ca phng php lp
trnh hng i tng.

Mt hm bn ca lp i tng
c php truy xut n tt c cc
thnh phn ca i tng thuc v
lp bt chp thnh phn c khai
bo trong phm vi no.
GV. Nguyn Sn Hong Quc
ThS. Nguyn Tn Trn Minh Khang

Chng 04 - 6

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

4. GII QUYT VN (tip)


Khai bo lp

11.

class CPhanSo

12. {
13.

private:

14.

int tu;

15.

int mau;

16.
17.
18.
19.

20.

public:
friend istream& operator >>
(istream &is,CPhanSo &x);
friend ostream& operator <<

(ostream &os,CPhanSo &x);

21. };
GV. Nguyn Sn Hong Quc
ThS. Nguyn Tn Trn Minh Khang

Chng 04 - 7

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

4. GII QUYT VN (tip)


Khai bo lp

11.

class CPhanSo

12. {
13.

private:

14.

int tu;

15.

int mau;

16.
17.
18.
19.

20.

public:
friend istream& operator >>
(istream &is,CPhanSo &x);
friend ostream& operator <<

(ostream &os,CPhanSo &x);

21. };
GV. Nguyn Sn Hong Quc
ThS. Nguyn Tn Trn Minh Khang

Chng 04 - 8

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

4. GII QUYT VN (tip)


Khai bo lp

11.

class CPhanSo

12. {
13.

private:

14.

int tu;

15.

int mau;

16.
17.
18.
19.

20.

public:
friend istream& operator >>
(istream &is,CPhanSo &x);
friend ostream& operator <<

(ostream &os,CPhanSo &x);

21. };
GV. Nguyn Sn Hong Quc
ThS. Nguyn Tn Trn Minh Khang

Chng 04 - 9

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

4. GII QUYT VN (tip)


Khai bo lp

11.

class CPhanSo

12. {
13.

private:

14.

int tu;

15.

int mau;

16.
17.
18.
19.

20.

public:
friend istream& operator >>
(istream &is,CPhanSo &x);
friend ostream& operator <<

(ostream &os,CPhanSo &x);

21. };
GV. Nguyn Sn Hong Quc
ThS. Nguyn Tn Trn Minh Khang

Chng 04 - 10

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

4. GII QUYT VN (tip)


Khai bo lp

11.

class CPhanSo

12. {
13.

private:

14.

int tu;

15.

int mau;

16.
17.
18.
19.

20.

public:
friend istream& operator >>
(istream &is,CPhanSo &x);
friend ostream& operator <<

(ostream &os,CPhanSo &x);

21. };
GV. Nguyn Sn Hong Quc
ThS. Nguyn Tn Trn Minh Khang

Chng 04 - 11

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

4. GII QUYT VN (tip)


Khai bo lp

11.

class CPhanSo

12. {
13.

private:

14.

int tu;

15.

int mau;

16.
17.
18.
19.

20.

public:
friend istream& operator >>
(istream &is,CPhanSo &x);
friend ostream& operator <<

(ostream &os,CPhanSo &x);

21. };
GV. Nguyn Sn Hong Quc
ThS. Nguyn Tn Trn Minh Khang

Chng 04 - 12

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

4. GII QUYT VN (tip)


Khai bo lp

11.

class CPhanSo

12. {
13.

private:

14.

int tu;

15.

int mau;

16.
17.
18.
19.

20.

public:
friend istream& operator >>
(istream &is,CPhanSo &x);
friend ostream& operator <<

(ostream &os,CPhanSo &x);

21. };
GV. Nguyn Sn Hong Quc
ThS. Nguyn Tn Trn Minh Khang

Chng 04 - 13

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

4. GII QUYT VN (tip)


Khai bo lp

11.

class CPhanSo

12. {
13.

private:

14.

int tu;

15.

int mau;

16.
17.
18.
19.

20.

public:
friend istream& operator >>
(istream &is,CPhanSo &x);
friend ostream& operator <<

(ostream &os,CPhanSo &x);

21. };
GV. Nguyn Sn Hong Quc
ThS. Nguyn Tn Trn Minh Khang

Chng 04 - 14

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

4. GII QUYT VN (tip)


Khai bo lp

11.

class CPhanSo

12. {
13.

private:

14.

int tu;

15.

int mau;

16.
17.
18.
19.

20.

public:
friend istream& operator >>
(istream &is,CPhanSo &x);
friend ostream& operator <<

(ostream &os,CPhanSo &x);

21. };
GV. Nguyn Sn Hong Quc
ThS. Nguyn Tn Trn Minh Khang

Chng 04 - 15

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

4. GII QUYT VN (tip)


Khai bo lp

11.

class CPhanSo

12. {
13.

private:

14.

int tu;

15.

int mau;

16.
17.
18.
19.

20.

public:
friend istream& operator >>
(istream &is,CPhanSo &x);
friend ostream& operator <<

(ostream &os,CPhanSo &x);

21. };
GV. Nguyn Sn Hong Quc
ThS. Nguyn Tn Trn Minh Khang

Chng 04 - 16

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

4. GII QUYT VN (tip)


Khai bo lp

11.

class CPhanSo

12. {
13.

private:

14.

int tu;

15.

int mau;

16.
17.
18.
19.

20.

public:
friend istream& operator >>
(istream &is,CPhanSo &x);
friend ostream& operator <<

(ostream &os,CPhanSo &x);

21. };
GV. Nguyn Sn Hong Quc
ThS. Nguyn Tn Trn Minh Khang

Chng 04 - 17

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

4. GII QUYT VN (tip)

nh ngha ton t vo

1.

istream& operator >>(istream &is,


CPhanSo &x)

2.

3.

cout << Nhap tu;

4.

is >> x.tu;

5.

cout << Nhap mau;

6.

is >> x.mau;

7.

return is;

8.

TiHong
sao Quc
phi tr v mt i
GV. Nguyn Sn
Chng 04 - 18
tng
thucKhang
lp istream?
ThS. Nguyn Tn
Trn Minh

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

4. GII QUYT VN (tip)


Khai bo lp

11.

class CPhanSo

12. {
13.

private:

14.

int tu;

15.

int mau;

16.
17.
18.
19.

20.

public:
friend istream& operator >>
(istream &is,CPhanSo &x);
friend ostream& operator <<

(ostream &os,CPhanSo &x);

21. };
GV. Nguyn Sn Hong Quc
ThS. Nguyn Tn Trn Minh Khang

Chng 04 - 19

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

4. GII QUYT VN (tip)


nh ngha ton t ra

1.

ostream& operator <<(ostream &os,


CPhanSo &x)

2.

3.

os<< x.tu<</<<x.mau;

4.

return os;

5.

Ti sao phi tr v mt i
tng thuc lp ostream?

GV. Nguyn Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 04 - 20

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

4. GII QUYT VN (tip)


Khai bo lp

11.

class CPhanSo

12. {
13.

private:

14.

int tu;

15.

int mau;

16.
17.
18.
19.

20.

public:
friend istream& operator >>
(istream &is,CPhanSo &x);
friend ostream& operator <<

(ostream &os,CPhanSo &x);

21. };
GV. Nguyn Sn Hong Quc
ThS. Nguyn Tn Trn Minh Khang

Chng 04 - 21

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

5. HNG DN S DNG 1

Hy xem xt on chng trnh sau:


1.

CPhanSo a;

2.

cin >> a;

3.

cout <<a ;

Trong cu lnh th hai ca on


chng trnh trn ta ni: hm
operator >> c gi thc hin vi 2
i s l cin v i tng a.

Trong cu lnh th ba ca on
chng trnh trn ta ni: hm
operator << c gi thc hin vi 2
i s l cout v i tng a.

GV. Nguyn Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 04 - 22

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

6. HNG DN S DNG 2

Hy xem xt on chng trnh sau:


1.

CPhanSo a,b,c;

2.

cin >>a >>b >>c;

3.

cout <<a <<b <<c;

Trong cu lnh th hai ca on


chng trnh trn ta ni: hm
operator >> c gi thc hin 3 ln.

Trong cu lnh th ba ca on
chng trnh trn ta ni: hm
operator << c gi thc hin 3 ln.
GV. Nguyn Sn Hong Quc
ThS. Nguyn Tn Trn Minh Khang

Chng 04 - 23

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

7. NG DNG

cu: Hy nh
ngha ton t vo v
ton t ra cho lp
i tng CNgay.

Yu

GV. Nguyn Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 04 - 24

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

7. NG DNG (tip)
Khai bo lp
11. class CNgay
12.{
13.
private:
14.
int ng;
15.
int th;
16.
int nm;
17.
public:
18.
friend istream& operator >>
19.
(istream &is,CNgay &x);
20.
friend ostream& operator <<
21.
(ostream &os,CNgay &x);
22.};

GV. Nguyn Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 04 - 25

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

7. NG DNG (tip)

nh ngha ton t vo

11. istream&

operator >>
(istream &is,CNgay &x)

12. {
13.

cout << Nhap ngay:;

14.

is >> x.ng;

15.

cout << Nhap thang:;

16.

is >> x.th;

17.

cout << Nhap nam:;

18.

is >> x.nm;

19.

return is;

20. }
GV. Nguyn Sn Hong Quc
ThS. Nguyn Tn Trn Minh Khang

Chng 04 - 26

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

7. NG DNG (tip)

nh ngha ton t ra

1.

ostream& operator <<


(ostream &os,CNgay&x)

2.

3.

os<<x.ng<</<<

4.

x.th<</<<

5.

x.nm;
return os;

6.
7.

GV. Nguyn Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 04 - 27

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

8. BI TP V NH

Hy khai bo v nh ngha hm ton t


vo v hm ton t ra cho cc lp i
tng sau:
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.

Lp phn s (CPhanSo)
Lp im (CDiem)
Lp ngy (CNgay)
Lp thi gian (CThoiGian)
Lp n thc (CDonThuc)
Lp im khng gian (CDiemKhongGian)
Lp ng thng (CDuongThang)
Lp hn s (CHonSo)
Lp s phc (CSoPhuc)
Lp ng trn (CDuongTron)
Lp lp tam gic (CTamGiac)
Lp hnh cu (CHinhCau)

GV. Nguyn Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 04 - 28

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

Chng 5
PHNG THC THIT LP,
PHNG THC PH HY

GV. Nguyn Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 05 - 1

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

0. MC TIU

Hiu c phng thc thit


lp l g?

Hiu c phng thc ph


hy l g?

GV. Nguyn Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 05 - 2

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

1. PHNG THC THIT LP


CONSTRUCTORS

Mc tiu: cc phng
thc thit lp ca mt
lp c nhim v thit lp
thng tin ban u cho
cc i tng thuc v
lp ngay khi i tng
c khai bo.

GV. Nguyn Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 05 - 3

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

1.1 CC C IM CA
PHNG THC THIT LP

Tn phng thc thit lp trng vi


tn lp.

Khng c gi tr tr v.

c t ng gi thc hin ngay khi


i tng c khai bo.

C th c nhiu phng thc thit lp


trong 1 lp.

Trong mt qu trnh sng ca i


tng th ch c 1 ln duy nht mt
phng thc thit lp c gi thc
hin m thi l khi i tng ra i.

Cc phng thc thit lp ca lp


thuc nhm cc phng thc khi
to.
GV. Nguyn Sn Hong Quc
ThS. Nguyn Tn Trn Minh Khang

Chng 05 - 4

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

1.2 PHN LOI


PHNG THC THIT LP

Ta c th chia cc phng thc thit


lp ca mt lp thnh 3 nhm nh
sau:

Phng thc thit lp mc nh


(default constructor).

Phng thc thit lp sao chp


(copy constructor).

Phng thc thit lp nhn tham s


u vo.

Phng thc thit lp mc nh l


phng thc thit lp cc thng ban
u cho i tng thuc v lp bng
bng nhng gi tr mc nh (do ngi
lp trnh quyt nh).

GV. Nguyn Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 05 - 5

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

1.2 PHN LOI


PHNG THC THIT LP

Phng thc thit lp sao chp (copy


constructor) l phng thc thit lp
nhn tham s u vo l mt i
tng cng thuc v lp. Cc thng
tin ban u ca i tng s hon
ton ging thng tin ca i tng
tham s u vo. Ngoi ra, ngi ta
cn ni phng thc thit lp sao
chp c s dng tao ra i
tng mi ging hon ton i tng
c sn.

Phng thc thit lp nhn tham s


u vo l nhng phng thc thit
lp ko phi l phng thc thit lp
mc nh v phng thc thit lp
sao chp.
GV. Nguyn Sn Hong Quc
ThS. Nguyn Tn Trn Minh Khang

Chng 05 - 6

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

1.3 V D MINH HA
PHNG THC THIT LP

Bi ton: Hy khai bo v nh ngha cc


phng thc thit lp c bn cho lp i
tng CPhanSo

Khai bo lp

11. class

CPhanSo

12. {
13.
14.
15.
16.
17.
18.
19.

private:
int tu;
int mau;
public:
CPhanSo();
CPhanSo(int, int);
CPhanSo(const CPhanSo&);

20. };
GV. Nguyn Sn Hong Quc
ThS. Nguyn Tn Trn Minh Khang

Chng 05 - 7

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

1.3 V D MINH HA
PHNG THC THIT LP

nh ngha phng thc thit


lp mc nh.

1.

CPhanSo::CPhanSo()

2.

3.

tu = 0;

4.

mau = 1;

5.

GV. Nguyn Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 05 - 8

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

1.3 V D MINH HA
PHNG THC THIT LP

nh ngha phng thc thit lp


sao chp

1.

CPhanSo::CPhanSo(const CPhanSo&x)

2.

3.

tu = x.tu;

4.

mau = x.mau;

5.

GV. Nguyn Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 05 - 9

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

1.3 V D MINH HA
PHNG THC THIT LP

nh ngha phng thc thit


lp khi bit y thng tin

1.

CPhanSo::CPhanSo(int t,
int m)

2.

3.

tu = t;

4.

mau = m;

5.

GV. Nguyn Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 05 - 10

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

1.4 HNG DN S DNG 1

Hy xem xt on chng trnh


sau v cho bit c bao nhiu
phng thc gi thc hin:
1.

CPhanSo a;

2.

a.Nhap();

3.

a.Xuat();

Tr li:

Phng thc.

Phng thc nhp.

Phng thc xut.

GV. Nguyn Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 05 - 11

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

1.5 HNG DN S DNG 2

Hy xem xt on chng trnh sau


v cho bit c bao nhiu phng
thc gi thc hin:
1. CPhanSo a, b(1,2);
2.

a.Nhap();

3.

b.Xuat();

4.

CPhanSo c(a);

5.

c.Xuat();

Tr li:
Phng thc.
Phng thc.
Phng thc.
Phng thc.
Phng thc.
Phng thc.
GV. Nguyn Sn Hong Quc
ThS. Nguyn Tn Trn Minh Khang

Chng 05 - 12

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

1.6 NGHA S DNG


PHNG THC THIT LP

Khi to gi tr ban u cho cc i


tng thuc v lp ngay khi cc i
tng c khai bo.

p kiu t i tng ny sang i


tng khc.

GV. Nguyn Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 05 - 13

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

1.7 NG DNG

Bi ton: Hy khai bo v nh ngha


cc phng thc thit lp c bn cho
lp i tng ngy.

Khai bo lp.
11. class CNgay
12. {
13.
private:
14.
int ng;
15.
int th;
16.
int nm;
17.
public:
18.
CNgay();
19.
CNgay(const CNgay &);
20.
CNgay(int,int,int);
21. };

GV. Nguyn Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 05 - 14

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

1.7 NG DNG
nh ngha phng thc thit lp mc
nh.
11. CNgay::CNgay()
12. {
13.
ng = 1;
14.
th = 1;
15.
nm = 1;
16. }

GV. Nguyn Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 05 - 15

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

1.7 NG DNG
nh ngha phng thc thit lp khi
bit y thng tin.
11. CNgay::CNgay(int ngng,
int thth,
int nmnm)
12. {
13.
ng = ngng;
14.
th = thth;
15.
nm = nmnm;
16. }

GV. Nguyn Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 05 - 16

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

1.7 NG DNG
nh ngha phng thc thit lp sao
chp.
11. CNgay::CNgay(const CNgay &x)
12. {
13.
ng = x.ng;
14.
th = x.th;
15.
nm = x.nm;
16. }

GV. Nguyn Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 05 - 17

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

2. PHNG THC PH HY
DESTRUCTOR

Mc tiu: Phng thc ph


hy ca mt lp c nhim v
dn dp xc cht ca i
tng khi i tng i bn
mui. Ni mt cch khc,
phng thc ph hy c
nhim v thu hi li tt c
cc ti nguyn cp pht
cho i tng khi i tng
ht phm vi hot ng.

GV. Nguyn Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 05 - 18

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

2.1 CC C IM CA
PHNG THC PH HY

Tn phng thc trng vi tn lp


nhng c du ng ng trc.

Khng c gi tr tr v.

Khng c tham s u vo.

c t ng gi thc hin khi i


tng ht phm vi s dng.

Phng thc ph hu thuc nhm cc


phng thc x l.

C v ch c duy nht mt phng


thc ph hu trong 1 lp m thi.

Trong mt qu trnh sng ca i


tng c v ch c mt ln phng
thc ph hy c gi thc hin m
thi.
GV. Nguyn Sn Hong Quc
ThS. Nguyn Tn Trn Minh Khang

Chng 05 - 19

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

2.2 V D MINH HA
PHNG THC PH HY

Bi ton: Hy khai bo v nh ngha


phng thc ph hy cho lp i
tng CPhanSo

Khai bo lp

1.

class CPhanSo

2.

3.

private:

4.

int tu;

5.

int mau;

6.

public:

7.

// Phng thc x l

8.

~CPhanSo();

9. };
GV. Nguyn Sn Hong Quc
ThS. Nguyn Tn Trn Minh Khang

Chng 05 - 20

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

2.2 V D MINH HA
PHNG THC PH HY

nh ngha phng thc ph hy.

1.

CPhanSo::~CPhanSo()

2.

{
return;

3.
4.

GV. Nguyn Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 05 - 21

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

2.3 HNG DN S DNG

Hy cho bit on chng trnh sau


c bao nhiu phng thc c gi
thc hin. Bit rng trong lp i
tng CPhanSo ta nh ngha 3
pttl c bn v phng thc ph hy.
on chng trnh
11. int x;
12. int y;
13. x = 5;
14. y = 7;
15. if (y > x)
16. {
17.
CPhanSo a;
18.
a.Nhap();
19.
a.Xuat();
20.}
21. cout << x << y;
GV. Nguyn Sn Hong Quc
ThS. Nguyn Tn Trn Minh Khang

Chng 05 - 22

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

3. BI TP V NH

Hy khai bo v nh ngha cc
phng thc thit lp c bn v
phng thc ph hy cho cc lp i
tng sau:
1.
2.
3.
4.

5.
6.
7.
8.
9.
10.
11.
12.

Lp phn s (CPhanSo)
Lp im (CDiem)
Lp ngy (CNgay)
Lp thi gian (CThoiGian)
Lp n thc (CDonThuc)
Lp im khng gian
(CDiemKhongGian)
Lp ng thng (CDuongThang)
Lp hn s (CHonSo)
Lp s phc (CSoPhuc)
Lp ng trn (CDuongTron)
Lp lp tam gic (CTamGiac)
Lp hnh cu (CHinhCau)

GV. Nguyn Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 05 - 23

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

Chng 6
TON T GN (operator=)

GV. Nguy n Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 06 - 1

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

0. MC TIU

Hiu c phng thc ton t


gn l g?

Hiu c vai tr ca ton t


gn trong lp trnh hng i
tng

GV. Nguy n Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 06 - 2

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

1. KHI NIM

Ton t gn trong lp trnh C


c s dng gn gi tr ca
bin ny cho bin khc.

M rng cho C++ v cc ngn


ng lp trnh hng i tng
khc ta c th ni nh sau: Ton
t gn c s dng gn
thnh phn d liu ca i
tng ny cho i tng
khc.

GV. Nguy n Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 06 - 3

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

2. T VN

Hy khai bo v nh ngha cc
phng thc cn thit cc
cu lnh sau c th thc hin

on chng trnh
CHocSinh a,b;
a.Nhap();
b=a;
b.Xuat();

GV. Nguy n Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 06 - 4

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

3. GII QUYT VN

on chng trnh
CHocSinh a,b;
a.Nhap();
b=a;
b.Xuat();

gii quyt vn trn ta phi


khai bo v nh ngha phng
thc ton t gn cho lp i
tng CHocSinh

GV. Nguy n Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 06 - 5

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

3. GII QUYT VN

gii quyt vn trn ta phi


khai bo v nh ngha phng
thc ton t gn cho lp i
tng CHocSinh
Khai bo lp

class CHocSinh
{
private:
char hoten[31];
int toan;
int van;
float dtb;
public:
CHocSinh operator=
(CHocSinh &);
};
GV. Nguy n Sn Hong Quc
ThS. Nguyn Tn Trn Minh Khang

Chng 06 - 6

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

3. GII QUYT VN

gii quyt vn trn ta phi


khai bo v nh ngha phng
thc ton t gn cho lp i
tng CHocSinh
Khai bo lp

class CHocSinh
{
private:
char hoten[31];
int toan;
int van;
float dtb;
public:
CHocSinh operator=
(CHocSinh &);
};
GV. Nguy n Sn Hong Quc
ThS. Nguyn Tn Trn Minh Khang

Chng 06 - 7

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

3. GII QUYT VN

gii quyt vn trn ta phi


khai bo v nh ngha phng
thc ton t gn cho lp i
tng CHocSinh
Khai bo lp

class CHocSinh
{
private:
char hoten[31];
int toan;
int van;
float dtb;
public:
CHocSinh operator=
(CHocSinh &);
};
GV. Nguy n Sn Hong Quc
ThS. Nguyn Tn Trn Minh Khang

Chng 06 - 8

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

3. GII QUYT VN

gii quyt vn trn ta phi


khai bo v nh ngha phng
thc ton t gn cho lp i
tng CHocSinh
Khai bo lp

class CHocSinh
{
private:
char hoten[31];
int toan;
int van;
float dtb;
public:
CHocSinh operator=
(CHocSinh &);
};
GV. Nguy n Sn Hong Quc
ThS. Nguyn Tn Trn Minh Khang

Chng 06 - 9

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

3. GII QUYT VN
nh ngha phng thc ton t gn

CHocSinh CHocSinh::operator=
(CHocSinh&x)
{
strcpy(hoten,x.hoten);
toan = x.toan;
van = x.van;
dtb = x.dtb;
return *this;
}

GV. Nguy n Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 06 - 10

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

4. CC GHI CH
QUAN TRNG

Ton t gn c ci t bn
trong lp CHocSinh nh l mt
phng thc ca lp.

Min gi tr ca mt bin con tr


l a ch nh.

Min gi tr ca mt con tr i
tng l a ch nh.

Bn trong thn ca mt phng


thc, this l mt con tr i
tng thuc v lp m phng
thc thuc v.

GV. Nguy n Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 06 - 11

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

4. CC GHI CH
QUAN TRNG
Bn trong thn ca mt phng
thc, this l mt con tr i
tng thuc v lp m phng
thc thuc v.
+ V d 01: Bn trong thn
phng thc nhap ca lp
CPhanSo, this l con tr i
tng thuc v lp CPhanSo.
+ V d 02: Bn trong thn
phng thc xut ca lp
CDiem, this l con tr i
tng thuc v lp CDiem.
+ V d 03: Bn trong thn
phng thc operator = ca
lp CHocSinh, this l con tr
i tng thuc v lp
CHocSinh.
GV. Nguy
n Sn Hong Quc
Chng 06 - 12

ThS. Nguyn Tn Trn Minh Khang

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

4. CC GHI CH
QUAN TRNG

Bn trong thn phng thc ca


mt lp, this l mt con tr i
tng gi a ch ca i tng
ang gi thc hin phng thc.

Bn trong thn phng thc ca


mt lp, this l mt con tr i
tng gi a ch ca i tng
ang gi thc hin phng thc.
Hn na *this chnh l i
tng ang gi thc hin
phng thc.

GV. Nguy n Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 06 - 13

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

5. HNG DN S DNG
CHocSinh CHocSinh::operator=
(CHocSinh&x)
{
strcpy(hoten,x.hoten);
toan = x.toan;
van = x.van;
dtb = x.dtb;
return *this;
}
Hng dn s dng 01:
1. CHocSinh a,b;
2. a.nhap();
3. b = a;
Trong cu lnh th 3 ca on
chng trnh trn ta ni: i tng b
gi thc hin phng thc ton t
gn vi tham s l i tng a.
GV. Nguy n Sn Hong Quc
ThS. Nguyn Tn Trn Minh Khang

Chng 06 - 14

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

5. HNG DN S DNG
nh ngha phng thc ton t gn

CHocSinh CHocSinh::operator=
(CHocSinh&x)
{
strcpy(hoten,x.hoten);
toan = x.toan;
van = x.van;
dtb = x.dtb;
return *this;
}

GV. Nguy n Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 06 - 15

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

5. HNG DN S DNG
CHocSinh CHocSinh::operator=
(CHocSinh&x)
{
strcpy(hoten,x.hoten);
toan = x.toan;
van = x.van;
dtb = x.dtb;
return *this;
}
Hng dn s dng 02:
1. CHocSinh a,b,c,d,e;
2. e.Nhap();
3. a = b = c = d = e;
Trong cu lnh th 3 ca on
chng trnh trn ta ni: ni khng
ni.
GV. Nguy n Sn Hong Quc
ThS. Nguyn Tn Trn Minh Khang

Chng 06 - 16

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

5. HNG DN S DNG
nh ngha phng thc ton t gn

CHocSinh CHocSinh::operator=
(CHocSinh&x)
{
strcpy(hoten,x.hoten);
toan = x.toan;
van = x.van;
dtb = x.dtb;
return *this;
}

GV. Nguy n Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 06 - 17

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

6. NG DNG
Hy khai bo v nh ngha phng thc
ton t gn cho lp i tng CHonSo

Khai bo lp
class CHonSo
{
private:
int nguyen;
int tu;
int mau;
public:
CHonSo operator=(CHonSo &);

};

GV. Nguy n Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 06 - 18

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

6. NG DNG
nh ngha phng thc ton t gn

CHonSo CHonSo::operator =
(CHonSo &x)
{
nguyen = x.nguyen;
tu = x.tu;
mau = x.mau;
return *this;
}

GV. Nguy n Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 06 - 19

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

7. BI TP V NH

Hy khai bo v nh ngha
phng thc ton t gn cho
cc lp i tng sau:
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.

Lp phn s (CPhanSo)
Lp im (CDiem)
Lp ngy (CNgay)
Lp thi gian (CThoiGian)
Lp n thc (CDonThuc)
Lp
im
khng
gian
(CDiemKhongGian)
Lp ng thng (CDuongThang)
Lp hn s (CHonSo)
Lp s phc (CSoPhuc)
Lp ng trn (CDuongTron)
Lp lp tam gic (CTamGiac)
Lp hnh cu (CHinhCau)

GV. Nguy n Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 06 - 20

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

8. BI TP NP MOODLE
Bi 1: Vit chng trnh thc hin
c hm main nh sau i vi i
tng CPhanSo.
1. void main()
2. {
3.
CPhanSo a, b;
4.
a.Nhap();
5.
b = a;
6.
a.Xuat();
7.
b.Xuat();
8. }
Bi 2 n Bi 12: Vit tng t cho
cc lp i tng cn li.

GV. Nguy n Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 06 - 21

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

8. BI TP NP MOODLE

Yu cu chung:
+

Lm tt c cc bi tp trong
mt workspace c tn l
MSSV_BT06.

Trong workspace c 12
project tng ng vi tng bi
tp (BT01, BT02, BT03,
BT12)

Np bi tp ln h thng
Moodle theo qui nh.

GV. Nguy n Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 06 - 22

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

Chng 7
TON T S HC

GV. Nguyn Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 07 - 1

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

0. MC TIU

Hiu c cc ton t s hc l
g?

Hiu c vai tr ca ton t s


hc trong C++

GV. Nguyn Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 07 - 2

Click to see Figure 1-2

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

1. BI TON DN NHP
Bi ton: Vit chng trnh nhp
vo hai phn s. Tnh tng gia
chng v xut kt qu bng
phng php lp trnh hng i
tng.
Chng trnh
#include <stdio.h>
#include <conio.h>
class CPhanSo
{
private:
int tu;
int mau;
public:
void Nhap();
void Xuat();
CPhanSo Tong(CPhanSo);
};

GV. Nguyn Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 07 - 3

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

1. BI TON DN NHP
void main()
{
CPhanSo a,b,kq;
a.Nhap();
b.Nhap();
kq = a.Tong(b);
printf(Tong la:);
kq.Xuat();
}

GV. Nguyn Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 07 - 4

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

1. BI TON DN NHP
void CPhanSo::Nhap()
{
printf(Nhap tu:);
scanf(%d,&tu);
printf(Nhap mau:);
scanf(%d,&mau);
}
void CPhanSo::Xuat()
{
printf(%d/%d,tu,mau);
}
GV. Nguyn Sn Hong Quc
ThS. Nguyn Tn Trn Minh Khang

Chng 07 - 5

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

1. BI TON DN NHP
CPhanSo CPhanSo::Tong(CPhanSo x)
{
CPhanSo temp;
temp.tu= tu*x.mau + mau*x.tu;
temp.mau= mau*x.mau;
return temp;
}

kq = a.Tong(b);
x

a
c

b
d

temp

ad bc
bd

GV. Nguyn Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 07 - 6

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

2. KHI NIM

Trong ngn ng lp trnh C c cc


ton t s hc nh sau:

Ton t cng (operator +)


Ton t tr (operator -)
Ton t nhn (operator *)
Ton t chia (operator /)
Ton t mod (operator %)
Ton t cng bng (operator +=)
Ton t tr bng (operator -=)
Ton t nhn bng (operator *=)
Ton t chia bng (operator /=)
Ton t mod bng (operator %=)
Ton t tng mt (operator ++)
Ton t gim mt (operator --)

GV. Nguyn Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 07 - 7

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

3. T VN

Hy khai bo v nh ngha cc
phng thc v ton t cn thit
cc cu lnh sau c th thc hin.

Cc cu lnh

11.CPhanSo

a,b,kq;
12.cin>>a>>b;
13.kq = a + b;
14.cout<<Tong:<<kq;
15.kq = a b;
16.cout<<Hieu:<<kq;
17.kq = a * b;
18.cout<<Tich:<<kq;
19.kq = a / b;
20.cout<<Thuong:<<kq;
GV. Nguyn Sn Hong Quc
ThS. Nguyn Tn Trn Minh Khang

Chng 07 - 8

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

4. GII QUYT VN

gii quyt vn trn ta phi khai bo


v nh ngha cc ton t s hc cho lp
i tng CPhanSo.

Khai bo lp
class CPhanSo
{
private:
int tu;
int mau;
public:
CPhanSo Tong(CPhanSo);

CPhanSo
CPhanSo
CPhanSo
CPhanSo

};

operator+(CPhanSo);
operator-(CPhanSo);
operator*(CPhanSo);
operator/(CPhanSo);

GV. Nguyn Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 07 - 9

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

4. GII QUYT VN
CPhanSo CPhanSo::operator+
(CPhanSo x)
{
CPhanSo temp;
temp.tu = tu*x.mau+mau*x.tu;
temp.mau = mau*x.mau;
return temp;
}
CPhanSo CPhanSo::operator(CPhanSo x)
{
CPhanSo temp;
temp.tu = tu*x.mau-mau*x.tu;
temp.mau = mau*x.mau;
return temp;
}
GV. Nguyn Sn Hong Quc
ThS. Nguyn Tn Trn Minh Khang

Chng 07 - 10

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

4. GII QUYT VN
CPhanSo CPhanSo::operator*
(CPhanSo x)
{
CPhanSo temp;
temp.tu = tu*x.tu;
temp.mau = mau*x.mau;
return temp;
}
CPhanSo CPhanSo::operator/
(CPhanSo x)
{
CPhanSo temp;
temp.tu = tu*x.mau;
temp.mau = mau*x.tu;
return temp;
}GV. Nguyn Sn Hong Quc
Chng 07 - 11
ThS. Nguyn Tn Trn Minh Khang

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

5. BI TP V NH

Bi 01: Hy nh ngha cc ton


t +,-,*,/,+=,-=,*=,/=,++,-- cho lp
i tng CPhanSo

Bi 02: Hy nh ngha cc ton


t +,-,*,/,+=,-=,*=,/= cho lp i
tng CSoPhuc.

Bi 03: Hy nh ngha cc ton


t *,/,*=,/= cho lp i tng
CDonThuc.

Bi 04: Hy nh ngha cc ton


t +,-,*,/,+=,-=,*=,/= cho lp i
tng CDaThuc.

GV. Nguyn Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 07 - 12

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

Chng 8
TON T SO SNH

GV. Nguyn Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 08 - 1

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

0. MC TIU

Hiu c phng thc ton t so


snh l g?

Ci t ton t so snh cho cc lp


i tng.

GV. Nguyn Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 08 - 2

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

1. KHI NIM

Ton t so snh trong ngn ng lp


trnh C c s dng so snh gi
tr ca bin ny vi gi tr ca bin
khc.

M rng cho phng php lp trnh


hng i tng vi C++ ta th ni
ton t so snh c s dng so
snh i tng ny vi i tng
khc.

Hin nhin vic so snh hai i tng


phi c thc hin theo mt tiu ch
no .

GV. Nguyn Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 08 - 3

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

2. CC TON T
SO SNH C BN

Ton t so snh ln hn (operator >)

Ton t so snh nh hn (operator <)

Ton t so snh ln hn bng (operator>=)

Ton t so snh nh hn bng (operator<=)

Ton t so snh bng (operator ==)

Ton t so snh khc (operator !=)

GV. Nguyn Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 08 - 4

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

3. T VN

Hy nh ngha cc phng thc


cn thit cho lp i tng
CHocSinh cc cu lnh sau
c th thc thi c.

on chng trnh

1.

CHocSinh a,b;

2.

cin>>a>>b;

3.

if (a>b)

4.

5.
6.

cout<<DTB a lon hon DTB b;

else
cout<<DTB a ko lon hon b;

GV. Nguyn Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 08 - 5

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

4. GII QUYT VN
on chng trnh

1.

CHocSinh a,b;

2.

cin>>a>>b;

3.

if (a>b)

4.

5.
6.

cout<<DTB a lon hon DTB b;

else
cout<<DTB a ko lon hon b;

gii quyt vn trn ta phi khai


bo v nh ngha phng thc ton
t so snh ln hn cho lp i tng
CPhanSo.

GV. Nguyn Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 08 - 6

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

4. GII QUYT VN
Khai bo lp
11. class CHocSinh
12. {
13.
private:
14.
char hoten[31];
15.
int toan;
16.
int van;
17.
float dtb;
18.
public:
19.
int operator>(CHocSinh);
20.
int operator<(CHocSinh);
21.
int operator>=(CHocSinh);
22.
int operator =(CHocSinh);
23.
int operator==(CHocSinh);
24.
int operator!=(CHocSinh);
25. };

GV. Nguyn Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 08 - 7

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

4. GII QUYT VN
nh ngha cc phng thc
11. int CHocSinh::operator >
(CHocSinh x)
12. {
13.
if(dtb>x.dtb)
14.
return 1;
15.
return 0;
16. }
17. int CHocSinh::operator <
(CHocSinh x)
18. {
19.
if(dtb<x.dtb)
20.
return 1;
21.
return 0;
22. }

GV. Nguyn Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 08 - 8

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

4. GII QUYT VN
nh ngha cc phng thc
11. int CHocSinh::operator >=
(CHocSinh x)
12. {
13.
if(dtb>=x.dtb)
14.
return 1;
15.
return 0;
16. }
17. int CHocSinh::operator <=
(CHocSinh x)
18. {
19.
if(dtb<=x.dtb)
20.
return 1;
21.
return 0;
22. }

GV. Nguyn Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 08 - 9

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

4. GII QUYT VN
nh ngha cc phng thc
11. int CHocSinh::operator ==
(CHocSinh x)
12. {
13.
if(dtb==x.dtb)
14.
return 1;
15.
return 0;
16. }
17. int CHocSinh::operator !=
(CHocSinh x)
18. {
19.
if(dtb!=x.dtb)
20.
return 1;
21.
return 0;
22. }

GV. Nguyn Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 08 - 10

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

5. NG DNG
Bi ton: Hy nh ngha cc ton t so
snh cho lp i tng CPhanSo
11. class CPhanSo
12. {
13.
private:
14.
int tu;
15.
int mau;
16.
public:
17.
CPhanSo operator-(CPhanSo);
18.
int operator > (CPhanSo);
19.
int operator < (CPhanSo);
20.
int operator >= (CPhanSo);
21.
int operator <= (CPhanSo);
22.
int operator == (CPhanSo);
23.
int operator != (CPhanSo);
24. };

GV. Nguyn Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 08 - 11

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

5. NG DNG
1.

CPhanSo CPhanSo::operator(CPhanSo x)

2.

3.

CPhanSo temp;

4.

temp.tu=tu*x.mau-mau*x.tu;

5.

temp.mau=mau*x.mau;

6.

return temp;

7.

GV. Nguyn Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 08 - 12

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

5. NG DNG
nh ngha cc ton t so snh

1.

int CPhanSo::operator>
(CPhanSo x)

2.

3.

CPhanSo temp = *this x;

4.

if(temp.tu*temp.mau>0)

return 1;

5.

else

6.

return 0;

7.
8.

GV. Nguyn Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 08 - 13

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

5. NG DNG
nh ngha cc ton t so snh

1.

int CPhanSo::operator<
(CPhanSo x)

2.

3.

CPhanSo temp = *this x;

4.

if(temp.tu*temp.mau<0)

return 1;

5.

else

6.

return 0;

7.
8.

GV. Nguyn Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 08 - 14

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

5. NG DNG
nh ngha cc ton t so snh

1.

int CPhanSo::operator<=
(CPhanSo x)

2.

3.

CPhanSo temp = *this x;

4.

if(temp.tu*temp.mau<=0)

return 1;

5.

else

6.

return 0;

7.
8.

GV. Nguyn Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 08 - 15

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

5. NG DNG
nh ngha cc ton t so snh

1.

int CPhanSo::operator>=
(CPhanSo x)

2.

3.

CPhanSo temp = *this x;

4.

if(temp.tu*temp.mau>=0)

return 1;

5.

else

6.

return 0;

7.
8.

GV. Nguyn Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 08 - 16

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

5. NG DNG
nh ngha cc ton t so snh

1.

int CPhanSo::operator==
(CPhanSo x)

2.

3.

CPhanSo temp = *this x;

4.

if(temp.tu*temp.mau==0)

return 1;

5.

else

6.

return 0;

7.
8.

GV. Nguyn Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 08 - 17

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

5. NG DNG
nh ngha cc ton t so snh

1.

int CPhanSo::operator!=
(CPhanSo x)

2.

3.

CPhanSo temp = *this x;

4.

if(temp.tu*temp.mau!=0)

return 1;

5.

else

6.

return 0;

7.
8.

GV. Nguyn Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 08 - 18

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

6. BI TP

Bi 01: Hy nh ngha tt c cc
phng thc ton t so snh
cho lp i tng CPhanSo.

Bi 02: Hy nh ngha tt c cc
phng thc ton t so snh
cho lp i tng CHonSo.

Bi 03: Hy nh ngha tt c cc
phng thc ton t so snh
cho lp i tng CDiem trong
mt phng Oxy. Bit rng tiu
chun so snh 2 im l so
snh theo khong cch ti gc
to . im no xa gc hn
th ln hn.

GV. Nguyn Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 08 - 19

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

6. BI TP

Bi 04: Hy nh ngha ton t


so snh bng v ton t so snh
khc cho tt c cc i tng
sau:
1.
2.
3.

4.
5.

6.
7.

8.
9.

Lp im (CDiem)
Lp ngy (CNgay)
Lp thi gian (CThoiGian)
Lp n thc (CDonThuc)
Lp im khng gian
(CDiemKhongGian)
Lp ng thng (CDuongThang)
Lp s phc (CSoPhuc)
Lp ng trn (CDuongTron)
Lp lp tam gic (CTamGiac)
Lp hnh cu (CHinhCau)

10.
GV. Nguyn Sn Hong Quc
ThS. Nguyn Tn Trn Minh Khang

Chng 08 - 20

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

Chng 9
K THA

GV. Nguyn Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 09 - 1

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

0. MC TIU

Hiu c cc loi quan h?

Hiu c k tha trong lp trnh


hng i tng l g?

Hiu c khi nim cy k tha.

Hiu c khi nim s lp.

GV. Nguyn Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 09 - 2

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

1.QUAN H
Ngi ta chia cc quan h thnh
nhng loi nh sau:

Quan h mt mt (1-1)

Quan h mt nhiu (1-n)

Quan h nhiu nhiu (m-n)

Quan h t bit ha, tng qut ha.

GV. Nguyn Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 09 - 3

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

1.1. QUAN H MT MT (1-1)

Khi nim: Hai lp i tng c


gi l quan h mt-mt vi nhau khi
mt i tng thuc lp ny quan h
vi mt i tng thuc lp kia v mt
i tng thuc lp kia quan h duy
nht vi mt i tng thuc lp ny.

Hnh v

Quan H

Trong hnh v trn ta ni: mt i


tng thuc lp A quan h vi mt i
tng thuc lp B v mt i tng
lp B quan h duy nht vi mt i
tng thuc lp A.
GV. Nguyn Sn Hong Quc
ThS. Nguyn Tn Trn Minh Khang

Chng 09 - 4

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

1.1 QUAN H MT MT (1-1)

V d minh ha
LOPHOC

VO

Ch nhim

Hn nhn

GV. Nguyn Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

GIAOVIEN

CHONG

Chng 09 - 5

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

1.2. QUAN H MT NHIU (1-n)

Khi nim: Hai lp i tng c


gi l quan h mt-nhiu vi nhau khi
mt i tng thuc lp ny quan h
vi nhiu i tng thuc lp kia v
mt i tng lp kia quan h duy
nht vi mt i tng thuc lp ny.

Hnh v

Quan H

Trong hnh v trn ta ni: mt i


tng thuc lp A quan h vi nhiu
i tng thuc lp B v mt i
tng lp B quan h duy nht vi mt
i tng thuc lp A.
GV. Nguyn Sn Hong Quc
ThS. Nguyn Tn Trn Minh Khang

Chng 09 - 6

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

1.2 QUAN H MT NHIU (1-n)

V d minh ha:
LOPHOC

CHA

HOASI

Huyt thng

Sng tc

GV. Nguyn Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

HOCSINH

CON

TACPHAM

Chng 09 - 7

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

1.2 QUAN H MT NHIU (1-n)

V d minh ha:

GV. Nguyn Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 09 - 8

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

1.3 QUAN H NHIU NHIU


(m-n)

Khi nim: hai lp i tng c


gi l quan h nhiu-nhiu vi nhau
khi mt i tng thuc lp ny quan
h vi nhiu i tng thuc lp kia
v mt i tng lp kia cng c quan
h vi nhiu i tng thuc lp ny.

Hnh v

Quan H

Trong hnh v trn ta ni: mt i


tng thuc lp A quan h vi nhiu
i tng thuc lp B v mt i
tng lp B cng c quan h vi
nhiu i tng thuc lp A.
GV. Nguyn Sn Hong Quc
ThS. Nguyn Tn Trn Minh Khang

Chng 09 - 9

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

1.3 QUAN H NHIU NHIU


(m-n)

V d minh ha:
NAM

BACSI

yu

Khm bnh

BENHNHAN

GV. Nguyn Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 09 - 10

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

1.3 QUAN H NHIU NHIU


(m-n)

V d minh ha:

GV. Nguyn Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 09 - 11

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

1.4. QUAN H C BIT HATNG QUT HO

Khi nim: hai lp i tng c


gi l quan h c bit ha-tng qut
ha vi nhau khi, lp i tng ny l
trng hp c bit ca lp i tng
kia v lp i tng kia l trng hp
tng qut ca lp i tng ny.

Hnh v

A
B
GV. Nguyn Sn Hong Quc
ThS. Nguyn Tn Trn Minh Khang

Chng 09 - 12

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

1.4. QUAN H T BIT HATNG QUT HO

Hnh v

A
B

Trong hnh v trn ta ni: lp i


tng B l trng hp c bit ca
lp i tng A v lp i tng A l
trng hp tng qut ca lp i
tng B.

GV. Nguyn Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 09 - 13

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

1.4. QUAN H T BIT HATNG QUT HO

V d 1:
TAMGIAC

TAMGIACCAN

GV. Nguyn Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 09 - 14

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

1.4. QUAN H T BIT HATNG QUT HO

V d 2:
DONGVAT

NGUOI

GV. Nguyn Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

HEO

Chng 09 - 15

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

2. CY K THA

Khi nim: Cy k tha l mt cy a


nhnh th hin mi quan h c bit
ha-tng qut ha gia cc lp trong
h thng, chng trnh.

V d: Hy v cy k tha cho cc lp
i tng sau:
Lp XELAM

Lp XEDAP

Lp XEGANMAY Lp XE

Lp XEHOI

Lp XEHAIBANH Lp XEBONBANH

Lp XETAINHE

Lp XEBABANH
Lp XEXICHLO

GV. Nguyn Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 09 - 16

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

2. CY K THA (tip)

GV. Nguyn Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 09 - 17

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

3. S LP

Khi nim: S lp l s th
hin tt c cc mi quan h gia cc
lp trong h thng, chng trnh.

V d minh ha: Hy v s lp cho


cc lp i tng sau:

Lp GIAOVIEN

Lp HOCSINH

Lp LOPHOC

Lp MONHOC

Lp NHANVIEN: tt c nhng ngi


lm vic trong trng.

Lp CNV: l nhng ngi lm vic


trong nh trng nhng ko trc tip
ng lp. V d: Bo v, lao cng, bo
mu,

GV. Nguyn Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 09 - 18

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

3. S LP

GV. Nguyn Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 09 - 19

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

4. K THA TRONG C++

Th gii thc

Lp trnh hng i tng vi C++

Phm vi truy xut

T kho dn xut

GV. Nguyn Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 09 - 20

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

4.1 TH GII THC

A
B

Trong hnh v trn ta ni A v B


c quan h c bit ho, tng
qut ho vi nhau. Trong B l
trng hp t bit ca A, v A
l trng hp tng qut ca B.

GV. Nguyn Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 09 - 21

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

4.2 LTHT VI C++


1.
2.
3.
4.
5.
6.
7.

8.

class A
{
...
};
class B:<t kha dn xut> A
{
...
};

B
Trong khai bo trn ta ni lp B

k tha t lp A.
Lp i tng A c gi l lp
c s.
Lp i tng B c gi l lp
dn xut t lp i tng A.

GV. Nguyn Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 09 - 22

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

4.3 PHM VI TRUY XUT

Mt thuc tnh hay mt phng


thc khi c khai bo trong mt
lp ta c th khai bo trong 3
phm vi khc nhau: private,
public hoc protected.

V mt nguyn tc cho ti thi


im ny th mt thuc tnh hay
mt phng thc khi c khai
bo trong phm vi private hay
protected th tng ng
nhau. Ngha l, thuc tnh v
phng thc c khai bo
trong hai phm vi ny ch c
php truy xut bn trong lp m
thi v khng c quyn truy
xut t bn ngoi lp.

GV. Nguyn Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 09 - 23

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

4.3 PHM VI TRUY XUT


V d: Hy cho bit trong on
chng trnh sau cu lnh no ng,
cu lnh no sai.
1. class A
2. {
3.
private:
4.
int a;
5.
void f();
6.
protected:
7.
int b;
8.
void g();
9.
public:
10.
int c;
11.
void h();
12. };

GV. Nguyn Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 09 - 24

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

4.3 PHM VI TRUY XUT


13. void A::f()
14. {
15.
a = 1;
16.
b = 2;
17.
c = 3;
18. }
19. void A::g()
20. {
21.
a = 4;
22.
b = 5;
23.
c = 6;
24. }
25. void A::h()
26. {
27.
a = 7;
28.
b = 8;
29.
c = 9;
30. }
GV. Nguyn Sn Hong Quc
ThS. Nguyn Tn Trn Minh Khang

Chng 09 - 25

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

4.3 PHM VI TRUY XUT


31. void

main()

32. {
33.

A x;

34.

x.a = 10;

35.

x.f();

36.

x.b = 20;

37.

x.g();

38.

x.c = 30;

39.

x.h();

40. }

GV. Nguyn Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 09 - 26

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

4.4 T KHA DN XUT


1.
2.
3.
4.
5.
6.
7.

8.

class A
{
...
};
class B:<t kha dn xut> A
{
...
};

B
Trong khai bo trn ta ni lp B

k tha t lp A.
Lp i tng A c gi l lp
c s.
Lp i tng B c gi l lp
dn xut t lp i tng A.

GV. Nguyn Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 09 - 27

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

4.4 T KHA DN XUT

Trong ngn ng C++ c ba loi t


kha dn xut l: private,
protected v public. Thng thng
trong thc t ngi ta hay s dng t
kha dn xut public l nhiu nht.

GV. Nguyn Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 09 - 28

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

4.4 T KHA DN XUT

V d 01: Khai bo lp tam


gic v lp tam gic cn.

1.

class CTamGiac

2.

{
...

3.
4.

};

5.

class CTamGiacCan:public
CTamGiac

6.

{
...

7.
8.

TAMGIAC

};
TAMGIACCAN

GV. Nguyn Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 09 - 29

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

4.4 T KHA DN XUT


V d 02: Khai bo lp ng
vt, lp heo v lp ngi.
11. class CDongVat
12. {
13.
...
14. };
15. class CHeo:private CDongVat
16. {
17.
...
18. };
19. class CNguoi:public CDongVat
20. {
21.
...
22. };

GV. Nguyn Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 09 - 30

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

5. QUI TC K THA
TRONG C++

Bng qui tc k tha trong C++

T kha
dn xut

Private

Public

Phm vi lp
c s
Private
Protected
Public

Ghi ch: T kho dn xut c ba loi


l private, protected, public. Cc sinh
vin t tm hiu thm t kho dn xut
protected trong ti liu.
GV. Nguyn Sn Hong Quc
ThS. Nguyn Tn Trn Minh Khang

Chng 09 - 31

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

5. QUI TC K THA
TRONG C++

Bng qui tc k tha trong C++

T kha
dn xut

Private

Public

Phm vi lp
c s
Private
Protected
Public

Ghi ch: T kho dn xut c ba loi


l private, protected, public. Cc sinh
vin t tm hiu thm t kho dn xut
protected trong ti liu.
GV. Nguyn Sn Hong Quc
ThS. Nguyn Tn Trn Minh Khang

Chng 09 - 32

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

5. QUI TC K THA
TRONG C++

Bng qui tc k tha trong C++

T kha
dn xut

Private

Public

Phm vi lp
c s
Private

Ghi ch: T kho dn xut c ba loi


l private, protected, public. Cc sinh
vin t tm hiu thm t kho dn xut
protected trong ti liu.
GV. Nguyn Sn Hong Quc
ThS. Nguyn Tn Trn Minh Khang

Chng 09 - 33

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

5. QUI TC K THA
TRONG C++

Bng qui tc k tha trong C++

T kha
dn xut

Private

Public

Phm vi lp
c s
Private
Protected

Ghi ch: T kho dn xut c ba loi


l private, protected, public. Cc sinh
vin t tm hiu thm t kho dn xut
protected trong ti liu.
GV. Nguyn Sn Hong Quc
ThS. Nguyn Tn Trn Minh Khang

Chng 09 - 34

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

5. QUI TC K THA
TRONG C++

Bng qui tc k tha trong C++

T kha
dn xut

Private

Public

Phm vi lp
c s
Private
Protected
Public

Ghi ch: T kho dn xut c ba loi


l private, protected, public. Cc sinh
vin t tm hiu thm t kho dn xut
protected trong ti liu.
GV. Nguyn Sn Hong Quc
ThS. Nguyn Tn Trn Minh Khang

Chng 09 - 35

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

5. QUI TC K THA
TRONG C++

Bng qui tc k tha trong C++

T kha
dn xut
Phm vi lp
c s
Private
Protected
Public

Ghi ch: T kho dn xut c ba loi


l private, protected, public. Cc sinh
vin t tm hiu thm t kho dn xut
protected trong ti liu.
GV. Nguyn Sn Hong Quc
ThS. Nguyn Tn Trn Minh Khang

Chng 09 - 36

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

5. QUI TC K THA
TRONG C++

Bng qui tc k tha trong C++

T kha
dn xut

Private

Phm vi lp
c s
Private
Protected
Public

Ghi ch: T kho dn xut c ba loi


l private, protected, public. Cc sinh
vin t tm hiu thm t kho dn xut
protected trong ti liu.
GV. Nguyn Sn Hong Quc
ThS. Nguyn Tn Trn Minh Khang

Chng 09 - 37

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

5. QUI TC K THA
TRONG C++

Bng qui tc k tha trong C++

T kha
dn xut

Private

Public

Phm vi lp
c s
Private
Protected
Public

Ghi ch: T kho dn xut c ba loi


l private, protected, public. Cc sinh
vin t tm hiu thm t kho dn xut
protected trong ti liu.
GV. Nguyn Sn Hong Quc
ThS. Nguyn Tn Trn Minh Khang

Chng 09 - 38

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

5. QUI TC K THA
TRONG C++

Bng qui tc k tha trong C++

T kha
dn xut
Phm vi lp
c s
Private

Private

Public

||

||

Protected
Public

Ghi ch: T kho dn xut c ba loi


l private, protected, public. Cc sinh
vin t tm hiu thm t kho dn xut
protected trong ti liu.
GV. Nguyn Sn Hong Quc
ThS. Nguyn Tn Trn Minh Khang

Chng 09 - 39

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

5. QUI TC K THA
TRONG C++

Bng qui tc k tha trong C++

T kha
dn xut
Phm vi lp
c s
Private
Protected

Private

Public

||

||

private

Public

Ghi ch: T kho dn xut c ba loi


l private, protected, public. Cc sinh
vin t tm hiu thm t kho dn xut
protected trong ti liu.
GV. Nguyn Sn Hong Quc
ThS. Nguyn Tn Trn Minh Khang

Chng 09 - 40

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

5. QUI TC K THA
TRONG C++

Bng qui tc k tha trong C++

T kha
dn xut
Phm vi lp
c s
Private
Protected

Private

Public

||

||

private

protected

Public

Ghi ch: T kho dn xut c ba loi


l private, protected, public. Cc sinh
vin t tm hiu thm t kho dn xut
protected trong ti liu.
GV. Nguyn Sn Hong Quc
ThS. Nguyn Tn Trn Minh Khang

Chng 09 - 41

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

5. QUI TC K THA
TRONG C++

Bng qui tc k tha trong C++

T kha
dn xut

Private

Public

||

||

Protected

private

protected

Public

private

Phm vi lp
c s
Private

Ghi ch: T kho dn xut c ba loi


l private, protected, public. Cc sinh
vin t tm hiu thm t kho dn xut
protected trong ti liu.
GV. Nguyn Sn Hong Quc
ThS. Nguyn Tn Trn Minh Khang

Chng 09 - 42

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

5. QUI TC K THA
TRONG C++

Bng qui tc k tha trong C++

T kha
dn xut

Private

Public

||

||

Protected

private

protected

Public

private

public

Phm vi lp
c s
Private

Ghi ch: T kho dn xut c ba loi


l private, protected, public. Cc sinh
vin t tm hiu thm t kho dn xut
protected trong ti liu.
GV. Nguyn Sn Hong Quc
ThS. Nguyn Tn Trn Minh Khang

Chng 09 - 43

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

5. QUI TC K THA
TRONG C++

Cc thuc tnh v phng thc c


khai bo trong phm vi private ca lp
c s th s khng c hiu lp
dn xut.

Cc thuc tnh v phng thc c


khai bo trong phm vi protected ca
lp c s nu c dn xut bng t
kha private th cc thuc tnh v
phng thc s c hiu lp
dn xut nh l thnh phn private
ca lp dn xut.

Cc thuc tnh v phng thc c


khai bo trong phm vi protected ca
lp c s nu c dn xut bng t
kha public th cc thuc tnh v
phng thc s c hiu lp
dn
xut
lQuc
thnh phn
protected
GV.
Nguyn
Snnh
Hong
Chng 09 - 44
ThS.
Nguyn
Tn Trn
Minh Khang
ca
lp dn
xut.

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

5. QUI TC K THA
TRONG C++

Cc thuc tnh v phng thc c


khai bo trong phm vi public ca lp
c s nu c dn xut bng t
kha private th cc thuc tnh v
phng thc s c hiu lp
dn xut nh l thnh phn private
ca lp dn xut.

Cc thuc tnh v phng thc c


khai bo trong phm vi public ca lp
c s nu c dn xut bng t
kha public th cc thuc tnh v
phng thc s c hiu lp
dn xut nh l thnh phn public ca
lp dn xut.

GV. Nguyn Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 09 - 45

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

5. QUI TC K THA
TRONG C++

Bng qui tc k tha trong C++


T kha
dn xut

Private

Public

Private

(1)

(2)

Protected

(3)

(4)

Public

(5)

(6)

Phm vi lp
c s

GV. Nguyn Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 09 - 46

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

5. QUI TC K THA
TRONG C++

Bng qui tc k tha trong C++

(1)

(2)

(3)

(4)

(5)

(6)

GV. Nguyn Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 09 - 47

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

5. QUI TC K THA
TRONG C++

Bng qui tc k tha trong C++

GV. Nguyn Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 09 - 48

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

5. QUI TC K THA
TRONG C++

Bng qui tc k tha trong C++

GV. Nguyn Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 09 - 49

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

6. CY K THA CHI TIT

Qui tc v cy k tha chi tit:


Cc thuc tnh v phng thc
thuc phm vi private c v vi
mu xanh bn tri.
Cc thuc tnh v phng thc
thuc phm vi protected c v
vi mu xanh bn phi.
Cc thuc tnh v phng thc
thuc phm vi public c v vi
mu bn phi.
Cc thuc tnh v phng thc c
c do k tha c v bng nt
t khng lin tc.
Cc thuc tnh v phng thc ca
chnh bn thn lp c v bng
nt lin lin tc.
GV. Nguyn Sn Hong Quc
ThS. Nguyn Tn Trn Minh Khang

Chng 09 - 50

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

6. CY K THA CHI TIT


b

a
f()

g()

A
public

B
GV. Nguyn Sn Hong Quc
ThS. Nguyn Tn Trn Minh Khang

c
h()
t
aa()
b
g()
z
xy()
c
h()

Chng 09 - 51

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

6. CY K THA CHI TIT


a
f()

x
ab()

y
g()
x

public
t
h()

B
public

x
uv()

k
mn()
p
ab()

ab()

g()

q
xyz()
z
p
ab()
g() abc(int)

GV. Nguyn Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

k
mn()

Chng 09 - 52

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

7. TON T GN
TRONG K THA

V d dn nhp 01: Hy cho bit trong


chng trnh di y cu lnh no
ng cu lnh no sai:

11. class A
12.{
13.
...
14.};
15.class B:public
16.{
17.
...
18.};
19.void main()
20.{
21.
A a;
22.
B b;
23.
a = b;
24.
b = a;
25.}

GV. Nguyn Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 09 - 53

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

7. TON T GN
TRONG K THA
V d dn
nhp 02: Hy
cho bit on
chng trnh
di y cu
lnh
no
ng,
cu
lnh no sai:

1.
2.
3.
4.

class A
{
...
};

5. class B:
6. {
7.
...
8. };

9. void main()
10.{
11.
A *a;
12.
B *b;
13.
A x;
14.
B y;
15.
a = &x;

16.
17.
18.
19.}

b = &y;
a = &y;
b = &x;

public A

GV. Nguyn Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 09 - 54

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

7. TON T GN
TRONG K THA

Ton t gn trong k tha c


thc hin theo nguyn tc:
trng hp t bit c th
c gn cho trng hp
tng qut, v trng hp tng
qut th khng th gn cho
trng hp t bit c.

Qui tc trn p dng cho tt c


cc ngn ng h tr lp trnh
hng i tng nh C++, Java,
VB.NET, C#, Python,...

GV. Nguyn Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 09 - 55

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

7. TON T GN
TRONG K THA

p dng qui tc trn cho ngn


ng lp trnh hng i tng
C++ ta c th ni nh sau: mt
i tng thuc lp dn xut
c th c gn cho mt i
tng thuc lp c s. iu
ngc li l sai, ngha l mt i
tng thuc lp c s khng
c quyn gn cho mt i
tng thuc lp dn xut.

GV. Nguyn Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 09 - 56

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

7. TON T GN
TRONG K THA

V d dn nhp 01: Hy cho bit trong


chng trnh di y cu lnh no
ng cu lnh no sai:

11. class A
12.{
13.
...
14.};
15.class B:public
16.{
17.
...
18.};
19.void main()
20.{
21.
A a;
22.
B b;
23.
a = b;
24.
b = a;
25.}

GV. Nguyn Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 09 - 57

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

7. TON T GN
TRONG K THA

M rng qui tc trn cho con tr


i tng ta c th ni nh sau:
mt con tr i tng thuc
lp c s c th gi a ch
ca mt i tng thuc lp
dn xut. Ngc lai, mt con
tr i tng thuc lp dn
xut khng th gi a ch ca
mt i tng thuc lp c
s.

GV. Nguyn Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 09 - 58

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

7. TON T GN
TRONG K THA
Hy cho bit on chng trnh di
y cu lnh no ng, cu lnh no
sai:
11. class A
12.{
13.};
14.class B:public A
15.{
16.};
17.void main()
18.{
19.
A *a;
20.
B *b;
21.
A x;
22.
B y;
23.
a = &x;
24.
b = &y;
25.
a = &y;
26.
b = &x;
27.}

GV. Nguyn Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 09 - 59

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

Chng 10
MNG MT CHIU
CN BN

GV. Nguy n Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 10- 1

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

1. V D DN NHP 1

Bi ton: Vit chng trnh thc hin


cc yu cu sau bng phng php
lp trnh hng i tng
+

Nhp mng mt chiu cc s nguyn

Xut mng mt chiu cc s nguyn

Tnh tng cc gi tr trong mng

Chng trnh

GV. Nguy n Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 10- 2

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

1. V D DN NHP 1
11. #include
12. class

<iostream.h>

CMangNguyen

13. {
14.

private:

15.

int a[100];

16.

int n;

17.

public:

18.

void Nhap();

19.

void Xuat();

20.

int Tong();

21. };

GV. Nguy n Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 10- 3

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

1. V D DN NHP 1
11. void

main()

12. {
13.

CMangNguyen x;

14.

x.Nhap();

15.

x.Xuat();

16.

int kq = x.Tong();

17.

cout << Tong = << kq;

18. }

GV. Nguy n Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 10- 4

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

1. V D DN NHP 1
11. void

CMangNguyen::Nhap()

12. {
13.

cout<<"Nhap n : ";

14.

cin>>n;

15.

for (int i=0 ; i<n ; i++)

16.

17.

cout<<a[<< i <<]:;

18.

cin >> a[i];

19.

20. }

GV. Nguy n Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 10- 5

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

1. V D DN NHP 1
11. void

CMangNguyen::Xuat()

12. {
13.

for (int i=0; i<n ;i++)

14.

cout << a[i] <<

15. }

GV. Nguy n Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 10- 6

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

1. V D DN NHP 1
11. int

CMangNguyen::Tong()

12. {
13.

int s = 0;

14.

for (int i=0;i<n;i++)

15.

s = s + a[i];

16.

return s;

17. }

GV. Nguy n Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 10- 7

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

2. V D DN NHP 2

Bi ton: Vit chng trnh thc hin


cc yu cu sau bng phng php
lp trnh hng i tng
+

Nhp mng mt chiu cc s thc

Xut mng mt chiu cc s thc

Tm phn t ln nht trong mng

Chng trnh

GV. Nguy n Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 10- 8

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

2. V D DN NHP 2
11. #include
12. class

<iostream.h>

CMangThuc

13. {
14.

private:

15.

float a[100];

16.

int n;

17.

public:

18.

void Nhap();

19.

void Xuat();

20.

float LonNhat();

21. };

GV. Nguy n Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 10- 9

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

2. V D DN NHP 2
11. void

main()

12. {
13.

CMangThuc x;

14.

x.Nhap();

15.

x.Xuat();

16.

float kq = x.LonNhat();

17.

cout << \n << kq;

18. }

GV. Nguy n Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 10- 10

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

2. V D DN NHP 2
11. void

CMangThuc::Nhap()

12. {
13.

cout << "Nhap n : ";

14.

cin >> n;

15.

for (int i=0 ; i<n ; i++)

16.

17.

cout <<a[<<i<<]:;

18.

cin >> a[i];

19.

20. }

GV. Nguy n Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 10- 11

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

2. V D DN NHP 2
11. void

CMangThuc::Xuat()

12. {
13.
14.

for (int i=0 ; i<n ; i++)


cout << a[i] << " ";

15. }

GV. Nguy n Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 10- 12

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

2. V D DN NHP 2
11. float

CMangThuc::LonNhat()

12. {
13.

float lc = a[0];

14.

for (int i=0;i<n;i++)

15.
16.
17.

if (a[i] > lc)


lc = a[i];
return lc;

18. }

GV. Nguy n Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 10- 13

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

3. V D DN NHP 3

Bi ton: Vit chng trnh thc hin


cc yu cu sau bng phng php
lp trnh hng i tng:
+

Nhp mng mt chiu cc phn s

Xut mng mt chiu cc phn s

m s lng gi tr dng c trong


mng

Chng trnh

GV. Nguy n Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 10- 14

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

3. V D DN NHP 3
11. #include
12. class

<iostream.h>

CPhanSo

13. {
14.

private:

15.

int tu;

16.

int mau;

17.

public:

18.

void Nhap();

19.

void Xuat();

20.

int KtDuong();

21. };

GV. Nguy n Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 10- 15

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

3. V D DN NHP 3
11. class

CMangPhanSo

12. {
13.

private:

14.

CPhanSo a[100];

15.

int n;

16.

public:

17.

void Nhap();

18.

void Xuat();

19.

int DemDuong();

20. };

GV. Nguy n Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 10- 16

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

3. V D DN NHP 3
11. void

main()

12. {
13.

CMangPhanSo x;

14.

x.Nhap();

15.

x.Xuat();

16.

int kq = x.DemDuong();

17.

cout << "\n" << kq;

18. }

GV. Nguy n Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 10- 17

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

3. V D DN NHP 3
11. void

CPhanSo::Nhap()

12. {
13.

cout<<"Nhap tu :";

14.

cin>>tu;

15.

cout<<"Nhap mau :";

16.

cin>>mau;

17. }

GV. Nguy n Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 10- 18

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

3. V D DN NHP 3
11. void

CPhanSo::Xuat()

12. {
13.

cout << tu << "/" << mau;

14. }

GV. Nguy n Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 10- 19

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

3. V D DN NHP 3
11. int

CPhanSo::KtDuong()

12. {
13.

if (tu*mau > 0)

14.

return 1;

15.

return 0;

16. }

GV. Nguy n Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 10- 20

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

3. V D DN NHP 3
11. void

CMangPhanSo::Nhap()

12. {
13.

cout << "Nhap n : ";

14.

cin >> n;

15.

for (int i=0;i<n;i++)

16.

17.

cout<<Nhap a[<<i<<]:;

18.

a[i].Nhap();

19.

20. }

GV. Nguy n Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 10- 21

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

3. V D DN NHP 3
11. void

CMangPhanSo::Xuat()

12. {
13.

for (int i=0;i<n;i++)

14.

15.

a[i].Xuat();

16.

cout << " ";

17.

18. }

GV. Nguy n Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 10- 22

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

3. V D DN NHP 3
11. int

CMangPhanSo::DemDuong()

12. {
13.

int dem = 0;

14.

for (int i=0;i<n;i++)

15.

if (a[i].KtDuong()==1)

16.

dem = dem + 1;

17.

return dem;

18. }

GV. Nguy n Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 10- 23

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

4. XY DNG
LP MNG S NGUYN

Hy xy dng lp s nguyn vi cc
phng thc nh sau:
+

Phng thc nhp mng

Phng thc xut mng

Phng thc lit k cc gi tr chn


trong mng

Phng thc tnh tng cc phn t


trong mng

Phng thc tnh tng cc gi tr cc


i trong mng

Phng thc m s lng gi tr l


c trong mng

Phng thc m s ln xut hin ca


gi tr x trong mng

GV. Nguy n Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 10- 24

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

4. XY DNG
LP MNG S NGUYN

Hy xy dng lp s nguyn vi cc
phng thc nh sau:
+

Phng thc kim tra mng c tn ti


gi tr 0 hay khng?

Phng thc kim tra mng c ton


chn hay khng?

Phng thc kim tra mng c tng


dn hay khng?

Phng thc sp xp cc gi tr trong


mng tng dn

Phng thc sp xp cc gi tr trong


mng gim dn

Phng thc sp xp cc gi tr l
trong mng tng dn

GV. Nguy n Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 10- 25

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

4. XY DNG
LP MNG S NGUYN
11. class

CMangNguyen

12. {
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.

private:
int a[100];
int n;
public:
void Nhap();
void Xuat();
void LietKeChan();
int TinhTong();
int LonNhat();
int TongCucDai();
int DemLe();
int TanSuat(int);
int KTTonTaiKhong();
int KTToanChan();
int KTTangDan();

GV. Nguy n Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 10- 26

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

4. XY DNG
LP MNG S NGUYN
11. class

CMangNguyen

12. {
13.
14.
15.
16.
17.
18.
19.

private:
int a[100];
int n;
public:
void SapTang();
void SapGiam();
void SapLeTang();

20. };

GV. Nguy n Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 10- 27

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

4. XY DNG
LP MNG S NGUYN
11. void

CMangNguyen::Nhap()

12. {
13.

cout<<"Nhap n : ";

14.

cin>>n;

15.

for (int i=0 ; i<n ; i++)

16.

17.

cout<<"a["<<i<< "]:";

18.

cin >> a[i];

19.

20. }

GV. Nguy n Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 10- 28

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

4. XY DNG
LP MNG S NGUYN
11. void

CMangNguyen::Xuat()

12. {
13.
14.

for (int i=0;i<n;i++)


cout <<a[i]<<"

";

15. }

GV. Nguy n Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 10- 29

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

4. XY DNG
LP MNG S NGUYN
11. void

CMangNguyen::LietKeChan()

12. {
13.
14.
15.

for (int i=0; i<n; i++)


if (a[i]%2 == 0)
cout << a[i] << " ";

16. }

GV. Nguy n Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 10- 30

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

4. XY DNG
LP MNG S NGUYN
11. int

CMangNguyen::TinhTong()

12. {
13.

int s = 0;

14.

for (int i=0;i<n;i++)

15.

s = s + a[i];

16.

return S;

17. }

GV. Nguy n Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 10- 31

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

4. XY DNG
LP MNG S NGUYN
11. int

CMangNguyen::LonNhat()

12. {
13.

int lc = a[0];

14.

for (int i=0;i<n;i++)

15.

if (a[i] > lc)

16.

lc = a[i];

17.

return lc;

18. }

GV. Nguy n Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 10- 32

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

4. XY DNG
LP MNG S NGUYN
11. int

CMangNguyen::TongCucDai()

12. {
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.

if(n<=1)
return 0;
int s = 0;
if(a[0]>a[1])
s = s + a[0];
for(int i=1;i<=n-2;i++)
if(a[i]>a[i-1]&&
a[i]>a[i+1])
s = s + a[i];
if(a[n-1]>a[n-2])
s = s + a[n-1];
return s;

25. }
GV. Nguy n Sn Hong Quc
ThS. Nguyn Tn Trn Minh Khang

Chng 10- 33

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

4. XY DNG
LP MNG S NGUYN
11. int

CMangNguyen::DemLe()

12. {
13.

int dem = 0;

14.

for (int i=0; i<n; i++)

15.
16.
17.

if (a[i]%2!=0)
dem = dem + 1;
return dem;

18. }

GV. Nguy n Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 10- 34

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

4. XY DNG
LP MNG S NGUYN
11. int

CMangNguyen::TanSuat(int x)

12. {
13.

int dem = 0;

14.

for (int i=0; i<n; i++)

15.
16.
17.

if (a[i]==x)
dem = dem + 1;
return dem;

18. }

GV. Nguy n Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 10- 35

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

4. XY DNG
LP MNG S NGUYN
11.

int CMangNguyen::KTTonTaiKhong()

12. {
13.

int flag = 0;

14.

for (int i=0; i<n; i++)

15.
16.
17.

if (a[i]==0)
flag = 1;
return flag;

18. }

GV. Nguy n Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 10- 36

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

4. XY DNG
LP MNG S NGUYN
11. int

CMangNguyen::KTToanChan()

12. {
13.

int flag = 1;

14.

for (int i=0; i<n; i++)

15.
16.
17.

if (a[i]%2!=0)
flag = 0;
return flag;

18. }

GV. Nguy n Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 10- 37

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

4. XY DNG
LP MNG S NGUYN
11. int

CMangNguyen::KTTangDan()

12. {
13.

int flag = 1;

14.

for (int i=0;i<=n-2;i++)

15.

if (a[i]>a[i+1])

16.
17.

flag = 0;
return flag;

18. }

GV. Nguy n Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 10- 38

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

4. XY DNG
LP MNG S NGUYN
11. void

CMangNguyen::SapTang()

12. {
13.
14.

for (int i=0;i<=n-2;i++)


for (int j=i+1;j<=n-1;j++)

15.

if (a[i]>a[j])

16.

17.

int temp = a[i];

18.

a[i] = a[j];

19.

a[j] = temp;

20.

21. }

GV. Nguy n Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 10- 39

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

4. XY DNG
LP MNG S NGUYN
11. void

CMangNguyen::SapGiam()

12. {
13.
14.

for (int i=0;i<=n-2;i++)


for (int j=i+1;j<=n-1;j++)

15.

if (a[i]<a[j])

16.

17.

int temp = a[i];

18.

a[i] = a[j];

19.

a[j] = temp;

20.

21. }

GV. Nguy n Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 10- 40

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

4. XY DNG
LP MNG S NGUYN
11. void

CMangNguyen::SapLeTang()

12. {
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.

for (int i=0;i<=n-2;i++)


for (int j=i+1;j<=n-1;j++)
if(a[i] < a[j] &&
a[i]%2!=0 &&
a[j]%2!=0)
{
int temp = a[i];
a[i] = a[j];
a[j] = temp;
}

23. }

GV. Nguy n Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 10- 41

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

5. XY DNG
LP MNG S THC

Hy xy dng lp s thc vi cc
phng thc nh sau:
+

Phng thc nhp mng

Phng thc xut mng

Phng thc tnh tng cc phn t


trong mng

Phng thc tm phn t nh nht


trong mng

Phng thc tnh tng cc gi tr cc


tiu trong mng

Phng thc m s ln xut hin ca


gi tr x trong mng

GV. Nguy n Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 10- 42

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

5. XY DNG
LP MNG S THC

Hy xy dng lp s thc vi cc
phng thc nh sau:
+

Phng thc kim tra mng c tn ti


gi tr 0 hay khng?

Phng thc kim tra mng c tng


dn hay khng?

Phng thc sp xp cc gi tr trong


mng tng dn

Phng thc sp xp cc gi tr trong


mng gim dn

GV. Nguy n Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 10- 43

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

5. XY DNG
LP MNG S THC
11. class

CMangThuc

12. {
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.

private:
float a[100];
int n;
public:
void Nhap();
void Xuat();
float TinhTong();
float NhoNhat();
float TongCucTieu();
int DemXuatHien(float);
int KTTonTaiKhong();
int KTTangDan();
void SapTang();
void SapGiam();

27. };
GV. Nguy n Sn Hong Quc
ThS. Nguyn Tn Trn Minh Khang

Chng 10- 44

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

5. XY DNG
LP MNG S THC
11. void

CMangThuc::Nhap()

12. {
13.

cout << "Nhap n : ";

14.

cin >> n;

15.

for (int i=0 ; i<n ; i++)

16.

17.

cout<<a[<<i<< ]:;

18.

cin >> a[i];

19.

20. }

GV. Nguy n Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 10- 45

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

5. XY DNG
LP MNG S THC
11. void

CMangThuc::Xuat()

12. {
13.
14.

for (int i=0;i<n;i++)


cout<<a[i]<<" ";

15. }

GV. Nguy n Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 10- 46

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

5. XY DNG
LP MNG S THC
11. float

CMangThuc::TinhTong()

12. {
13.

float s = 0;

14.

for (int i=0; i<n; i++)

15.
16.

s = s + a[i];
return s;

17. }

GV. Nguy n Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 10- 47

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

5. XY DNG
LP MNG S THC
11. float

CMangThuc::NhoNhat()

12. {
13.

float lc = a[0];

14.

for (int i=0;i<n;i++)

15.
16.
17.

if (a[i]<lc)
lc = a[i];
return lc;

18. }

GV. Nguy n Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 10- 48

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

5. XY DNG
LP MNG S THC
11. int

CMangThuc::TanSuat(float x)

12. {
13.

int dem = 0;

14.

for (int i=0; i<n; i++)

15.
16.
17.

if (a[i]==x)
dem = dem + 1;
return dem;

18. }

GV. Nguy n Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 10- 49

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

5. XY DNG
LP MNG S THC
11. int

CMangThuc::KTTonTaiKhong()

12. {
13.
14.
15.
16.

for (int i=0;i<n;i++)


if (a[i]==0)
return 1;
return 0;

17. }

GV. Nguy n Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 10- 50

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

5. XY DNG
LP MNG S THC
11. int

CMangThuc::KTTangDan()

12. {
13.
14.
15.
16.

for (int i=1; i<n; i++)


if (a[i-1]<a[i])
return 1;
return 0;

17. }

GV. Nguy n Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 10- 51

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

5. XY DNG
LP MNG S THC
11. void

CMangThuc::SapTang()

12. {
13.
14.

for(int i=0;i<=n-2;i++)
for(int j=i+1;j<=n-1;j++)

15.

if(a[i]>a[j])

16.

17.

float temp = a[i];

18.

a[i] = a[j];

19.

a[j] = temp;

20.

21. }

GV. Nguy n Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 10- 52

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

5. XY DNG
LP MNG S THC
11. void

CMangThuc::SapGiam()

12. {
13.
14.

for(int i=0;i<=n-2;i++)
for(int j=i+1;j<=n-1;j++)

15.

if(a[i]>a[j])

16.

17.

float temp = a[i];

18.

a[i] = a[j];

19.

a[j] = temp;

20.

21. }

GV. Nguy n Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 10- 53

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

Chng 11
MA TRN CN BN

GV. Nguy n Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 11 - 1

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

1. V D DN NHP 1

Bi ton: Vit chng trnh thc hin


cc yu cu sau bng phng php
lp trnh hng i tng
+

Nhp ma trn mt chiu cc s


nguyn

Xut ma trn mt chiu cc s nguyn

Tnh tng cc gi tr trong ma trn

Chng trnh

GV. Nguy n Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 11 - 2

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

1. V D DN NHP 1
11. #include
12. class

<iostream.h>

CMaTranNguyen

13. {
14.

private:

15.

int a[100][100];

16.

int m, n;

17.

public:

18.

void Nhap();

19.

void Xuat();

20.

int TinhTong();

21. };

GV. Nguy n Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 11 - 3

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

1. V D DN NHP 1
11. void

main()

12. {
13.

CMaTranNguyen a;

14.

a.Nhap();

15.

a.Xuat();

16.

int kq = a.TinhTong();

17.

cout<<"Tong = "<<kq;

18. }

GV. Nguy n Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 11 - 4

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

1. V D DN NHP 1
11. void

CMaTranNguyen::Nhap()

12. {
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.

cout<<"Nhap m : ";
cin>>m;
cout<<"Nhap n : ";
cin>>n;
for (int i=0 ; i<m ; i++)
for (int j=0; j<n; j++)
{
cout<<"a["<<i<<
"]["<<j<<"]:";
cin>>a[i][j];
}

23. }

GV. Nguy n Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 11 - 5

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

1. V D DN NHP 1
11. void

CMaTranNguyen::Xuat()

12. {
13.

for (int i=0 ; i<m ; i++)

14.

15.

for(int j=0; j<n; j++)

16.

cout<<a[i][j]<<" ";
cout<<"\n";

17.
18.

19. }

GV. Nguy n Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 11 - 6

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

1. V D DN NHP 1
11. int

CMaTranNguyen::TinhTong()

12. {
13.

int S = 0;

14.

for (int i=0 ; i<m ; i++)

15.
16.
17.

for (int j=0; j<n; j++)


S = S + a[i][j];
return S;

18. }

GV. Nguy n Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 11 - 7

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

2. V D DN NHP 2

Bi ton: Vit chng trnh thc hin


cc yu cu sau bng phng php
lp trnh hng i tng
+

Nhp ma trn mt chiu cc s thc

Xut ma trn mt chiu cc s thc

Tm phn t ln nht ca ma trn

Chng trnh

GV. Nguy n Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 11 - 8

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

2. V D DN NHP 2
11. #include

<stdio.h>

12. #include

<conio.h>

13. class

CMaTranThuc

14. {
15.

private:

16.

float a[100][100];

17.

int m, n;

18.

public:

19.

void Nhap();

20.

void Xuat();

21.

float LonNhat();

22. };
GV. Nguy n Sn Hong Quc
ThS. Nguyn Tn Trn Minh Khang

Chng 11 - 9

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

2. V D DN NHP 2
11. void

main()

12. {
13.

CMaTranThuc a;

14.

a.Nhap();

15.

a.Xuat();

16.

float kq = a.LonNhat();

17.

printf("...%f", kq);

18. }

GV. Nguy n Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 11 - 10

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

2. V D DN NHP 2
11. void

CMaTranThuc::Nhap()

12. {
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.

printf("Nhap m:");
scanf("%d", &m);
printf("Nhap n : ");
scanf("%d", &n);
for (int i=0 ; i<m ; i++)
for (int j=0; j<n; j++)
{
printf(a[%d][%d]:
,i,j);
scanf("%f", &a[i][j]);
}

23. }

GV. Nguy n Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 11 - 11

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

2. V D DN NHP 2
11. void

CMaTranThuc::Xuat()

12. {
13.

for (int i=0 ; i<m ; i++)

14.

{
for (int j=0; j<n; j++)

15.

printf(%8.3f,a[i][j]);

16.

printf(\n);

17.
18.

19. }

GV. Nguy n Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 11 - 12

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

2. V D DN NHP 2
11. float

CMaTranThuc::LonNhat()

12. {
13.

float ln = a[0][0];

14.

for (int i=0 ; i<m ; i++)

15.

for (int j=0; j<n; j++)

16.

if (a[i][j] > ln)

17.
18.

ln = a[i][j];
return ln;

19. }

GV. Nguy n Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 11 - 13

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

3. V D DN NHP 3

Bi ton: Vit chng trnh thc hin


cc yu cu sau bng phng php
lp trnh hng i tng
+

Nhp ma trn mt chiu cc phn s

Xut ma trn mt chiu cc phn s

m s lng gi tr dng c trong


ma trn

Chng trnh

GV. Nguy n Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 11 - 14

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

3. V D DN NHP 3
11. #include

<stdio.h>

12. #include

<conio.h>

13. class

CPhanSo

14. {
15.

private:

16.

int tu;

17.

int mau;

18.

public:

19.

void Nhap();

20.

void Xuat();

21.

int KTDuong();

22. };
GV. Nguy n Sn Hong Quc
ThS. Nguyn Tn Trn Minh Khang

Chng 11 - 15

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

3. V D DN NHP 3
11. class

CMaTranPhanSo

12. {
13.

private:

14.

CPhanSo a[100][100];

15.

int m, n;

16.

public:

17.

void Nhap();

18.

void Xuat();

19.

int DemDuong();

20. };

GV. Nguy n Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 11 - 16

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

3. V D DN NHP 3
11. void

main()

12. {
13.

CMaTranPhanSo a;

14.

a.Nhap();

15.

a.Xuat();

16.

int kq = a.DemDuong();

17.

printf("%d:", kq);

18. }

GV. Nguy n Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 11 - 17

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

3. V D DN NHP 3
11. void

CPhanSo::Nhap()

12. {
13.

printf("Nhap tu :");

14.

scanf("%d", &tu);

15.

printf("Nhap mau :");

16.

scanf("%d", &mau);

17. }

GV. Nguy n Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 11 - 18

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

3. V D DN NHP 3
11. void

CPhanSo::Xuat()

12. {
13.

printf("%d/%d ", tu, mau);

14. }

GV. Nguy n Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 11 - 19

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

3. V D DN NHP 3
11. int

CPhanSo::KTDuong()

12. {
13.

if (tu*mau > 0)

14.

return 1;

15.

return 0;

16. }

GV. Nguy n Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 11 - 20

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

3. V D DN NHP 3
11. void

CMaTranPhanSo::Nhap()

12. {
13.

printf("Nhap m : ");

14.

scanf("%d", &m);

15.

printf("Nhap n : ");

16.

scanf("%d", &n);

17.

for (int i=0; i<m; i++)

18.

for (int j=0; j<n; j++)

19.

20.

printf(a[%d][%d]:,i,j)

21.

a[i][j].Nhap();

22.

23. }
GV. Nguy n Sn Hong Quc
ThS. Nguyn Tn Trn Minh Khang

Chng 11 - 21

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

3. V D DN NHP 3
11. void

CMaTranPhanSo::Xuat()

12. {
13.

for (int i=0; i<m ; i++)

14.

15.

for (int j=0; j<n; j++)

16.

17.

a[i][j].Xuat();

18.

printf( );

19.

20.

printf("\n");

21.

22. }
GV. Nguy n Sn Hong Quc
ThS. Nguyn Tn Trn Minh Khang

Chng 11 - 22

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

3. V D DN NHP 3
11. int

CMaTranPhanSo::DemDuong()

12. {
13.

int dem = 0;

14.

for (int i=0; i<m ; i++)

15.
16.
17.
18.

for (int j=0; j<n; j++)


if(a[i][j].KTDuong()==1)
dem = dem + 1;
return dem;

19. }

GV. Nguy n Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 11 - 23

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

4. XY DNG
LP MA TRN S NGUYN

Hy xy dng lp s nguyn vi cc
phng thc nh sau:
+

Phng thc nhp ma trn

Phng thc xut ma trn

Phng thc lit k cc gi tr chn


trong ma trn

Phng thc tnh tng cc phn t


trong ma trn

Phng thc tnh tng cc gi tr cc


i trong ma trn

Phng thc m s lng gi tr l


c trong ma trn

Phng thc m s ln xut hin ca


gi tr x trong ma trn

GV. Nguy n Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 11 - 24

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

4. XY DNG
LP MA TRN S NGUYN

Hy xy dng lp s nguyn vi cc
phng thc nh sau:
+

Phng thc kim tra ma trn c tn


ti gi tr 0 hay khng?

Phng thc kim tra ma trn c ton


chn hay khng?

Phng thc sp xp cc phn t


trong ma trn tng dn t trn xung
di v t tri sang phi

GV. Nguy n Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 11 - 25

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

4. XY DNG
LP MA TRN S NGUYN
11. class

CMaTranNguyen

12. {
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.

private:
int a[100][100];
int m, n;
public:
void Nhap();
void Xuat();
void LietKeChan();
int TinhTong();
int TongCucDai();
int DemLe();
int DemXuatHien(int);
int KTTonTaiKhong();
int KTToanChan();
void SapTang();

27. };
GV. Nguy n Sn Hong Quc
ThS. Nguyn Tn Trn Minh Khang

Chng 11 - 26

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

4. XY DNG
LP MA TRN S NGUYN
11.

void CMaTranNguyen::Nhap()

12.

13.

printf(Nhap m : );

14.

scanf(%d, &m);

15.

printf(Nhap n : );

16.

scanf(%d, &n);

17.

for (int i=0; i<m; i++)

18.

for (int j=0; j<n; j++)

19.

20.

printf(a[%d]:, i);

21.

scanf(%d, &a[i][j]);
}

22.
23.

GV. Nguy n Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 11 - 27

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

4. XY DNG
LP MA TRN S NGUYN
11. void

CMaTranNguyen::Xuat()

12. {
13.

for (int i=0; i<m; i++)

14.

{
for (int j=0; j<n; j++)

15.

printf(%4d,a[i][j]);

16.

printf(\n);

17.
18.

19. }

GV. Nguy n Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 11 - 28

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

4. XY DNG
LP MA TRN S NGUYN
11. void

CMaTranNguyen::LietKeChan()

12. {
13.

for (int i=0; i<m; i++)

14.

for (int j=0; j<n; j++)

15.

if (a[i][j]%2 == 0)

16.

printf(%4d,a[i][j]);

17. }

GV. Nguy n Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 11 - 29

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

4. XY DNG
LP MA TRN S NGUYN
11. int

CMaTranNguyen::TinhTong()

12. {
13.

int S=0;

14.

for (int i=0; i<m; i++)

15.
16.
17.

for (int j=0; j<n; j++)


S = S+a[i][j];
return S;

18. }

GV. Nguy n Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 11 - 30

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

4. XY DNG
LP MA TRN S NGUYN
11. int

CMaTranNguyen::LonNhat()

12. {
13.

int ln=a[0][0];

14.

for (int i=0; i<m; i++)

15.

for (int j=0; j<n; j++)

16.

if (a[i][j] > ln)

17.
18.

ln = a[i][j];
return ln;

19. }

GV. Nguy n Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 11 - 31

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

4. XY DNG
LP MA TRN S NGUYN
11. int

CMaTranNguyen::TongCucDai()

12. {
13.

int S=0;

14.

int ln=LonNhat();

15.

for (int i=0; i<m; i++)

16.
17.

for (int j=0; j<n; j++)


if (a[i][j]==ln)
S = S+a[i][j];

18.
19.

return S;

20. }

GV. Nguy n Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 11 - 32

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

4. XY DNG
LP MA TRN S NGUYN
11. int

CMaTranNguyen::DemLe()

12. {
13.

int dem=0;

14.

for (int i=0; i<m; i++)

15.
16.
17.
18.

for (int j=0; j<n; j++)


if (a[i][j]%2 == 1)
dem = dem+1;
return dem;

19. }

GV. Nguy n Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 11 - 33

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

4. XY DNG
LP MA TRN S NGUYN
11. int

CMaTranNguyen::
DemXuatHien(int x)

12. {
13.

int dem=0;

14.

for (int i=0; i<m; i++)

15.

for (int j=0; j<n; j++)

16.

if (a[i][j] == x)

17.
18.

dem = dem+1;
return dem;

19. }

GV. Nguy n Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 11 - 34

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

4. XY DNG
LP MA TRN S NGUYN
11. int

CMaTranNguyen::
KTTonTaiKhong()

12. {
13.

for (int i=0; i<m; i++)

14.

for (int j=0; j<n; j++)

15.

if (a[i][j] == 0)

16.
17.

return 1;
return 0;

18. }

GV. Nguy n Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 11 - 35

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

4. XY DNG
LP MA TRN S NGUYN
11. int

CMaTranNguyen::KTToanChan()

12. {
13.
14.
15.
16.
17.

for (int i=0; i<m; i++)


for (int j=0; j<n; j++)
if (a[i][j]%2 == 1)
return 0;
return 1;

18. }

GV. Nguy n Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 11 - 36

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

4. XY DNG
LP MA TRN S NGUYN
11.

int CMaTranNguyen::SapTang()

12.

{
for (int k=0; i<m*n-2; k++)

13.

for (int l=k+1; l<n*n-1; l++)

14.
15.

if (a[k/n][k%n]>a[l/n][l%n])

16.

17.

int temp = a[k/n][k%n];

18.

a[k/n][k%n]=a[l/n][l%n];

19.

a[l/n][l%n] = temp;
}

20.
21.

GV. Nguy n Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 11 - 37

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

5. XY DNG
LP MA TRN S THC

Hy xy dng lp s thc vi cc
phng thc nh sau:
+

Phng thc nhp ma trn

Phng thc xut ma trn

Phng thc tnh tng cc phn t


trong ma trn

Phng thc tnh tng cc gi tr cc


tiu trong ma trn

Phng thc m s ln xut hin ca


gi tr x trong ma trn

GV. Nguy n Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 11 - 38

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

5. XY DNG
LP MA TRN S THC

Hy xy dng lp s thc vi cc
phng thc nh sau:
+

Phng thc kim tra ma trn c tn


ti gi tr 0 hay khng?

Phng thc sp xp ma trn tng


dn t trn xung di v t tri sang
phi.

GV. Nguy n Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 11 - 39

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

5. XY DNG
LP MA TRN S THC
11. class

CMaTranThuc

12. {
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.

private:
float a[100][100];
int m, n;
public:
void Nhap();
void Xuat();
float TinhTong();
float NhoNhat();
float TongCucTieu();
int DemXuatHien(float);
int KTTonTaiKhong();
void SapTang();

25. };

GV. Nguy n Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 11 - 40

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

5. XY DNG
LP MA TRN S THC
11.

void CMaTranThuc::Nhap()

12.

13.

printf(Nhap n : );

14.

scanf(%d, &n);

15.

for (int i=0; i<m; i++)

16.

for (int j=0; j<n; j++)

17.

18.

printf(a[%d]:, i);

19.

scanf(%f, &a[i][j]);
}

20.
21.

GV. Nguy n Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 11 - 41

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

5. XY DNG
LP MA TRN S THC
11.

void CMaTranThuc::Xuat()

12.

13.

for (int i=0; i<m; i++)

14.

{
for (int j=0; j<n; j++)

15.

printf(%8.3f,a[i][j]);

16.

printf(\n);

17.

18.
19.

GV. Nguy n Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 11 - 42

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

5. XY DNG
LP MA TRN S THC
11. float

CMaTranThuc::TinhTong()

12. {
13.

float S=0;

14.

for (int i=0; i<m; i++)

15.
16.
17.

for (int j=0; j<n; j++)


S = S+a[i][j];
return S;

18. }

GV. Nguy n Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 11 - 43

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

5. XY DNG
LP MA TRN S THC
11. float

CMaTranThuc::NhoNhat()

12. {
13.

float nn=a[0][0];

14.

for (int i=1; i<m; i++)

15.

for (int j=0; j<n; j++)

16.

if (a[i][j] < nn)

17.
18.

nn = a[i][j];
return nn;

19. }

GV. Nguy n Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 11 - 44

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

5. XY DNG
LP MA TRN S THC
11. float

CMaTranThuc::TongCucTieu()

12. {
13.

float S=0;

14.

float nn=NhoNhat();

15.

for (int i=0; i<m; i++)

16.
17.

for (int j=0; j<n; j++)


if (a[i][j]==nn)
S = S+a[i][j];

18.
19.

return S;

20. }

GV. Nguy n Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 11 - 45

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

5. XY DNG
LP MA TRN S THC
11. int

CMaTranThuc::
DemXuatHien(float x)

12. {
13.

int dem=0;

14.

for (int i=0; i<m; i++)

15.

for (int j=0; j<n; j++)

16.

if (a[i][j] == x)

17.
18.

dem = dem+1;
return dem;

19. }

GV. Nguy n Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 11 - 46

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

5. XY DNG
LP MA TRN S THC
11. int

CMaTranThuc::
KTTonTaiKhong()

12. {
13.

for (int i=0; i<m; i++)

14.

for (int j=0; j<n; j++)

15.

if (a[i][j] == 0)

16.
17.

return 1;
return 0;

18. }

GV. Nguy n Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 11 - 47

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

4. XY DNG
LP MA TRN S THC
11.

void CMaTranThuc::SapTang()

12.

{
for (int k=0; k<m*n-2; k++)

13.

for (int l=k+1; l<m*n-1; l++)

14.
15.

if (a[k/n][k%n]>a[l/n][l%n])

16.

17.

float temp=a[k/n][k%n];

18.

a[k/n][k%n]=a[l/n][l%n];

19.

a[l/n][l%n]= temp;
}

20.
21.

GV. Nguy n Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 11 - 48

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

Chng 12
K THA

GV. Nguy n Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 12 - 1

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

0. MC TIU

Hiu c cc loi quan h?

Hiu c k tha trong lp trnh


hng i tng l g?

Hiu c khi nim cy k tha.

Hiu c khi nim s lp.

GV. Nguy n Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 12 - 2

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

1.QUAN H
Ngi ta chia cc quan h thnh
nhng loi nh sau:

Quan h mt mt (1-1)

Quan h mt nhiu (1-n)

Quan h nhiu nhiu (m-n)

Quan h t bit ha, tng qut ha.

GV. Nguy n Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 12 - 3

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

1.1. QUAN H MT MT (1-1)

Khi nim: Hai lp i tng c


gi l quan h mt-mt vi nhau khi
mt i tng thuc lp ny quan h
vi mt i tng thuc lp kia v mt
i tng thuc lp kia quan h duy
nht vi mt i tng thuc lp ny.

Hnh v

Quan H

Trong hnh v trn ta ni: mt i


tng thuc lp A quan h vi mt i
tng thuc lp B v mt i tng
lp B quan h duy nht vi mt i
tng thuc lp A.

GV. Nguy n Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 12 - 4

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

1.1 QUAN H MT MT (1-1)

V d minh ha
LOPHOC

VO

Ch nhim

Hn nhn

GV. Nguy n Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

GIAOVIEN

CHONG

Chng 12 - 5

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

1.2. QUAN H MT NHIU (1-n)

Khi nim: Hai lp i tng c


gi l quan h mt-nhiu vi nhau khi
mt i tng thuc lp ny quan h
vi nhiu i tng thuc lp kia v
mt i tng lp kia quan h duy
nht vi mt i tng thuc lp ny.

Hnh v

Quan H

Trong hnh v trn ta ni: mt i


tng thuc lp A quan h vi nhiu
i tng thuc lp B v mt i
tng lp B quan h duy nht vi mt
i tng thuc lp A.

GV. Nguy n Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 12 - 6

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

1.2 QUAN H MT NHIU (1-n)

V d minh ha:
LOPHOC

CHA

HOASI

Huyt thng

Sng tc

GV. Nguy n Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

HOCSINH

CON

TACPHAM

Chng 12 - 7

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

1.2 QUAN H MT NHIU (1-n)

V d minh ha:

GV. Nguy n Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 12 - 8

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

1.3 QUAN H NHIU NHIU


(m-n)

Khi nim: hai lp i tng c


gi l quan h nhiu-nhiu vi nhau
khi mt i tng thuc lp ny quan
h vi nhiu i tng thuc lp kia
v mt i tng lp kia cng c quan
h vi nhiu i tng thuc lp ny.

Hnh v

Quan H

Trong hnh v trn ta ni: mt i


tng thuc lp A quan h vi nhiu
i tng thuc lp B v mt i
tng lp B cng c quan h vi
nhiu i tng thuc lp A.

GV. Nguy n Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 12 - 9

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

1.3 QUAN H NHIU NHIU


(m-n)

V d minh ha:
NAM

BACSI

yu

Khm bnh

BENHNHAN

GV. Nguy n Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 12 - 10

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

1.3 QUAN H NHIU NHIU


(m-n)

V d minh ha:

GV. Nguy n Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 12 - 11

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

1.4. QUAN H C BIT HATNG QUT HO

Khi nim: hai lp i tng c


gi l quan h c bit ha-tng qut
ha vi nhau khi, lp i tng ny l
trng hp c bit ca lp i tng
kia v lp i tng kia l trng hp
tng qut ca lp i tng ny.

Hnh v

A
B
GV. Nguy n Sn Hong Quc
ThS. Nguyn Tn Trn Minh Khang

Chng 12 - 12

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

1.4. QUAN H T BIT HATNG QUT HO

Hnh v

A
B

Trong hnh v trn ta ni: lp i


tng B l trng hp c bit ca
lp i tng A v lp i tng A l
trng hp tng qut ca lp i
tng B.

GV. Nguy n Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 12 - 13

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

1.4. QUAN H T BIT HATNG QUT HO

V d 1:
TAMGIAC

TAMGIACCAN

GV. Nguy n Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 12 - 14

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

1.4. QUAN H T BIT HATNG QUT HO

V d 2:
DONGVAT

NGUOI

GV. Nguy n Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

HEO

Chng 12 - 15

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

2. CY K THA

Khi nim: Cy k tha l mt cy a


nhnh th hin mi quan h c bit
ha-tng qut ha gia cc lp trong
h thng, chng trnh.

V d: Hy v cy k tha cho cc lp
i tng sau:
Lp XELAM

Lp XEDAP

Lp XEGANMAY Lp XE

Lp XEHOI

Lp XEHAIBANH Lp XEBONBANH

Lp XETAINHE

Lp XEBABANH
Lp XEXICHLO

GV. Nguy n Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 12 - 16

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

2. CY K THA (tip)

GV. Nguy n Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 12 - 17

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

3. S LP

Khi nim: S lp l s th
hin tt c cc mi quan h gia cc
lp trong h thng, chng trnh.

V d minh ha: Hy v s lp cho


cc lp i tng sau:
+

Lp GIAOVIEN

Lp HOCSINH

Lp LOPHOC

Lp MONHOC

Lp NHANVIEN: tt c nhng ngi


lm vic trong trng.

Lp CNV: l nhng ngi lm vic


trong nh trng nhng ko trc tip
ng lp. V d: Bo v, lao cng, bo
mu,

GV. Nguy n Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 12 - 18

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

3. S LP

GV. Nguy n Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 12 - 19

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

4. K THA TRONG C++

Th gii thc

Lp trnh hng i tng vi C++

Phm vi truy xut

T kho dn xut

GV. Nguy n Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 12 - 20

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

4.1 TH GII THC

A
B

Trong hnh v trn ta ni A v B


c quan h c bit ho, tng
qut ho vi nhau. Trong B l
trng hp t bit ca A, v A
l trng hp tng qut ca B.

GV. Nguy n Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 12 - 21

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

4.2 LTHT VI C++


1.
2.
3.
4.
5.
6.
7.
8.

class A
{
...
};
class B:<t kha dn xut> A
{
...
};

B
Trong khai bo trn ta ni lp B
k tha t lp A.
Lp i tng A c gi l lp
c s.
Lp i tng B c gi l lp
dn xut t lp i tng A.

GV. Nguy n Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 12 - 22

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

4.3 PHM VI TRUY XUT

Mt thuc tnh hay mt phng


thc khi c khai bo trong mt
lp ta c th khai bo trong 3
phm vi khc nhau: private,
public hoc protected.

V mt nguyn tc cho ti thi


im ny th mt thuc tnh hay
mt phng thc khi c khai
bo trong phm vi private hay
protected th tng ng
nhau. Ngha l, thuc tnh v
phng thc c khai bo
trong hai phm vi ny ch c
php truy xut bn trong lp m
thi v khng c quyn truy
xut t bn ngoi lp.

GV. Nguy n Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 12 - 23

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

4.3 PHM VI TRUY XUT


V d: Hy cho bit trong on
chng trnh sau cu lnh no ng,
cu lnh no sai.
1. class A
2. {
3.
private:
4.
int a;
5.
void f();
6.
protected:
7.
int b;
8.
void g();
9.
public:
10.
int c;
11.
void h();
12. };

GV. Nguy n Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 12 - 24

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

4.3 PHM VI TRUY XUT


13. void A::f()
14. {
15.
a = 1;
16.
b = 2;
17.
c = 3;
18. }
19. void A::g()
20. {
21.
a = 4;
22.
b = 5;
23.
c = 6;
24. }
25. void A::h()
26. {
27.
a = 7;
28.
b = 8;
29.
c = 9;
30. }
GV. Nguy n Sn Hong Quc
ThS. Nguyn Tn Trn Minh Khang

Chng 12 - 25

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

4.3 PHM VI TRUY XUT


31. void

main()

32. {
33.

A x;

34.

x.a = 10;

35.

x.f();

36.

x.b = 20;

37.

x.g();

38.

x.c = 30;

39.

x.h();

40. }

GV. Nguy n Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 12 - 26

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

4.4 T KHA DN XUT


1.
2.
3.
4.
5.
6.
7.
8.

class A
{
...
};
class B:<t kha dn xut> A
{
...
};

B
Trong khai bo trn ta ni lp B
k tha t lp A.
Lp i tng A c gi l lp
c s.
Lp i tng B c gi l lp
dn xut t lp i tng A.

GV. Nguy n Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 12 - 27

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

4.4 T KHA DN XUT

Trong ngn ng C++ c ba loi t


kha dn xut l: private,
protected v public. Thng thng
trong thc t ngi ta hay s dng t
kha dn xut public l nhiu nht.

GV. Nguy n Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 12 - 28

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

4.4 T KHA DN XUT

V d 01: Khai bo lp tam


gic v lp tam gic cn.

1.

class CTamGiac

2.

{
...

3.
4.

};

5.

class CTamGiacCan:public
CTamGiac

6.

{
...

7.
8.

TAMGIAC

};
TAMGIACCAN

GV. Nguy n Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 12 - 29

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

4.4 T KHA DN XUT


V d 02: Khai bo lp ng
vt, lp heo v lp ngi.
11. class CDongVat
12. {
13.
...
14. };
15. class CHeo:private CDongVat
16. {
17.
...
18. };
19. class CNguoi:public CDongVat
20. {
21.
...
22. };

GV. Nguy n Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 12 - 30

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

5. QUI TC K THA
TRONG C++

Bng qui tc k tha trong C++


T kha
dn xut

Private

Public

Phm vi lp
c s
Private
Protected
Public

Ghi ch: T kho dn xut c ba loi


l private, protected, public. Cc sinh
vin t tm hiu thm t kho dn xut
protected trong ti liu.
GV. Nguy n Sn Hong Quc
ThS. Nguyn Tn Trn Minh Khang

Chng 12 - 31

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

5. QUI TC K THA
TRONG C++

Bng qui tc k tha trong C++


T kha
dn xut

Private

Public

Phm vi lp
c s
Private
Protected
Public

Ghi ch: T kho dn xut c ba loi


l private, protected, public. Cc sinh
vin t tm hiu thm t kho dn xut
protected trong ti liu.
GV. Nguy n Sn Hong Quc
ThS. Nguyn Tn Trn Minh Khang

Chng 12 - 32

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

5. QUI TC K THA
TRONG C++

Bng qui tc k tha trong C++


T kha
dn xut

Private

Public

Phm vi lp
c s
Private

Ghi ch: T kho dn xut c ba loi


l private, protected, public. Cc sinh
vin t tm hiu thm t kho dn xut
protected trong ti liu.
GV. Nguy n Sn Hong Quc
ThS. Nguyn Tn Trn Minh Khang

Chng 12 - 33

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

5. QUI TC K THA
TRONG C++

Bng qui tc k tha trong C++


T kha
dn xut

Private

Public

Phm vi lp
c s
Private
Protected

Ghi ch: T kho dn xut c ba loi


l private, protected, public. Cc sinh
vin t tm hiu thm t kho dn xut
protected trong ti liu.
GV. Nguy n Sn Hong Quc
ThS. Nguyn Tn Trn Minh Khang

Chng 12 - 34

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

5. QUI TC K THA
TRONG C++

Bng qui tc k tha trong C++


T kha
dn xut

Private

Public

Phm vi lp
c s
Private
Protected
Public

Ghi ch: T kho dn xut c ba loi


l private, protected, public. Cc sinh
vin t tm hiu thm t kho dn xut
protected trong ti liu.
GV. Nguy n Sn Hong Quc
ThS. Nguyn Tn Trn Minh Khang

Chng 12 - 35

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

5. QUI TC K THA
TRONG C++

Bng qui tc k tha trong C++


T kha
dn xut

Phm vi lp
c s
Private
Protected
Public

Ghi ch: T kho dn xut c ba loi


l private, protected, public. Cc sinh
vin t tm hiu thm t kho dn xut
protected trong ti liu.
GV. Nguy n Sn Hong Quc
ThS. Nguyn Tn Trn Minh Khang

Chng 12 - 36

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

5. QUI TC K THA
TRONG C++

Bng qui tc k tha trong C++


T kha
dn xut

Private

Phm vi lp
c s
Private
Protected
Public

Ghi ch: T kho dn xut c ba loi


l private, protected, public. Cc sinh
vin t tm hiu thm t kho dn xut
protected trong ti liu.
GV. Nguy n Sn Hong Quc
ThS. Nguyn Tn Trn Minh Khang

Chng 12 - 37

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

5. QUI TC K THA
TRONG C++

Bng qui tc k tha trong C++


T kha
dn xut

Private

Public

Phm vi lp
c s
Private
Protected
Public

Ghi ch: T kho dn xut c ba loi


l private, protected, public. Cc sinh
vin t tm hiu thm t kho dn xut
protected trong ti liu.
GV. Nguy n Sn Hong Quc
ThS. Nguyn Tn Trn Minh Khang

Chng 12 - 38

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

5. QUI TC K THA
TRONG C++

Bng qui tc k tha trong C++


T kha
dn xut

Phm vi lp
c s
Private

Private

Public

||

||

Protected
Public

Ghi ch: T kho dn xut c ba loi


l private, protected, public. Cc sinh
vin t tm hiu thm t kho dn xut
protected trong ti liu.
GV. Nguy n Sn Hong Quc
ThS. Nguyn Tn Trn Minh Khang

Chng 12 - 39

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

5. QUI TC K THA
TRONG C++

Bng qui tc k tha trong C++


T kha
dn xut

Phm vi lp
c s
Private
Protected

Private

Public

||

||

private

Public

Ghi ch: T kho dn xut c ba loi


l private, protected, public. Cc sinh
vin t tm hiu thm t kho dn xut
protected trong ti liu.
GV. Nguy n Sn Hong Quc
ThS. Nguyn Tn Trn Minh Khang

Chng 12 - 40

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

5. QUI TC K THA
TRONG C++

Bng qui tc k tha trong C++


T kha
dn xut

Phm vi lp
c s
Private
Protected

Private

Public

||

||

private

protected

Public

Ghi ch: T kho dn xut c ba loi


l private, protected, public. Cc sinh
vin t tm hiu thm t kho dn xut
protected trong ti liu.
GV. Nguy n Sn Hong Quc
ThS. Nguyn Tn Trn Minh Khang

Chng 12 - 41

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

5. QUI TC K THA
TRONG C++

Bng qui tc k tha trong C++


T kha
dn xut

Private

Public

||

||

Protected

private

protected

Public

private

Phm vi lp
c s
Private

Ghi ch: T kho dn xut c ba loi


l private, protected, public. Cc sinh
vin t tm hiu thm t kho dn xut
protected trong ti liu.
GV. Nguy n Sn Hong Quc
ThS. Nguyn Tn Trn Minh Khang

Chng 12 - 42

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

5. QUI TC K THA
TRONG C++

Bng qui tc k tha trong C++


T kha
dn xut

Private

Public

||

||

Protected

private

protected

Public

private

public

Phm vi lp
c s
Private

Ghi ch: T kho dn xut c ba loi


l private, protected, public. Cc sinh
vin t tm hiu thm t kho dn xut
protected trong ti liu.
GV. Nguy n Sn Hong Quc
ThS. Nguyn Tn Trn Minh Khang

Chng 12 - 43

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

5. QUI TC K THA
TRONG C++

Cc thuc tnh v phng thc c


khai bo trong phm vi private ca lp
c s th s khng c hiu lp
dn xut.

Cc thuc tnh v phng thc c


khai bo trong phm vi protected ca
lp c s nu c dn xut bng t
kha private th cc thuc tnh v
phng thc s c hiu lp
dn xut nh l thnh phn private
ca lp dn xut.

Cc thuc tnh v phng thc c


khai bo trong phm vi protected ca
lp c s nu c dn xut bng t
kha public th cc thuc tnh v
phng thc s c hiu lp
dn
xut
nh
lQuc
thnh phn
protected
GV.
Nguy
n Sn
Hong
Chng 12 - 44
ThS.
Nguyn
Tn Trn
Minh Khang
ca
lp dn
xut.

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

5. QUI TC K THA
TRONG C++

Cc thuc tnh v phng thc c


khai bo trong phm vi public ca lp
c s nu c dn xut bng t
kha private th cc thuc tnh v
phng thc s c hiu lp
dn xut nh l thnh phn private
ca lp dn xut.

Cc thuc tnh v phng thc c


khai bo trong phm vi public ca lp
c s nu c dn xut bng t
kha public th cc thuc tnh v
phng thc s c hiu lp
dn xut nh l thnh phn public ca
lp dn xut.

GV. Nguy n Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 12 - 45

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

5. QUI TC K THA
TRONG C++

Bng qui tc k tha trong C++


T kha
dn xut

Private

Public

Private

(1)

(2)

Protected

(3)

(4)

Public

(5)

(6)

Phm vi lp
c s

GV. Nguy n Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 12 - 46

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

5. QUI TC K THA
TRONG C++

Bng qui tc k tha trong C++

(1)

(2)

(3)

(4)

(5)

(6)

GV. Nguy n Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 12 - 47

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

5. QUI TC K THA
TRONG C++

Bng qui tc k tha trong C++

GV. Nguy n Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 12 - 48

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

5. QUI TC K THA
TRONG C++

Bng qui tc k tha trong C++

GV. Nguy n Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 12 - 49

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

6. CY K THA CHI TIT

Qui tc v cy k tha chi tit:


+ Cc thuc tnh v phng thc
thuc phm vi private c v vi
mu xanh bn tri.
+ Cc thuc tnh v phng thc
thuc phm vi protected c v
vi mu xanh bn phi.
+ Cc thuc tnh v phng thc
thuc phm vi public c v vi
mu bn phi.
+ Cc thuc tnh v phng thc c
c do k tha c v bng nt
t khng lin tc.
+ Cc thuc tnh v phng thc ca
chnh bn thn lp c v bng
nt lin lin tc.
GV. Nguy n Sn Hong Quc
ThS. Nguyn Tn Trn Minh Khang

Chng 12 - 50

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

6. CY K THA CHI TIT


b
a
f()

g()

A
public

B
GV. Nguy n Sn Hong Quc
ThS. Nguyn Tn Trn Minh Khang

c
h()
t
aa()
b
g()
z
xy()
c
h()

Chng 12 - 51

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

6. CY K THA CHI TIT


a
f()

x
ab()

y
g()
x

public
t
h()

B
public

x
uv()

k
mn()
p
ab()

ab()

g()

q
xyz()
z
p
ab()
g() abc(int)

GV. Nguy n Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

k
mn()

Chng 12 - 52

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

7. TON T GN
TRONG K THA

V d dn nhp 01: Hy cho bit trong


chng trnh di y cu lnh no
ng cu lnh no sai:

11. class A
12.{
13.
...
14.};
15.class B:public
16.{
17.
...
18.};
19.void main()
20.{
21.
A a;
22.
B b;
23.
a = b;
24.
b = a;
25.}

GV. Nguy n Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 12 - 53

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

7. TON T GN
TRONG K THA

V d dn
nhp 02: Hy
cho bit on
chng trnh
di y cu
lnh
no
ng,
cu
lnh no sai:

9. void main()
10.{
11.
A *a;
12.
B *b;
13.
A x;
14.
B y;
15.
a = &x;
16.
17.
18.
19.}

1.
2.
3.
4.

class A
{
...
};

5.
6.
7.
8.

class B: public A
{
...
};

GV. Nguy n Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

b = &y;
a = &y;
b = &x;

Chng 12 - 54

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

7. TON T GN
TRONG K THA

Ton t gn trong k tha c


thc hin theo nguyn tc:
trng hp t bit c th
c gn cho trng hp
tng qut, v trng hp tng
qut th khng th gn cho
trng hp t bit c.

Qui tc trn p dng cho tt c


cc ngn ng h tr lp trnh
hng i tng nh C++, Java,
VB.NET, C#, Python,...

GV. Nguy n Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 12 - 55

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

7. TON T GN
TRONG K THA

p dng qui tc trn cho ngn


ng lp trnh hng i tng
C++ ta c th ni nh sau: mt
i tng thuc lp dn xut
c th c gn cho mt i
tng thuc lp c s. iu
ngc li l sai, ngha l mt i
tng thuc lp c s khng
c quyn gn cho mt i
tng thuc lp dn xut.

GV. Nguy n Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 12 - 56

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

7. TON T GN
TRONG K THA

V d dn nhp 01: Hy cho bit trong


chng trnh di y cu lnh no
ng cu lnh no sai:

11. class A
12.{
13.
...
14.};
15.class B:public
16.{
17.
...
18.};
19.void main()
20.{
21.
A a;
22.
B b;
23.
a = b;
24.
b = a;
25.}

GV. Nguy n Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 12 - 57

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

7. TON T GN
TRONG K THA

M rng qui tc trn cho con tr


i tng ta c th ni nh sau:
mt con tr i tng thuc
lp c s c th gi a ch
ca mt i tng thuc lp
dn xut. Ngc lai, mt con
tr i tng thuc lp dn
xut khng th gi a ch ca
mt i tng thuc lp c
s.

GV. Nguy n Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 12 - 58

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

7. TON T GN
TRONG K THA
Hy cho bit on chng trnh di
y cu lnh no ng, cu lnh no
sai:
11. class A
12.{
13.};
14.class B:public A
15.{
16.};
17.void main()
18.{
19.
A *a;
20.
B *b;
21.
A x;
22.
B y;
23.
a = &x;
24.
b = &y;
25.
a = &y;
26.
b = &x;
27.}

GV. Nguy n Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 12 - 59

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

Chng 13
A X-PHNG THC O

GV. Nguy n Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 13 - 1

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

1. MC TIU

Hiu c c ch hot ng ca
phng thc o.

ng dng c phng thc o.

Thi cao hc thi hay hi phn ny.

Phng vn xin vic ngi ta cng rt


hay hi.

GV. Nguy n Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 13 - 2

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

2. V D DN NHP

Hy thc hin on chng trnh di


y v cho bit kt qu ca vic chy
chng trnh trong bn trng hp:

Trng hp 1: XXXX l khong trng,


YYYY l khong trng.

Trng hp 2: XXXX l virtual,


YYYY l khong trng.

Trng hp 3: XXXX l khong trng,


YYYY l virtual.

Trng hp 4: XXXX l virtual,


YYYY l virtual.

GV. Nguy n Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 13 - 3

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

2. V D DN NHP (tip)
11. #include
12.class

<iostream.h>

13.{

public:
15.
XXXX void Sketchy()
16.
{
17.
cout<<"\n AsSketchy();
18.
Sketchy(-1);
19.
}
20.
YYYY void Sketchy(int num)
21.
{
22.
cout<<"\n A's Sketchy
(int)<< num;
23.
}
24.};
14.

GV. Nguy n Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 13 - 4

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

2. V D DN NHP (tip)

11.class

B:public A

12.{

public:
14.
void Sketchy()
15.
{
16.
cout<<"\nBs Sketchy();
17.
Sketchy(-2);
18.
}
19.
void Sketchy(int num)
20.
{
21.
cout<<"\n B's Sketchy
(int)<< num;
22.
}
23.};
13.

GV. Nguy n Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 13 - 5

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

2. V D DN NHP (tip)
class C:public B
2. {
3.
public:
4.
void Sketchy(int num)
5.
{
6.
cout<<"\nC's Sketchy
(int)<<num;
7.
}
8. };
9. void Curious(A* wacky)
10.{
11.
wacky->Sketchy();
12.
((C*)wacky)->Sketchy(123);
13.}
1.

GV. Nguy n Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 13 - 6

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

2. V D DN NHP (tip)
1.

void main()

2.

3.

A* inky = new B;

4.

inky->Sketchy();

5.

inky->Sketchy(23);

6.

Curious(inky);

7.

B* pinky = new C;

8.

pinky->Sketchy();

9.

pinky->Sketchy(46);

10.

Curious(pinky);

11. }

GV. Nguy n Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 13 - 7

TIENICHMAYTINH.COM

LTHT

Khoa CNTT

2. V D DN NHP (tip)

A
public

B
public

GV. Nguy n Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Sketchy()
Sketchy(int)

Sketchy()
Sketchy(int)

Sketchy()
Sketchy(int)

Chng 13 - 8

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

2. V D DN NHP (tip)

Kt qu trng hp 01

GV. Nguy n Sn Hong Quc


ThS. Nguyn Tn Trn Minh Khang

Chng 13 - 9

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

2. V D DN NHP (tip)

Kt qu trng hp 02

GV. Nguy n Sn Hong Quc


Chng 13 - 10
ThS. Nguyn Tn Trn Minh Khang

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

2. V D DN NHP (tip)

Kt qu trng hp 03

GV. Nguy n Sn Hong Quc


Chng 13 - 11
ThS. Nguyn Tn Trn Minh Khang

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

2. V D DN NHP (tip)

Kt qu trng hp 04

GV. Nguy n Sn Hong Quc


Chng 13 - 12
ThS. Nguyn Tn Trn Minh Khang

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

3. KHI NIM

Khi nim: a x l c ch tm vc
ng, cho php "xc nh" ng hnh
vi (phng thc) ca i tng khi
yu cu thc hin.

Vic "xc nh" c thc hin theo


nguyn tc t nhin: i tng thuc
lp no s gi thc hin phng thc
ca lp i tng .

Tm vc ng l c ch gi thc hin
phng thc thng qua con tr i
tng.

GV. Nguy n Sn Hong Quc


Chng 13 - 13
ThS. Nguyn Tn Trn Minh Khang

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

4. C PHP A X
11. class

CCoSo

12. {

private:
...
protected:
...
public:
...
virtual KDL <TenPhuongThuc>
(<ThamSo>);

13.
14.
15.
16.
17.
18.
19.
20. };

GV. Nguy n Sn Hong Quc


Chng 13 - 14
ThS. Nguyn Tn Trn Minh Khang

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

4. C PHP A X
11. class
12. {
13.
14.
15.
16.
17.
18.
19.

CDanXuat:<T Kha Dn Xut>


CCoSo

private:
...
protected:
...
public:
...
KDL <TenPhuongThuc>
(<ThamSo>);

20. };

GV. Nguy n Sn Hong Quc


Chng 13 - 15
ThS. Nguyn Tn Trn Minh Khang

TIENICHMAYTINH.COM

Khoa CNTT
11. class

LTHT

CCoSo

12. {
13.
14.
15.
16.
17.
18.
19.

private:
...
protected:
...
public:
...
virtual KDL <TenPhuongThuc>
(<ThamSo>);

20. };
21. class
22. {
23.
24.
25.
26.
27.
28.
29.

CDanXuat:<T Kha Dn Xut>


CCoSo

private:
...
protected:
...
public:
...
KDL <TenPhuongThuc>
(<ThamSo>);

30. };
GV. Nguy n Sn Hong Quc
Chng 13 - 16
ThS. Nguyn Tn Trn Minh Khang

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

4. C PHP A X (tip)

Mt phng thc c khai bo bt


u vi t kha virtual th c gi l
phng thc o v phng thc ny
c gi thc hin theo c ch a x
nu li gi thc hin phng thc
c thng qua mt con tr i
tng.

Cc phng thc lp dn xut cng


tn v cng danh sch tham s u
vo th cng s l phng thc o
nu lp c s phng thc cng
tn v cng tham s l phng thc
o.

GV. Nguy n Sn Hong Quc


Chng 13 - 17
ThS. Nguyn Tn Trn Minh Khang

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

5. BI TON
CHI TIT MY

Bi ton: Mt ci my c nhiu chi


tit. Mi chi tit my c th l chi tit
n hoc l chi tit phc.
+

Chi tit n: l chi tit khng cha


bn trong n chi tit khc. Thng tin
ca chi tit n bao gm: m s chi
tit, gi tin.

Chi tit phc: l chi tit cha bn


trong n nhiu chi tit thnh phn, mi
mt chi tit thnh phn ny c th l
chi tit n hoc l chi tit phc.
Thng tin ca chi tit phc bao gm:
m s chi tit, s lng chi tit thnh
phn, danh sch cc chi tit thnh
phn. Gi tin ca chi tit phc bng
tng gi tin ca cc chi tit thnh
phn.

GV. Nguy n Sn Hong Quc


Chng 13 - 18
ThS. Nguyn Tn Trn Minh Khang

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

5. BI TON
CHI TIT MY (tip)

Yu cu: Thit k cc lp thch hp


thc hin cc yu cu sau:
+

Nhp cc chi tit cho my.

Tm kim mt chi tit my theo m s.

Tnh tin cho mt chi tit my, hoc


cho my.

Xut cc chi tit my.

m s lng chi tit n c trong ci


my.

GV. Nguy n Sn Hong Quc


Chng 13 - 19
ThS. Nguyn Tn Trn Minh Khang

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

6. BI TON
TNH TIN LNG

Bi ton: Cng ty ABC l cng ty sn


xut kinh doanh th nhi bng. Cng
ty c nhiu nhn vin lm vic trong
ba b phn khc nhau: b phn qun
l, b phn sn xut, b phn vn
phng. Vic tnh lng cho nhn vin
da vo cc yu t sau:
+ i vi nhn vin vn phng
Lng = Lng C Bn + S ngy lm
vic *100.000 + Tr Cp
+ i vi nhn vin sn xut
Lng = Lng C Bn + S Sn
Phm * 2.000
+ i vi nhn vin qun l
Lng = Lng C Bn* H s chc v
+ Thng.
GV. Nguy n Sn Hong Quc
Chng 13 - 20
ThS. Nguyn Tn Trn Minh Khang

TIENICHMAYTINH.COM

Khoa CNTT

LTHT

6. BI TON
TNH TIN LNG (tip)
+

Ngoi ra cng ty cn qun l cc


thng tin v nhn vin ca mnh
nh: h tn, ngy sinh v cc thng
s trn tnh lng cho tng
nhn vin trong cng ty.
Yu cu: Thit k cc lp thch hp
thc hin cc yu cu sau:
+ Nhp thng tin ca cc nhn vin
phc v cho vic tnh lng.
+ Thc hin vic tnh lng cho tng
nhn vin.
+ Xut thng tin ca cc nhn vin.
+ Tnh tng lng ca cng ty.
+ Tm kim mt nhn vin theo h
tn.
GV. Nguy n Sn Hong Quc
Chng 13 - 21
ThS. Nguyn Tn Trn Minh Khang

You might also like