
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ần thiết bởi vì các chương trình là linh hồn của máy tính. Trong xây dự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ần thiết bởi vì các chương trình là linh hồn của máy tính. Trong xây dự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ệmgiả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ại chất lỏng khác nhau,
chẳng hạn bình A đựng rượu, bình B đự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ính khác nhau thựchiện cùngmột bướccủacùng một giảithuật phảicho cù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ải thuậ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ịcho nê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ủagiả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:

