LOGO
GVGD: Trng Phc Hi
Tng quan gii thut
2
Ni dung
1. Bài toán và gii thut
2. Biu din gii thut
3. Gii toán trên máy tính
4. Thit k gii thut
3
Bài toán và gii thut
Khái nim bài toán
Là mt công vic mà ta mun máy tính thc hin thay cho
ta hoc h tr mt phn
4
Bài toán và gii thut
Mô t bài toán
Bài toán đc mô t thông qua các thành phn input và
output
Input: d liu đu vào (nguyên liu) ti thiu đ gii đc
bài toán
Output: d liu đu ra (thành phm) theo yêu cu ca bài
toán
Input và output cn phi đc xác đnh đúng đn
5
Bài toán và gii thut
Ví d bài toán
Cho 2 s nguyên dng a, b. Hãy tìm UCLN ca a và b
Input: a, b
Output: c = UCLN(a, b)
Cho 2 s nguyên a, b. Hãy tìm phân s ti gin ca phân
s a/b.
Input: a, b
Output: tu, mau
6
Bài toán và gii thut
Ví d không phi bài toán
Cho danh sách đim thi hc k môn gii thut ca sinh viên
khoa CNTT. Cho bit sinh viên có đim thi cao nht
Hãy sp th t danh sách sinh viên khoa CNTT theo đim
thi môn gii thut
7
Bài toán và gii thut
Khái nim gii thut (thut toán)
Là dãy hu hn các thao tác đc sp xp theo mt trình
t xác đnh đ to ra output t input ca bài toán.
Phân bit gii thut và thut gii:
Gii thut: luôn cho kt qu đúng vi mi trng hp
ca input.
Thut gii: cho kt qu ca bài toán là gn đúng, nhng
không luôn luôn đúng.
8
Bài toán và gii thut
Ví d: gii phng trình bc 1: ax + b = 0
Bc 1: Nhp a, b
Bc 2: Kim tra a 0
Nu đúng thì sang bc 3.
Ngc li sang bc 4.
Bc 3:
Thông báo phng trình có nghim –b/a.
n bc 5.
Bc 4: Kim tra b 0
Nu đúng thì phng trình vô nghim.
Ngc li phng trình có vô s nghim.
Bc 5: kt thúc
9
Bài toán và gii thut
Các tính cht ca gii thut
Tính dng: gii thut phi đi đn kt thúc sau mt s bc
hu hn các thao tác thi hành
Tính xác đnh: các thao tác thi hành phi rõ ràng và ch có
mt cách hiu
Tính đúng đn: gii thut phi cho output chính xác trong
mi trng hp ca input
Tính hiu qu: gii thut phi có tc đ thi hành nhanh, s
dng ít b nh
10
Bài toán và gii thut
Ví d ung thuc
Bc 1: cho 1 mung caưé thuc vào ly
Bc 2: pha 20ml nc và ung sau khi n
Bc 3: ung đn khi nào ht bnh thì dng
11
Bài toán và gii thut
Ví d nu cm
Bc 1: đong 2 lon go
Bc 2: vo sch và cho vào ni
Bc 3: đ nc ngp 1 đt ngón tay
Bc 4: cm đin nu đn khi đèn tt là chín
12
Bài toán và gii thut
Ví d nu cm
Bc 1: đong 2 lon go
Bc 2: vo sch và cho vào ni
Bc 3: đ nc ngp 1 đt ngón tay
Bc 4: cm đin nu đn khi đèn tt là chín
13
Ni dung
1. Bài toán và gii thut
2. Biu din gii thut
3. Gii toán trên máy tính
4. Thit k gii thut
14
Biu din gii thut
Lit kê các bc thi hành
V s đ khi thi hành
Mã gi điu khin
15
Biu din gii thut
Lit kê các bc thi hành:
Ch ra thao tác thc hin trong tng bc mt
u đim: biu din đc các bài toán có s bc thc thi
nhiu
Nhc đim: khó thy đc tng th trc quan v lung thi
hành các bc ca bài toán
16
Biu din gii thut
Gii pt bc 2: ax
2
+ bx + c = 0 (a 0)
Bc 1: Nhn giá tr ca a, b, c
Bc 2: tính d = b
2
– 4.a.c
Bc 3: kim tra d ≥ 0
Nu đúng: đn bc 4
Ngc li: đn bc 5
Bc 4:
Kt lun nghim là x
1
= (-b - d)/(2.a) và x
2
= (-b +
d)/(2.a)
n bc 6.
Bc 5:
Kt lun phng trình vô nghim. n bc 6.
Bc 6: kt thúc
17
Biu din gii thut
V s đ khi thi hành
S dng các khi kí hiu đ mô t cho tng thao tác làm
vic
u đim: trc quan, kim tra đc lung đng đi ca
thut toán
Nhc đim: nu bài toán có quá nhiu thao tác s gây ri
do có quá nhiu kí hiu biu din. Do đó ch biu din các
bài toán dnh nh
18
Biu din gii thut
Các khi biu din thao tác thi hành
Bt đu gii thut
Kt thúc gii thut
Hng thi
hành
nhp/xut
x lý
tính toán
T F
kim tra
19
Biu din gii thut
Gii phng trình bc 1: ax + b = 0
Bt đu
nhp a, b
a 0
F
b 0
Kt thúc
T
Phng trình
có nghim –b/a
F T
Phng trình
vô nghim
Phng trình
vô s nghim
20
Biu din gii thut
Mã gi điu khin:
S dng mã gi ta ngôn ng lp trình đ biu din thut
toán.
vd: kim tra s nguyên n có phi là s nguyên t?
dem = 0
for i = 1 to n do
if (n % 2 = 0) then dem = dem + 1
if dem = 2 then printf(“là s nguyên t”)
else printf(“không phi là s nguyên t”)
21
Ni dung
1. Bài toán và gii thut
2. Biu din gii thut
3. Gii toán trên máy tính
4. Thit k gii thut
22
Gii toán trên máy tính
Các bc gii mt bài toán trên máy tính:
Xác đnh bài toán: xác đnh input, output
La chn hoc thit k gii thut, biu din gii thut.
Lp trình đa gii thut lên máy tính.
Hiu chnh chng trình
23
Gii toán trên máy tính
Xác đnh bài toán:
Xác đnh danh sách input, output ca bài toán.
Xác đnh các điu kin ràng buc hoc min giá tr đi vi
input và output.
24
Gii toán trên máy tính
La chn hoc thit k gii thut
Thit k gii thut
La chn CTDL thích hp đ lu tr d liu ca bài
toán: bin, cu trúc, mng, DSLK, cây, bng bm…
Tính toán kích thc vùng nh ca gii thut
Tính toán s thao tác mà gii thut thc hin
25
Gii toán trên máy tính
La chn hoc thit k gii thut:
Mô t gii thut: s dng cách lit kê các bc thc thi, v
s đ khi hoc mã gi
Kim tra tính đúng đn ca gii thut thông qua s đ mô
t