Lờicảmơn
Phần1.Giớithiệuchung
Phần2.Cơsởlýthuyết
Phần3.Phântíchnhiệmvụ
Phần4.Thiếtkếvàphươngánthựchiện
Phần5.Kếtluậnvàđị nhhướngpháttriểntiếp
Phần6.Phụ lục
Lờicảm ơn
Ngàynày,vớisựpháttriểnnhảyvọtcủakhoahọccôngnghệnóichungcủa
ngànhtinhọcnóiriêng,vớinhữngtínhnăngưuviệt,sựtiệndụngvàđượcứngdụng
rộngrãi,tinhọcngàynaylàmộtphầnkhôngthểthiếuđượccủanhiềungànhtrong
côngcuộcxâydựngvàpháttriểnxãhội.Hơnthế nữanócòn đisâuđờisốngcủacon
người.
TinhọcđãthâmnhậpkhámạnhmẽvàoViệtNam.Nhiềulĩnhvựchoạtđộngtừ
lĩnhvựcquảnlýhànhchính,quảnlýkinhtế,tự độnghóacôngnghiệp đếncáclĩnhvực
giáodụcvàđàotạođềucóthayđổiđángkể nhờ ứngdụngtinhọc.Máy tínhlàcôngcụ
cầnthiếtđốivớiconngườitrongthờiđạingàynay.Hoạtđộngcủamộtmáytínhlàxử lý
cácthôngtinđưavàotheomộtchươngtrìnhđã đượclậpsẵnnhằmđưarakếtquả phục
vụ yêucầunàođócủangườisửdụng.Việcxâydựngcácchươngtrìnhchomáytínhlà
hết sức cầnthiếtbởi vìcác chương trình làlinhhồn của máy tính.Trong xâydựng
chươngtrìnhđểcómộtchươngtrìnhcóhiệuquảcầnphảicóchuyêngiaphântíchbài
toánđưarasơđồthuậttoánvàtừđócáclậptrìnhviêntiếnhànhsinhmãnguồncho
chươngtrình.Vấnđềđặtraliệucóthểxâydựngmộtphầnmềmhỗtrợngườilậptrình
xâydựngsơđồthuậttoánhaykhông?Vớimongmuốnđó emlựachọnđềtài:“Xây
dựngcôngcụ tạosơđồ khối”
Phần1.Giớithiệuchung
Ngàynày,vớisựpháttriểnnhảyvọtcủakhoahọccôngnghệnóichungcủa
ngànhtinhọcnóiriêng,vớinhữngtínhnăngưuviệt,sựtiệndụngvàđượcứngdụng
rộngrãi,tinhọcngàynaylàmộtphầnkhôngthểthiếuđượccủanhiềungànhtrong
côngcuộcxâydựngvàpháttriểnxãhội.Hơnthế nữanócòn đisâuđờisốngcủacon
người.
TinhọcđãthâmnhậpkhámạnhmẽvàoViệtNam.Nhiềulĩnhvựchoạtđộngtừ
lĩnhvựcquảnlýhànhchính,quảnlýkinhtế,tự độnghóacôngnghiệp đếncáclĩnhvực
giáodụcvàđàotạo đềucóthayđổiđángkể nhờ ứngdụngtinhọc.Máytínhlàcôngcụ
cầnthiếtđốivớiconngườitrongthờiđạingàynay.Hoạtđộngcủamộtmáytínhlàxử lý
cácthôngtinđưavàotheomộtchươngtrìnhđã đượclậpsẵnnhằmđưarakếtquả phục
vụ yêucầunàođócủangườisửdụng.Việcxâydựngcácchươngtrìnhchomáytínhlà
hết sức cầnthiếtbởi vìcác chương trình làlinhhồn của máy tính.Trong xâydựng
chươngtrìnhđểcómộtchươngtrìnhcóhiệuquảcầnphảicóchuyêngiaphântíchbài
toánđưarasơđồthuậttoánvàtừđócáclậptrìnhviêntiếnhànhsinhmãnguồncho
chươngtrình.Vấnđềđặtraliệucóthểxâydựngmộtphầnmềmhỗtrợngườilậptrình
xâydựngsơđồthuậttoánhaykhông?Vớimongmuốnđó emlựachọnđềtài:“Xây
dựngcôngcụ tạosơđồ khối”
Phần2.Cơsởlýthuyết
2.1Giảithuật
1.Kháiniệm giảithuật
Giảithuậtlàmộthệthốngchặtchẽvàrõràngcácquytắcnhằmxácđịnh
mộtdãycácthaotáctrênnhữngdữliệuvàosaochosaumộtsốhữuhạnbướcthực
hiệncácthaotácđótathuđượckếtquảcủabàitoán.
Ví dụ 1: Giả sửcó hai bình A và Bđựng hai loạichất lỏng khác nhau,
chẳng hạnbình A đựng rượu, bìnhB đựng nước mắm. Giải thuậtđể hoán đổi
(swap)chấtlỏngđựngtronghaibìnhđólà:
À YêucầuphảicóthêmmộtbìnhthứbagọilàbìnhC.
À Bước1:ĐổrượutừbìnhAsangbìnhC.
À Bước2:ĐổnướcmắmtừbìnhBsangbìnhA.
À Bước3:ĐổrượutừbìnhCsangbìnhB.
Vídụ2:Mộttrongnhữnggiảithuậttìmướcchunglớnnhấtcủahaisốavà
blà:
À Bước1:Nhậpvàohaisốavàb.
À Bước2:Sosánh2sốa,bchọnsốnhỏnhấtgánchoUCLN.
À Bước 3: Nếu một trong hai số a hoặc b không chia hết cho
UCLNthìthựchiệnbước4,ngượclại(cảavàbđềuchiahếtchoUCLN)
thìthựchiệnbước5.
À Bước4:Giảm UCLNmộtđơnvịvàquaylạibước3
À Bước5:InUCLNKếtthúc
2Cácđặctrưngcủagiảithuật
o Tínhkếtthúc:Giảithuậtphảidừngsaumộtsốhữuhạnbước.
o Tínhxácđịnh:Cácthaotácmáytínhphảithựchiệnđượcvàcácmáy
tínhkhácnhauthựchiệncùngmộtbướccủacùngmộtgiảithuậtphảichocùng
mộtkếtquả.
o Tínhphổdụng:Giảithuậtphải"vét'hếtcáctrườnghợpvàápdụngcho
mộtloạtbàitoáncùngloại.
o Tínhhiệuquả:Mộtgiảithuậtđượcđánhgiálàtốtnếunóđạthaitiêu
chuẩnsau:
Thựchiệnnhanh,tốnítthờigian.
Tiêuphííttàinguyêncủamáy,chẳnghạntốnítbộnhớ.
GiảithuậttìmUCLNnêutrênđạttínhkếtthúcbởivìquamỗilầnthựchiện
bước4thìUCLNsẽgiảmđimộtđơnvịchonêntrongtrườnghợpxấunhất thì
UCLN=1,giảithuậtphảidừng.Cácthaotáctrìnhbàytrongcácbước,máytính
đềucóthểthựchiệnđượcnênnócótínhxácđịnh.Giảithuậtnàycũngđạttính
phổdụngvìnóđượcdùngđểtìmUCLNchohaisốnguyeêndươngavàbbấtkỳ.
Tuynhiêntínhhiệuquảcủa giảithuậtcóthểchưacao;cụthểlàthờigianchạy
máycóthểcòntốnnhiềuhơnmộtsốgiảithuậtkhácmàchúngtasẽcódịptrởlại
trongphầnlậptrìnhC.
3Cácphươngphápbiểudiễngiảithuật
Đểbiểudiễngiảithuật,cầnphảicómộttậphợpcáckýhiệudùngđểbiểu
diễn,mỗikýhiệubiểudiễnchomộthànhđộngnàođó.Tậphợpcáckýhiệuđólại
tạothànhngônngữbiểudiễngiảithuật.
3.1Ngônngữtựnhiên
Ngônngữtựnhiênlàngônngữcủachúngtađangsửdụng,chúngtacóthể
sửdụngngônngữtựnhiênđểmôtảgiảithuậtgiốngnhưcácvídụởtrên.
Vídụ:Tacógiảithuậtgiảiphươngtrìnhbậcnhấtdạng0=+baxnhưsau:
À Bước1:Nhậngiátrịcủacácthamsốa,b
À Bước2:Xétgiátrịcủaaxemcóbằng0haykhông?Nếua=0thì
làmbước3,nếuakháckhôngthìlàmbước4.
À Bước3:(abằng0)Nếubbằng0thìtakếtluậnphươngtrìnhvô
sốnghiệm,nếubkhác0thìtakếtluậnphươngtrìnhvônghiệm.
À Bước4:(akhác0)Takếtluậnphươngtrìnhcónghiệmx=b/a
Ưunhượcđiểm.
1. Dễhiểu,dễlàm
2. Phụthuộcvào“cáchhànhvăn”củangườidiễnđạt
3. Vớinhữnggiảithuậtphứctạp,cáchdiễnđạtnàytrởnênrườmrà
4. …
3.2Diễnđạtthuậtgiảibằnggiảngônngữ
3.2.1. Giảngônngữ:
1. Dựatrênngônngữlậptrìnhbậccao
2. Gầnvớingônngữtựnhiêncủaconngười
Vídụ:
NgônngữgiảPascal(tựaPascal)cócáckýphápkhágiốngvớingônngữlập
trìnhPascal,đượcrútgọnsaochodễdiễnđạt
3.2.2. Diễnđạtthuậtgiảibằnggiảngônngữ
Giảngônngữđượcđưaravớimụcđíchdiễnđạtcácgiảithuậtsaochogần
vớingônngữlậptrìnhvàngônngữtựnhiên.
Sửdụnggiảngônngữkhiếnviệcchuyểntừgiảithuậtsangchươngtrìnhdễ
dànghơn.
Vídụ:Giảithuậttínhtổngnsốtựnhiênđầutiên
NhậpN
i:=0
S:=0
REPEAT
S:=S+i
i:=i+1
UNTIL(i>N)
InS
3.3.NgônngữLưuđồ(sơđồ)
3.3.1. NgônngữLưuđồ
Ngônngữsơđồ(lưuđồ)làmộtngônngữđặcbiệtdùngđểmôtảgiảithuật
bằngcácsơđồhìnhkhối.Mỗikhốiquiđịnhmộthànhđộng.
ChẳnghạntadùnglưuđồđểbiểudiễngiảithuậttìmUCLNnêutrênnhưsau:
3.3.2.Ưunhượcđiểm.
Ưuđiểm củalưuđồ
a. Lưuđồlàphươngpháptốtđểtruyềnđạtlậpluậncủagiảithuật.
b. Lưuđồgiúpphântíchvấnđềmộtcáchhiệuquả.
c. Lưuđồđóngvaitrònhưngườihướngdẫntronggiaiđoạnpháttriển
chươngtrình.
d. Dễtìmvàsửalỗibằnglưuđồ.
e. Lưuđồtrợgiúpđắclựctrongviệcbảotrìchươngtrình
Điểmyếuc ủalư uđồ
a. Lưuđồdàicóthểtrãiratrênnhiềutrang,làmgiảmtínhdễđọc.
b. Việcvẽlưuđồbằngcáccôngcụđồhoạlàviệclàmtốnnhiềuthời
gian.
c. Thayđổichỉmộtbướcnàođócóthểdẫnđếnviệcvẽlạitoànbộlưu
đồ.
d. Lưuđồbiểudiễngiảithuậtphứctạpcóthểchứarấtnhiềuđườngkết
nối.Điềunàylàmgiảmtínhdễđọc,tốnthờigianđểvẽvàhiểulập
luậncủagiảithuật.
3.3.3Cácquitắc vẽlưuđồ
AmericanNationalStandardsInstitute(ANSI)đềnghịmộtsố quiluật
cầnphảituântheokhivẽlưuđồnhưsau:
· Toànbộlưuđồnênđượcbiểudiễnbằngkýhiệuchuẩn.
· Lưuđồnênrõràng,chínhxácvàdễtheodõi.
· Lưuđồchỉnêncómộtđiểmbắtđầuvàmộtđiểmkếtthúc.
· Cácbướctronglưuđồnênđitừtrênxuốngvàđitừtráisang
phải.
· Tấtcảdữliệunhậpphảiđượcliệtkêhếttheomộtthứtựhợp
lý.
· Kýhiệubắtđầuvàkếtthúcchỉnêncómộtđườngkếtnốiduy
nhất.
· Kýhiệunhậpdữliệu,xửlý,xuấtdữliệu,hiểnthịnêncóhai
đườngkếtnốiđểnốikýhiệuđứngtrướcvàđứngsauchúng.
· Ký hiệu quyết định nên có một đường kết nối với ký hiệu
trướcnóvàcóhaiđườngkếtnốiđếnhaikýhiệuđứngsaunó.
· Nếucóquánhiềuđườngkếtnốilàmcholưuđồtrởnênphức
tạpthìnêndùngkýhiệukếtnốitrangđểgiảmsốđườngkết
nối.
Phần3.Phântíchmụcđích,nhiệmvụ
1.Mụcđích:
Trongxâydựngđểcómộtngôinhàchắcchắncầnphảicóbảnthiếtkếchính
xác,rõràng.ĐiềunàycóthểthựchiệnthôngquabộcôngcụhỗtrợvẽthiếtkếAutoCad.
Tronglậptrìnhđểcómộtchươngtrìnhđúngvới yêucầucầnphảicómộtsơđồthuật
toánchínhxác,rõràng.Vàmụcđíchcủađềtàinàylàxâydựngphầnmềmhỗtrợngười
lậptrìnhxâydựngsơđồthuậttoán.
Kếtquảcủađềtàinàylàmộtsảnphẩmphầnmềmtrongđócóđầyđủcácđối
tượnghỗtrợvẽsơđồkhốivàcócáctínhnăngchophépngườisửdụngtạolậpsơđồkhối
mộtcáchthuậntiện,đơngiản,chínhxácvàrõràng.
2.
3.Yêucầu:
Đểxâydựngđượcsơđồthuậttoánchínhxác,rõràngtrướchếtphảitìmhiểu
lýthuyết:
+Thếnàolàthuậttoán?
+Cónhữngcáchbiểudiễnthuậttoánnào?
+Ưunhượcđiểmcủacáccáchbiểudiễn
Saukhitìmhiểulýthuyếtcầnphảixácđịnhrõphươngphápbiểudiễnbài
toánbằngsơđồkhốicóưuđiểmgìhơnsovớicácphươngphápkhác.Từđóchitiếthóa
cáckhốigồmnhữngthànhphầngì?Cáchliênkếtcáckhốinhưthếnào?Tìnhtựthực
hiệncủasơđồrasao….
Từnhữnglýthuyếttìmhiểuởtrênxácđịnhphươngphápxâydựngcôngcụ
hỗtrợngườilậptrìnhtạosơđồkhối.
Cóthểcónhiềungônngữlậptrìnhcóthểgiảiquyếtđượcbàitoánnàychẳng
hạnnhư:TurboPascal,TurboC,VisualBasic,…Mỗingônngữđềucóưunhượcđiểm
vìvậycầntìmhiểukỹ đểtìmrangônngữthíchhợpthểhiệnbàitoán.
Saukhitìmhiểungônngữvàxácđịnhphươngphápxâydựngtiếnhànhxây
dựngsảnphẩm.Tiếnhànhkiểmthửchươngtrình,bắtlỗivàsửalỗiđểcómộtchương
trìnhhoànthiện