cơ sở dữ liệu máy tính

261 295 1
cơ sở dữ liệu máy tính

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

c Lc 1 Cu trúc d liu 1 1.1 Cu trúc d liu là gì? 2 1.2 Cu trúc d liu c s 3 1.2.1 Kiu d liu c s 3 1.2.2 Kiu cu trúc 4 1.2.3 Kiu d liu tru tng 7 1.3 Cu trúc d liu hng vn  8 1.3.1 Cu trúc danh sách 8 1.3.2 Ngn xp 10 1.3.3 Hàng i 11 1.3.4 Cu trúc cây 12 1.3.5 Bm 17 2 Thut toán 23 2.1 C s v thut toán 24 2.1.1 Thut toán là gì? 24 2.1.2 Thut toán và cu trúc d liu 26 2.2 Các thut toán 30 2.2.1 Thut toán duyt 30 2.2.2 Thut toán sp xp 34 2.2.3 Thut toán  qui 49 2.2.4 X lí xâu kí t 51 2.2.5 X lí tp 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 Thut toán i sánh 78 2.2.10 Thut toán xp x và xác sut 82 2.3 ánh giá thut toán 87 2.3.1 ánh giá theo  phc tp tính toán 87 2.3.2 ánh giá theo tính hp l 88 2.3.3 ánh giá theo biu din 88 2.4 Cách thit k thut toán 89 3 Thit k trong 95 3.1 Thit k trong là gì? 96 3.1.1 Mc ích ca thit k trong và nhng m cn lu ý 96 3.1.2 Th tc thit k trong 97 3.2 Phân hoch và cu trúc chc nng 101 3.2.1 Các n v ca vic phân hoch và cu trúc chc nng 101 3.2.2 Các th tc phân hoch và cu trúc chc nng 103 3.2.3 Phng pháp thit k cu trúc 109 3.3 Thit k d liu vt lí 112 3.3.1 Th tc thit k d liu vt lí 112 3.3.2 T chc d liu vt lí 117 3.4 Thit k vào ra chi tit 120 3.4.1 Thit k d liu vào chi tit 120 3.4.2 Thit k màn hình 123 2 Chng 1 Cu trúc d liu 3.4.3 Thit k d liu a ra chi tit 132 3.5 To ra và dùng li các b phn 136 3.5.1 Khái nim v to ra và dùng li các b phn 136 3.5.2 Dùng gói phn mm 136 3.6 To ra tài liu thit k trong 137 3.6.1 T chc tài liu thit k trong 137 3.6.2 Các m cn lu ý khi to ra tài liu thit k trong 139 3.6.3 Kim m thit k 140 4 Thit k chng trình 140 4.1 Mc ích và nhim v ca thit k chng trình 144 4.1.1 Mc ích ca thit k chng trình 144 4.1.2 Nhim v thit k chng trình 145 4.2 Thit k cu trúc cho chng trình 148 4.2.1 Th tc thit k cu trúc 148 4.2.2 Các k thut phân hoch mô un n hình 151 4.2.3 Tiêu chí cho vic phân hoch mô un 160 4.2.4 Phân hoch chng trình 171 4.3 To ra c t mô un và c t kim th 173 4.3.1 To ra c t mô un 173 4.3.2 To ra c t kim th 175 4.4 To ra tài liu thit k chng trình 177 4.4.1 To ra tài liu thit k chng trình và ni dung 177 4.4.2 Nhng m cn lu ý khi to ra tài liu thit k chng trình 179 4.4.3 Hp kim m thit k 179 5 Thc hin chng trình 183 5.1 Lp trình 184 5.1.1 Mô thc lp trình 184 5.1.2 Phong cách lp trình 185 5.1.3 Dùng b x lí ngôn ng 186 5.1.4 Môi trng lp trình 187 5.2 Kim th 189 5.2.1 Tng quan v kim th 189 5.2.2 Kim thn v 190 5.2.3 Kim th tích hp 190 5.2.4 Kim th h thng 195 5.2.5 Các kim th khác 197 5.2.6 K hoch và nhim v kim th 197 6 Cp nht vn hành và phát trin h thng 204 6.1 Thit k chng trình 205 6.1.1 Thit k chng trình hng i tng 205 1 u trúc d liu c ích ca chng Vic chn cu trúc d liu thích hp nht và th tc mô  d liu là mu cht  to ra chng trình hiu qu,  hiu. Chng này mô t các cu trúc d liu a dng bn cn m c xem nh bc u tiên  hc lp trình. • Hiu cách phân loi các cu trúc d liu a dng ‚ Hiu các kiu d liu c s thông dng nht và ng d liu ƒ Hiu các c trng và c ch ca cu trúc d liu ng vn c dùng  gii quyt các bài toán c bit, cng nh cách dùng cu trúc d liu c s cho vic cài t chng trình 2 Chng 1 Cu trúc d liu 1.1 u trúc d liu là gì? p các d liu cùng mt loi c máy tính x lí c gi là "kiu d liu." Trong giai n thit k chng trình, cách thc d liu nên c biu din và lp trình trong máy tính phi c xem xét cn thn,  th chn c kiu d liu thích hp nht. Mt kiu d liu c biu din và lp trình c gi là "cu trúc d liu." Hình 1-1-1 ch ra phân lp v các cu trúc d liu. Hình 1-1-1 Phân lp v các cu trúc d liu u trúc d liu c s thc biu din trong hu ht tt c các ngôn ng lp trình. Cu trúc d liu hng vn  là cu trúc d liu thc dùng mt cách hiu qu gii quyt nhng vn  chuyên dng. mt s cu trúc d liu hng vn  mà không th c biu din trong ngôn ng lp trình. Trong trng hp ó, cu trúc d liu c sc dùng. u trúc  liu u trúc d liu hng n  (To ra t u trúc d liu c s) u trúc danh sách Ngn xp Hàng i u trúc cây m Kiu d liu  s Kiu con tr Kiu n Kiu nguyên Kiu thc Kiu kí t Kiu logic Kiu lit kê Kiu b phn Kiu u trúc Kiu mng Kiu bn ghi u trúc d liu c s Kiu d liu tru tng 1.2 Cu trúc d liu c s 3 1.2 u trúc d liu c s 1.2.1 Kiu d liu c s Kiu d liu c s là tp các d liu riêng l và thng c dùng  to ra chng trình. Nó c phân loi thành các kiu n và con tr. (1) Kiu n Kiu n là kiu d liu c s nht. Khi dùng kiu n cho lp trình, kiu d liu thng c khai báo theo qui tc cú pháp ca ngôn ng. • Kiu nguyên Kiu nguyên biu din cho s nguyên, và c biu din bên trong máy tính nh s nh phân theo s du phy tnh, không ch s ngha sau du chm thp phân. Giá tr ti a hay ti thiu ca kiu nguyên là n v ca d liu mà máy tính th x lí vào mt lúc, và nó c xác nh bi chiu dài t. ‚ Kiu s thc Kiu s thc biu din cho s thc. Nó c dùng  biu din cho s du phy tnh và du phy ng. ƒ Kiu kí t Kiu kí t biu din cho ch cái, s và các kí hiu nh các kí t. Mt mã kí tc biu din nh s nh phân trong máy tính. „ Kiu logic Kiu logic c dùng  thc hin các phép toán logic nh các phép toán AND, OR và NOT. … Kiu lit kê Kiu lit kê c nh ngha nh kiu d liu kê ra tt c các giá tr th ca bin. Trong trng hp kiu lit kê, th k tên kiu s nguyên. † Kiu b phn Kiu b phn c dùng  xác nh mt tp con các giá tr nguyên thu bng cách hn ch các kiu d liu hin có. Kiu d liu các gii hn trên và di nh các ràng buc c i là kiu min b phn. (2) Kiu con tr Kiu con tr a chc cp trong n v b nh chính. Nó c dùng  tham chiu ti các bin, các bn ghi tp hay các hàm. Nó c dùng cho Pascal và C nhng không dùng cho FORTRAN và COBOL. 4 Chng 1 Cu trúc d liu Hình 1-2-1 Hình nh v kiu con tr 1.2.2 Kiu cu trúc u trúc d liu cha mt cu trúc d liu c s hay bt kì kiu d liu c xác nh nào nh phn t ca nó (d liu), c gi là kiu cu trúc. Kiu cu trúc c phân loi thành kiu mng và kiu bn ghi. (1) Kiu mng ng c gi là bng. Kiu mng là d liu cu trúc cha d liu thuc cùng kiu và kích c. Tng d liu cá nhân c gi là mt phn t mng, phn t bng hay phn t. Cách ng c mô t hoc cách d liu c b trí thay i tu theo ngôn ng lp trình c dùng. • Mng mt chiu ng mt chiu cu trúc d liu mà d liu c sp thành mng theo mt hàng.  xác nh mt phn t trong mng này, trc ht a vào du ngoc tròn m ( hay du ngoc vuông [ sau tên ca mng, ri a vào ch s và du ngoc tròn óng ) hay du ngoc vuông óng ]. Ch s ch ra s th t tính tnh ca mng, ni phn t xác nh ó c nh v. ng "A" s phn tc kí hiu là "i" c biu din là A (i). Hình 1-2-2 Mng mt chiu Th 1 th 2 th 3 … th I … Phn t Phn t Phn t … Phn t … A(1) A(2) A(3) … A(I) … ‚ Mng hai chiu t cu trúc d liu trong ó d liu c sp hàng theo c hai chiu ngang và ng c i là mng hai chiu. D liu theo chiu ng c gi là ct và d liu theo chiu ngang c gi là hàng.  xác nh phn t nào ó trong mng này, hai ch s tr nên cn thit: t ch s th t theo chiu ng (trên hàng nào) ni phn t xác nh ó c nh v và ch s kia ch ra s th t nào theo chiu ngang (trong ct nào) mà nó c nh v. Chng n, mng "A" c nh v hàng "i" và ct "j" thc din t là A (i, j). a ch ca bin "b"  liu Bin kiu con tr Bin "b" 1.2 Cu trúc d liu c s 5 Hình 1-2-3 Mng hai chiu (vi ba hàng và hai ct) t 1 Hàng 1 A(1, 1) A(1, 2) A(2, 1) A(2, 2) A(3, 1) A(3, 2) Khi mng hai chiu c lu gi trong n v b nh chính, nó ly dng ca mng mt chiu. ng hai chiu c v trong Hình 1-2-3 ly dng ca mng mt chiu sáu phn t. Nh c v trong Hình 1-2-4, d liu c lu gi theo kiu tun t hoc theo chiu ca hàng hoc theo chiu ca ct. Chiu theo ó d liu c lu gi thay i tùy theo trình biên dch a ngôn ng lp trình c dùng. Nói chung, d liu c lu gi theo chiu ng khi Fortran c dùng và theo chiu ngang khi COBOL c dùng. Hình 1-2-4 Cách d liu ca mng hai chiu c lu 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) ƒ Mng ba chiu ng ba chiu cu trúc d liu nhiu hn mng hai chiu. Nó cu trúc ba chiu cha các t phng, các hàng và ct cng nh các phn t. Bng vic xây dng mng ba chiu trong ng hai chiu, th x lí mng ba chiu theo cùng cách nh mng hai chiu. ng 2 chiu  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)  liu c D liu c u tr lu tr theo hàng theo ct 6 Chng 1 Cu trúc d liu Hình 1-2-5 Xây dng mng ba chiu thành mng hai chiu ng nhiu chiu nh các mng bn, nm hay nhiu chiu cng thc nh ngha. Tuy nhiên, th nhng gii hn nào ó v s chiu, tùy theo kiu ca ngôn ng lp trình hay trình biên dch. ng thc phân loi thành mng tnh và mng ng theo phng pháp c dùng  sit cht mt min. - Mng tnh: Mng mà vùng c yêu cu do chng trình xác nh - Mng ng: Mng mà vùng c yêu cu sc xác nh ra sau khi ch sc dùng cho vic to mng c cung cp qua mt biu thc và biu thc ó c tính trong khi thc hin chng trình (2) Kiu bn ghi c du d liu kiu cu trúc là cao cp hn trong vic d tham chiu và thc hin thao tác trên các phn t, nó cng nhc m  ch nó ch th gii quyt d liu thuc cùng mt kiu. Do ó, d liu cha các d liu vi kiu khác nhau phi ly dng ca d liu kiu bn ghi. Kiu bn ghi này cng còn c gi là kiu cu trúc. Hình 1-2-6 Kiu bn ghi Hình 1-2-6 ch ra cu trúc d liu ca kiu bn ghi. Mt bn ghi cha s hiu sinh viên (kiu nguyên), tên (kiu kí t) và m (kiu nguyên). Mt d liu kiu bn ghi cha mt tp các n ghi cùng nh dng này. Mc du d liu kiu bn ghi mt chiu thc gii quyt 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 phng Hàng t phng th hai t phng th nht  Tên m S Tên m sinh viên sinh viên n ghi (d liu v sinh viên) Kiu nguyên Kiu kí t (kiu xâu chui) Kiu sp xp 1.2 Cu trúc d liu c s 7 theo cùng cách nh mng mt chiu, tng d liu vn phi c t tên  nhn din vì tng phn t cha nhiu d liu. 1.2.3 Kiu d liu tru tng  liu cha cu trúc d liu nào ó và kiu ca các phép toán c gi là kiu d liu tru ng.  truy nhp vào kiu d liu này, bn không cn bit v cu trúc bên trong ca nó. Tt  các d liu u c che du ngoi tr d liu bn truy nhp  tham chiu, thêm vào hay xoá i. u này c gi là che giu thông tin. Che giu thông tin hoc che giu d liu  c  kiu d liu c gi là bao bc d liu. Hình 1-2-7 Kiu d liu tru tng (Các phép toán + u trúc d liu) Chng trình t qu  liu <Cu trúc d liu tru tng> 8 Chng 1 Cu trúc d liu 1.3 u trúc d liu hng vn  Các cu trúc d liu hng vn  khác nhau thc trù tính bng vic dùng các kiu ng, kiu con tr và các cu trúc d liu c s khác. 1.3.1 u trúc danh sách Không ging kiu d liu c s gii quyt cho tng d liu riêng l, cu trúc danh sách cho phép d liu c móc ni ln nhau và gii quyt c mt cc. D liu c b trí theo cu trúc danh sách này c gi là mt danh sách. (1) Cu trúc danh sách và các ô ng vic dùng ch s cho tng phn t trong mng, th truy nhp nhanh chóng vào bt kì phn t nào. Tng t nh vy, vic thay i d liu thc thc hin d dàng. Nu bn chèn mt d liu vào âu ó trong mng, bn phi dch chuyn toàn b tng d liu sau ó lùi i mt v trí. Nu bn xoá mt d liu trong mng, tng t, bn phi dch chuyn toàn b ng d liu sau d liu b xoá ó nhích lên mt v trí. Hình 1-3-1 Chèn thêm mt phn t mng Không ging nh cu trúc kiu mng, cu trúc danh sách cho phép phn t d liu ca cùng kiu c sp hàng tun t. Kim mng òi hi rng vic b trí logic cho các phn t là ging t nh vic b trí vt lí ca chúng trong b nh chính. Trong trng hp ca cu trúc danh sách, vic b trí logic không sánh ht nh vic b trí vt lí. Danh sách cha các ô và mi ô bao gm nhng phn t sau: - Phn d liu cha phn t d liu - Phn con tr cha a ch Do ó, phn d liu ca ô cùng cu trúc d liu nh cu trúc d liu ca d liu c lu gi và phn con tr ca ô cu trúc d liu kiu con tr. u này ngha là các ô biu din cho d liu (cu trúc) kiu bn ghi cha các phn t cu trúc d liu khác nhau. Danh sách cha a ch ô trong phn con tr và ô này c móc ni sang ô kia qua con tr. Arai Ueki Endou Okada  trí mng c chèn Trc khi chèn Sau khi chèn Arai Inoue Ueki Endou Okada i d liu c dch v phía sau Inoue u t c chèn [...]... ch thu t toán ph i 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 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 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 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 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 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 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 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 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 th c gi m i r t nhi u n u so v i ph ng pháp duy t tuy n tínhtính hi u qu duy t 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 th s p x p s và kí t Ki u s p x p này là 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

Ngày đăng: 23/04/2014, 23:33

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan