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 . ơn Ngày này,vớisựpháttriểnnhảyvọt của khoahọc công nghệ nóichung của ngành tin họcnóiriêng,vớinhữngtínhnăngưuviệt,sựtiệndụngvàđượcứngdụng rộngrãi, tin học ngày nay làmộtphầnkhôngthểthiếuđược của nhiềungành trong công cuộcxâydựngvàpháttriển xã hội. Hơnthế nữanócòn đisâuđờisống của con người. Tin họ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ự. khối” Phần1.Giớithiệuchung Ngày này,vớisựpháttriểnnhảyvọt của khoahọc công nghệ nóichung của ngành tin họcnóiriêng,vớinhữngtínhnăngưuviệt,sựtiệndụngvàđượcứngdụng rộngrãi, tin học ngày nay làmộtphầnkhôngthểthiếuđược của nhiềungành trong công cuộcxâydựngvàpháttriển xã hội. Hơnthế nữanócòn đisâuđờisống của con người. Tin họ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ự