Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 261 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
261
Dung lượng
3,1 MB
Nội dung
c Lc 1 Cu trúc d liu 1 1.1 Cu trúc d liu là gì? 2 1.2 Cu trúc d liu c s 3 1.2.1 Kiu d liu c s 3 1.2.2 Kiu có cu trúc 4 1.2.3 Kiu d liu tru tng 7 1.3 Cu trúc d liu hng vn 8 1.3.1 Cu trúc danh sách 8 1.3.2 Ngn xp 10 1.3.3 Hàng i 11 1.3.4 Cu trúc cây 12 1.3.5 Bm 17 2 Thut toán 23 2.1 C s v thut toán 24 2.1.1 Thut toán là gì? 24 2.1.2 Thut toán và cu trúc d liu 26 2.2 Các thut toán 30 2.2.1 Thut toán duyt 30 2.2.2 Thut toán sp xp 34 2.2.3 Thut toán qui 49 2.2.4 X lí xâu kí t 51 2.2.5 X lí tp 55 2.2.6 V hình 63 2.2.7 th 67 2.2.8 Tính toán s 71 2.2.9 Thut toán i sánh 78 2.2.10 Thut toán xp x và xác sut 82 2.3 ánh giá thut toán 87 2.3.1 ánh giá theo phc tp tính toán 87 2.3.2 ánh giá theo tính hp l 88 2.3.3 ánh giá theo biu din 88 2.4 Cách thit k thut toán 89 3 Thit k trong 95 3.1 Thit k trong là gì? 96 3.1.1 Mc ích ca thit k trong và nhng m cn lu ý 96 3.1.2 Th tc thit k trong 97 3.2 Phân hoch và cu trúc chc nng 101 3.2.1 Các n v ca vic phân hoch và cu trúc chc nng 101 3.2.2 Các th tc phân hoch và cu trúc chc nng 103 3.2.3 Phng pháp thit k có cu trúc 109 3.3 Thit k d liu vt lí 112 3.3.1 Th tc thit k d liu vt lí 112 3.3.2 T chc d liu vt lí 117 3.4 Thit k vào ra chi tit 120 3.4.1 Thit k d liu vào chi tit 120 3.4.2 Thit k màn hình 123 2 Chng 1 Cu trúc d liu 3.4.3 Thit k d liu a ra chi tit 132 3.5 To ra và dùng li các b phn 136 3.5.1 Khái nim v to ra và dùng li các b phn 136 3.5.2 Dùng gói phn mm 136 3.6 To ra tài liu thit k trong 137 3.6.1 T chc tài liu thit k trong 137 3.6.2 Các m cn lu ý khi to ra tài liu thit k trong 139 3.6.3 Kim m thit k 140 4 Thit k chng trình 140 4.1 Mc ích và nhim v ca thit k chng trình 144 4.1.1 Mc ích ca thit k chng trình 144 4.1.2 Nhim v thit k chng trình 145 4.2 Thit k có cu trúc cho chng trình 148 4.2.1 Th tc thit k có cu trúc 148 4.2.2 Các k thut phân hoch mô un n hình 151 4.2.3 Tiêu chí cho vic phân hoch mô un 160 4.2.4 Phân hoch chng trình 171 4.3 To ra c t mô un và c t kim th 173 4.3.1 To ra c t mô un 173 4.3.2 To ra c t kim th 175 4.4 To ra tài liu thit k chng trình 177 4.4.1 To ra tài liu thit k chng trình và ni dung 177 4.4.2 Nhng m cn lu ý khi to ra tài liu thit k chng trình 179 4.4.3 Hp kim m thit k 179 5 Thc hin chng trình 183 5.1 Lp trình 184 5.1.1 Mô thc lp trình 184 5.1.2 Phong cách lp trình 185 5.1.3 Dùng b x lí ngôn ng 186 5.1.4 Môi trng lp trình 187 5.2 Kim th 189 5.2.1 Tng quan v kim th 189 5.2.2 Kim thn v 190 5.2.3 Kim th tích hp 190 5.2.4 Kim th h thng 195 5.2.5 Các kim th khác 197 5.2.6 K hoch và nhim v kim th 197 6 Cp nht vn hành và phát trin h thng 204 6.1 Thit k chng trình 205 6.1.1 Thit k chng trình hng i tng 205 1 u trúc d liu c ích ca chng Vic chn cu trúc d liu thích hp nht và th tc mô d liu là mu cht to ra chng trình hiu qu, hiu. Chng này mô t các cu trúc d liu a dng bn cn m c xem nh bc u tiên hc lp trình. • Hiu cách phân loi các cu trúc d liu a dng ‚ Hiu các kiu d liu c s thông dng nht và ng d liu ƒ Hiu các c trng và c ch ca cu trúc d liu ng vn c dùng gii quyt các bài toán c bit, cng nh cách dùng cu trúc d liu c s cho vic cài t chng trình 2 Chng 1 Cu trúc d liu 1.1 u trúc d liu là gì? p các d liu cùng mt loi c máytính x lí c gi là "kiu d liu." Trong giai n thit k chng trình, cách thc d liu nên c biu din và lp trình trong máytính phi c xem xét cn thn, có th chn c kiu d liu thích hp nht. Mt kiu d liu c biu din và lp trình c gi là "cu trúc d liu." Hình 1-1-1 ch ra phân lp v các cu trúc d liu. Hình 1-1-1 Phân lp v các cu trúc d liu u trúc d liu c s có thc biu din trong hu ht tt c các ngôn ng lp trình. Cu trúc d liu hng vn là cu trúc d liu có thc dùng mt cách có hiu qu gii quyt nhng vn chuyên dng. Có mt s cu trúc d liu hng vn mà không th c biu din trong ngôn ng lp trình. Trong trng hp ó, cu trúc d liu c sc dùng. u trúc liu u trúc d liu hng n (To ra t u trúc d liu c s) u trúc danh sách Ngn xp Hàng i u trúc cây m Kiu d liu s Kiu con tr Kiu n Kiu nguyên Kiu thc Kiu kí t Kiu logic Kiu lit kê Kiu b phn Kiu có u trúc Kiu mng Kiu bn ghi u trúc d liu c s Kiu d liu tru tng 1.2 Cu trúc d liu c s 3 1.2 u trúc d liu c s 1.2.1 Kiu d liu c s Kiu d liu c s là tp các d liu riêng l và thng c dùng to ra chng trình. Nó c phân loi thành các kiu n và con tr. (1) Kiu n Kiu n là kiu d liu c s nht. Khi dùng kiu n cho lp trình, kiu d liu thng c khai báo theo qui tc cú pháp ca ngôn ng. • Kiu nguyên Kiu nguyên biu din cho s nguyên, và c biu din bên trong máytính nh s nh phân theo s du phy tnh, không có ch s có ngha sau du chm thp phân. Giá tr ti a hay ti thiu ca kiu nguyên là n v ca d liu mà máytínhcó th x lí vào mt lúc, và nó c xác nh bi chiu dài t. ‚ Kiu s thc Kiu s thc biu din cho s thc. Nó c dùng biu din cho s du phy tnh và du phy ng. ƒ Kiu kí t Kiu kí t biu din cho ch cái, s và các kí hiu nh các kí t. Mt mã kí tc biu din nh s nh phân trong máy tính. „ Kiu logic Kiu logic c dùng thc hin các phép toán logic nh các phép toán AND, OR và NOT. … Kiu lit kê Kiu lit kê c nh ngha nh kiu d liu kê ra tt c các giá tr có th ca bin. Trong trng hp kiu lit kê, có th k tên kiu s nguyên. † Kiu b phn Kiu b phn c dùng xác nh mt tp con các giá tr nguyên thu bng cách hn ch các kiu d liu hin có. Kiu d liu có các gii hn trên và di nh các ràng buc c i là kiu min b phn. (2) Kiu con tr Kiu con tr có a chc cp trong n v b nh chính. Nó c dùng tham chiu ti các bin, các bn ghi tp hay các hàm. Nó c dùng cho Pascal và C nhng không dùng cho FORTRAN và COBOL. 4 Chng 1 Cu trúc d liu Hình 1-2-1 Hình nh v kiu con tr 1.2.2 Kiu có cu trúc u trúc d liu có cha mt cu trúc d liu c s hay bt kì kiu d liu c xác nh nào nh phn t ca nó (d liu), c gi là kiu có cu trúc. Kiu có cu trúc c phân loi thành kiu mng và kiu bn ghi. (1) Kiu mng ng c gi là bng. Kiu mng là d liu có cu trúc có cha d liu thuc cùng kiu và kích c. Tng d liu cá nhân c gi là mt phn t mng, phn t bng hay phn t. Cách ng c mô t hoc cách d liu c b trí có thay i tu theo ngôn ng lp trình c dùng. • Mng mt chiu ng mt chiu có cu trúc d liu mà d liu c sp thành mng theo mt hàng. xác nh mt phn t trong mng này, trc ht a vào du ngoc tròn m ( hay du ngoc vuông [ sau tên ca mng, ri a vào ch s và du ngoc tròn óng ) hay du ngoc vuông óng ]. Ch s ch ra s th t tính tnh ca mng, ni phn t xác nh ó c nh v. ng "A" có s phn tc kí hiu là "i" c biu din là A (i). Hình 1-2-2 Mng mt chiu Th 1 th 2 th 3 … th I … Phn t Phn t Phn t … Phn t … A(1) A(2) A(3) … A(I) … ‚ Mng hai chiu t cu trúc d liu trong ó d liu c sp hàng theo c hai chiu ngang và ng c i là mng hai chiu. D liu theo chiu ng c gi là ct và d liu theo chiu ngang c gi là hàng. xác nh phn t nào ó trong mng này, hai ch s tr nên cn thit: t ch s th t theo chiu ng (trên hàng nào) ni phn t xác nh ó c nh v và ch s kia ch ra s th t nào theo chiu ngang (trong ct nào) mà nó c nh v. Chng n, mng "A" c nh v hàng "i" và ct "j" có thc din t là A (i, j). a ch ca bin "b" liu Bin kiu con tr Bin "b" 1.2 Cu trúc d liu c s 5 Hình 1-2-3 Mng hai chiu (vi ba hàng và hai ct) t 1 Hàng 1 A(1, 1) A(1, 2) A(2, 1) A(2, 2) A(3, 1) A(3, 2) Khi mng hai chiu c lu gi trong n v b nh chính, nó ly dng ca mng mt chiu. ng hai chiu c v trong Hình 1-2-3 ly dng ca mng mt chiu có sáu phn t. Nh c v trong Hình 1-2-4, d liu c lu gi theo kiu tun t hoc theo chiu ca hàng hoc theo chiu ca ct. Chiu theo ó d liu c lu gi thay i tùy theo trình biên dch a ngôn ng lp trình c dùng. Nói chung, d liu c lu gi theo chiu ng khi Fortran c dùng và theo chiu ngang khi COBOL c dùng. Hình 1-2-4 Cách d liu ca mng hai chiu c lu gi trong n v b nh chính A(1,1) A(1,2) A(2,1) A(2,2) A(3,1) A(3,2) ƒ Mng ba chiu ng ba chiu có cu trúc d liu nhiu hn mng hai chiu. Nó có cu trúc ba chiu cha các t phng, các hàng và ct cng nh các phn t. Bng vic xây dng mng ba chiu trong ng hai chiu, có th x lí mng ba chiu theo cùng cách nh mng hai chiu. ng 2 chiu nh chính A(1,1) A(1,2) A(2,1) A(2,2) A(3,1) A(3,2) A(1,1) A(2,1) A(3,1) A(1,2) A(2,2) A(3,2) liu c D liu c u tr lu tr theo hàng theo ct 6 Chng 1 Cu trúc d liu Hình 1-2-5 Xây dng mng ba chiu thành mng hai chiu ng nhiu chiu nh các mng bn, nm hay nhiu chiu cng có thc nh ngha. Tuy nhiên, có th có nhng gii hn nào ó v s chiu, tùy theo kiu ca ngôn ng lp trình hay trình biên dch. ng có thc phân loi thành mng tnh và mng ng theo phng pháp c dùng sit cht mt min. - Mng tnh: Mng mà vùng c yêu cu do chng trình xác nh - Mng ng: Mng mà vùng c yêu cu sc xác nh ra sau khi ch sc dùng cho vic to mng c cung cp qua mt biu thc và biu thc ó c tính trong khi thc hin chng trình (2) Kiu bn ghi c du d liu kiu có cu trúc là cao cp hn trong vic d tham chiu và thc hin thao tác trên các phn t, nó cng có nhc m ch nó ch có th gii quyt d liu thuc cùng mt kiu. Do ó, d liu có cha các d liu vi kiu khác nhau phi ly dng ca d liu kiu bn ghi. Kiu bn ghi này cng còn c gi là kiu cu trúc. Hình 1-2-6 Kiu bn ghi Hình 1-2-6 ch ra cu trúc d liu ca kiu bn ghi. Mt bn ghi cha s hiu sinh viên (kiu nguyên), tên (kiu kí t) và m (kiu nguyên). Mt d liu kiu bn ghi cha mt tp các n ghi có cùng nh dng này. Mc du d liu kiu bn ghi mt chiu có thc gii quyt A(1,1,1) A(1,1,2) A(1,2,1) A(2,2,2) A(1,3,1) A(1,3,2) A(1,1,1) A(1,1,2) A(1,2,1) A(1,2,2) A(1,3,1) A(1,3,2) A(2,1,1) A(2,1,2) A(2,1,1) A(2,1,2) A(2,2,1) A(2,2,2) A(2,3,1) A(2,3,2) t t phng Hàng t phng th hai t phng th nht Tên m S Tên m sinh viên sinh viên n ghi (d liu v sinh viên) Kiu nguyên Kiu kí t (kiu xâu chui) Kiu sp xp 1.2 Cu trúc d liu c s 7 theo cùng cách nh mng mt chiu, tng d liu vn phi c t tên nhn din vì tng phn t cha nhiu d liu. 1.2.3 Kiu d liu tru tng liu cha cu trúc d liu nào ó và kiu ca các phép toán c gi là kiu d liu tru ng. truy nhp vào kiu d liu này, bn không cn bit v cu trúc bên trong ca nó. Tt các d liu u c che du ngoi tr d liu bn truy nhp tham chiu, thêm vào hay xoá i. u này c gi là che giu thông tin. Che giu thông tin hoc che giu d liu c kiu d liu c gi là bao bc d liu. Hình 1-2-7 Kiu d liu tru tng (Các phép toán + u trúc d liu) Chng trình t qu liu <Cu trúc d liu tru tng> 8 Chng 1 Cu trúc d liu 1.3 u trúc d liu hng vn Các cu trúc d liu hng vn khác nhau có thc trù tính bng vic dùng các kiu ng, kiu con tr và các cu trúc d liu c s khác. 1.3.1 u trúc danh sách Không ging kiu d liu c s gii quyt cho tng d liu riêng l, cu trúc danh sách cho phép d liu c móc ni ln nhau và gii quyt c mt cc. D liu c b trí theo cu trúc danh sách này c gi là mt danh sách. (1) Cu trúc danh sách và các ô ng vic dùng ch s cho tng phn t trong mng, có th truy nhp nhanh chóng vào bt kì phn t nào. Tng t nh vy, vic thay i d liu có thc thc hin d dàng. Nu bn chèn mt d liu vào âu ó trong mng, bn phi dch chuyn toàn b tng d liu sau ó lùi i mt v trí. Nu bn xoá mt d liu trong mng, tng t, bn phi dch chuyn toàn b ng d liu sau d liu b xoá ó nhích lên mt v trí. Hình 1-3-1 Chèn thêm mt phn t mng Không ging nh cu trúc kiu mng, cu trúc danh sách cho phép phn t d liu ca cùng kiu c sp hàng tun t. Kim mng òi hi rng vic b trí logic cho các phn t là ging t nh vic b trí vt lí ca chúng trong b nh chính. Trong trng hp ca cu trúc danh sách, vic b trí logic không sánh ht nh vic b trí vt lí. Danh sách cha các ô và mi ô bao gm nhng phn t sau: - Phn d liu cha phn t d liu - Phn con tr cha a ch Do ó, phn d liu ca ô có cùng cu trúc d liu nh cu trúc d liu ca d liu c lu gi và phn con tr ca ô có cu trúc d liu kiu con tr. u này ngha là các ô biu din cho d liu (cu trúc) kiu bn ghi cha các phn t có cu trúc d liu khác nhau. Danh sách cha a ch ô trong phn con tr và ô này c móc ni sang ô kia qua con tr. Arai Ueki Endou Okada trí mng c chèn Trc khi chèn Sau khi chèn Arai Inoue Ueki Endou Okada i d liu c dch v phía sau Inoue u t c chèn [...]... ch thu t toán ph i có m d ng (nó ph i không ch y vào chu trình vô h n) V n này s c xét t i m c 2.3.2 ánh giá theo tính úng n (2) Thu t toán và l p trình Thu t toán và l p trình là hai m t c a cùng ng ti n L p trình là vi c mô t d li u và thu t toán trong các ngôn ng l p trình sao cho máy tính có th th c hi n các nhi m v c giao 2.1 C s v thu t toán 25 a nó Nói chung, ch ng trình bao g m các thu t toán... o (AI), các lí thuy t tính toán c s và các nhi m v nghiên c u khác LISP, trong các ngôn ng khác, là ngôn ng l p trình hàm c tr ng - Không gi ng l p trình ki u th c hi n tu n t , các bi u th c c xây d ng b ng vi c ng nhau và chúng c thay th b ng nh ng k t qu tính toán th c hi n ch ng trình - Nh ng l i g i qui có th c mô t d dàng - M c gi ng v i x lí song song là cao - Ti n trình tính toán hay th t c... tuy n tính (chi ti t Hình 2-1-2 làm ví d c gi i thích trong M c 2.2.1) c v trong Hình 2-1-2 Thu t toán duy t tuy n tính và c u trúc d li u t u 1 các ph n t → N TBL 2 3 7 9 15 4 6 N-1 N 8 2 Nh p X X 25 S l n l p l i l n nh t = N 1→i 0 → tìm th y i>N ho c tìm th y = 1 Có Không = 1 → tìm th y TBL (i) : X ≠ i+1 → i ≠ TBL (i) : X = Tìm ki m thành công Tìm ki m không thành công t thúc Duy t tuy n tính th... b ng và t p c l u gi trong b nh tìm ra các y u t áp ng cho các yêu c u xác nh c này mô t cho hai ph ng pháp duy t b ng: ph ng pháp duy t tuy n tính (hay tu n t ) và ph ng pháp duy t nh phân (1) Ph ng pháp duy t tuy n tính (hay tu n t ) Ph ng pháp duy t tuy n tính (hay tu n t ) là ph theo cách tu n t • Ph ng pháp duy t r t n gi n t u b ng ng pháp duy t vét c n Ph ng pháp duy t vét c n là ph cu i Hình... nh là "m." - M i nút u có s t i a d li u c xác nh là "m-1." - T t c các lá u trên cùng m t m c - D li u c ch a trong t ng nút c b trí trong hàng i i vì nh ng c tr ng trên có th làm t ng b nh và tính hi u qu tính toán, nên tên "B-cây" ngh a là cây cân b ng t t 1.3 C u trúc d a li u h ng v n 15 c tr ng c a B-cây - t ng vi c s d ng vùng b nh , s con tr mà m i nút có c t là m/2 ho c nhi u h n và là m... cao - Ti n trình tính toán hay th t c không c n c xét t i ƒ L p trình logic Tân t (thu c tính) d a trên s ki n và suy di n là c s c a l p trình logic Prolog là m t ví v ngôn ng l p trình logic c tr ng - B i vì các s ki n c mô t d a trên logic tân t , nên ti n trình l p trình này c th c hi n d dàng - Suy di n và tính toán logic có th c th c hi n d dàng „ L p trình h ng it ng Trong l p trình h ng i t... p cho ng b c t ch c ng th ng Qu n lý Qu n lý Qu n lý hành chính bán hàng nhà máy Qu n lý b ph n Qu n lý b ph n Qu n lý b ph n Qu n lý b ph n Qu n lý b ph n k hành chính toán bán hàng th 1 Qu n lý b ph n bán hàng th 2 ho ch và bán hàng qu n lý ch t l ng Qu n lý b ph n Qu n lý b ph n Mua bán c d u t ng ô c s p theo th t tuy n tính trong c u trúc danh sách, d li u trong khi nó phân nhánh trong c u trúc... c a vào l p trình (s c gi i thích v sau) - Tính n ng có c u trúc c dùng d ch ch ng trình i vì l p trình th t c là h ng ( u khi n) th t c, nên có nh ng h n ch sau: - Bên c nh th t c ( u khi n), các bi n (tên bi n, ki u, kích c v.v ) ph i c khai báo - Các l nh c th c hi n t ng l nh m t theo cách tu n t (x lí song song không th c th c hi n) - Vi c so sánh và tính toán ph i c th c hi n gi i bài toán ‚... nh phân Ph ng pháp duy t nh phân là ph ng pháp làm h p d n d li u ích khi phân chia liên ti p mi n duy t thành hai ph n S các phép so sánh có th c gi m i r t nhi u n u so v i ph ng pháp duy t tuy n tính và tính hi u qu duy t có th c nâng cao Tuy nhiên ph ng pháp duy t này òi h i r ng các ph n t ph i c s p theo th t t ng hay gi m Hình 2-2-4 ch ra thu t toán c dùng cho ph ng pháp duy t nh phân Hình 2-2-4... p p là m t trong nh ng thu t toán thông d ng nh t Dùng thu t toán s p x p này, ng i ta có th s p x p s và kí t Ki u s p x p này là có th b i vì các kí t c bi u di n nh các mã kí t (mã n i b ) trong máy tính Hình 2-2-6 a ra các ph ng pháp s p x p khác nhau Hình 2-2-6 Ph ng pháp s p x p p x p trong ng pháp ch n c s Ph ng pháp chèn c s Ph ng pháp s p x p bóc v Ph p x p ngoài ng pháp trao Ph px p Ph ic