1. Trang chủ
  2. » Công Nghệ Thông Tin

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

261 295 1

Đ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

Thông tin cơ bản

Định dạng
Số trang 261
Dung lượng 3,1 MB

Nội dung

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

w