Chương 3 của bài giảng sẽ đề cập đến việc giải bài toán trên máy tính. Trong chương này sẽ tìm hiểu các nội dung: Vấn đề - bài toán, thuật toán - thuật giải, các phương pháp biểu diễn thuật toán, các bước giải một bài toán trên máy tính, tổng quan về ngôn ngữ lập trình. Mời các bạn cùng tham khảo.
Trang 1Ch ng
Tr n Ph c Tu n
tranphuoctuan.khoatoan.dhsp@gmail.com
http://baigiang.tranphuoctuan.com
i dung bài h c
1. n - bài toán
2. Thu t toán - thu t gi i
3. Các ph ng pháp bi u di n thu t toán
4. Các b c gi i m t bài toán trên máy tính
5. ng quan v ngôn ng p trình
Trang 212/12/2009 T.P.Tu n-NH P MÔN TIN H C
Page 3
1 V n - bài toán
• n th ng c dùng v i ngh a r ng h n bài toán, bài toán là v n mà gi i quy t nó
ph i liên quan ít nhi u n tính toán
• Pitago chia m i v n mà con ng i c n gi i quy t thành hai lo i:
– Theorema : v n n kh ng nh tính úng – sai – Problema : v n n tìm gi i pháp t
c m c tiêu t nh ng u ki n ban u nào ó
Khái ni m
1 V n - bài toán
• Theo nhi u k t qu nghiên c u: vi c gi i quy t
n - bài toán mà Pitago nêu ra u có th
di n ra theo m t s chung:
– A có th là gi thi t, i u ki n ban u
– B có th là k t lu n, m c tiêu c n t
– là suy lu n, gi i pháp c n xác nh
Khái ni m
Trang 312/12/2009 T.P.Tu n-NH P MÔN TIN H C
Page 5
1 V n - bài toán
– Cho: S nguyên d ng N
– n bi t: N có là s nguyên t hay không?
– Cho: H g c c a các sinh viên trong tr ng – n bi t: B ng th ng kê, phân lo i sinh viên
theo k t qu c t p
Khái ni m
• u trúc m t bài toán:
– Thông tin u vào (input): cái cho tr c
– Thông tin u ra (output): cái c n tìm
• Gi i bài toán: là vi c xác nh t ng minh output theo input b ng m t quá trình có th
th c hi n m t cách hi u qu
1 V n - bài toán
Khái ni m
Trang 412/12/2009 T.P.Tu n-NH P MÔN TIN H C
Page 7
2 Thu t toán – thu t gi i
• Thu t toán là khái ni m c s a toán h c
và tin h c
• Thu t toán là m t dãy các ch th rõ ràng
th c hi n hành ng nh m t c m c tiêu t ra
• Thu t toán là s th hi n c a m t ph ng pháp gi i quy t v n
Thu t toán – khái ni m
• Nh p (input) Các thu t toán th ng có giá tr u vào
• Xu t (output) T giá tr vào thu t toán cho ra k t qu
• Tính xác nh (definiteness) Các b c trong thu t toán ph i chính xác rõ ràng.
• Tính h u h n (finiteness) Thu t toán ph i cho ra l i gi i (hay k t
qu ) sau m t s c h u h n.
• Tính hi u qu Tính hi u qu c ánh giá d a trên m t s tiêu chu n nh kh i l ng tính toán, không gian và th i gian s ng (khi th c hi n thu t toán trên máy tính).
• Tính t ng quát Thu t toán ph i áp d ng c cho t t c các bài toán cùng d ng, ch không ch áp d ng c cho m t s tr ng
p riêng l nào ó.
2 Thu t toán – thu t gi i
Trang 512/12/2009 T.P.Tu n-NH P MÔN TIN H C
Page 9
Thu t toán gi i ph ng trình b c hai:
AX 2 + BX + C = 0 (A 0) -B c 1 : Tính DELTA = B*B-4*A*C
-B c 2 : So sánh DELTA v i s 0
-B c 3 : R làm 3 tr ng h p :
-Tr ng h p DELTA < 0 :
vô nghi m;
-Tr ng h p DELTA = 0 : -Tr ng h p DELTA > 0 :
.
2 Thu t toán – thu t gi i
Thu t toán – ví d
1 2
2*
B
A
2 1,2
4 2
X
a
2 Thu t toán – thu t gi i
Thu t toán – các c u trúc c b n
1. Tu n t : th c hi n h t l nh này n
nh khác
2. nhánh: tùy theo d li u u vào mà
ta quy t nh th c hi n câu l nh gì ti p theo
3. p: th c hi n l i nhi u l n m t s câu
nh nào ó cho n khi u ki n không còn th a mãn n a
Trang 612/12/2009 T.P.Tu n-NH P MÔN TIN H C
Page 11
• Khái ni m thu t toán ã trình bày chính là cánh
a khép kín cho vi c gi i các bài toán vì:
– Nhi u bài toán không th a các c tr ng c b n
a thu t toán.
– Có nhi u bài toán ch a tìm ra thu t toán ho c
ch a ch ng minh c là có thu t toán hay không.
– Có nh ng bài toán có thu t toán nh ng khó th c
hi n ho c không th c hi n c
2 Thu t toán – thu t gi i
Thu t gi i
• nh ng nh n nh trên ng i ta th y r ng:
n ph i có nh ng i m i cho khái ni m thu t toán “Thu t gi i”
2 Thu t toán – thu t gi i
Thu t gi i
Trang 712/12/2009 T.P.Tu n-NH P MÔN TIN H C
Page 13
a m t thu t toán và s rõ ràng t i a.
nh mà v n cho k t q a Nh v y thay cho vi c xây
nh
2 Thu t toán – thu t gi i
• Tính úng n c hi u là cho k t qu úng.
• Trong th c t thì s n úng là có th ch p
nh n c
• Ngoài ra dùng cách gi i heuristic n gi n,
c áo v n có th cho k t q a m t cách sáng t o
2 Thu t toán – thu t gi i
Trang 812/12/2009 T.P.Tu n-NH P MÔN TIN H C
Page 15
• Ngôn ng nhiên
• Mã gi
3 Các ph ng pháp bi u di n thu t toán
phiên b c diêm M i l t, m i ng i b c t
th ng cu c
3 Các ph ng pháp bi u di n thu t toán
Trang 912/12/2009 T.P.Tu n-NH P MÔN TIN H C
Page 17
• Gi i thu t ng i i tr c luôn th ng cu c
c di n t ng cách li t kê t ng b c nh sau:
– c 1: c 3 que r i i i ph ng i
– c 2: i ph ng b c (gi x que, 0<x<4)
– c 3: n l t ng i i tr c b c a = (4-x) que N u còn diêm thì quay l i c 2
– Tuyên b th ng cu c K t thúc
3 Các ph ng pháp bi u di n thu t toán
• Là m t ph ng ti n hình h c giúp ta di n t
gi i thu t m t cách tr c quan
• c t o b i các ki u kh i c b n, n i v i nhau b ng các ng có ng
• Thu t ng ti ng Anh là Flow Chart
3 Các ph ng pháp bi u di n thu t toán
kh i
Trang 1012/12/2009 T.P.Tu n-NH P MÔN TIN H C
Page 19
3 Các ph ng pháp bi u di n thu t toán
kh i
t thúc
trình con
ng x lý
u ki n
input
output thao tác
3 Các ph ng pháp bi u di n thu t toán
kh i – ví d
t u
t thúc
a, b
c = a + b
c
t u
t thúc
a, S b
a b ng S b
a có b ng
b không?
a không b ng S b Có
Không
t u
t thúc
Thùng = 24 Lon?
Ch a
Thùng = 0 Lon
1 Lon Thêm 1 Lon vào thùng
ng
Trang 1112/12/2009 T.P.Tu n-NH P MÔN TIN H C
Page 21
3 Các ph ng pháp bi u di n thu t toán
Mã gi
• Ngoài vi c s ng ngôn ng nhiên và
u bi u di n thu t toán, ng i ta còn
ng ngôn ng a pascal, c, … c g i
là mã gi
• Trong mã gi ta s ng c u trúc c a ngôn ng p trình và ngôn ng nhiên
3 Các ph ng pháp bi u di n thu t toán
Mã gi - ví d
Bi n
A,B,C,DELTA,X1,X2 : S Th c ; u
Nh p A,B,C;
DELTA:=B*B-4*A*C;
u DELTA <0 Thi
Xu t 'Ph ng trinh vô nghi m ';
ng;
u DELTA =0 Thi X1:=(-B/2/A);
X2:=X1;
Xu t 'Nghi m kép X1,X2 ';
ng;
u DELTA =0 Thi X1:=(-B-CanB cHai(DELTA))/2/A;
X2:=(-B+CanB chH(DELTA))/2/A;
Xu t 'Nghi m phân bi t X1,X2 ';
Trang 1212/12/2009 T.P.Tu n-NH P MÔN TIN H C
Page 23
1. Tính m trung bình c a h c sinh g m các môn Toán, Lý, Hóa.
2. Ki m tra 2 s a, b gi ng nhau hay khác nhau.
3. Ki m tra 1 s a ch n hay l
4. Gi i pt: ax+b=0
5. Gi i ph ng trình b c 2: ax2 + bx + c = 0
3 Các ph ng pháp bi u di n thu t toán
Bài t p
• c 1: Xác nh v n - bài toán
• c 2: L a ch n ph ng pháp gi i
• c 3: Xây d ng thu t toán ho c thu t gi i
• c 4: Cài t ch ng trình
• c 5: Hi u ch nh ch ng trình
• c 6: Th c hi n ch ng trình
Trang 1312/12/2009 T.P.Tu n-NH P MÔN TIN H C
Page 25
• Phân tích h th ng nh m phát bi u chính xác v n , làm rõ yêu c u c a ng i s ng
• ánh giá, nh n nh tính kh thi c a v n
• Có nhi u cách khác nhau gi i quy t v n
, tùy theo nhu c u c th mà ta l a ch n
ph ng pháp thích h p
• Vi c l a ch n ph ng pháp c ng c n c n c vào kh ng x lý t ng mà ta c n s ng
Trang 1412/12/2009 T.P.Tu n-NH P MÔN TIN H C
Page 27
• Xác nh input, output
• Xác nh các b c th c hi n c b n cho d
li u u vào và u ra
• Nên áp d ng ph ng pháp thi t k có c u trúc, t thi t k ng th ti n hành làm m n
n các b c
c 3: Xây d ng thu t toán ho c thu t gi i
• Mô t thu t gi i thành ch ng trình
• n n m v ng ngôn ng p trình và th
hi n m t cách chính xác thu t toán ã c
a ra.
Trang 1512/12/2009 T.P.Tu n-NH P MÔN TIN H C
Page 29
• Cho ch ng trình ch y th và hi u ch nh
nh ng sai sót
• Trong b c này ta c n kh c ph c hai lo i l i:
– i cú pháp (có s tr a IDE)
– i ng ngh a (th ng khó phát hi n h n l i cú pháp)
• Cho ch ng trình ch y v i nh ng b li u khác nhau ki m tra
• u ý các tr ng h p c bi t
• u ý các tr ng h p ng i dùng nh p d
li u có ki u không phù h p v i ki u d li u
ng trong ch ng trình
Trang 1612/12/2009 T.P.Tu n-NH P MÔN TIN H C
Page 31
Gi i bài toán này
th nào ây?
di n t b ng
Source code
Ki n th c NNLT
Ki n th c Chuyên môn
Ch ng trình
biên d ch
(B máy c a NNLT)
File Ngôn
ng máy (exe, dll, com, )
5 T ng quan v ngôn ng p trình