Tap 3

  • November 2019
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Tap 3 as PDF for free.

More details

  • Words: 109,745
  • Pages: 259
cL 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ó 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ó 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ó c u trúc cho ch ng trình....................................................................148 4.2.1 Th t c thi t k có 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, có 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 Ki u nguyên Ki u Ki u d li u s

n

Ki u có u trúc

Ki u kí t Ki u logic

Ki u con tr Ki u m ng

u trúc d li u c s

Ki u th c

Ki u li t kê Ki u b ph n

Ki u b n ghi

Ki u d li u tr u t ng u trúc li u

u trúc danh sách

u trúc d li u h ng n (T o ra t u trúc d li u c s )

Ng n x p Hàng

i

u trúc cây m

u trúc d li u c s có 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 có th c dùng m t cách có hi u qu gi i quy t nh ng v n chuyên d ng. Có 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.

1.2 C u trúc d

1.2 1.2.1

li u c s

u trúc d li u c s 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 c phân lo i thành các ki u n và con tr .

(1) Ki u

ng

c dùng

t o ra ch

ng trình. Nó

n

Ki u n là ki u d li u c s nh t. Khi dùng ki u c khai báo theo qui t c cú pháp c a ngôn ng .

n cho l p trình, ki u d li u th

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 có ch s có 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 có 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ó ph y ng.

c dùng

bi u di n cho s d u ph y t nh và d u

ƒ 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 di n nh s nh phân trong máy tính.

c bi u

„ Ki u logic Ki u logic NOT.

c dùng

th c hi n các phép toán logic nh các phép toán AND, OR và

… 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 có th c a bi n. Trong tr ng h p ki u li t kê, có 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á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 có 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.

3

4 Ch

ng 1 C u trúc d li u

Hình 1-2-1 Hình nh v ki u con tr

Bi n ki u con tr

Bi n "b"

a ch c a bi n "b"

1.2.2

li u

Ki u có c u trúc

u trúc d li u có 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ó c u trúc. Ki u có 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ó c u trúc 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í có 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ó 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" có 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

Ph n t

Ph n t

Ph n t

A(1)

A(2)

A(3)

… … …

th I Ph n t 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" có th c di n t là A (i, j).

1.2 C u trúc d

li u c s

Hình 1-2-3 M ng hai chi u (v i ba hàng và hai c t) t1 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 có 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

ng 2 chi u

n v b nh chính

nh chính

A(1,1)

A(1,2)

A(1,1)

A(1,1)

A(2,1)

A(2,2)

A(1,2)

A(2,1)

A(3,1)

A(3,2)

A(2,1)

A(3,1)

A(2,2)

A(1,2)

A(3,1)

A(2,2)

A(3,2)

A(3,2)

li u u tr theo hàng

c

D li u

c

l u tr theo c t

ƒ M ng ba chi u ng ba chi u có c u trúc d li u nhi u h n m ng hai chi u. Nó có 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, có th x lí m ng ba chi u theo cùng cách nh m ng hai chi u.

5

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 t ph ng th hai A(2,1,1)

A(2,1,2)

t ph ng Hàng

A(1,1,1)

A(1,1,2)

A(1,2,1)

A(1,2,2)

A(1,3,1)

A(1,3,2) t ph ng th nh t

t

A(2,1,1)

A(2,1,2)

A(2,2,1)

A(2,2,2)

A(2,3,1)

A(2,3,2)

A(1,1,1)

A(1,1,2)

A(1,2,1)

A(2,2,2)

A(1,3,1)

A(1,3,2)

ng nhi u chi u nh các m ng b n, n m hay nhi u chi u c ng có th c nh ngh a. Tuy nhiên, có th có 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 có 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ó 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 có nh c m ch nó ch có th gi i quy t d li u thu c cùng m t ki u. Do ó, d li u có 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 n ghi (d li u v sinh viên) Tên

m

S

Tên

m

Ki u s p x p

(ki u xâu chu i)

sinh viên

Ki u kí t

Ki u nguyên

sinh viên

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ó cùng nh d ng này. M c d u d li u ki u b n ghi m t chi u có th c gi i quy t

1.2 C u trúc d

theo cùng cách nh m ng m t chi u, t ng d li u v n ph i ph n t ch a nhi u d li u.

1.2.3

Ki u d

li u tr u t

c

t tên

li u c s

nh n di n vì t ng

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

li u Ch


ng trình t qu

ng>

7

8 Ch

ng 1 C u trúc d li u

1.3

u trúc d

li u h

Các c u trúc d li u h ng v n khác nhau có th ng, ki u con tr và các c u trúc d li u c s khác.

1.3.1

ng v n

c trù tính b ng vi c dùng các ki u

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, có 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 có 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 trí m ng

Tr

c khi chèn

c chèn

Arai Ueki Endou Okada i d li u

Sau khi chèn

c d ch v phía sau

Arai Inoue Ueki Endou Okada

ut c chèn

Inoue

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ó cùng c u trúc d li u nh c u trúc d li u c a d li u cl u gi và ph n con tr c a ô có 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ó 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 .

1.3 C u trúc d li u h

ng v n

9

Hình 1-3-2 C u trúc danh sách Ph n d li u Ph n con tr

Ph n d li u Ph n con tr

Ph n d li u Ph n con tr

Arai

Inoue

Ueki

(2) Chèn d li u vào danh sách chèn d li u vào danh sách, m i u b n c n làm là thay th các con tr t i d li u i tr c và i sau d li u c chèn vào ó. B i vì b n không ph i d ch chuy n các ph n t nh tr ng h p d li u ki u m ng, nên b n có th chèn thêm d li u m t cách d dàng và nhanh chóng. (Xem Hình 1-3-3.) Hình 1-3-3 Chèn d li u vào danh sách i d li u

c chèn

Ph n d li u Ph n con tr

Tr

c khi chèn

Arai

Ueki Inoue

Sau khi chèn

Arai

Endou Ô

c chèn

Ueki

Endou

(3) Xoá d li u kh i danh sách xoá d li u kh i danh sách, m i u b n c n ph i làm là thay th các con tr nh khi b n chèn d li u vào danh sách. Ô ch a d li u (Inoue) v n còn trong vùng b nh nh rác sau khi li u ã b xoá, nh c v trong Hình 1-3-4. Hình 1-3-4 Xoá d li u kh i danh sách Ô b xóa Tr c khi xóa

Arai

Inoue

Ueki

Endou

Sau khi xóa

Arai

Inoue

Ueki

Endou

c d u c u trúc danh sách cho phép d li u c chèn thêm hay c xoá i ch b ng cách thay th các con tr , nó có nh c m là b n ph i l n theo t ng con tr m t t un ub n mu n truy nh p vào d li u c bi t.

(4) Ki u c u trúc danh sách Các c u trúc danh sách tiêu bi u bao g m: - Danh sách m t chi u - Danh sách hai chi u - Danh sách vòng. i vì nh ng danh sách này c bi u di n d i là danh sách tuy n tính.

i d ng tuy n th ng, nên nói chung chúng

c

• Danh sách m t chi u Danh sách m t chi u c ng còn

c g i là danh sách m t h

ng. Ph n con tr c a ô ch a

10 Ch

ng 1 C u trúc d

li u

a ch c a ô mà trong ó d li u ti p c l u gi . B ng vi c l n theo nh ng ng ô m t, b n có th th c hi n vi c duy t d li u.

a ch này

Hình 1-3-5 Danh sách m t chi u u

Ô Arai

Inoue

Wada

NULL

Con tr th nh t c g i là g c hay u. B i vì ph n con tr c a ô cu i không có b t kì a ch nào trong ó d li u có th c l u gi , nên NULL (giá tr s là không) hay 0 c chèn thêm vào ph n này. ‚ Danh sách hai chi u Danh sách hai chi u có hai ph n con tr ( Hình 1-3-6.



) ch a

a ch các ô nh

c v trong

Hình 1-3-6 Danh sách hai chi u u

uôi

Arai

Inoue

Wada NULL

NULL

Ph n con tr và u c v trong Hình 1-3-6 ch a a ch c a ô k ti p và a ch c a ô ng tr c t ng ng. a ch c a ô cu i cùng c ch a trong con tr uôi. Trong tr ng p danh sách hai chi u, d li u có th c l n theo t ô u ho c uôi. ƒ Danh sách vòng Danh sách hai chi u ch a NULL ô u tiên c g i là danh sách vòng. Ph n con tr c a ô th nh t này và ph n con tr ch a NULL c a ô cu i cùng ch a a ch ô khác, do v y d li u có d ng cái vòng. D li u có th c duy t theo cùng cách nh trong danh sách hai chi u. Hình 1-3-7 Danh sách vòng u

Arai

Inoue

Wada

trí

u

trí uôi

1.3.2

Ng n x p

Ng n x p là c u trúc d li u c thi t k d a trên m ng m t chi u. Ph n t cu i cùng u gi s c c ra tr c h t. Nó c so sánh v i trò ch i ném vòng.

c

1.3 C u trúc d li u h

ng v n

11

Hình 1-3-8 Trò ch i ném vòng

Trò ch i ném vòng c ch i b ng cách ném các vòng m u theo th t , l c, vàng và lam a vào d li u). Chúng c l y ra t ng cái m t ( a ra d li u) theo th t o l i vi c ném vào, t c là lam, vàng, l c và . T c là vòng lam c ném vào cu i cùng s c l y ra u tiên. Ki u c u trúc d li u này mà có th c so sánh v i trò ch i ném vòng c g i là ng n x p. th ng này còn có thu t ng là h th ng vào-sau-ra-tr c (LIFO). Vi c l u tr d li u trong ng n x p c g i là " n vào (PUSH)" và vi c l y d li u ra t ng n x p c g i là "b t ra (POP)." Bi n u khi n vi c n vào và b t ra c g i là con tr ng n x p. n d li u vào ng n x p, t con tr ng n x p "sp" là +1 và l u gi d li u trong ph n t ng c vi t là "sp." làm b t ra d li u t ng n x p, hãy l y d li u ã c l u gi trong m ng c ch b i "sp" và t con tr ng n x p là sp-1. Hình 1-3-9 C u trúc ng n x p POP

PUSH

li u l y ra

li u nh p vào

sp - 1

sp + 1 Con tr ng n x p sp

1.3.3

Hàng

Ng n x p (4)

li u D

Ng n x p (3)

li u C

Ng n x p (2) Ng n x p (1)

li u B li u A

ra 4

i

Hàng i là c u trúc d li u d a trên m ng m t chi u. D li u c l u gi u tiên c ra u tiên. Nó c so sánh v i hàng ng i ang i tr c máy tr ti n c a ngân hàng. Hình 1-3-10 Hàng

c

i

u trúc d li u cho phép khách hàng c ph c v trên c s n tr c ph c v tr c c i là hàng i. H th ng này c g i là h th ng (FIFO). Hai con tr ch ra u và uôi c a hàng i là c n cho vi c ki m soát hàng i. Con tr ch ra u và uôi c a hàng i c

12 Ch

ng 1 C u trúc d

bi u di n nh bi n

li u

u và bi n uôi t

Hình 1-3-11 C u trúc hàng

ng ng. (Xem Hình 1-3-11.)

i

px p Hàng i

(1)

(2)

(3)

(4)

(5)

(6)

li u A D li u B D li u C D li u D

Con tr


u

Con tr cu i

i>

1.

l u gi d li u vào hàng i (enqueue), t bi n tr uôi t ng thêm 1 và c t gi d li u. 2. l y ra d li u t hàng i (dequeue), l y d li u ra và t bi n tr u t ng lên 1.

1.3.4

u trúc cây

u trúc cây là m t trong nh ng c ph c t p t t h n các c u trúc d li i vì nó có c u trúc phân c p nh ki u làm vi c bao g m phân lo i t Hình 1-3-12 S

u trúc d li u r t h u d ng vì nó có th ki m soát d li u u ki u m ng hay danh sách. t ch c c a công ti hay cây gia ình, nên nó thích h 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

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

bán hàng th 1

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ây. u trúc cây bao g m các ph n t c v d i ây: - Nút: T ng ng v i d li u - Nhánh: N i nút này v i nút khác - G c: Nút c p cao nh t, không có cha m - Con: Nút r nhánh ra d i m t nút khác - Cha m : D li u g c tr c khi nó chia nhánh - Lá: Nút c p th p nh t không có con Hình 1-3-13 v ra c u trúc cây Hình 1-3-13 C u trúc cây A B

c Nhánh C

D

. A là cha nút C . Nút D và E là con nút C.

Nút E

F

G

H



n ph m

cs p

1.3 C u trúc d

li u h

ng v n

13

(1) Cây nh phân u s nhánh ch ra t m t nút là "n" hay ít h n, t c là n u s con là 0 cho t i "n", m t c u trúc cây nh v y c g i là cây N ngôi. Cây N-ngôi có 2 nhánh (n=2), t c là cây N ngôi không có con, có m t hay hai con, c g i là cây nh phân, th ng là c u trúc d li u th ng dùng nh t. M t khác, c u trúc cây có ba hay nhi u nhánh (n>2) c g i là cây nhi u nhánh. Cây nh phân bao g m m t ph n d li u và hai ph n con tr . Con tr trái ch ra v trí c a nút kéo dài sang bên trái và các nhánh ch ra trong khi ph n con tr ph i ch ra v trí c a nút kéo dài sang bên ph i và các nhánh ch ra. Hình 1-3-14 C u trúc cây nh phân Ph n con tr trái

Ph n d li u

Cây nh phân có c u trúc phân c p cha m - con, nh

Ph n con tr ph i

c v trong Hình 1-3-15.

Hình 1-3-15 C u trúc cây nh phân c s Cha

Con

Con

duy t d li u c bi t trong d li u cây nh phân, ph i l n theo t ng nút m t. Có ba ph ng pháp th c hi n duy t d li u cây nh phân. Vì khó gi i thích b ng l i nên hãy ki m l i Hình 1-3-16 và xem cách d li u c duy t b ng vi c dùng t ng ph ng pháp. Hình 1-3-16 Cách th c hi n duy t d li u cây nh phân

- Th t g c tr c (Pre-order): V i g c là m b t u, nút bên trái c a m i nút c duy t qua theo cách tu n t . - Th t g c gi a (Mid-order): V i lá t i áy bên trái làm m b t u, r i duy t qua nút cha nó và ti p ó duy t qua ph n còn l i c a nút ó theo cách tu n t . - Th t g c sau (Post order): V i lá t i áy bên trái làm m b t u, ph n bên ph i m i nút c duy t qua theo cách tu n t r i m i n nút cha c a nó.

(2) Cây nh phân hoàn ch nh u cây nh phân c xây d ng theo cách s các nhánh t g c t i t ng lá d c theo m t nhánh là b ng ho c sai khác m t so v i s các nhánh t g c t i t ng lá d c theo nhánh khác (ho c n u chi u cao t g c t i t ng lá là b ng hay sai khác m t v i chi u cao t g c t i t ng lá thu c vào nhánh khác), thì cây ó c g i là cây nh phân hoàn ch nh. Hình 1-3-17 v ra cây nh phân hoàn ch nh có m i nút.

14 Ch

ng 1 C u trúc d

li u

Hình 1-3-17 Cây nh phân hoàn ch nh 1

1

2 3 4

2

7 6

8

5

3

10 4

9

7 6

8

5



10

9

(3) Cây tìm ki m nh phân Cây tìm ki m nh phân c dùng nh m t bi n th c a cây nh phân. Trong tr ng h p c a cây tìm ki m nh phân, con cháu bên trái là nh h n cha m và con cháu bên ph i là l n h n cha m . Thu t toán cây tìm ki m nh phân là nh sau: 1. G c là m vi c tìm ki m b t u. 2. D li u cây nh phân c so sánh v i d li u c n tìm. 3. N u d li u cây nh phân = d li u c n tìm, vi c tìm là thành công ( c hoàn t t). 4. N u d li u cây nh phân > d li u c n tìm, thì các nút bên trái c a cây nh phân c tìm và so sánh. 5. N u d li u cây nh phân < d li u c n tìm, thì các nút bên ph i c a cây nh phân c tìm và so sánh. 6. N u không tìm th y con nào, vi c tìm ki m là không thành công (không tìm th y d li u). Hình 1-3-18 Th c hi n vi c tìm ki m v d li u trong cây tìm ki m nh phân

1) 15>10

15

2) 8<10 8

2

21

10

28

3) 10=10 13

(4) Cây cân b ng u d li u c thêm vào hay b xoá i trong c u trúc cây, thì các lá ng u nhiên phát tri n và tính hi u qu c a phép toán s gi m i. C u trúc cây có kh n ng t t ch c l i chính nó c i là cây cân b ng. Cây cân b ng i di n là B-cây và ng (heap). • B-cây B-cây là phiên b n c phát tri n thêm n a c a cây nh phân: - Lá cu i b b i và m i nút u có s các nút c xác 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 ho c ít h n. S con tr theo m t ng tuy v y c t là 2 ho c nhi u h n. - M i lúc d li u b xoá hay c b sung thêm, vi c ch ra và ghép l i c th c hi n ng cho s các ph n t c a m t nút có th tr thành m/2 hay nhi u h n ho c m hay ít h n. u này cho phép lá bao gi c ng c duy trì trên cùng m c. - Vi c tìm ki m b t u t g c. - Vi c thêm vào hay xoá i d li u b t u t lá. Hình 1-3-19 ch ra B-cây b n m v i các ph n t 7, 6, 10, 2, 5, 12, 4, 9, 8, 11, 1, 3 . Hình 1-3-19 B-cây b n m

3

4

1

6

9

7

5

8 10

2

11

12

b. Xoá d li u Hình 1-3-20 v ra tr ng h p d li u "4" b xoá kh i B-cây c v trong Hình 1-3-19. u m t mình "4" b xoá i, thì s các ph n t b xoá c a m t nút tr thành m t và các yêu c u c a B-cây không th c áp ng. Hình 1-3-20 B-cây sai 3

6

9

7

5 1

8 10

2

11

12

Nút t ó "4" b xoá i c g p vào m t nút k ho c bên ph i ho c bên trái. B i vì các con tr c a cha m c ng ph i c t ch c l i, nên "6" c chuy n sang nút c p th p n và t ng nút có th c t ch c l i, nh c v trong Hình 1-3-21. Hình 1-3-21 B-cây úng

1



2

3

9

5

6

7

8

10

11

12

ng

Cây nh phân hoàn ch nh có m i quan h kích c nào ó gi a nút cha m và nút con c i là ng (heap). ng khác v i cây nh phân ch ng không có m i quan h kích th c nào ó gi a các anh em.

16 Ch

ng 1 C u trúc d

Hình 1-3-22 Ví d v

li u ng

ng

ây không ph i là

ng 9

9 7

6

1

7

8

3

8

3

5

1

4

6

4

5

i quan h v kích c trong hình ch nh t ch m là khác nhau

i vì ng có c u trúc c a cây nh phân hoàn ch nh, nên nó là m t lo i cây cân b ng, t ch c c. Trong tr ng h p c a ng, giá tr t i a (hay giá tr t i thi u) c a t t c các d li u c ghi l i trong g c. B ng vi c dùng c tr ng này, d li u có th c s p x p b ng vi c l y ra d li u t i g c theo cách tu n t . Hình 1-3-23 S p x p d li u dùng

ng

1

2 6

6

4

5

3

1

5

5

4

2

3

1

3

2

4 4

3

1

4

2

3

3

1

2

1.3 C u trúc d

1.3.5

li u h

ng v n

17

m

m là cách dùng m t c u trúc d li u ki u m ng. V i vi c dùng b m, b n có th truy nh p tr c ti p vào d li u c bi t b ng vi c dùng m t khoá mà không ph i truy nh p l n l t vào li u c ghi.

(1) Chuy n

i sang

chuy bi u là: - Ph - Ph - Ph

n m t khoá sang

• Ph

ng pháp chia

Khoá th ng Ví d

a ch b m a ch b m (ch s ), ng

i ta dùng m t hàm b m. Hàm b m tiêu

ng pháp chia ng pháp ng kí ng pháp i c s . c chia theo m t giá tr nào ó (m t s nguyên t g n nh t v i s ph n t m ng c dùng) và s d c dùng làm a ch (ch s ) c a khoá. Khoá: 1234 và s ph n t m ng : 100 1234÷97 (s nguyên t g n 100 nh t) = 12 70 :

‚ Ph Khoá khoá. Ví d

ng pháp

ng kí

c phân tách theo m t qui t c nào ó và t ng

c dùng làm

Khoá: 1234 1234 c phân tách thành 12 và 34 và c hai s này 12 + 34 = 46 :

ƒ Ph

a ch (ch s ) a ch (ch s ) c a

c l y t ng.

a ch (ch s )

ng pháp chuy n c s

Khoá th ng c bi u di n theo s h th p phân, Khoá này c chuy n thành c s khác i th p phân (ch ng h n c s ba), và k t qu c dùng làm a ch (ch s ) c a khoá. Ví d

Khoá b n ghi: 1234 1 × 3 3 + 2 × 3 2 + 3 × 3 1 + 4 × 3 0 = 27 + 18 + 9 + 4 = 58 : a ch (ch s )

∗ Giá tr c a t ng ch s theo h c s 3 là 3 hay nh h n. Tuy nhiên trong tr này s ki n này không c n c tính t i.

(2)

ng h p

ng ngh a

Khi m t khoá c chuy n thành a ch b ng vi c dùng hàm b m, các khoá khác nhau có th c chuy n vào cùng m t a ch . u này c g i là ng ngh a (hay ng ) (xem Hình 1-3-24). M t b n ghi có th dùng a ch ã chuy n i c g i là b n ghi nhà còn b n ghi không th dùng c nó s c g i là b n ghi ng ngh a.

18 Ch

ng 1 C u trúc d

Hình 1-3-24 Xu t hi n u khóa

li u

ng ngh a

c chuy n thành 97 s d ng phép chia 39

Khóa b n ghi: 234 234 ÷ 97 = 2 40

40 Khóa b n ghi: 525 525 ÷ 97 = 5 40

gi i quy t s dùng: • Ph

ng ngh a, m t ph

X ng ngh a

ng pháp

n ghi có th cs ng v i khóa 234 (B n ghi nhà)

41

c bi t hay ph

c

ng pháp tu n t

ng vi c dùng ph ng pháp tu n t , b n ghi ng ngh a do c nh v g n a ch mong mu n. Có kh n ng là s theo ph n ng dây chuy n. ‚ Ph

ng pháp dây chuy n

c l u gi trong không gian t ng ngh a l i có th xu t hi n

ng pháp dây chuy n

i vi c dùng ph ng pháp dây chuy n, m t vùng b nh tách bi t c thi t l p và các n ghi ng ngh a c l u gi trong vùng này. Trong tr ng h p này, c n cung c p m t con tr ch ra a ch n i các b n ghi ng ngh a c c t gi .

Bài t p 19

Bài t p Q1

Khi l u gi m ng hai chi u "a" có m i hàng và m i c t trong không gian b nh liên t c theo hàng, a ch n i l u gi [5, 6] là gì? Trong câu h i này, a ch c bi u di n theo s th p phân. a ch 100 a [1, 1]

101 102

a [1, 1]

103

a. 145

Q2

b. 185

Q3

Con tr Con tr Con tr Con tr

u

cho Shizuoka cho Shizuoka cho Shizuoka cho Shizuoka

a ch 10 30 50 70 90 150

c c c c

li u Tokyo Nagoya Shin Yokohama Hamamatsu Atami Shizuoka

e. 212

Hai thao tác ng n x p

Con tr 50 0 90 30 70

t là 50 và con tr cho Hamamatsu c t là 150 t là 70 và con tr cho Atami c t là 150 t là 90 và con tr cho Hamamatsu c t là 150 t là 150 và con tr cho Atami c t là 90

C u trúc d li u thích h p cho thao tác FIFO (vào tr

a. Cây nh phân b. Hàng

Q4

d. 208

Hình d i ây là danh sách m t chi u. Tokyo ng u trong danh sách này và con tr ch a a ch c a d li u c nêu d i ây. Nagoya ng cu i c a danh sách và con tr ch a 0. Hãy ch n m t cách úng a thêm Shizuoka vào a ch 150 gi a Atami và Hamamatsu. Con tr 10

a. b. c. d.

c. 190

i

c. Ng n x p c

d.

c ra tr

c) là gì?

ng

nh ngh a nh sau:

PUSH n: D li u (nguyên "n") c y vào ng n x p. POP: D li u c b t ra kh i ng n x p. u thao tác ng n x p c th c hi n trên ng n x p r ng theo th t c c nêu d i ây, thì có th thu c k t qu gì? PUSH 1 → PUSH 5 → POP → PUSH 7 → PUSH 6 → PUSH 4 →POP → POP → PUSH 3 a

b

C

d

e

1

3

3

3

6

7

4

4

7

4

3

5

6

1

3

20 Ch

Q5

ng 1 C u trúc d

li u

Hình 2 là bi u di n m ng cho cây nh phân c t vào ch "a"? Ch s

200

180

220

190

150

Hình 1 Cây nh phân

130

a. 2

Q6

c v trong Hình 1. Giá tr nào nên Giá tr Con tr 1 Con tr 2

1

200

3

2

2

220

0

0 a

3

180

5

4

190

0

0

5

150

6

0

6

130

0

0

Hình 2 Bi u di n m ng cho cây nh phân

b. 3

c. 4

d. 5

Khi ph n t 12 b xoá kh i cây tìm ki m nh phân c v d i ây, ph n t nào nên c chuy n t i m ph n t ã b xoá t ch c l i cây tìm ki m nh phân? 6 4

8

2

5

1

12

7

3 9

a. 9

Q7

14

10

b. 10

11

13

c. 13

15

d. 14

N u hai hay ít h n hai nhánh ch ra t t ng nút c a m t cây, thì cây nh v y c i là cây nh phân. Cây nh phân bao g m m t nút, m t cây trái và m t cây ph i. Có ba ph ng pháp th c hi n tìm ki m trên cây này:

(1) Th ph (2) Th (3) Th

t g c tr c: Vi c tìm ki m i. t g c gi a: Vi c tìm ki m t g c sau: Vi c tìm ki m

c th c hi n theo th t c a nút, cây trái r i

n cây

c th c hi n theo th t c a cây trái, nút và cây ph i. c th c hi n theo th t cây trái, cây ph i và nút.

u vi c tìm ki m c th c hi n b ng vi c dùng ph ng pháp th t g c sau, thì k t qu nào trong các k t qu sau có th là cái ra xem nh giá tr c a nút? a b c h

a. abchidefjgk

e d

i

b. abechidfjgk

f

g

j

k

c. hcibdajfegk

d. hicdbjfkgea

Bài t p 21

Q8

Cây nh phân c v d i ây có th c. Bi u th c nào là úng?

c bi u di n b ng vi c dùng bi u th c s

÷

+ A

X

B

C

a. A + B × C + (D + E) ÷ F c. A + B × C - D + E ÷ F e. A × B + C - D + E ÷ F

Q9 a. b. c. d.

F

+ D

E

b. A + B × C - (D + E) ÷ F d. A × B + C + (D - E) ÷ F

Xét t i vi c l u gi d li u b ng cách dùng B-cây, hãy ch n câu chú thích úng t nh ng câu sau: Chia ra và g p l i các nút cho phép chi u sâu phân c p tr thành nh nhau. Nh n di n v trí n i d li u c l u gi b ng vi c dùng m t hàm nào ó và giá tr khoá. Ch có th truy nh p tu n t t i d li u u và d li u ti p ó. Có danh m c và m t thành viên. Thành viên là t p c t ch c tu n t .

Q10 Có m t

ng v i giá tr c a nút cha m nh h n giá tr c a nút con. chèn thêm li u vào trong ng này, b n có th thêm m t ph n t vào ph n sau nh t và l p i vi c trao i cha m v i con cái khi ph n t này nh h n cha m . Khi ph n t 7 c thêm vào v trí * c a ng ti p, ph n t nào s vào v trí A? 9 11

14 A

24 29

a. 7

25

28

19

34 *

b. 9

c. 11

d. 24

Q11 M t s có n m ch s (a1 a2 a3 a4 a5) ph i

e. 25

c l u gi trong m t m ng b ng vi c dùng ph ng pháp b m. N u hàm b m c xác nh nh mod (a1+a2+a3+a4+a5, 13) và n u s có n m ch s c l u gi trong m t ph n t m ng v trí sánh v i giá tr b m ã c tính, thì t i v trí ó 54321 s c t vào âu trong m ng c v d i ây? ây, giá tr mod (x, 13) là ph n d khi l y x chia cho 13. trí

M ng

⋅⋅⋅

0 1 2

11 12

22 Ch

ng 1 C u trúc d

a. 1

li u

b. 2

c. 7

d. 11

Q12 N m d li u v i các giá tr khoá 1 t i 1,000,000 ph i ng x y ra là gì? kích c c a b ng b m a. 0.2

b. 0.5

c phân b u và ng u nhiên trong ph m vi t c ng kí vào b ng b m kích c 10. Xác su t x p x cho ây, ph n d thu c khi m t giá tr khoá c chia theo c dùng nh giá tr b m. c. 0.7

d. 0.9

2

Thu t toán

c ích c a ch

ng

Các c s c a vi c l p trình là thi t k thu t toán. Trong thi t k c u trúc logic c a ch ng trình, u quan tr ng là dùng thu t toán thích h p nh t. T ng t nh v y, trong vi c ch n ch ng trình t th vi n, thu t toán nào c dùng là m t trong nh ng tiêu chu n quan tr ng nh t ch n ch ng trình thích h p nh t. Ch ng này mô t cho các c s c a thi t k thu t toán và các thu t toán tiêu bi u. • Hi u các c s c a thu t toán, nh nh ngh a thu t toán, thi t k , m i quan h v i c u trúc d li u, ph ng pháp bi u di n v.v.. ‚ Hi u c tr ng và ý ngh a c a các thu t toán tìm ki m, s p x p, x lí kí t và x lí t p tiêu bi u.

24 Ch

ng 2 Thu t toán

Gi i thi u Vi c dùng thu t toán hi u qu , d hi u làm cho ng i ta có kh n ng t ng t c th c hi n và gi m s l i còn b gi u kín. Thu t toán là m t trong nh ng nhân t m u ch t xác nh ra hi u ng h th ng. C ng v y, ch t l ng c a thu t toán c dùng làm tiêu chu n cho vi c ch n các b ph n t th vi n. Ch ng này mô t các c s c a thu t toán c dùng cho thi t k logic mô un và nh ng thu t toán c dùng gi i các bài toán n hình. Vi c ch n m t thu t toán n i ti ng hay th ng c dùng mà không phân tích y các v n c nêu ra là u c n tránh. Nên ch n l y m t thu t toán thích h p nh t cho các c tr ng c a bài toán. Vi c ánh giá b n thân thu t toán c ng là m t nhi m v quan tr ng. D li u thu c b ng vi c so sánh nhi u thu t toán trên c s con s khách quan s giúp ích r t nhi u cho b n trong vi c ch n thu t toán thích h p nh t. Trong ch ng này, các b n s h c nh ng c s v thu t toán cho các b n có th thi t k mô un d hi u.

2.1

s v thu t toán

c này gi i thích v : nh ngh a v thu t toán - M i quan h gi a thu t toán và c u trúc d li u

2.1.1 (1)

Thu t toán là gì?

nh ngh a v thu t toán

Thu t toán c nh ngh a trong Chu n công nghi p Nh t (JIS) là nh sau: t t p gi i h n các qui t c ã c xác nh rõ, c áp d ng m t s l n gi i quy t các n . u này có ngh a là thu t toán là t p các qui t c (th t c) c thi t l p gi i quy t các bài toán. Gi i m t bài toán, chúng ta có th l y nhi u con ng. Xem nh m t ví d n gi n, khi chúng ta tính m t giá tr Y l n l n h n X, chúng ta có th l y hai cách ti p c n: - Nhân X v i Y - C ng Y l n v i X Trong vi c xác nh thu t toán, u quan tr ng không ch ngh v th t c gi i bài toán mà còn thi t k và thích ng thu t toán sao cho có th gi i bài toán m t cách có hi u qu và hi u l c. t m quan tr ng khác là 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 và d li u còn thu t toán bao g m logic và u khi n. p trình có th c phân lo i thành b n ki u khác nhau t ng ng v i cách thu t toán c xem xét: - L p trình th t c - L p trình hàm - L p trình logic - L p trình h ng i t ng Ki u l p trình thích h p nh t ph i c ch n có xem xét t i các c tr ng c a bài toán. • L p trình th t c p trình th t c là ki u l p trình th ng c dùng nh t. Lo i l p trình này bao g m các ngôn ng l p trình sau, FORTRAN, COBOL, PL/I, Pascal, C, v.v.. c tr ng - Ch ng trình c chia thành các mô un làm cho ch ng trình ph c t p, l n thành hi u. Vi c vi t mã c th c hi n cho t ng mô un. - Các nh lí có 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. ‚ L p trình hàm p trình hàm là vi c l p trình theo h ng dùng các hàm. Nó c dùng trong l nh v c trí tu nhân t 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 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 ng, h th ng c xét nh m t nhóm các ng bao g m Smalltalk, C++, Java và các ngôn ng khác.

it

ng. Các ngôn

26 Ch

ng 2 Thu t toán

2.1.2

Thu t toán và c u trúc d li u

Thu t toán và c u trúc d li u có quan h ch t ch v i nhau. li u xác nh ra khuôn kh cho thu t toán.

ch ng m c nào ó, c u trúc d

(1) C u trúc d li u u trúc d li u c nh ngh a nh sau: t th t c mà ch ng trình tuân theo c t gi d li u và th c hi n nh ng nhi m v c giao.

ã

• C u trúc d li u c s Vi c l u gi d li u ngh a là l u gi d li u vào b nh chính. Trong l u gi d li u vào b nh chính, ki u d li u (ki u d li u, kích c , v.v..) ph i c khai báo. n v c u trúc d li u c s nh t th ng c dùng khai báo ki u d li u c g i là c u trúc d li u c s . Trong vi c th c hi n b c khai báo ki u d li u này, d li u c thao tác b ng vi c dùng tên c a d li u có ki u d li u ã c khai báo tr c. (Xem Hình 2-1-1.) ‚ C u trúc d li u h

ng v n

u trúc d li u h ng v n c xây d ng b ng vi c t h p các c u trúc d li u c s i m t hay nhi u c u trúc sau: - Danh sách - Ng n x p - Hàng i - C u trúc cây. Nh ng ph n t này c xác nh b ng vi c l p trình (các thu t toán ã c thi t k ). N u li u c x lí theo th t nó c a vào, thì hàng i c s d ng. N u d li u c lí theo th t o v i vi c a vào, thì ng n x p c dùng. Do ó, n i dung c a c u trúc d li u h ng v n c xác nh b i nh ng thu t toán v i c nào ó.

2.1 C

Ph n th t c

nh ngh a d li u

Hình 2-1-1

nh ngh a ph n d li u và th t c trình ch

s v thu t toán 27

ng trình COBOL

DATA DIVISION FILE SECTION FD TOUGETU-FILE 01 T-REC 02 T-HIZUKE PIC X(06). 88 T-ENDF VALUE HIGH-VALUE. 02 FILLER PIC X(34). FD RUISEKI-FILE. 01 R-REC. 02 R-HIZUKE PIC X(06). 88 R-ENDF VALUE HIGH-VALUE. 02 FILLER PIC X(34). 01 N-REC PIC X(40). WORKING-STORAGE SECTION. 01 T-COUNT PIC 9(05) 01 R-COUNT PIC 9(05) 01 N-COUNT PIC 9(05) * PROCEDURE DIVISION. HEIGOU-SYORI. OPEN INPUT TOUGETU-FILE RUISEKI-FILE OUTPUT N-RUISEKI-FILE. INITIALIZE T-COUNT R-COUNT N-COUNT. PERFORM T-YOMIKOMI. PERFORM R-YOMIKOMI PERFORM UNTIL T-ENF AND R-ENDF. IF T-HIZUKE < R-HIZUKE THEN WRITE N-REC FROM T-REC PERFORM T-YOMIKOMI ELSE WRITE N-REC FROM R-REC PERFORM R-YOMIKOMI END-IF COMPUTE N-COUNT = N-COUNT + 1 END-PERFORM. DISPLAY T-COUNT R-COUNT N-COUNT. CLOSE TOUGETU-FILE RUISEKI-FILE N-RUISEKI-FILE. STOP RUN. T-YOMIKOMI. READ TOUGETU-FILE AT END MOVE HIGH-VALUE TO T-HIZUKE NOT AT END COMPUTE T-COUNT = T-COUNT + 1 END-READ. R-YOMIKOMI. READ RUISEKI-FILE AT END MOVE HIGH-VALUE TO R-HIZUKE NOT AT END COMPUTE R-COUNT = R-COUNT + 1 END-READ

28 Ch

ng 2 Thu t toán

(2) Quan h gi a thu t toán và c u trúc d li u i quan h gi a thu t toán và c u trúc d li u có th

c mô t nh sau:

• X lí m ng y thu t toán duy t 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

các ph n t → N

TBL

1

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 ng c s d ng nhi u nh t duy t d li u. Trong khi th c hi n duy t tuy n tính trên d li u, d li u c duy t trong khi ch s trong m ng c t ng lên. t i a l n duy t c l p l i là kích c c a m ng. T c là, n u c u trúc d li u m ng c dùng, thì th t c và s l n l p l i là c xác nh. ‚ X lí t p y thu t toán c và in t p nh c nêu trong Hình 2-1-3 làm ví d . (Chi ti t c gi i thích trong m c 2.2.5.) Vi c x lí c, so n th o và in m t t p c l p l i cho t i khi không còn d li u trong t p. Vì t p ph i c truy nh p trong t ng chu trình x lí nên nhi m v này c th c hi n d i ng m t chu trình.

2.1 C

s v thu t toán 29

Hình 2-1-3 Thu t toán x lí t p và c u trúc d li u B t

u

p 0125

M t p

136900

In tiêu 0020 In ph n

0010

u

011100

050100

<Mã hàng> <S l

ct p

Ph n

u

ng

bán>

u vào c in

Hi u ch nh

Hi u ch nh

N i dung s a → vùng ra u ra

In ra

óng t p K t thúc

ƒ X lí danh sách Trong x lí c u trúc m ng, d li u có th c duy t và c p nh t m t cách tr n tru nh ng l i t th i gian chèn thêm hay xoá d li u. B i vì d li u c thu x p trong hàng i, nên vi c chèn thêm hay xoá d li u không tránh kh i i kèm v i vi c d ch chuy n d li u ra sau hay lên tr c. Hình 2-1-4 Chèn thêm d li u vào trong m ng

TBL

1

2

3

4

5

6

7

3

6

9

15

21

21

30

ch chuy n

18

X

Dùng c u trúc danh sách, vi c chèn thêm hay xoá d li u là d dàng. M c d u d li u c thu x p theo cách có tr t t trong c u trúc danh sách, nó c thu x p m t cách logic cho không c n ph i c thu x p v m t v t lí theo th t tu n t . Hình 2-1-5 C u trúc danh sách Ph n li u

Ph n con tr

Ph n li u

Ph n con tr

Ph n li u

Ph n con tr

Trong tr ng h p c a c u trúc danh sách, d li u không nh t thi t ph i b d ch chuy n nh c v trong Hình 2-1-6; d li u có th c chèn thêm hay xoá i b i vi c thao tác con tr t cách n gi n. Hình 2-1-6 Chèn thêm d li u vào trong danh sách Ph n li u

Ph n con tr

Ph n li u

Ph n li u

Ph n con tr

Ph n con tr

Ph n li u

Ph n con tr

30 Ch

ng 2 Thu t toán

2.2

Các thu t toán

Thu t toán nên c xem nh gi i quy t t ng bài toán c bi t. N u thu t toán có th gi i quy t các bài toán t ng t ã c thi t k và ã có s n, thì vi c dùng thu t toán nh v y s o kh n ng cho b n t o ra thu t toán t t h n theo cách hi u qu . c này mô t v các thu t toán tiêu bi u ã c phát tri n cho t i nay trong quan h v i ng ki u bài toán.

2.2.1

Thu t toán duy t

Vi c duy t b ng là ph ng pháp th c hi n vi c duy t trên 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 2-2-1 Hình nh v ph

ng pháp duy t

n gi n nh t cho m t b ng i t

u

n

ng pháp duy t vét c n 2

3

4

5

6

7

TBL 15 3

1

2

9

6

1

7

6

So sánh Tìm t u

8

n cu i t ng b

cm t

li u tìm ki m s c i chi u v i d li u trong b ng. Thu t toán này c thi t k sao cho vi c duy t là thành công ch n u có d li u sánh úng v i d li u c n tìm và nó là không thành công n u không có d li u nào sánh úng v i d li u c n tìm. Th t c duy t ch m d t khi vi c sánh thành công u tiên xu t hi n. Do ó, ph ng pháp duy t này là không thích h p cho vi c m s d li u sánh úng v i d li u c n tìm. ‚ Ph

ng pháp duy t lính canh

Ph ng pháp duy t lính canh dùng thu t toán mà trong ó cùng d li u (lính canh) nh d li u c n tìm c t vào cu i c a b ng làm n gi n hoá thu t toán duy t và làm gi m s l n d li u c so sánh.

2.2 Các thu t toán 31 Hình 2-2-2 Ph

ng pháp duy t lính canh 1

2

3

H

K

A

4

5

I

6

7

8

9

10

D

E

A

G

S

S N v trí

li u c n tìm

Lính canh th N +1 S

D li u t ng t nh d li u c n tìm c l u tr

u s d li u c ch a trong b ng là N, thì c ng d li u ó (lính canh) nh d li u c n tìm c l u gi vào v trí (N + 1) sao cho d li u c n tìm có th c i sánh ngay l p t c i d li u lính canh. Hình 2-2-3 ch ra vi c so sánh c a tr ng h p ph ng pháp duy t lính canh c dùng và tr ng h p nó không c dùng. Hình 2-2-3

So sánh tr ng h p ph không c dùng t

ng pháp duy t lính canh

t

u

Ch có 1 phép quá trình tìm ki m

ng h p nó

u

1→i

1→i

TBL ( i ) : X

so sánh trong

c dùng và tr

=

i:9 Có 2 phép so





sánh trong quá trình tìm ki m

i+1→i

TBL ( i ) : X

> Không tìm th

=

≠ i:9

>

i+1→i

Không tìm th

Tìm th

≤ Tìm th

t thúc

t thúc


ng h p ph

ng pháp duy t lính canh

c dùng>

Trong vòng th nh t c a vi c i chi u d li u, d li u c n tìm c xác th c. Trong vòng th hai, ph i xác nh li u có d li u sánh úng v i d li u c n tìm hay không. T c là, n u d li u là N, vi c so sánh c th c hi n ch (N + 1) l n.
ng h p ph

ng pháp duy t lính canh không

c dùng>

Trong m t vòng i chi u d li u, tính xác th c c a d li u c n tìm c ng nh li u vi c tìm ki m có k t thúc hay không ph i c xác nh. T c là, vi c so sánh c th c hi n (N × 2) n. <S l n so sánh c c - (N + 1) l n n u ph - (N × 2) l n n u ph

i

c th c hi n n u s ph n t là N:>

ng pháp duy t lính canh c dùng ng pháp duy t vét c n c dùng

32 Ch

ng 2 Thu t toán

(2) Ph

ng pháp duy t 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 Thu t toán cho ph

ng pháp duy t nh phân

c 1: L y t ng ch s d i u b ng và ch s d i cu i b ng chia 2. c 2: Ph n t có giá tr b c 1 c so sánh v i ph n t ích. c 3: N u có ph n t t ng t v i ph n t ích thì k t thúc tìm ki m. c 4: N u giá tr c a ph n t ích nh h n giá tr c a ph n t trong b ng, ch s c tr i 1 và giá tr c s d ng nh ch s bi u di n cu i b ng. u giá tr c a ph n t g c l n h n giá tr c a ph n t trong b ng thì ch s hi n t i c c ng thêm 1 và l y làm giá tr ch s c a u b ng. c 5: L p l i t b c 1 t i b c 4. N u ph n t gi ng ph n t ích không tìm th y t giá tr u ch s bi u di n u b ng l n h n giá tr ch s bi u di n cu i b ng, tìm ki m không thành công. K t thúc tìm ki m.

TBL(1) TBL(2) TBL

1002

1005

TBL(3)

TBL(4)

1010

1024

TBL(5) TBL(6) 1028

1052

TBL(7)

TBL(8)

1211

1322

TBL(9) TBL(10) 1866

2132

So sánh l n th nh t

X

1866 TBL(6)

TBL(7)

TBL(8)

1052

1211

1322

TBL(9) TBL(10) 1866

2132

So sánh l n th hai

X

1866 TBL(9) TBL(10) 1866

2132 So sánh l n th ba

X

1866

Vì các ph n t c x p theo th t t ng hay gi m, nên d li u nh h n d li u tham chi u không c n ph i c duy t n u d li u ang c duy t l n h n d li u tham chi u. Do ó, s li u c n duy t có th c gi m i m t n a sau l n duy t th nh t - m t u th l n v hi u qu duy t. Hình 2-2-5 ch ra s kh i c a ph ng pháp duy t nh phân.

2.2 Các thu t toán 33 Hình 2-2-5 L u

c a ph Ph

ng pháp duy t nh phân ng pháp duy t nh phân

các ph n t

→N

Nh p X 0 → Tìm th y Chú ý: [a] ngh a là ph n th p phân c a a c làm tròn thành a trong s nguyên

1→A

N→B

A > B ho c



Tìm th y = 1

Không A+ B 2

=

≠→ i

X : TBL ( i )

1 → Tìm th y

<



X : TBL ( i )

i +1 → A

i-1→B



Tìm th y : 1

>

= Tìm ki m thành công

Tìm ki m không thành công

t thúc

<S l n t i a và s l n trung bình

c th c hi n: N u s phân t là N>

- S l n trung bình = [log2N] - S l n t i a -[log2N] +1 ([ ] là kí hi u Gaussian và ph n th p phân c a giá tr trong kí hi u này

c làm tròn)

34 Ch

ng 2 Thu t toán

2.2.2

Thu t toán s p x p

Vi c s p x p d li u là vi c t ch c l i d li u theo m t th t c bi t. Vi c s p x p theo th giá tr t nh t i l n c g i là s p x p theo th t t ng, còn vi c s p d li u theo chi u ng c l i c g i là s p theo th t gi m. u d li u c s p x p hay t ch c theo m t th t c bi t nào ó (ti n l ng, mã hàng hoá v.v..), thì hi u qu c a công vi c x lí d li u có th c t ng lên. Do ó, thu t toán s 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

px p

p x p ngoài

Ph

ng pháp trao

ic s

Ph

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

ng pháp s p x p nhanh

Ph

ng pháp s p x p g p

p x p trong ngh a là s p x p d li u trong b nh chính. S p x p ngoài ngh a là s p x p d li u ã c l u gi trên a t và n v nh ph khác. Trong vi c ch n m t ph ng pháp s p x p, t c s p x p, c ng nh cách d li u c px p ph i c xem xét làm t i thi u th i gian c n cho vi c so sánh và tráo i d li u. Trong vi c ch n m t ph ng pháp, b n c ng ph i làm rõ th i gian tính toán ( ph c t p tính toán). m này s c mô t chi ti t trong M c 2.3.

(1) Ph

ng pháp tráo

i c s (s p x p n i b t - bubble sort)

Ph ng pháp tráo i c s (s p x p n i b t) c dùng so sánh m t c p d li u tu n t t u m ng. N u tr t t mà sai, thì d li u c tráo i. Khi t t c các kho n m c d li u trong t m ng c so sánh, thì trình này cho l i u m ng và nó c l p l i cho t i khi không còn kho n m c d li u nào c n tráo i n a. Ph ng pháp này là ph ng pháp s p x p n gi n nh t, n i ti ng nh t. Cái tên "s p x p n i b t" c cho b i vì vi c chuy n t i a hay t i thi u d li u gi ng nh b t n i lên b m t n c.

2.2 Các thu t toán 35 Hình 2-2-7 Các b

c c a ph

ng pháp tráo

ic s

Thu t toán s p x p d li u theo th t t ng d n B c 1: So sánh ph n t th nh t và th hai trong b ng. B c 2: N u ph n t th nh t l n h n ph n t th hai thì i ch ph n t th nh t và ph n t th hai. B c 3: N u ph n t th nh t nh h n ph n t th hai thì không i ch hai ph n t . B c 4: So sánh ph n t th hai và ph n t th ba và l p l i b c 2 và b c 3. B c 5: L p l i cho t i khi t i ph n t cu i cùng trong b ng. Khi tìm t i ph n t cu i cùng, giá tr l n nh t c l u tr trong ph n t cu i cùng trong b ng. B c 6: Th c hi n b c 1 t i b c 4 và b c 5 cho t i khi phép toán i t i ph n t cu i cùng tr t. B c 7: L p l i b c 1 t i b c 6 cho n khi ch còn l i ph n t th nh t và ph n t th hai trong b ng. t thúc vi c s p x p d li u 25

36

11

32

81

15

52

32

81

15

52

81

15

52

So sánh So sánh

i ch 25

11

36

So sánh

i ch 25

11

32

36

So sánh So sánh

i ch 25

11

32

36

15

81

52

So sánh Xác

i ch 25

11

32

36

15

52

81

32

36

15

52

81

nh là giá tr l n nh t

So sánh

i ch 11

25

So sánh So sánh So sánh ã xác

i ch 11

25

32

15

36

52

nh

81

So sánh t c các b c trên

ul pl im tl

t

c tr ng> - ây là m t trong nh ng ph ng pháp s p x p n gi n nh t - Tính hi u qu là th p vì d li u c so sánh vô u ki n ngay c khi chúng ã p úng. - N u kh i l ng d li u l n thì t n th i gian x lí.

cs p

36 Ch

ng 2 Thu t toán

ph c t p tính toán> -

ph c t p tính toán t i a: O (n2) ph c t p tính toán trung bình: O (n 2)

Hình 2-2-8

a ra l u

Hình 2-2-8 L u

c a ph

c a ph

ng pháp tráo

ng pháp tráo Ph

ng pháp trao

ic s ic s

các ph n t → N Vòng l p 1 N=1 1→i Vòng l p 2 i=N TBL ( i ) ≤ TBL ( i+1) Không TBL ( i ) → SAVE TBL (i+1) →TBL( i ) SAVE → TBL (i+1) i+1→i

Vòng l p 2 N-1→N

Vòng l p 1

t thúc



ic s .

2.2 Các thu t toán 37

(2)

Ph

ng pháp l a c s (basic selection sort)

Trong thu t toán s p x p c a ph ng pháp l a c s , m t kho n m c d li u v i giá tr nh nh t (hay l n nh t) c ch n ra u tiên t t t c các kho n m c d li u và nó c tráo i i kho n m c d li u u m ng, r i cùng vi c này c th c hi n l p l i trên t t c các kho n m c d li u còn l i. Khi d li u úng a vào v trí cu i cùng là m t, thì vi c s p x p li u c hoàn thành. Vì ph ng pháp này cho phép ph n t còn l i v i giá tr nh nh t hay l n nh t c ch n l a, nên nó c g i là ph ng pháp l a c s . Hình 2-2-9 a ra thu t toán c a ph ng pháp l a c s . Hình 2-2-9 Các b

c c a ph

ng pháp l a c s

Các b c trong thu t toán s p x p d li u theo th t t ng d n B c 1: Phát hi n ph n t d li u có giá tr nh nh t trong b ng. B c 2: Trao i ph n t d li u có giá tr nh nh t v i ph n t d li u u tiên trong b ng. B c 3: Phát hi n ph n t d li u có giá tr nh nh t trong các ph n t còn l i trong b ng. B c 4: Trao i ph n t d li u có giá tr nh nh t trong b c 3 v i ph n t li u th hai trong b ng. B c 5: L p l i ho t ng trên cho t i ph n t d li u cu i cùng c tìm ra. Khi ph n t d li u cu i cùng c tìm ra là ph n t có giá tr nh nh t thì hoàn thành vi c s p x p d li u.

Tìm ph n t d li u có giá tr nh nh t 25

36

11

32

81

46

52

i ch Tìm ph n t d li u có giá tr nh nh t 11

36

25

i ch

11

25

32

Tìm ph n t 36

32

i ch

11

81

25 32

81

46

d li u có giá tr nh nh t 46

Tìm ph n t 36

81

52

46

52 d li u có giá tr nh nh t 52

Tìm ph n t d li u có giá tr nh nh t 11

25 32

36

81

46

i ch

11

25

32

36

46

52 So sánh

81

52

i ch 11

25

32

36

46

52

81

c tr ng> - M t trong các ph ng pháp s p x p n gi n nh t, nh ph - Tính hi u qu th p vì kho n m c d li u c so sánh vô

ng pháp tráo i u ki n ngay c khi chúng

38 Ch

ng 2 Thu t toán

c s p x p úng. - N u kh i l ng d li u l n, thì t n th i gian x lí. ph c t p tính toán> -

ph c t p tính toán t i a: O (n2) ph c t p tính toán trung bình: O (n 2)

Hình 2-2-10

a ra l u

Hình 2-2-10 L u

c a ph

c a ph

ng pháp l a c s .

ng pháp l a c s Ph

ng pháp l a c s các ph n t

→N

Vòng l p 1 i = 1, , N - 1 i → MIN Vòng l p 2 j = i, , N

TBL ( MIN ) : TBL ( j )

> j → MIN

Vòng l p 2

TBL ( i ) → SAVE TBL (MIN) →TBL( i ) SAVE → TBL (MIN)

Vòng l p 1

t thúc



2.2 Các thu t toán 39

(3) Ph

ng pháp chèn c s (basic insert sort)

Trong thu t toán c a ph ng pháp chèn c s , trong khi các kho n m c d li u c s p, m t kho n m c d li u ch a s p x p c chèn vào v trí úng trong trình t các kho n m c d li u ã c s p x p. Hình 2-2-11 a ra thu t toán cho ph ng pháp chèn c s . Hình 2-2-11 Các b

c c a ph

ng pháp chèn c s

Thu t toán s p x p d li u theo th t B

t ng d n

c 1: So sánh ph n t th nh t và th 2 trong b ng.

B

c 2: N u ph n t th nh t nh h n ph n t th hai, gi nguyên tr t t .

B

c 3: N u ph n t th hai nh h n ph n t th nh t,

i ch ph n t th hai và th nh t.

Lúc này ph n t th nh t và ph n t th hai ã theo úng tr t t . B

c 4:So sánh ph n t th hai và ph n t

B

c 5: N u ph n t th hai nh h n ph n t th ba, gi nguyên tr t t .

B

c 6: N u ph n t th ba nh h n ph n t th hai, Sau ó ph n t này c l p l i cho

c so sánh v i ph n t tr

36

i ch ph n t th hai và ph n t th ba. c ó theo b

c 2 và 3. Nh ng b

n khi ph n t cu i cùng trong b ng

11

32

81

15

52

11

32

81

15

52

32

81

15

52

81

15

52

15

52

c

t vào úng v trí.

So sánh

25

36

So sánh i ch

11

So sánh i ch

25

36

So sánh i ch

So sánh

11

25

32

36

11

25

32

36

So sánh

81

So sánh i ch So sánh i ch

So sánh

11

15

So sánh i ch

25

So sánh i ch

32

36

81

So sánh

11

15

c này

n khi các ph n t theo úng th t t ng d n

B c 7: L p l i b c 4, 5 và 6 cho t thúc vi c s p x p d li u. 25

th ba.

25

32

36

52

52 So sánh i ch

81

c tr ng> - M t trong các ph ng pháp s p x p n gi n nh t, nh ph ng pháp tráo i - Vì d li u ng tr c ã c s p nên t c so sánh và chèn thêm là nhanh. - N u kh i l ng d li u l n, t n th i gian x lí.

40 Ch

ng 2 Thu t toán

Hình 2-2-12

a ra l u

Hình 2-2-12 L u

c a ph

c a ph

ng pháp chèn c s .

ng pháp chèn c s Ph

ng pháp chèn c s các ph n t

→N

2→j Vòng l p 1 j>N j-1→k Vòng l p 2 TBL (k) ≤ TBL(k+1) ho c k < 1 TBL ( k ) → SAVE TBL (k+1) →TBL(k) SAVE → TBL (k+1) k-1→k

Vòng l p 2

j+1→j

Vòng l p 1

t thúc

2.2 Các thu t toán 41

(4) Ph

ng pháp s p x p sàng l c (shaker sort)

Thu t toán c a ph ng pháp s p x p sàng l c v c b n là gi ng nh ph ng pháp tráo i c (s p x p n i b t). Trong thu t toán c a ph ng pháp tráo i c s , các kho n m c d li u c so sánh t trái sang ph i và c s p theo cách giá tr c c i (c c ti u) c t vào v trí bên ph i nh t. Tuy nhiên, trong thu t toán c a ph ng pháp s p x p sàng l c, các kho n c d li u tr c h t c so sánh t trái sang ph i, sau ó, sau khi giá tr c c i (c c ti u) ã c t vào v trí bên ph i nh t, thì các kho n m c c so sánh t ph i sang trái và giá tr c ti u (c c i) c t vào v trí bên trái nh t; thao tác này c th c hi n l p l i s p p d li u. c tr ng> - N u kh i l Hình 2-2-13

ng d li u l n, thì t n th i gian. a ra l u

Hình 2-2-13 L u

c a ph

c a ph

ng pháp s p x p sàng l c.

ng pháp s p x p sàng l c 1

p x p sàng l c các ph n t

W→S S→i

→j

1→E j→S 1 →W

Vòng l p 3 i=E

Vòng l p 1 E≥S

TBL (i - 1) : TBL ( i )

>

E→i

TBL ( i ) → SAVE TBL ( i - 1) → TBL( i ) SAVE → TBL (i 1)

Vòng l p 2 i=S

i→W TBL ( i ) :TBL ( i+1)







i-1→i

> Vòng l p 3

TBL( i ) → SAVE TBL( i +1) → TBL ( i ) SAVE → TBL (i+1) TBL ( k ) → SAVE



W→E

Vòng l p 1

i +1 → i t thúc Vòng l p 2

1

∗ V trí n i y u t d li u c trao c l u tr trong b nh .

i

42 Ch

ng 2 Thu t toán

(5) Ph

ng pháp s p x p bóc v (Shell sort method)

Ph

ng pháp s p x p bóc v là phiên b n m r ng c a ph ng pháp chèn c s . Hai kho n c d li u xa nhau vào m t kho ng nào ó c l y ra so sánh v i nhau. Kho ng này i là l h ng. L h ng này c t l n lúc b t u s p x p; khi vi c s p x p ti n tri n, nó n c làm nh l i và cu i cùng c t là 1. Có nh ng cách khác xác nh l h ng này. u s d li u là n, m t cách n gi n xác nh l h ng là [n/2], [n/4],··· 1. Khi l h ng này cu i cùng c t là 1, thì vi c s p x p c th c hi n theo ích xác cùng cách nh ph ng pháp chèn c s . Dùng ph ng pháp chèn c s , các ph n t k nhau c so sánh và tráo i và, do ó, t c th c hi n th p. Dùng ph ng pháp s p x p bóc v , các m u d li u xa nhau và n m nh ng trí khác nhau nhanh chóng c tráo i cho các kho n m c d li u c s p sai v trí có th c s p l i v v trí úng trong nh ng giai n s m nh t c a thao tác s p x p. Khi vi c p x p ti n hành, l h ng gi a các kho n m c d li u c n c so sánh s h p d n. Hình 2-2-14 a ra thu t toán c a ph ng pháp s p x p bóc v . Hình 2-2-14 Các b TBL

c c a ph 1

2

3

4

5

6

7

8

7

9

6

10

2

5

8

4

1

TBL

ng pháp s p x p bóc v

2

3

Kho ng cách = 8/2 =4

4

1

2

3

4

5

6

7

8

2

5

6

4

7

9

8

10

Kho ng cách = 4/2 =2

1

TBL

2

1

2

3

4

2

4

6

5

c tr ng>

5 7

6 9

7

8

8

10

Kho ng cách = 2/2 =1

- N u m t ph n c a d li u ã c s p, thì vi c s p x p có th chóng. - Ph ng pháp s p x p t c cao dùng ph ng pháp chèn c s Hình 2-2-15

a ra l u

c a ph

ng pháp s p x p bóc v .

c hoàn t t r t nhanh

2.2 Các thu t toán 43

Hình 2-2-15 L u

c a ph

ng pháp s p x p bóc v A

p x p bóc v các ph n t

Vòng l p 3

→N

N → Kho ng cách

m+1→m

Vòng l p 1 Kho ng cách <1

Vòng l p 2

Tính kho ng cách → kho ng cách

Vòng l p 1

1→m t thúc Vòng l p 2 m > kho ng cách m+kho ng cách → h Vòng l p 3 h>N

h

kho ng cách→ j Vòng l p 4 j
TBL ( j ) > TBL ( j+kho ng cách)

> Có TBL( J ) → SAVE TBL(j+kho ng cách) →TBL(j) SAVE →TBL(j+kho ng cách) j - kho ng cách → j

Vòng l p 4

h +kho ng cách→h A

không

44 Ch

(6) Ph

ng 2 Thu t toán

ng pháp s p x p nhanh (Quick sort method)

Ph ng pháp s p x p nhanh do Hoare thi t k ra. Nó hi n th i là ph nh t dùng ph ng pháp g i qui.

ng pháp s p x p nhanh

<S p x p d li u theo th t t ng> 1. M t giá tr tham chi u ( m th hay giá tr th ) c ch n t d li u c n s p x p. M c u các giá tr khác nhau c dùng nh giá tr tham chi u, m t giá tr trung gian c a ba ph n t (ph n t ph i, gi a và trái) th ng c dùng. Chúng ta dùng giá tr trung gian trong ví d s p x p c nêu d i ây. Hình 2-2-16 Th (giá tr th ) Dãy d li u

6

11

7

4

3

88

12

1

13

9

m th (giá tr th )

2. Nh ng kho n m c d li u nh h n giá tr th c chuy n sang bên trái c a kho n m c li u th trong khi các kho n m c d li u l n h n giá tr th c chuy n sang bên ph i c a nó. T t c các kho n m c d li u v y c chia thành hai ph n. Hình 2-2-17 Chuy n d li u m c d li u m c d li u

Hàng kho n Hàng kho n

m th

Kho n m c d

Kho n m c d

li u nh h n

li u l n h n

m th {Ví d }

6

1

7

4

m th

3

8

Kho n m c d li u nh h n 8

m th

3.

12

11 13

9

Kho n m c d li u l n h n 8

m th c ch n t m i ph n c a các kho n m c d li u cho ph n này chia thêm n a thành hai ph n con. 4. Thao tác phân chia này c l p l i cho t i khi ch còn l i m t ph n t . Hình 2-2-18 D li u sau khi vi c s p x p 1

Ph

3

4

6

c phân

c hoàn t t 7

8

9

11

12 13

ng pháp phân chia m t v n l n thành nh ng v n nh và gi i quy t t ng v n nh t cách riêng r , nh ph ng pháp s p x p nhanh này, c g i là ph ng pháp chia và tr . Trong khi th c hi n các b c 3 và 4 trên, ph ng pháp g i qui t g i t i chính nó nói chung c s d ng. Ph ng pháp g i qui này th ng c dùng tính giai th a. (Xem Hình 2-2-19.)

2.2 Các thu t toán 45 Hình 2-2-19 Thu t toán tính giai th a f (k) Không

k>0 Có f (k

1) X k → f ( k )

1→f(k)

t thúc

ph c t p tính toán, n u tr ng h p lí t ng, m th có th chia d li u thành hai ph n bao gi c ng có th ch n c, thì s l n so sánh s r t g n v i O (nlogn). N u giá tr c c i (c c ti u) trong dãy d li u bao gi c ng c ch n làm m th , thì s l n so sánh s là t i nh t, O (n 2). M c d u ph c t p tính toán th ng ch ra ph c t p tính toán c c i, tr ng h p nh th này có th x y ra mà ph c t p tính toán trung bình tr thành m t ch báo quan tr ng. Sau khi các kho n m c d li u c phân chia thành hai ph n, các kho n m c d li u trong i ph n là ch cho m t trình qui có th c x lí riêng bi t. Do ó, vi c x lí song song có th c th c hi n. Th i gian x lí trung bình là O (logn) n u vi c x lí song song c th c hi n. Hình 2-2-20 a ra thu t toán th c hi n vi c s p x p nhanh chóng v i t p th v trí bên ph i nh t c a m ng. c bi t, hai con tr c dùng và trình này ti n hành t c hai u i vào trung tâm c a dãy li u. M t con tr i t trái sang ph i là "i" và m t con tr i t ph i sang trái là "j." Hình 2-2-20 Thu t toán v ph

ng pháp s p x p nhanh

m th

(1) (2) (3) (4) (5) (6) (7) c 1:

ây là b

ng a

c chu n b , kh i ch y các

25

36

11 32

81 15 52

con tr i và j.

Vì 15 < 52, j không th chuy n

-

i t i v trí cu i cùng bên trái và b ng 1

-

j t i v trí cu i cùng bên ph i nh ng a(7) a c 2-1: i

36

11 32

81 15 52 a(i)

c chuy n sang ph i cho t i khi

tìm ra kho n m c l n h n c 2-2: j

m chu n.

25

36

11 32 15

Vì i > j, hoàn thành s p x p

m chu n.

i ch a ( i ) và a ( j )

c 2-4: L p l i b

25

36

11 32 15

81 52

c 2-1, 2-2, 2-3 cho t i khi i

a( i)

≥ j. c 2-5: a ( i )

i ch v i

m chu n t i cu i

25

36

11 32 15 52

cùng bên ph i Các kho n m c nh h n

Hình 2-2-21

a ra l u

c a ph

i ch cho a ( j )

81 52

c chuy n sang trái cho t i khi tìm

ra kho n m c nh h n c 2-3:

25

m chu n là 6

ng pháp s p x p nhanh.

m th

i ch v i

m th

81

Các kho n m c l n h n m th

m th

46 Ch

ng 2 Thu t toán

Hình 2-2-21 Thu t toán c a ph

ng pháp s p x p nhanh

p x p nhanh

Phân chia s→i

ng các thông s nh n c x lý: a trí b t u: s trí k t thúc:e

e

<

Vòng l p 2 i≥j ho c a ( i ) ≥ m th

Phân chia → j g i S p x p nhanh

m th

Vòng l p 1 i≥j



s:e

1→ j

a( e)→

*

1

i+1→i

*

2

Vòng l p 2

g i S p x p nhanh

t thúc

* *

1 Các thông s (a, s, j 1) 2 Các thông s (a, j + 1, e)

Vòng l p 3 i ≥j ho c m th ≥ a( j) j

1→ j

Vòng l p 3

i:j

< a ( i ) → SAVE a(j)→a(i) SAVE → a ( j )

Vòng l p 1

a ( i ) → SAVE a( e)→a(i) SAVE → a ( j ) Tr v j



2.2 Các thu t toán 47

(7)

Ph

ng pháp s p x p g p (Merge sort method)

Trong thu t toán c a ph ng pháp s p x p g p, t t c các kho n m c d li u c phân chia thành các ph n và vi c s p x p c th c hi n theo t ng ph n ã c chia ra. Các ph n c px p c g p vào trong dãy c s p x p (xem Hình 2-2-22). G p ngh a là so sánh các các kho n m c d li u trong hai dãy cs px pt u và t o ra m t dãy d li u cs p p b ng vi c l y ra l p i l p l i kho n m c d li u nh h n theo cách tu n t . N u s kho n c d li u là 2n, l p vi c g p n l n s hoàn thành vi c s p x p. N u nó không ph i là 2n, thì ns u ch nh nào ó. Hình 2-2-22 Bi u

khái ni m v s p x p g p qui)

qui)

Phân chia

Phân chia

Phân chia

S p xêp

S p xêp

S p xêp

G pl i

c tr ng>

G pl i (Tr v )

G pl i (Tr v )

- L i g i qui và ph ng pháp chia và tr c dùng, nh trong tr ng h p ph ng pháp p x p nhanh. - Vì các dãy d li u c truy nh p tu n t và c s p x p, nên thu t toán s p x p g p c dùng cho vi c s p x p ngoài, ch ng h n s p x p d li u trên b ng t . 1. D li u c phân chia thành hai ph n và t ng ph n c chia nh thêm n a cho t i khi ch còn l i m t ph n t trong dãy d li u. 2. Sau khi dãy d li u c phân chia, các ph n c phân chia c g p tu n t l i. Các hình 2-2-23 và 2-2-24 a ra tr ng thái c a dãy d li u trong các thao tác s p x p g p và u c a ph ng pháp s p x p g p. Hình 2-2-23 Tr ng thái c a dãy d li u trong các thao tác s p x p Dãy d li u

8

2

6

4

7

8

2

6

4

7

4

7

5

1

3

7

5

1

3

8

2

6

8

2

6

4

5

5

1

3

1

3

Phân chia l n 1 (

qui)

Phân chia l n 2 (

qui)

Phân chia l n 3 (

qui)

(S các kho n m c là 1 và k t thúc 2

2

1

8

4

2

4

6

3

6

8

4

5

1

5

7

3

6

1

5

7

< Hoàn thành vi c s p x p>

3

7

8

pl n1 (tr l i nh pl n2 (Tr l i nh pl n3 (K t thúc nh

ng

ng

ng

qui)

qui)

qui)

qui)

48 Ch

ng 2 Thu t toán

HÌnh 2-2-24 L u t

c a ph

ng pháp s p x p g p Các -

px pg p

u

1→S

S:N

thông s (tham s ) Dãy d li u: TBL V trí b t u trong dãy d li u: S V trí k t thúc trong dãy d li u: N

=

<

các ph n t → N

[(S + N) / 2] → H

p x p n a dãy d li u c chia u tiên

S px pg p S px pg p t thúc

S px pg p Dãy

u tiên và m t n a dãy sau cg pl i

t thúc

p x p n a dãy d li u sau

Thông s - Dãy d - V trí b - V trí b - V trí k

Các thông s - Dãy d li u: TBL - V trí b t u dãy d - V trí k t thúc dãy d Các thông s - Dãy d li u: TBL - V trí b t u dãy d - V trí k t thúc dãy d

li u: TBL t u c a n a dãy d li u u tiên: S t u c a n a dãy d li u sau: H t thúc c a n a dãy d li u sau: N

li u: S li u: H-1

li u: H li u: N

2.2 Các thu t toán 49

2.2.3

Thu t toán

qui

i g i qui là vi c m t trình g i t i chính nó trong khi x lí d li u. Thu t toán c thi t b ng vi c dùng l i g i qui là thu t toán g i qui. Các thu t toán s p x p nhanh và s p p g p c ng là nh ng thu t toán qui. c này xét "bài toán tám h u" nh m t thí d gi i thích cách thu t toán qui làm vi c.

(1) Bài toán tám h u Bài toán tám h u là bài toán tìm cách b trí tám con h u trên bàn c (k ô 8x8) sao cho không con nào n c con nào. Con h u là m t con c , và nó có th n con c khác n m trên các ng ng, ngang hay chéo n i v i nó. Do ó trong câu tr l i, các con h u ph i c t theo cách chúng không vào trên cùng m t ng th ng. Hình 2-2-25 nêu ra m t trong nh ng câu tr l i. Hình 2-2-25 Ví d v câu tr l i cho câu h i tám h u 1 1

2

3

4

5

6

Q Q

3

Q

4

Q Q

6 7 8

8

Q

2

5

7

Q Q

Q:H u

Trong vi c gi i bài toán này, b n cách b trí sau ây c dùng: q [i]: V trí n i m t con h u c t vào c t th i (i=1 t i 8) Trong ví d trên, q = {1, 5, 8, 6, 3, 7, 2, 4} x [j]: Ch ra li u có con h u nào trên hàng th j (j=1 t i 8) không y [k]: Ch ra li u có con h u nào trên ng chéo i lên t trái sang ph i th k không. Trên cùng ng chéo i lên trái sang ph i, i + j bao gi c ng nh nhau. u này có th c dùng thu c m t ch s "k" v i i+j-1 (k=1 t i 15). Z [l]: Ch ra li u có con h u nào ng chéo xu ng d i t trái sang ph i v trí th l không. Trên cùng ng chéo xu ng d i trái sang ph i, i-j bao gi c ng nh nhau. u này có th c dùng l y ch s "l" v i i-j+8 (l=1 t i 15). ∗ V i các m ng x, y và z, các ch s 0 và 1 ngh a là 'không có con h u' và 'có con h u' t ng ng. Hình 2-2-26

a ra l u

v thu t toán cho vi c gi i bài toán này.

50 Ch

ng 2 Thu t toán

Hình 2-2-26 L u

c a bài toán tám h u t

u

u ( i, F )

t c các y u t trong t t c các m ng u kh i u b ng 0

0→j p th

0→F j+1→j

u ( i, F )

F:1



x [ j ] + y [i + j 1] + z [i j + 8] → W

= u ra là các ph< n c a m ng



W:0 =

t thúc

j →q[i] 1 → x [ j ], y[i+j z[i

1],

j+8]



i:8

< 1→F

H u ( i + 1, F)



F:0

= 0 → x [ j ], y[i+j z[i

1],

j+8]

F = 1 ho c j = 8 p th Thoát

2.2 Các thu t toán 51

2.2.4 Kí t

lí xâu kí t

c duy t, chèn thêm, xoá, tráo

i hay nén l i. M c này mô t vi c duy t và nén xâu.

(1) Duy t xâu kí t duy t xâu kí t , ta dùng thu t toán cho vi c duy t m t m u xâu nào ó và xâu kí t . •

i sánh

nh v nó trong

n gi n

nb n c so sánh theo t ng kí t m t cách tu n t t u. Khi m t xâu kí t c duy t qua, thì v trí t i ó ang duy t qua s c t là giá tr cho l i. V nguyên t c, vi c so sánh này c th c hi n l p l i cho t i khi kí t th nh t c a xâu kí t c n duy t sánh úng v i kí trong xâu kí t c a v n b n. N u có s sánh úng, t ng kí t còn l i c a xâu kí t em sánh s c so sánh v i t ng kí t c a xâu kí t c n duy t. Hình 2-2-27 Hình nh c a vi c duy t TBL

1

2

3

T

h

e

Không kh p S

4

5

6

7

8

9

w

e

a

t

h

10 11 e

r

a e

Kh p a

t

h

1

2

3

trí cu i cùng c a chu i ký t

c

t là b

52 Ch

ng 2 Thu t toán

Hình 2-2-28 L u

c a

i sánh

n t

u

1→j a

b + 1→ E off → S W

Vòng l p 1 J > E ho c S W = on 1→k Vòng l p 2 k > b ho c TBL (j + k 1) ≠ S(k) k+1→k Vòng l p 2

không

k>b Có on → S W u tìm ki m thành công, in ra v trí d ng l i.

j+1→j

In giá tr j

Vòng l p 1

t thúc

‚ Ph

ng pháp Boyer-Moore ( ph

ng pháp BM)

Trong thu t toán Boyer-Moore, d li u c i sánh trong khi các kí t trong v n b n qua. Trong m c này, ta ch gi i thích l c c s c a thu t toán này. a. N u không có xâu kí t nào

c

duy t

Hình 2-2-29 ch ra vi c so sánh uôi c a xâu kí t c n duy t và m u v n b n.

T t c các chu i ký t u không kh p

Hình 2-2-29 Ph

ng pháp BM (tr

Chu i ký t

1

2

ng h p 1) 3

4

5

6

7

r

Chu i ký t f c tìm ki m

i

n

8 a

9

10 11 12

13 14 15

n

e

(D ch chuy n)

f

i

n

e

Trong tr ng h p này, kí t t i uôi, và t t c các kí t khác trong ph n v n b n th nh t không sánh úng v i b t kì kí t nào c a xâu kí t c n c duy t. Do ó, m duy t c chuy n i theo chi u dài c a xâu kí t c duy t cho phép vi c duy t ti p c t ut m ó.

2.2 Các thu t toán 53

b. N u có vi c sánh úng v i m t kí t t i uôi c a xâu kí t c n duy t Hình 2-2-30 a ra tr ng h p trong ó m t kí t t i uôi c a xâu kí t c n duy t sánh v i m u v n b n và có vi c so sánh úng. Hình 2-2-30 Ph

ng pháp BM (tr 1

2

c so

ng h p 2) 3

4

5

6

7

8

r

9

10 11 12

e 3

4

f

2

i

Phù h p

1

n

13 14 15

e

e

Vì m t kí t t i uôi c a xâu kí t so sánh úng v i m t kí t trong v n b n, nên các kí t ng tr c kí t so sánh úng này ph i c so sánh. N u t t c các kí t u so sánh úng, thì giá tr ch s c a kí t th nh t c a m u v n b n so sánh úng c cho l i. Hình 2-2-31 Duy t thành công Giá tr c a ký t u tiên c quay tr l i 1 2 3 4

5

r

f

f

6 i

7 n

i

n


c. N u có vi c sánh úng v i m t kí t sánh v i m t kí t uôi c a xâu kí t

8

9

10 11 12

e

13 14 15

r

e phù h p>

âu ó trong xâu kí t nh ng l i không

Trong tr ng h p này c v Hình 2-2-32, xâu kí t c n duy t có th i. V n là kho ng cách di chuy n.

n gi n

c

Kho ng cách di chuy n c xác nh b i cách các kí t trong xâu kí t c n duy t trí nh c v trong Hình 2-2-33.

c

Hình 2-2-32 Ph

ng pháp BM (tr 1

2

ng h p 3) 3

4

5

6

7

8

a

9

10 11 12

i Phù h p f

13 14 15

k

x x

i

n

e

(Di chuy n b i 3 ký t ) f

i

n

e

Hình 2-2-33 Kho ng cách di chuy n Ký t f Kho ng cách di chuy n 3

i 2

n 1

e các ký t khác 0 4

ng cách l u gi kho ng cách di chuy n này trong m t m ng, xâu kí t c n duy t có th c di chuy n t i v trí úng.

54 Ch

ng 2 Thu t toán

(2) Nén xâu kí t Làm cho m t xâu kí t ng n l i b ng vi c thay th nh ng kí t liên ti p hay d u cách b ng s ng kí t ó c g i là nén xâu kí t . c này gi i thích thu t toán nén các kí t d u tr ng (d u cách). Trong tr ng h p c a ví d c nêu trong Hình 2-2-34, xâu kí t c duy t t u, và n u có ba kí t tr ng liên ti p, chúng s c thay th b ng m t kí t c bi t (#) và s các kí t tr ng. Hình 2-2-34 Hình nh v nén xâu kí t 1

2

3

4

TBL A

TBL B

3

4

5

6

7

8

T Y

A

U

5

7

8

Hình 2-2-35

10 11 12

2

#

4 T Y A U # 5 K K U O

a ra l u

Hình 2-2-35 L u

13 14 15 16 17 18 19 20 21 K

1

Ký t

6

9

9

10 11 12

c bi t S ký t tr ng

K

U O

H

A S

13 14 15 16

H A S

u s ký t tr ng là m t ho c hai thì không ti n hành nén

c a vi c nén xâu kí t .

c a vi c nén xâu kí t t

u

các ph n t c a TBL A → N 1→a 1→ b Vòng l p 1 a> N 0 → inc Vòng l p 2 TBL A(a + inc) ≠ r ng ho c a + inc = N inc + 1 → inc

Vòng l p 2

Inc : 3 ≥ # → TBL B (b) inc → TBL B (b + 1) a + inc → a b+2→b Vòng l p 1

< Vòng l p 3 inc = 0 TBL A (a) → TBL B (b) a+1→a b+1→b inc - 1 → 1

t thúc Vòng l p 3

2.2 Các thu t toán 55

2.2.5

lí t p

Các t p khác nhau c dùng th c hi n nh ng nhi m v gi y t . lí cho t ng b n ghi m t. Thu t toán x lí t p n hình là nh sau:

c tr ng c a x lí t p là

Ví d lí chu n b : M t p, xoá b m v.v.. lí chính: Tính toán, so n th o, a ra v.v... lí k t thúc: óng t p, v.v.. c này mô t m t thu t toán cho vi c x lí các t p cùng ki u và thu t toán khác cho vi c x lí các t p ki u khác nhau.

(1) Ki m soát nhóm trong x lí các t p cùng ki u Ki m soát nhóm (t ng nhóm) là x lí các b n ghi v i cùng khoá nh m t t ng th . Trong vi c tính t ng s bán hàng cho t ng mã khách hàng (khoá = mã khách hàng) hay m c trung bình cho t ng l p (khoá = mã l p), ch ng h n, ki m soát nhóm là m t trình x lí không th thi u c. Ki m soát nhóm òi h i r ng các b n ghi c s p x p theo t ng khoá. Ví d

Thu t toán c t p s bán hàng và in ra b n in chi ti t v bán hàng và t ng bán cho m i ngày

• B trí t p bán hàng Hình 2-2-36

a ra b trí c a t p bán hàng.

Hình 2-2-36 B trí c a t p bán hàng 12 / 10 Nhóm 12 tháng 10

S004

12 / 10

S003

12 / 10

300000

S002

11 / 10

200000

150000

S003

350000

Nhóm 11 tháng 10 11 / 10

S001

10 / 10 10 / 10

200000

S004 S002

250000 50000

Nhóm 10 tháng 10 Ngày bán 10 / 10

Mã hàng S001

S l

ng

bán 100000

Nh ng th khác

56 Ch



ng 2 Thu t toán

nh d ng

a ra (b n in chi ti t v bán hàng)

Hình 2-2-37 a ra hàng t ng ngày. Hình 2-2-37

nh d ng

nh d ng

c dùng

c dùng

Ngày bán

Mã hàng

10 / 10

S001

a ra b n in chi ti t v bán hàng

S l

ng bán

100.000

10 / 10

S002

50.000

10 / 10

S004

250.000

ng s l

ng bán

400.000

11 / 10

S001

200.000

11 / 10

S003

350.000

ng s l

ng bán

550.000

12 / 10

S002

150.000

12 / 10

S003

300.000

12 / 10

S004

200.000

ng s l ng bán 650.000 ng toàn b s l ng bán 1.600.000

ƒL u

và s

in b n in chi ti t v bán hàng và t ng s bán

Danh sách chi ti t 10 tháng 10 ..T ng nhóm 10 tháng 10 Danh sách chi ti t 11 tháng 10 ..T ng nhóm 11 tháng 10 Danh sách chi ti t 12 tháng 10 ..T ng nhóm 12 tháng 10 ..T ng toàn b s l ng bán

chi ti t

thu c t ng nhóm, vi c phân chia gi a các nhóm ph i c phân bi t rõ. V i ch c bi t này, m mà ngày bán thay i tr thành vi c phân chia. Do ó, c n xác nh li u ngày bán hàng trong b n ghi m i c n p vào có sánh úng v i ngày trong các b n ghi ã lí g n ây nh t hay không. làm u này, m t khoá (ngày bán hàng) t m th i cc t gi tr c khi b n ghi u tiên trong nhóm c x lí, và nó c so sánh v i khoá (ngày bán hàng) c a các b n ghi quá kh . Hình 2-2-38 a ra l u c a ki m soát nhóm.

2.2 Các thu t toán 57

Hình 2-2-38 L u

c a ki m soát nhóm t

u

t

u

0 → t ng ph

Nh p các b n ghi bán

Ngày bán → ngày c ghi t m th i

a ra tiêu

Thoát

0 → t ng lý nhóm

Cho

u tiên Danh sách nhóm chi ti t

Vòng l p 1 n khi không có n ghi bán

Ngày bán: Ngày

=

Ngày bán, Mã hàng, l ng bán, Vùng ra

c ghi t m th i ≠

u ra chi ti t

a ra t ng s ph

ng + t ng ph → T ng toàn b

ng ph + s l ng bán → t ng ph Thoát

lý nhóm

u tiên

Danh sách chi ti t nhóm

Nh p các b n ghi bán Vòng l p 1

a ra t ng toàn ph n t thúc

58 Ch

ng 2 Thu t toán

(2) C p nh t nhi u t p u nhi u t p c so sánh b ng vi c dùng cùng tiêu chu n b ng vi c sánh, thì m i t p ph i c s p theo trình t c a khoá, nh trong tr ng h p c a ki m soát nhóm. Các nhi m v x lí t p là nh sau: - G pt p i sánh t p - C p nh t t p - Duy trì t p c này mô t nhi m v c p nh t t p. Vi c c p nh t t p là c p nh t t p chính d a trên d li u ch a trong t p giao tác. N u t p chính là t p tu n t , thì nó ph i c t o m i l i hoàn toàn. u t p chính có th c truy nh p ng u nhiên, thì không c n t o ra t p chính m i vì các b n ghi có th c tìm ki m b ng các khoá, và c c p nh t. T i ây, chúng ta gi i quy t v i th t c c p nh t n u t p chính là t p tu n t .

2.2 Các thu t toán 59

• C p nh t 1:1 p nh t 1:1 ngh a là vi c c p nh t c th c hi n n u t ng b n ghi trong t p chính sánh úng v i m t b n ghi trong t p giao tác. (Xem Hình 2-2-39.) Nhi u t p c c và trình x lí c xác nh b ng vi c so sánh kích c c a t ng khoá nh sau: Kích c c a khoá - TR key = MS key D li u c c p nh t. - TR key > MS key D li u c sao (d li u c vi t vào t p chính m i). - TR key < MS key D li u c b sung vào t p chính m i (có th là tr ng h p mà tr ng thái này c xem nh l i và trình x lí l i này th c hi n). Hình 2-2-39 Hình nh v c p nh t 1:1

li u s n sàng

c

u tr theo giá tr khóa

p

(cho m t khóa trong t p

giao

ch , có nhi u b n ghi giao d ch: n)

p ch

u tr theo giá tr khóa

ch

p nh t

Danh sách i

p ch i



Mã hàng

Tên hàng

S l ng bán

Mã hàng

134.000

Tên hàng

S l ng bán

S001

Television

S001

Television

656.000

S004

Video recorder

98.000

S002

Stereo

423.000

S006

Personal computer 156.000

S004

Video recorder

256.000

S007

Printer

43.000

S006

Personal computer

432.000

S009

Scanner

86.000

S007

Printer

83.000

S008

Digital camera

92.000

Mã hàng

Tên hàng

S001

Television

S l bán

ng

790.000

S002

Stereo

423.000

S004

Video recorder

354.000

S006

Personal computer 588.000

S007

Printer

S008

Digital camera

92.000

S009

Scanner

86.000



126.000

60 Ch

ng 2 Thu t toán

Hình 2-2-40

a ra l u

Hình 2-2-40 L u

c a c p nh t 1:1.

c a c p nh t 1:1 t

u

t p Nh p b n ghi M

Nh p b n ghi T p Cho n khi c 2 khóa M và T tr thành giá tr cao =

- Khóa M: khóa chính - Khóa T: khóa giao d ch



Khóa M : Khóa T

C p nh t b n ghi M d ng b n ghi T n ghi M → B n ghi M m i a ra b n ghi M m i Nh p b n ghi M

- B n ghi M: b n ghi chính - B n ghi T: b n ghi giao d ch

<

Khóa M : Khóa T

n ghi M → B n ghi M m i a ra b n ghi M m i

Nh p b n ghi M

Nh p b n ghi T

p

t thúc

>

u không có b n ghi phù h p trong t p chính (T p tin thi hành l i)

Nh p b n ghi T

2.2 Các thu t toán 61

‚ C p nh t 1:n p nh t 1:n là trình c p nh t c dùng n u m t b n ghi trong t p chính sánh úng v i nhi u b n ghi trong t p giao tác. (Xem Hình 2-2-41.) nguyên t c, nhi u t p c c vào, nh trong tr ng h p c a c p nh t 1:1, và các trình lí c xác nh b ng cách so sánh kích c c a khoá nh sau: Kích c c a khoá - TR key = MS key D li u c l y t ng và k t qu c l u gi trong vùng làm vi c. - TR key > MS key D li u c c p nh t. - TR key < MS key D li u c b sung vào t p chính m i (có th có tr ng h p u này c coi là l i và trình x lí l i c g i t i). Hình 2-2-41 Hình nh v c p nh t 1:n li u s n sàng

c p

u tr theo giá tr khóa (cho m t khó trong t p

giao

ch , có nhi u b n ghi

ch

p ch

u tr theo giá tr khóa

giao d ch: n) p nh t

Danh sách i

p ch i



Mã hàng

Tên hàng

S l ng bán

Mã hàng

Nhi u l n Nhi u l n

Television

134.000

S001

Television

656.000

S001

Television

121.000

S002

Stereo

423.000

98.000

S004

Video recorder

256.000

S006

Personal computer 156.000

S006

Personal computer

432.000

S007

Printer

43.000

S007

Printer

83.000

Printer

41.000

S008

Digital camera

92.000

Scanner

86.000

S004

S007

Video recorder

Mã hàng

Tên hàng

c a c p nh t 1:n.

S l bán

ng

S001

Television

911.000

S002

Stereo

423.000

S004

Video recorder

354.000

S006

Personal computer 588.000

S007

Printer

S008

Digital camera

92.000

S009

Scanner

86.000



a ra l u

S l ng bán

S001

S009

Hình 2-2-42

Tên hàng

167.000

62 Ch

ng 2 Thu t toán

Hình 2-2-42 L u

c a c p nh t 1:n t

u t p

Nh p b n ghi M

Nh p b n ghi T

Vùng làm vi c p Cho n khi c 2 khóa M và T tr thành giá tr cao =

Công vi c + l



Khóa M : Khóa T ng

doanh thu b n ghi T → công vi c

< p nh t vi c s ng b n ghi M

Nh p b n ghi T n ghi M → B n ghi M m i

Khóa M : Khóa T

>

u không có b n ghi phù h p trong p chính (T p tin thi hành l i) Nh p b n ghi T

Vùng làm vi c

Nh p b n ghi M

p

t thúc

2.2 Các thu t toán 63

2.2.6

hình

Trong th gi i máy tính hi n t i, CAD, CG và nh ng công ngh v hình ang c s d ng. Trong thu t toán v hình, m t hình c i x nh m t t p các ch m. Cách m t ng th ng n và ng tròn c v ra s c gi i thích trong m c này. Hàm D (x, y) c dùng v m t ch m t i m giao n i ng theo to x và ng theo to y g p nhau, nh c a ra trong Hình 2-2-43.

Tr c Y

Hình 2-2-43 Cách hàm D (x, y) làm vi c

m v A có t a

D (x, Y)

y

x

0

(1) V

Tr c X

ng th ng

Hình 2-2-44 nêu vi c v Hình 2-2-44 Ví d v vi c v

ng th ng. ng th ng

u c a ra trong Hình 2-2-45 là m t thu t toán v ng th ng n i hai m ã cho theo to , t c là, (x1, y1), (x2, y2) 0<x1 x2, 0
64 Ch

ng 2 Thu t toán

Hình 2-2-45 L u

c a vi c v

ng th ng t

u

Nh p x1, x2, y1, y2 x2

x1 →dx ≥ y1 : y2

< 1 → ST y2

- 1 → ST

y1→ dy

dx : dy

y2 - y1→ dy



>



D (x1, y1)

y1 : y2

> dx ÷ 2 → S

Trao i x1 v i x2 và y1 v i y2

Vòng l p 1 x1 ≥ x2

D (x1, y1)

S

dy → S

S:0

dy ÷ 2 → S ≥

Vòng l p 2 y1 ≥ y2

< S + dx → S

S

dx → S

y1 + ST → y1 x1 + 1 → x1

≥ S:0

< D (x1, y1)

S + dy → S x1 + ST → x1

Vòng l p 1

y1 + 1 → y1

D (x1, y1)

Vòng l p 2

t thúc

2.2 Các thu t toán 65

(2) V

ng tròn

Hình 2-2-46 nêu cách v Hình 2-2-46 Cách v

ng tròn. ng tròn

u trong Hình 2-2-47 nêu ra thu t toán v ng tròn d a trên to (x, y) c a tâm m và bán kính r. v ng tròn này, không nên dùng hàm l ng giác c n th i gian th c hi n lâu.

66 Ch

ng 2 Thu t toán

Hình 2-2-47 L u

cho vi c v

ng tròn t

u

Nh p x, y, r r → wx, ws 0 → wy Vòng l p 1 wx < wy D (x + wx, y + wy)

D (x + wx, y - wy)

D (x - wx, y + wy)

D (x - wx, y - wy)

D (x + wy, y + wx)

D (x + wy, y - wx)

D (x - wy, y + wx)

D (x - wy, y - wx) ws

wy ∗ 2

1

→ ws wy +1 → wy

ws : 0

ws +( wx

1) ∗ 2

→ ws wx - 1 → wx

Vòng l p 1

t thúc

2.2 Các thu t toán 67

2.2.7

th

th chúng ta th o lu n trong m c này là th c t o nên t các cung n i nhi u m. V b n ta gi thi t là th vô h ng. th có h ng c ng có th c dùng, tu theo ki u n c n c gi i quy t. Bài toán ng i ng n nh t c mô t ây nh m t trong nh ng bài toán th tiêu bi u.

(1) Bài toán

ng i ng n nh t

Nh

c nêu trong Hình 2-2-48, có các ng và nút, và ph i tìm ra ng i ng n nh t t m A t i m H. B i vì con s d c theo m i ng ch ra kho ng cách, nên b n có th th y ngay r ng ng tô m là ng ng n nh t. Hình 2-2-48 B n

(

ng tô

m là

ng ng n nh t) D 1

3

F

B 2 4

A

3

2

3

H

2

C 2

3

4 G

E

th c v trên Hình 2-2-48 có các con s d c theo t ng ng ch ra kho ng cách ng c g i là th có tr ng s . M c d u chúng ta có th th y rõ ng ng n nh t b ng t, thu t toán ph i c dùng làm cho máy tính tìm ra ng ng n nh t qua tính toán. Chúng ta s mô t ây ba ph ng pháp tìm ng: ph ng pháp chi u sâu tr c và chi u ng tr c, v n m b o r ng kho ng cách c a m i ng là 1, và ph ng pháp duy t c a Dijkstra v n là ph ng pháp duy t chính tìm ra ng i ng n nh t. Hình 2-2-49

th trong ó kho ng cách c a m i

ng

u

c

t là 1

D 1

1

F

B 1 A

1

1 1

1

1

1

1

E

• Ph

H

1

C

ng pháp duy t chi u sâu tr

G

c

Dùng ph ng pháp duy t chi u sâu tr c, m t ng c ch n làm duy t b t u tìm con ng t i ích b ng vi c dùng ch ng.

mb t

u và vi c

(Hình 2-2-50) 1. M t nút t i m b t u c t vào ch ng. 2. M t nút c l y ra t ch ng. Các nút k v i nút v a l y ra c ki m tra và nh ng nút tr c ây ch a bao gi c n p vào ch ng c ch n l y. Các nút c ch n cn p vào ch ng. 3. Khi các nút c ch n c n p vào ch ng, thì nút c l y ra b c 2 trên cl u gi vào trong m ng. 4. Các b c 1, 2 và 3 c th c hi n l p l i cho t i khi nút ích c t vào ch ng hay ch ng tr thành r ng.

68 Ch

ng 2 Thu t toán

Hình 2-2-50 Tr ng thái c a ng n x p PUSH A

C

E

PUSH B

POP

POP

A

E

PUSH G

POP C

H

PUSH F

A

E C B

C B

G B

H F B

1

2

3

4

5

POP G

Hình 2-2-51 Tr ng thái c a m ng A

B

C

A

D

A

E

F

G

H

A

G

C

G

1 2 c a vào trong ng n x p, nút ã ch n b c 2 trên ph i cl u c ch n và B , C và E c a vào trong ng n x p. A ph i 3

Tr

c khi các nút c ch n tr trong m ng. Ví d n u A

c l u tr trong các ph n t c a B, C và E. Sau khi nút tìm ra còn l i 2-2-53.

c tìm l n l

t

tìm ra

ng ng n nh t. (

ng t

c ng t

t vào trong ng n x p, các nút c th c hi n trong h p hình



Vi c duy t c th c hi n b ng ph ng pháp chi u sâu tr c cho k t qu trong ng A-C-G-H c v trong Hình 2-2-51. M c d u hình trên v ra s c s c a vi c th c hi n duy t, u x y ra trong vi c duy t th c t còn ph c t p h n. T c là, gi s r ng ng ng n nh t không th tìm c, các ng khác c duy t l p l i, t c là khi vi c duy t t i b c tr c b c t H, c v trong Hình 2-2-50, b c … trong ch ng, nó nh y lùi v c 1 và l p l i t t c các b c. n trình này c l p cho t i khi ch ng tr thành r ng cho t t c các ng u c tính t i tìm ra ng ng n nh t. ‚ Ph

ng pháp duy t chi u r ng tr

Dùng ph ng pháp duy t chi u r ng tr duy t qua b ng vi c dùng hàng i.

c c, t t c các

ng có th d n t i ích

u

c

(Hình 2-2-52) 1. M t nút t i m b t u c t vào trong hàng i. 2. M t nút c l y ra kh i hàng i. Các nút k v i nút c l y ra này c ki m tra còn nh ng nút ch a bao gi c t vào trong hàng i thì c ch n. Các nút c ch n c t vào hàng i. 3. Nút c l y ra trong b c 2 c l u gi vào m ng. 4. Các b c 1, 2 và 3 trên c th c hi n l p l i cho t i khi m t nút ích c t t i hay khi hàng i tr thành r ng. Hình 2-2-52 Tr ng thái c a hàng

i

A A B C

A B C E

B D

C E D F

C

E

F

G

E D F G

E

D F G

Vì C g n E v a c t vào trong hàng i, nên không có cái x lý

D

F G

Vì C g n E v a c t vào trong hàng i, nên không có cái x lý

F

G H

H

2.2 Các thu t toán 69 Hình 2-2-53 Tr ng thái c a m ng A

B

C

D

E

A

A

B

A

3 Tr

c khi nút

c

F B

2 t vào trong hàng

G

H

C

F 1

i, nút tìm ra

b

c2

c l u tr

trong m ng. Ví d , n u a c tìm ra và B, C và E c t vào trong hàng i, A c l u tr trong các ph n t c a B , C và E

Vi c duy t c th c hi n b ng vi c dùng ph ng pháp duy t chi u r ng tr c cho k t qu trong ng i ng n nh t A-B-F-H c v trong Hình 2-2-53. T t c các nút u c duy t l n l t, nh c nêu trên, trong khi các tính toán c th c hi n tìm ng t t nh t. ƒ Ph Ph

ng pháp duy t c a Dijkstra

ng pháp duy t c a Dijkstra là ph

ng pháp áp d ng cách duy t chi u r ng tr

c.

(Hình 2-2-54) 1. Kho ng cách t i t ng nút k v i nút b t u c o và nút n m t i kho ng cách ng n nh t s c ch n (nút này c g i là X). 2. Kho ng cách t i t ng nút k v i nút X t nút b t u c ng nh kho nh cách t i các nút ngo i tr X t nút b t u là c o và nút n m kho ng cách ng n nh t c ch n. 3. B c 2 c th c hi n l p l i trên m i nút cho t i khi t t i nút ích. 4. ng vi c b sung thêm kho ng cách c g n v i t ng nút, có th thi t l p ra con ng ng n nh t.

70 Ch

ng 2 Thu t toán

Hình 2-2-54 Ph

ng pháp duy t c a Dijkstra

ng tô m là ng chia các nút riêng ho c các tuy n ng ã x lý So sánh nút b t cách ng n nh t

u và nút c nh nó và ánh d u nút xác

nh kho ng

So sánh kho ng cách t i nút xác nh t i tuy n ng A t i B v i kho ng cách gi a nút li n k t i A và nút c ánh d u kho ng cách ng n nh t

Nút g n C t i E c xác nh t i kho ng cách ng n nh t có th c duy t qua A. Vì kho ng cách t A t i C ng n h n kho ng cách t A t i C qua E nên ng E t i C b c t b (Kho ng cách ng t B t i F ng n h n kho ng cách ng t B t i F qua D. Vì v y, ng t D t i F b c t b )

hai

ng

Tr c khi tuy n ng b b , xem xét kho ng cách ub c tb



t qu thu c t ng t nh ph ng pháp duy t chính xác th nh t

2.2 Các thu t toán 71

2.2.8

Tính toán s

(1) Nghi m ph • Ph

ng trình

is

ng pháp phân ôi

Ph ng pháp phân ôi là gi i pháp n gi n nh t c a ph ng trình b c cao. Ph ng trình c cao thông th ng c nh ngh a là y = f(x) và các giá tr khác nhau c gán cho x. ng c v ra b ng cách gán các giá tr cho x. Giá tr c a x khi ng này giao v i y = 0 (tr c x) tr thành nghi m c a ph ng trình này. Hình 2-2-55 là th c v d a trên y = f(x). Hình 2-2-55

th

c v d a trên y = f(x)

f(x1) · f(x2)<0 ch ra r ng có ít nh t m t gi i pháp bên trong vùng [x1, x2] trong ó ng này giao v i tr c x. B ng vi c dùng ph ng pháp phân ôi, vùng [x1, x2] này c chia thành hai ph n. thu c l i gi i x p x , ti n trình phân chia m t mi n thành hai ph n c th c hi n l p i l p l i ch n ra ph n ( c ch b i ↔) có l i gi i. Hình 2-2-56 Thu t toán c a ph

ng pháp phân ôi

c 1 Tính xm chia vùng [x1, x2] thành 2 ph n [x1, xm] và [xm, x2] c 2 M i ph n i gi i

bên trái, ng

c ki m tra

c 3 N u f(x1) . f(xm) < 0, xm c 4 So sánh | x1 x2 | và c 1 và l p l i các b c 1

Hình 2-2-57 a ra l u ph ng pháp phân ôi.

xác

nh xem ph n nào có l i gi i. N u f(x1).f(x2) < 0, thì ph n có

c l i ph n có l i gi i x2, Ng

bên ph i. c l i xm

x1.

xét xem có áp án g n úng hay không. N u | x1 n b c 4.

c a thu t toán

thu

x2 | > , quay l i

c l i gi i c a f(x) = 0 b ng vi c dùng

72 Ch

ng 2 Thu t toán

Hình 2-2-57

L u c a thu t toán pháp phân ôi Ph

thu

c l i gi i c a f(x) = 0 b ng vi c dùng ph

ng

ng pháp phân ôi

Nh p x1 và x2

f (x1 ) → y

x1 + x2

xm

2 Không

<0

y x f ( xm )



xm → x1



xm → x2

x1 - x2 ≥ Không a ra

x1 + x2 2

‚ Ph

K t thúc

ng pháp Newton

Ph ng pháp Newton gi thi t r ng m t l i gi i x p x c a ph ng trình b c cao là ã c bi t. L i gi i x p x ó c hi u ch nh l p l i thu c l i gi i úng. Ph ng pháp c a Newton là cao c p h n các ph ng pháp khác ch t c h i t nhanh h n và có th thu c c nghi m th c và o. Hình 2-2-58 là th c v dùng ph ng pháp Newton. Hình 2-2-58 Ph

ng pháp Newton

Hình 2-2-59 Thu t toán c a ph

ng pháp Newton

- B c 1: Ti p tuy n v i y = f(x) t i m p1( x1, y1) và c t tr c hoành t i x2 - B c 2: Ti p tuy n v i y = f(x) t i m p2 (x2, y2). b c này ng ti p tuy n c th c hi n l p l i g n v i k t qu c n tìm. - B c 3: S khác nhau gi a các giá tr x p x nhau trong b c 2 c so sánh v i chính xác c a giá tr h i t cho tr c. L p l i b c 2 và b c 3 cho n khi s khác nhau này nh n giá tr h i t cho tr c. Vì ph ng trình cho ng ti p tuy n t i m p1 là y-f(x1) = f'(x1)(x-x1), m x2 n i ng ti p tuy n giao v i tr c x có th thu c b ng vi c dùng ph ng trình sau:

2.2 Các thu t toán 73

x i +1 = x 1 −

f (x i ) (i = 0, 1, 2, ...) f ′( x i )

Hình 2-2-60 a ra l u ph ng pháp Newton. Hình 2-2-60

c a thu t toán

L u c a thu t toán pháp Newton

thu

thu

Ph

c l i gi i c a f(x) = 0 b ng vi c dùng c l i gi i c a f(x) = 0 b ng vi c dùng ph

ng pháp Newton 0→K

l n l p l i l n nh t: Kmax Giá tr h i t : Giá tr ban

xk -

u F (x) = 0 : x0

f (xk f (xk )

)x2

xk +1 - xk :

xk



> K+1 →K ≤

K : Kmax

> Không h i t K t thúc

a ra xk + 1

ng

74 Ch

ng 2 Thu t toán

(2) Tích phân s Ph ng pháp tích phân s c dùng tính di n tích c a m t hình c bao b i các ng cong. M c này mô t qui t c hình thang và ph ng pháp Simpson c a t t c các ph ng pháp tích phân s thông d ng. • Qui t c hình thang Hình 2-2-61 nêu ra khái ni m c s c a qui t c hình thang. Hình 2-2-61 Khái ni m c s c a qui t c hình thang

Hình 2-2-62 nêu ra th t c tính di n tích theo tr c x và ph n c bao b i tr c x. Hình 2-2-62 Th t c

c bao b i

ng cong y = f(x), di n tích d c

tính di n tích dùng qui t c hình thang

c 1: Chia ng cong thành các kho ng u nhau. c 2: Gi s ng cong c chia thành các n th ng, các ph n c chia là hình thang. c 3: M i ph n c chia c coi là hình thang và tính di n tích hình thang. Di n tích m i hình thang = (c nh trên + c nh d i) x chi u cao ÷ 2 c 4: Di n tích b gi i h n b i ng cong b ng t ng t t c các di n tích hình thang.

u m t di n tích c tính toán b ng vi c dùng qui t c hình thang, thì sai s xu t hi n i i ph n t i, nh c v trong Hình 2-2-61, vì di n tích úng khác v i di n tích hình thang. làm gi m sai s , ph i t ng s các hình thang lên. Hình 2-2-63 a ra cách m t di n tích c chia thành các hình thang.

2.2 Các thu t toán 75 Hình 2-2-63 Di n tích

c chia ra t

Hình 2-2-64 nêu thu t toán Hình 2-2-63.

ng ng v i qui t c hình thang

tính di n tích b ng vi c dùng qui t c hình thang d a trên

Hình 2-2-64 Thu t toán c a qui t c hình thang c 1: Ph n c n tính tích phân, ví d [a, b] c a y = f(x) c chia thành n ph n. c 2: Chia n [a, b] thành n ph n b ng nhau, t i m i m d ng ng vuông góc v i tr c x. c 3: Giá tr c a hàm t i x0, x1, x2, x3, . xn là y0, y1, y2, ..yn. c 4: Các ng th ng b c 2 c t ng cong t i p0, p1, p2, pn. V i các m x, y và p hình thành m t hình thang. c 5: Tính di n tích c a các hình thang S1, S2, .Sn theo công th c sau: S1 = h(y0 + y1)/2 S1 = h(y1 + y2)/2 . . S1 = h(y n - 1 + yn )/2 c 6: Vùng óng b i ng cong thu c b ng t ng các di n tích c a m i vùng: S = S1 + S 2 + ..Sn

Hình 2-2-65 nêu ra l u c hình thang.

c a thu t toán

tính di n tích b ng vi c dùng máy tính và qui

76 Ch

ng 2 Thu t toán

Hình 2-2-65 L u

c a vi c tính di n tích x p x b ng vi c dùng qui t c hình thang t

u

Nh p a, b và n b-a n

→n

0 →S 0 →k a →x f (x) → y

1

k+1→k x + h→ x f (x) → y

2

S + h (y 1 + y 2 ) → S 2

y2→y1

<

k:n ≥ a ra S t thúc

‚ Ph

ng pháp Simpson

ng vi c dùng qui t c hình thang, m t ng cong c chia thành các kho ng u nhau và các m giao c a ng cong cn il i t o thành các hình thang.T ng di n tích c tính b ng t ng di n tích c a các hình thang. M c d u sai s có th c gi m i b ng vi c t ng s các hình thang, s các hình thang càng l n thì th i gian tính toán càng lâu. H n a, b i vì ph ng pháp này d a trên s trong ó m t di n tích c bao b i ba ng th ng và m t ng cong c coi là hình thang, nên có m i quan tâm v chính xác c a t qu thu c. Xem nh m t gi i pháp, ph ng pháp Simpson c dùng nh c nêu trong Hình 2-2-66. ng vi c dùng ph ng pháp này, ng cong c làm x p x thành m t parabol d x lí tính di n tích.

2.2 Các thu t toán 77 Hình 2-2-66 Di n tích

c chia ra b ng vi c dùng ph

ng pháp Simpson

tính di n tích S1 c bao b i y = f(x), x = x0, x = x2 và tr c x c v trong Hình 2-2-66 ng vi c dùng ph ng pháp Simpson, f(x) c xem nh m t parabola ch y qua p0, p1 và p 2, và S1 c tính x p x nh sau: S1 =

( y 0 + 4y 1 + y 2 )h 3

Ph ng pháp này hoàn toàn khác v i qui t c hình thang trong ó m t di n tích c chia u thành 2n ph n (phân chia b ng nhau, theo s ch n), không theo n. Hình 2-2-67 nêu ra thu t toán tính di n tích c v trong Hình 2-2-66 b ng vi c dùng ph ng pháp Simpson. Hình 2-2-67 Thu t toán tính di n tích b ng vi c dùng ph

ng pháp Simpson

c1 n [a, b] n i l y tích phân c a hàm y = f(x) c chia thành 2n ph n b ng nhau. c 2 Các ng th ng vuông góc v i tr c x c t tr c x t i các m x0, x1, x3, ….x2n c 3 Giá tr c a hàm t i các m trên là y0, y1, …..y2n. c 4 Các ng th ng trên c t ng y = f(x) t i các m p0, p1, ….p2n. c 5 Ba m p2i-2(x2i-2, y2i-2), p2i-1 (x2i-1, y2i-1) và p2i (x2i, y2i) trong hai ph n c tính g n úng nh di n tích hình Si. S1 = (y0 + 4 y1 + y2) h/3 S1 = (y2 + 4 y3 + y4) h/3

S1 = (y2n-2 + 4 y2n-1 + y2n) h/3 c 6 Di n tích Si trong m i ph n c tính b ng t ng c a di n tích vùng S cong. S = S1 + S2 +…..Sn

Hình 2-2-68 nêu ra l u ph ng pháp Simpson.

c a thu t toán

cbao b i

ng

tính di n tích b ng vi c dùng máy tính và

78 Ch

ng 2 Thu t toán

Hình 2-2-68 L u

c a vi c tính x p x di n tích b ng ph

ng pháp Simpson

Công th c Simpson

(b

a)/(2Xn) → h a →x 0 →S 0 →i

S + f(x)+4 X f(x + h ) + f(x + 2h ) → S x+2Xh →x i+1→i

<

i:n ≥ SX

3

→S

a ra S t thúc

2.2.9

Thu t toán

i sánh

Trong thu t toán i sánh, các giá tr c l u gi trong m ng c so sánh thu c gi i pháp. Vi c duy t các xâu kí t c mô t trong M c 2.2.4, X lí xâu kí t , c ng dùng m t trong trong các thu t toán i sánh. c này mô t cho bài toán hôn nhân n nh gi i thích cho m t trong nh ng thu t toán i sánh tiêu bi u.

(1) Bài toán hôn nhân n

nh

Trong vi c gi i bài toán hôn nhân n nh, các c p àn ông và àn bà n nh c xác nh. n nh có ngh a là tr ng thái trong ó àn ông và àn bà c m th y yêu m n nhi u v i b n tình c a mình h n là v i ng i khác. c bi t, gi s r ng có ba àn ông và àn bà, àn ông tên là A, B và C và àn bà tên là a, b và c. Các m c yêu m n (t cao t i th p theo th t 1, 2 và 3) c v trong b ng sau: àn ông> 1 A B B C C C

2 a A B

3 c b a

< àn bà> 1 a A b C c A

2 C B B

3 B A C

2.2 Các thu t toán 79

uh c s p thành c p là P = { (A, a), (B, b), (C, c) }, A c m th y yêu m n b h n a, ng i là b n tình hi n t i. b c m th y yêu m n B, ng i là b n tình hi n t i, h n A. Do ó, ph i không có v n gì. B c m th y yêu m n a và c h n b, ng i là b n tình hi n t i. B i vì a c m th y yêu m n A, ng i là b n tình hi n t i, h n B, nên ph i không có v n gì. Tuy nhiên, c c m th y yêu m n B h n C ng i là b n tình hi n t i. Tr ng thái này c g i là tr ng thái không n nh. B ng vi c thay i b n tình, h có th cs p thành c p là P = { (A, a), (B, c), (C, b) }. Tr ng thái s p c p này có th c phân tích nh sau: • A c m th y yêu m n b h n a, ng i là b n tình hi n t i. → b c m th y yêu m n C, ng i là b n tình hi n t i, h n A. ‚ B c m th y yêu m n c ng i là b n tình hi n t i. ƒ C c m th y yêu m n c h n b, ng i là b n tình hi n t i. → c c m th y yêu m n B, ng i là b n tình hi n t i, h n C. „ a c m th y yêu m n A ng i là b n tình hi n t i. … b c m th y yêu m n C, ng i là b n tình hi n t i. † c c m th y yêu m n A h n B, ng i là b n tình hi n t i. → A c m th y yêu m n a, ng i là b n tình hi n t i, h n c. Trong vi c s p x p c p này, không c p nào có nhân t không n nh. K t qu này c g i là n nh hay i sánh n nh. i sánh n nh có th không nh t thi t c xác nh duy nh t. Có th có tr ng h p vi c i sánh n nh không th c t t i b ng vi c dùng cách ti p c n c mô t trên. Bài toán hôn nhân n nh c mô t t i ây, c thi t k t t i vi c sánh ôi n nh b ng cách xác nh các u ki n cho t ng c p nh t nh: [Bài toàn hôn nhân n

nh]

N àn ông và N àn bà ang tìm các c p n

nh.

- Các m c yêu m n c a àn ông và àn bà c t s n trong m ng M và F (s các ph n : N+1). - Xem nh các m c yêu m n, các s t 1 t i 5 (cao t i th p) c gán cho các s c a t ng p. Ví d N u có n m àn ông và n m àn bà [T h p M: Các m c yêu m n c xét t phía àn ông] 1 2 3 4 5 6 (PT) * M (1) 2 1 4 3 5 0 M (2) 1 3 4 2 5 0 M (3) 1 4 5 2 3 0 M (4) 5 4 1 3 2 0 M (5) 4 2 3 1 5 0

M t b n tình c a vào trong PT. 0 c t ây nh giá tr ban u.

[T h p F: Các m c yêu m n c xét t phía àn bà] 1 2 3 4 5 6 (PT) * F (1) 3 1 5 2 4 0 F (2) 2 1 4 3 5 0 F (3) 3 2 5 4 1 0 F (4) 5 2 1 3 4 0

c a vào M t b n tình trong PT. 0 c t ây nh giá tr ban u.

80 Ch

ng 2 Thu t toán

F (5)

5

4

2

1

3

0

- Các ngh c th c hi n theo th t c a M (1), M (2).... M (N). - àn ông a ra ngh v i àn bà theo th t cao xu ng th p c a yêu m n. H l p l i các ngh cho t i khi h thu c OK. Tuy nhiên có th x y ra là các OK thu c nh v y có th b xoá b . - àn bà cho OK ho c NO theo tiêu chu n sau: • N u m t ng i nh n ngh l n u tiên, cô y cho OK và b o m anh ta nh b n tình. ‚ N u cô y ã có m t àn ông, cô y so sánh yêu m n c a mình v i b n tình hi n t i và yêu m n v i ng i ã làm ngh . - N u cô y c m th y yêu m n b n tình hi n t i h n, cô y cho NO. - N u cô y c m th y yêu m n ng i àn ông a ra ngh , cô y xoá b b n tình hi n t i và b o m v i ng i v a a ra ngh làm b n tình (OK). - Ng i àn ông v a c OK nh ng l i b xoá b v sau b t u làm ngh v i nh ng àn bà c p yêu m n cao h n. Anh ta l p l i vi c làm ngh cho t i khi anh ta thu c OK. Trong l u c v trong Hình 2-2-69, hàm K (p1, p2, p3) c dùng so sánh các m c yêu m n. Hàm K (p1, p2, p3): Hàm này là cho l i ho c p2 ho c p3 trong ph n t m ng p1, ph n t cao h n theo m c yêu m n. K (F(2), 1, 3) → 1 Hình 2-2-69 nêu l u c a thu t toán c a bài toán hôn nhân n nh.

2.2 Các thu t toán 81

Hình 2-2-69 L u

c a thu t toán c a bài toán hôn nhân n t

nh

lý theo

u

1 →i

ngh

Vòng l p 2 M ( j , N + 1) ≠ 0

Vòng l p 1 i>N

M (j , k) → l

i →j

F (I, N + 1) : 0 ≠

1→k lý theo

=

F (I, N + 1) → w

I → M ( j , N + 1)

K (F ( I ), j, w) → x

j → F ( I , N + 1)

ngh

i+1→i



x: j Vòng l p 1

a ra danh sách các

= I → M ( j , N + 1) j → F ( I , N + 1)

i tác A t thúc

w →j 0 → M ( j ,N + 1) 1→k Vòng l p 3 M ( j, k) ≠ I k+1 →k

Vòng l p 3

k+1 →k

Vòng l p 2

Thoát

82 Ch

ng 2 Thu t toán

2.2.10

Thu t toán x p x và xác su t

Các thu t toán nói chung c dùng thu l y các giá tr úng hay gi i pháp. Có các bài toán òi h i th i gian r t dài gi i, và có nh ng bài toán hi n không có thu t toán gi i. Trong tr ng h p này, các thu t toán thu c l i gi i có sai s hay có xác su t ch a sai s r t nh c dùng.

(1) Thu t toán x p x Thu t toán x p x c dùng thu l y l i gi i x p x trong nh ng tr ng h p không th thu c l i gi i úng cho bài toán hay ph i m t r t nhi u th i gian gi i. C hai ph ng pháp Newton và Simpson ã mô t trong M c 2. 2. 8 r i vào lo i thu t toán x p x . c này mô t cho bài toán ba lô xem nh m t thu t toán x p x tiêu bi u. [Bài toán ba lô] n có n món hàng khác nhau v tr ng l ng và giá tr . B n mu n bán chúng trong th tr n nh ng b n không th t t c chúng vào ba lô c a mình c. Hãy tìm ra cách t h p hàng hoá làm t i a giá tr c a chúng. Chúng ta áp d ng các giá tr sau gi i thích cách thu t toán làm vi c: hàng hoá (kho n m c): 5 Tr ng l ng t ng kho n m c (kg): {2, 3, 5, 7, 8} áp d ng cho kho n m c 1, kho n m c 2,......kho n m c 5 theo th t ó Giá tr c a t ng kho n m c (10,000 yen):{2, 4, 8, 9, 10} áp d ng cho kho n m c 1, kho n c 2, …kho n m c 5 theo th t ó. Kh i l ng c a ba lô: 10 kg t cách gi i bài toán này là xem xét t ng t h p hàng hoá mà s em tr ng l ng t i 10 kg và so sánh giá tr toàn b c a hàng hoá trong t ng t h p. V i bài toán c bi t này, t ng giá tr tr thành cao nh t n u hàng hoá 1, 2 và 3 c óng gói vào ba lô, nh c nêu trong ng d i ây: Hàng c ng tr ng ng giá tr ch n ng Hàng 1, 2 và 3 2 + 3 + 5 = 10 2 + 4 + 8 = 14 ← T i a Hàng 1 và 5 2 + 8 = 10 2 + 10 = 12 Hàng 2 và 4 3 + 7 = 10 4 + 9 = 13 Vi c làm t ng tr ng l ng b ng kh i l ng c a ba lô không ph i bao gi c ng là gi i pháp t t nh t. Ch ng h n, n u có kho n m c th sáu, n ng 9 kg và có giá tr 150,000 yên thì giá tr t i a có th thu c b i vi c óng gói m i m t kho n m c này vào ba lô. tìm ra gi i pháp t t nh t, t t c các t h p hàng hoá có th u ph i c xem xét. Khi hàng hoá t ng lên v s ng, thì s t h p tr thành kh ng l và ph i m t nhi u th i gian tìm ra gi i pháp. Xem nh gi i pháp cho u này, có th dùng thu t toán x p x . Bài toán ba lô có th c phát bi u nh sau: Có n s nguyên d ng a1, a2, a3, ..., an, và b1, b 2, b3, ..., bn, và m t s nguyên d ng, c. Hãy tìm t t h p c a x1, x2, x3, ..., xn làm t i a t ng s c a b ixi (i = 1-n) v i xi ={0, 1} và t ng s c a aixi (i = 1-n) là b ng hay nh h n c.

2.2 Các thu t toán 83

u phát bi u này c xét t ng t v i bài toán ã c mô t tr c ây, thì a là tr ng l ng a hàng hoá, b là giá tr c a hàng hoá, và c là dung l ng c a ba lô. x là li u hàng hoá có c óng gói vào ba lô hay không. 0 ngh a là hàng hoá không c óng gói còn 1 ngh a là hàng hoá c óng gói. Do ó, bài toán ba lô và l i gi i có th c di n t nh sau: a = | 2, 3, 5, 7, 8 | b = | 2, 4, 8, 9, 10 | c = 10 x = | 1, 1, 1, 0, 0 | ng vi c dùng công th c này, vi c duy t c th c hi n 2n l n ki m tra m i t h p có th a 0, 1 trong m ng x n u thu t toán x p x không c dùng. Tuy nhiên, dùng thu t toán x p x , các giá tr n v c a m i hàng hoá c nh n di n tr c t. Giá tr n v ngh a là giá tr trên tr ng l ng và nó c cho b i giá tr (bi)÷tr ng l ng (ai). Giá tr nv k= | 2/2, 4/3, 8/5, 9/7, 10/8 | = | 1.00, 1.33, 1.60, 1.28, 1.25 | Sau khi t t c các giá tr nv ã c nh n di n, hàng hoá c óng gói vào ba lô theo th giá tr n v cao t i th p. B i vì hàng hoá không th c phân chia, nên hàng hoá v t quá kh i l ng không dùng c a ba lô không th c óng gói. • Kho n m c 3 v i giá tr n v cao nh t c óng gói: kh i l ng không dùng = 10-5 = 5 ‚ Kho n m c 2 v i giá tr n v cao th hai c óng gói: kh i l ng không dùng = 5-3 =2 ƒ Kho n m c 4 v i giá tr n v bé h n kho n m c 2 không th c óng gói: kh i l ng không dùng < tr ng l ng c a kho n m c 4 „ Kho n m c 5 v i giá tr n v bé h n kho n m c 4 không th c óng gói: kh i l ng không dùng < tr ng l ng kho n m c 5 … Kho n m c 1 v i giá tr n v bé h n giá tr c a kho n m c 5 c óng gói: kh i l ng không dùng = 2-2 = 0 Theo cách này thu c gi i pháp không nh t thi t cho l i gi i t t nh t. N u các giá tr c xác nh là {2, 4, 8, 11, 10}, thì thu t toán x p x cho l i gi i : (kho n m c 1, kho n m c 2, kho n m c 3) = 140,000 yen m c d u chúng ta ã có l i gi i t t nh t: (kho n m c 2, kho n c 4) = 150,000 yen. Tuy nhiên l i gi i x p x c dùng trong nhi u l nh v c khác nhau nh ph ng pháp thu c nhanh chóng giá tr x p x r t g n v i l i gi i t t nh t. Hình 2-2-70 a ra l u c a thu t toán gi i bài toán ba lô.

84 Ch

ng 2 Thu t toán

Hình 2-2-70 L u

c a thu t toán t

gi i bài toán ba lô t

u

ng ban

u

Vòng l p 1 i = 1 , 2, , N

ux

0 → MAX

b ( i )/ a ( i ) → k ( i )

0 →T Vòng l p 1 Vòng l p 1 N T≥2

ng ban

d ng T nh s nh phân, m i c thay th trong m ng w

ux

0 → MAX

0→J

c→j

Vòng l p 2 I = 1, 2, , N

Vòng l p 2 t c các ph n t k trong m ng u b ng 0 ho c j = 0

J +a(i)∗w(i)→J

Ch s d

i cho giá tr l n

nh t trong m ng là k → i Vòng l p 2 0 →k(i)

> j:c

a(i):j





0→K

1→x( i)

Vòng l p 3 I = 1, 2, , N

J

a(i)→J

MAX + b ( i ) → MAX

K + b ( i )∗ w ( i ) → K

Vòng l p 2

Vòng l p 3



ng x,

a ra MAX

K : MAX

> K → MAX ng w → M ng x T+1→T

Vòng l p 1

ng x,

a ra MAX t thúc

t thúc

>

2.2 Các thu t toán 85

(2) Thu t toán xác su t Thu t toán xác su t dùng cách ti p c n xác su t tìm ra l i gi i b ng s ng u nhiên. Cách ti p c n xác su t là cách ti p c n trong ó s thích h p c a l i gi i c xem xét d i d ng xác su t, ho c là cách ti p c n mà gi i pháp c tìm ra d a trên xác su t xu t hi n c a bi n nào ó. c này mô t v bài toán ki m th s nguyên t nh thu t toán xem xét tính thích h p c a i gi i d i d ng xác su t, và tr ng h p thu c h ng s hình tròn π nh thu t toán tìm i gi i d a trên xác su t xu t hi n c a bi n c nào ó. • Bài toán ki m th s nguyên t Bài toán ki m th s nguyên t là m t ti n trình ki m tra s ã cho N (= 2Sd+1, d là s l ) và xác nh xem nó có ph i là s nguyên t hay không. gi i bài toán ki m th s nguyên t , c coi là s nguyên t N ã cho c chia ra cho các s nguyên 2, 3, ...., N , và nó u nó không chia h t cho b t kì s nguyên nào. M c d u l i gi i úng có th thu c b ng vi c dùng cách ti p c n này, c n th i gian dài h n nhi u t t i l i gi i n u giá tr c a N là l n. Xem nh m t l i gi i ta s d ng thu t toán Rabin, c thi t k v i nh lí sau: nh lí s nguyên t ] u N (= 2 Sd+1, d là s l ) là s nguyên t , thì m t trong hai u ki n c nêu d i ây là úng cho b t kì s nguyên d ng c ch n tu ý, a (>1): - ad = 1 (mod N) - a2kd = -1 (mod N) v i 0≤k≤S-1 u s nguyên c ch n tu ý, a, không áp ng các u ki n trên, thì N c xem nh p s , không ph i là s nguyên t . Xác su t s nguyên c ch n tu ý, a, i v i h p s N có th áp ng các u ki n trên là b ng hay bé h n 1/4. Do ó, n u s nguyên c ch n tu ý, a, áp ng các u ki n trên, thì xác su t xu t hi n c a ánh giá r ng N là s nguyên là b ng hay l n h n 3/4.

nguyên t N ps N

Xác su t các u ki n có th c áp ng 100% 25% hay th p h n

Xác su t các u ki n không th c áp ng 0% 75% hay cao h n

u thu t toán này c dùng, thì kh n ng còn l i là l i gi i c cho b i thu t toán này là không úng. Ki u thu t toán này c g i là thu t toán xác su t v i sai s b ch n. V i thí c bi t trên, vì xác su t mà sai s s xu t hi n là th p, nên l i gi i c cho b i thu t toán này nên c xem là ph thu c. Bên c nh thu t toán xác su t v i sai s b ch n, thu t toán xác su t không sai s ôi khi c ng c dùng. M c d u thu t toán này v m t lí thuy t có th m b o tính úng n c a l i gi i ã cho, ôi khi ph i m t r t lâu m i th c hi n xong ti n trình thu t toán này, hay nó k t thúc mà không cho l i gi i xác nh. Thu t toán xác su t không sai s là thu t toán s p x p nhanh. Thu t toán này c thi t k t ng c ng hi u qu b ng vi c b trí l i ng u nhiên d li u vào b ng vi c dùng s ng u nhiên. ‚ Cách tìm h ng s hình tròn π Hình 2-2-71 a ra m t vòng tròn bán kính 1. Di n tích c bao b i các tr c và cung là t ph n t di n tích c a hình tròn y có bán kính 1. Do ó, nó là π/4 (= 1 × 1 × π/4). t khác, di n tích c a hình vuông c bao b i b n ng, x = 0, x = 1, y = 0 và y = 1 là

86 Ch

ng 2 Thu t toán

1. N u các m trên hình vuông này c ch n l a theo cách ng u nhiên, thì xác su t các m c ch n này bên trong vòng tròn là π/4. Trong l u c v trong Hình 2-2-71, 1,000 m c sinh ra b ng vi c dùng hàm RAN ( ) mà có th sinh s ng u nhiên gi a 0 và 1. Li u các m c sinh ra có bên trong vòng tròn hay không c xác nh b ng vi c o kho ng cách tr c ti p t (0, 0) t i t ng m. làm n gi n hoá tính toán, vi c tính c n b qua. Trong tr ng h p c a ví d c nêu trong Hình 2-2-71, ng i ta ánh giá r ng (x1, y1) là bên trong n u (x12+y1 2)≤1 và r ng (x2, y2) là bên ngoài n u (x22+y2 2)>1. Hình 2-2-71 L u

c a thu t toán tìm h ng vòng tròn

Tr c y

t

y2

u

0 → i, ct

(x2 , y2 )

Vòng l p 1 i > 1000

y1 0

(x1 , y1 ) x1

x2

1

tr c x

RAN ( ) → x RAN ( ) → y x∗x+y∗ y→w

w:1

>

≤ ct + 1 → ct i+1→i

Vòng l p 1

ct ∗ 4 / i → P t thúc

Vì h ng vòng tròn thu c theo cách này ch a sai s n y sinh t các c tr ng c h u trong ph ng pháp c dùng sinh ra s ng u nhiên, nó nói chung c dùng trong bi u di n có ch a sai s chu n (l i gi i ± sai s chu n). Thu t toán gi ng th này, dùng s ng u nhiên gi i các bài toán toán h c, c g i là ph ng pháp Monte Carlo.

2.3

2.3

ánh giá thu t toán 87

ánh giá thu t toán

Thu t toán nên c ánh giá và l a ch n d a trên nh ng tiêu chí nào ó. N u có th tìm c thu t toán thích h p nh t gi i m t bài toán, thì công vi c l p trình có th c th c hi n m t cách có hi u qu và ch ng trình ch t l ng cao có th c t o ra. c này mô t cho ba tiêu chí ánh giá thu t toán sau: - ánh giá theo ph c t p tính toán (tiêu chí ánh giá tính hi u qu ) - ánh giá theo tính h p l (tiêu chí ánh giá tin c y) - ánh giá theo vi c bi u di n (tiêu chí ánh giá vi c xoá b d th a và làm t ng t c lí)

2.3.1

ánh giá theo

ph c t p tính toán

ph c t p tính toán, c ng c g i là o tính toán, ch ra v m t nh l ng t i công vi c n th c hi n tính toán. ph c t p tính toán là o c dùng làm rõ ràng v m t toán h c máy tính yêu c u bao nhiêu th i gian và vùng b nh th c hi n tính toán. ph c t p tính toán c bi u di n b i O (c p). Ví d : N u m t thu t toán gi i quy t các d li u theo cách d li u t ng lên g p ôi, g p ba, g p t ....v.v., th i gian th c hi n c ng tr nên g p ôi, g p ba, g p t ...v.v., thì ph c t p tính toán c a thu t toán này là O (n).

(1) Các ki u

ph c t p tính toán

Có hai ki u ph c t p tính toán. o ph c t p th i gian: Th i gian t i a thu t toán c n x lí m i d li u ph c t p không gian: Vùng t i a thu t toán c n x lí m i d li u Nói chung, ph c t p tính toán gi thi t tr ng h p t i nh t. ph c t p tính toán c th o lu n trong m c này c ng gi thi t tr ng h p t i nh t, n u không c nói thêm. N u ph c t p tính toán trung bình là O (nlogn) và n u ph c t p tính toán t i a là O (n2), nh tr ng h p c a s p x p nhanh, thì ph c t p tính toán trung bình nên c coi là quan tr ng nh t. ph c t p tính toán c a m t thu t toán c bi u di n nh kích c d li u (ch ng h n, hình vuông v i c nh n) là không b h n ch b i nh ng gi i h n ph n c ng hay ph n m m.

(2) Ví d tính toán Bây gi chúng ta l y thu t toán duy t tuy n tính (duy t tu n t ) và thu t toán duy t nh phân làm ví d . Gi s r ng kích c d li u là n, s l n so sánh và ph c t p tính toán là nh sau: • Duy t tuy n tính (duy t tu n t ) - S t i thi u l n so sánh: 1 ( ph c t p tính toán: O (1)) - S trung bình l n so sánh: n/2 ( ph c t p tính toán: O (n)) - S t i a l n so sánh: n ( ph c t p tính toán: O (n))

88 Ch

ng 2 Thu t toán

‚ Duy t nh phân - S t i thi u l n so sánh: 1 ( ph c t p tính toán: O (1)) - S trung bình l n so sánh: [log2n] ( ph c t p tính toán: O (log2n)) - S t i a l n so sánh: [log2n]+1 ( ph c t p tính toán: O (log2n))

2.3.2

ánh giá theo tính h p l

Tính h p l c a thu t toán là tiêu chí a ra ánh giá xem li u m t thu t toán có tho mãn c t ch ng trình hay không (tài li u thi t k mô un v.v.). Tính h p l có th c chia thêm thành ba lo i: - H p l b ph n: Li u các n hay hàm có tho mãn c t hay không. - Tính k t thúc: Li u m t ch ng trình có th k t thúc sau m t s xác nh các b c th c hi n hay không, nh ã c nh ngh a b i thu t toán; b i vì chu trình vô h n ph i không c xu t hi n. - Tính h p l toàn b : Li u toàn th thu t toán có tho mãn c t hay không. c d u các ph ng pháp khác nhau c dùng ki m ch ng tính h p l c a thu t toán, n khó ki m ch ng nó m t cách y . N u ph m vi d li u c xác nh, thì tính h p l có th c ki m ch ng d dàng b ng vi c phát hi n r c r i có th xu t hi n khi d li u bên ngoài ph m vi ã xác nh c a vào.

2.3.3

ánh giá theo bi u di n

Các thu t toán ph i c ánh giá theo không ch ng còn theo cách bi u di n thu t toán, th ng

ph c t p tính toán và tính h p l , mà c g i là kh i th o bi u di n thu t toán.

Ví d - Cùng m t b c c th c hi n l p l i: n u các b c cl pl i c xác nh nh các trình con, thì chúng có th c mô t nh m t b c sao cho lu ng các b c trong thu t toán có th c trình bày theo cách n gi n, d hi u. - C n t ng t c th c hi n thu t toán: C n ph i chú ý t i các b c c l p l i th ng xuyên nh t, và cách làm t ng t c nên c nghiên c u (n u s p x p nhanh c dùng, có th c n b vi c dùng l i g i qui và làm vi c v i ph ng án khác).

2.4 Cách thi t k thu t toán 89

2.4

Cách thi t k thu t toán

a trên d li u thu c b i vi c phân tích bài toán và nh ng k t qu ánh giá c mô t c tr c, thu t toán c thi t k v i s chú ý nhi u nh t t i cách l i gi i có th có cv i c hi u qu cao. Có nhi u ph ng pháp c dùng thi t k thu t toán. Các ph ng pháp tiêu bi u là: - Ph ng pháp qui ho ch ng - Ph ng pháp thu t toán tham lam - Ph ng pháp rút g n

(1) Ph

ng pháp qui ho ch

ng

Trong ph ng pháp qui ho ch ng, m t bài toán c xét là m t t p các bài toán con. Các c c n tuân theo là: 1. Bài toán c chia thành m t s bài toán con. 2. Gi i pháp c tìm cho t ng bài toán con. 3. M t s bài toán con c g n l i làm ra bài toán b ph n h i l n h n. 4. Các b c 2 và 3 c l p l i cho t i khi ph ng pháp gi i pháp cho bài toán g c c tìm ra.

(2) Ph

ng pháp thu t toán tham lam

Trong ph ng pháp thu t toán tham lam, c dùng tìm l i gi i cho bài toán t i u, các giá tr c a các bi n c thay i theo m c ph thu c vào t ng u ki n hi n t i. Ch ng h n, tìm cách làm gi m t i thi u s ng xu ph i tr cho m t kho n ti n xác nh, các s ng xu m nh giá l n t i nh c xác nh b ng vi c dùng ph ng pháp thu t toán tham lam. Ví d

tr 574 yen t xu 500-yen - con d 74 yen t xu 50-yen - còn d 24 yen Hai xu m i yen - còn d 4 n xu 1-yen - Không còn d

(3) Ph

ng pháp rút g n

Trong ph ng pháp rút g n, thu t toán g c c thi t k có ph c t p O (n) c gi thi t là t ti n trình rút g n chi u dài th i gian cn, sao cho nó th c rút g n thành kích c nh n t o ra thu t toán m i c p O (n/x). N u O (n)>cn+ O (n/x) không th c tho mãn, thì thu t toán này là vô ngh a. Do ó, n u n là r t nh , thu t toán này không th t o ra k t qu mong mu n c.

90 Ch

ng 2 Thu t toán

Bài t p Q1

Thu t ng nào c dùng ch ra m t thu t toán duy t các ph n t m t cách tu n t t u t i cu i m t b ng?

a. Tuy n tính

Q2

b. Nh phân

c. B m

d.

ng

Giá tr trong m ng có ch a n ph n t , c so sánh tu n t v i d li u X là d li u c duy t. N u d li u X sánh v i giá tr nào ó trong b ng, "exist" c ch ra. li u X c l u gi vào v trí c l y ch s là n+1. Ch s Giá tr

1 a1

2 a2

Trong thu t toán duy t tuy n tính ch tr ng ? c1 c2 c3 c4 c5 c6

b. i≠n

... ...

c nêu d

1 c t cho ch s i. n u , trình nh y t i b c 5. 1 c c ng vào ch s i. Trình nh y t i b c 2. N u ch s i là n hay bé h n, "exist" K t thúc

a. i≥n

Q3

3 a3

i ai

... ...

i ây,

n an

n+1 X

u ki n nào nên

c

a vào trong

c ch ra.

b. i
d. X = ai

e. X≠ai

Có m ng A ch a n d li u c s p theo th t t ng d n. L u sau ây nêu ra t trình tìm ki m d li u x t m ng A b ng vi c dùng ph ng pháp duy t nh phân. Hãy ch n m t t h p úng các thao tác và a chúng vào ch tr ng a và b. Các s th p phân c a m t giá tr thu c b ng vi c chia ph i b ch t i. t

u

1 → l0 n → hi (l

=

0

+ h i) / 2 → k

A( k ) : x

>

aa

ba

l0:hi

> a b c d

a k + l → hi k - l → hi k + l → lo k - l → lo

b K - l → lo k + l → lo K - l → hi k + l → hi

nt ix

Không t n t i x

t thúc



Bài t p 91

Q4

Có m t b ng có 2,000 ph n t khác nhau c s p theo th t t ng d n c a khoá. Dùng m t khoá a vào t ngoài, b ng này c duy t theo ph ng pháp duy t nh phân, và các ph n t sánh úng v i khoá c tìm ra. S t i a l n so sánh c n th c hi n tr c khi t t c m i ph n t sánh úng c tìm th y là gì? Gi s r ng ng này ch a các khoá sánh úng.

a. 10

Q5

b. 11

c. 12

Chú thích nào trong các chú thích sau

d. 13 c nêu v ph

ng pháp duy t là sai?

a. Dùng ph ng pháp duy t nh phân, d li u ph i c s p x p. b. duy t 100 d li u b ng vi c dùng ph ng pháp duy t nh phân, s l n so sánh t i a c c n t i tìm ra d li u ích là 7. c. N u ph ng pháp duy t tuy n tính c dùng, s l n so sánh không nh t thi t gi m i cho dù d li u ã c l u gi . d. N u s d li u là 10 hay nh h n, thì s l n so sánh trung bình mà ph ng pháp duy t tuy n tính òi h i, là nh h n s l n trung bình c a ph ng pháp duy t nh phân. e. N u s d li u t ng lên t 100 t i 1,000, thì s l n so sánh t ng lên 10 l n h n ph ng pháp duy t tuy n tính c dùng. B ng vi c dùng ph ng pháp duy t nh phân, s này ng lên hai hay ít h n.

Q6

Liên quan t i s p x p và g p d li u, hãy ch n nh ng t h p úng c a các t và a chúng vào trong ch tr ng .

Vi c s p x p d li u theo th t giá tr nh t i l n c tham chi u là A B . N u m t dãy li u ích trong b nh ph , phép toán này c g i là C . Vi c tích h p hai hay nhi u t p D theo th t nào ó vào m t t p c g i là E .

a b

A gi m d n t ng d n

B s px p g p

C s p x p ngoài g p ngoài

D cs px p cg p

c

gi m d n

g p

g p trong

cg p

d

t ng d n

s px p

cs px p

e

t ng d n

g p

vi c s p x p ngoài g p trong

cg p

E vi c g vi c s p vi c s p vi c g

p p p p

vi c s p p

92 Ch

Q7

ng 2 Thu t toán

L u

sau ây v cho lo i thu t toán nào? t

u →n

các ph n t Vòng l p n≤1 1→i Trao i i=n

A ( i ) : A (i + 1) A(i)→w A(i +1)→A(i) w → A ( i + 1) i+1→i

Trao

i

n-1→n

pl i

t thúc

a. p x p nhanh-Quick sort b. S p x p sàng l c-Shaker sort c. S p x p bóc v -Shell sort d. S p x p chèn thêm-Insertion sort e. S p x p n i b t-Bubble sort

Q8

a. 1

Ph i m t 1.0 giây cho máy tính nào ó s p x p 1,000 d li u b ng vi c dùng ph ng pháp s p x p n i b t. Ph i m t th i gian bao lâu s p 100,000 d li u cùng ki u? Th i gian m t cho m t máy tính s p x p d li u ki u n i b t là t l v i bình ph ng c a s d li u c xác nh là n. b. 10

c. 100

d. 1,000

e. 10,000

Bài t p 93

Q9

Liên quan t i ph ng pháp s p x p d li u, mô t nào trong các mô t i ây là úng?

c cho

a. S p x p nhanh Quick sort là ph ng pháp s p x p d li u theo các dãy con bao g m các kho n m c d li u c l y t các kho ng và s p x p các dãy con nh h n bao g m các kho n m c d li u c l y t i kho ng nh nh t. b. S p x p bóc v Shell sort là ph ng pháp s p x p d li u b ng cách so sánh m t c p các ph n t k và tráo i chúng n u ph n t th hai l n h n ph n t th nh t. c. S p x p n i b t Bubble là ph ng pháp s p x p d li u b ng cách t m t giá tr tham chi u trung gian, phân b các phân t v i giá tr l n h n giá tr tham chi u trong ph n này và t các ph n t v i gí tr nh h n giá tr tham chi u vào ph n kia và l p l i vi c này cho ng ph n riêng m t. d. S p x p vun ng là ph ng pháp s p x p d li u b ng vi c bi u di n m t vùng ch a s p p nh m t cây con, l y giá tr t i a hay t i thi u t mi n ch a s p, chuy n giá tr t i a hay t i thi u vào vùng c s p x p và l p l i vi c này làm h p d n mi n ch a s p x p.

Q10

Mô t nào là mô t thích h p cho s p x p nhanh quick sort? a. So sánh và tráo i c th c hi n cho hai d li u xa nhau v i kho ng cách nào ó. Kho ng cách này d n d n và liên t c c làm h p s p x p m i d li u. b. Giá tr t i thi u th nh t c tìm ra trong d li u. Giá tr t i thi u th hai c tìm ra trong d li u mà trong ó giá tr t i thi u th nh t không c bao hàm. Vi c này c th c hi n l p l i. c. D li u c chia thành m t nhóm các d li u nh h n m t giá tr tham chi u và nhóm kia là các d li u l n h n giá tr tham chi u. Trong t ng nhóm, m t giá tr tham chi u m i c l a ra và d li u gi ng th l i c phân chia thành hai nhóm d a trên giá tr tham chi u này. Vi c này c th c hi n l p l i. d. li u k c so sánh và tráo i l p l i cho phép d li u nh h n c chuy n v cu i m ng d li u.

Q11 Có m ng TANGO v i s ch s b t

u t 0. n t c ch a trong TANGO (1) t i TANGO(n). L u d i ây nêu ra các b c t ch c l i b ng t b ng vi c d ch chuy n các t trong TANGO (1) t i TANGO (n-1) ng c l i, m t t , t t th n vào TANGO (1). Hãy a vào m t b c úng trong ch tr ng . t

u

TANGO ( n ) → TANGO ( 0 ) Vòng l p i : n 1, -1, 0

Vòng l p

t thúc

a. TANGO (i) → TANGO (i+1) b. TANGO (i) → TANGO (n-i) d. TANGO (i+1) → TANGO (n-i)

94 Ch

ng 2 Thu t toán

e. TANGO (n-i) → TANGO (i)

Q12 D a trên mô t

c nêu cho ph thu c l i gi i x p x cho ph nh t sau ây.

ng pháp Newton, c bi t t i nh thu t toán ng trình f(x) = 0, hãy ch n mô t nào thích h p

a. M c d u m t hàm, f(x), không th c l y vi phân, có th thu c m t l i gi i x p x . b. Nh c th y theo quan m hình h c, ph ng pháp thu l y l i gi i x p x b ng vi c dùng ng ti p tuy n c a y = f(x). c. Hai giá tr kh i u khác nhau ph i c cung c p. d. V i b t kì giá tr ban u nào bao gi c ng thu c m t giá tr x p x .

3

Thi t k trong

c ích c a ch

ng

Thi t k trong là m t ti n trình thi t k ra h th ng d a trên tài li u thi t k ngoài. Nó gi i quy t cách máy tính n ph i v n hành th c hi n nhi m v ã trao, trong khi thi t k ngoài t p trung vào ch c n ng, tính hi u qu và d dùng theo quan m ng i s d ng. Ch ng này mô t các nhi m v thi t k trong c n c th c hi n thi t k s n ph m. • Hi u m c ích, các m quan tr ng và các th t c a thi t k trong. ‚ Hi u n i dung và ý ngh a c a t ng ti n trình thi t k trong. ƒ Hi u vi c t o ra và dùng l i các b ph n c ng nh các ph ng ti n th c t v t ch t hoá vi c t o ra và dùng l i các b ph n

96 Ch

ng 3 Thi t k trong

Gi i thi u c ích c a thi t k trong là xác nh các ch c n ng c a ph n m m theo quan m c a i phát tri n. Thi t k trong là m t ti n trình r t quan tr ng, vì m t k ho ch thi t k c s c phát bi u ra và phân tích h th ng ph i c cài t trong ti n trình này. c d u thi t k ngoài không gi i quy t v i ch ng trình, thi t k trong l i liên quan t i ch ng trình, mà trong ó các hàm c n thi t c xác nh qua vi c phát tri n các h con trong giai n thi t k ngoài, ph i c cài t. Ch ng trình có nh h ng l n, không ch lên thi t k và ki m th ch ng trình trong ti n trình ti p, mà còn lên tính hi u qu khi h th ng i vào v n hành. Do ó, các h con ph i c phân chia r t c n th n. Trong ch ng này, chúng ta h c cách t ng kho n m c c ti n hành và k thu t nào c dùng cho ta có th hi u rõ m t tài li u thi t k ngoài, và có kh n ng t b n thân mình chu n b công vi c thi t k tin c y. ng

3.1 Thi t k quan th ng n ch ng th

Thi t k trong là gì?

trong là thi t k cho các ph n không th y c. Nó là thi t k khi c nhìn theo m c a chuyên gia máy tính hay ng i phát tri n h th ng. Trong thi t k ngoài, h c thi t k theo quan m c a ng i dùng. Trong thi t k trong, ph n c ng và các khác, c ng nh các yêu c u ph n m m c xem xét làm cho máy tính có kh c hi n ch c n ng c yêu c u.

3.1.1

c

ích c a thi t k

trong và nh ng

m c n

uý (1)

c ích c a thi t k trong

Có hai m c ích c a thi t k trong: • Xác nh các ch c n ng mà ph n m m c n ph i th c hi n theo quan m ng i phát tri n. Ti n trình thi t k trong trong t t c các ti n trình phát tri n h th ng là n i h th ng c xác nh theo quan m c a ng i phát tri n. B i vì các ch c n ng ã c xác nh có nh h ng l n t i không ch thi t k và ki m th ch ng trình trong các ti n trình sau, mà còn t i tính hi u qu khi h th ng v n hành, nên chúng ph i c xác nh r t c n th n. •

mb os c l p c a t ng pha sao cho pha n có th c phân bi t rõ ràng i pha kia. Mô hình thác t lâu ã c dùng nh m t ph ng ti n cho vi c phát tri n h th ng. ã ng c làm m n và c i ti n, nó là ph ng pháp lu n v n ang c s d ng. M c d u có th xu t hi n m t s ch ch m nhau gi a các pha c nh nhau, t ng pha v c b n v n ph i c l p. n chú ý t i ch công vi c c a thi t k ch ng trình c th c hi n nh m t ph n c a

3.1 Thi t k trong là gì? 97

thi t k trong. Ví d

Vi c phân ho ch mô un c coi là quan tr ng h n; cho nên nó c phân ho ch thành ch ng trình và t ng ch ng trình l i c phân ho ch thêm n a thành các mô un.

t qu là ch ng trình b l ch; nó h ng "phân ho ch mô un" ch không h ng "ti n trình", gây ra cho b n thân thi t k trong m t tính m m d o. u này có th nh h ng t i các giai n ki m th , v n hành và th m chí b o trì.

(2) Các

m c n l u ý khi làm thi t k trong

Khi làm thi t k trong, bao gi c ng ph i luôn nh "t i sao", "cái gì" và "th nào". • •



T i sao: Xác nh các h con i sao t ng h con c phân chia trong thi t k ngoài l i ph i

c làm rõ ràng.

Cái gì: Xác nh các ch c n ng c a h con Ch c n ng nào mà t ng h con th c hi n trong lu ng h th ng t ng th , ph i theo quan m v m i quan h gi a các h con.

c xem xét

Th nào: Xác nh các chi ti t v h con trong ch ng trình Cách th c các u ki n vào, x lí ch c n ng và u ki n ra cho vi c v n hành c a các h con có th c cài t trong ch ng trình ph i c làm sáng t .

Trong khi làm sáng t các nhân t "t i sao" và "cái gì", xem nh m t nguyên t c, thì "th nào" ph i b g t ra ngoài xem xét.

3.1.2

Th t c thi t k trong

Hình 3-1-1 nêu ra th t c thi t k trong. Hình 3-1-1 Th t c thi t k trong Hi u tài li u phân tích h th ng

Phân ho ch và c u trúc ch c n ng Thi t k li u v t lí Thi t k vào/ra chi ti t o ra tài li u thi t trong Xét duy t thi t k

Hình 1-1-1 Th t c thi t k trong

98 Ch

ng 3 Thi t k trong

Chi ti t c a t ng b

c

c mô t d

i ây:

(1) Hi u tài li u thi t k ngoài Trong giai n thi t k trong, n i dung c a tài li u thi t k ngoài (s n ph m hay tài li u v ti n trình tr c) ph i c hi u, t ch c và ph n ánh nh m t t ng th trong h th ng. Tài li u thi t k ngoài ch a nh ng thông tin sau: - T ng quan h th ng (lu ng h th ng, lu ng các h con v.v.) Thông tin này c dùng làm c s cho vi c phân chia m t h con thành các ph n ch c ng. - Thi t k cái vào và cái ra. Thông tin này c dùng làm c s cho vi c chu n b thi t k vào ra chi ti t. - Thi t k d li u logic. Thông tin này c dùng làm c s cho vi c chu n b thi t k d li u v t lí. - C u hình và hi u n ng h th ng. u hình h th ng (ph n c ng, ph n m m, m ng v.v..) và các giá tr c l ng v hi u ng h th ng do thi t k ngoài cung c p, ph i c làm h p l khi ch ng trình c xác nh và thi t k d li u v t lí c chu n b trong giai n thi t k trong.

(2) Phân ho ch và c u trúc ch c n ng Các ch c n ng c nh ngh a qua vi c phát tri n các h th ng con trong giai n thi t k ngoài ph i c xác nh và thi t k ch ng trình cho t ng thao tác ph i c chu n b . • Phân ho ch ch c n ng c 1: T i sao: Xác nh các h con i sao t ng h con c phân chia trong thi t k ngoài l i ph i c làm rõ ràng. c 2: Cái gì: Xác nh các ch c n ng c a h con - Ch c n ng c a t ng h con c chia ra thành nhi u ch c n ng. - Các ch c n ng c g p nhóm. - Xác nh m t ch c n ng mà t ng nhóm th c hi n, hay m t ch cho t ng nhóm. c 3: Th nào: Xác nh ch ng trình Th t c cho vi c phát tri n m t ch c xác nh. ‚ C u trúc ch c n ng c 1: Các ch c n ng chi ti t c a m t ch ng trình c ki m Các ch c n ng c a ch ng trình c ki m m. c 2: Giao di n gi a các ch ng trình. li u truy n gi a ch ng trình c làm rõ. c 3: Xác nh lu ng x lí. Th t c x lí ch ng trình c xác nh.

(3) Thi t k d

m.

li u v t lí

Trong b c này c a th t c thi t k trong, các ng truy nh p vào c s d li u và t p, vi c so n th o các t p c ng nh cách b trí, c thi t k d a trên d li u c a thi t k d li u logic ã c t o ra trong ti n trình thi t k ngoài.

3.1 Thi t k trong là gì? 99

1. Phân tích các c tr ng d li u 2. Xác nh c u trúc t ch c logic c a t p 3. Xác nh c u trúc t ch c v t lí c a t p 4. Xác nh ph ng ti n ghi nh d li u 5. Thi t k b trí kho n m c d li u

(4) Thi t k vào-ra chi ti t Trong b c này, các cái vào và cái ra d li u chi ti t c thi t k b ng vi c dùng các khuôn u chuyên d ng (s không gian và các khuôn m u khác) d a trên hình nh ã c chu n b trong ti n trình thi t k ngoài v i xem xét thêm v h n ch ph n c ng. Giao di n ng i dùng ho (GUI) c a vào trong công vi c thi t k này t nhi u n m tr c. B c kí t quang h c (OCR) và b c d u hi u quang (OMR) v n còn c dùng ng rãi n gi n hoá công vi c vào d li u. Vi c a ra d li u dùng d ng chuyên d ng ph i c thi t k khác nhau t vi c dùng các ng ph d ng.
m c n l u ý khi thi t k cái vào và cái ra chi ti t>

- S phù h p c a nhi m v vào hay ra d li u v i nhi m v khác. Cái vào và cái ra ph i c thi t k có xem xét t i vi c d th c hi n cho t ng nhi m v . - Ch n ph ng ti n có tính n vi c làm d dàng x lí và qu n lí d li u. Các ph ng ti n a vào k c b c kí t quang h c, a m m, b c mã v ch v.v.. Ph ng ti n a ra bao g m máy in, màn hình v.v.. Ph ng ti n úng ph i c ch n có tính t i s thu n ti n cho x lí và qu n lí d li u. - Tính t i các h n ch liên quan t i ph n c ng. n nêu ra r ng máy in va p có ch c n ng sao chép, nh ng nó l i n và t c ch m, hay máy c kí t quang và máy ánh d u kí t quang b ph thu c ph n c ng do lí do thi t k . Nh ng h n ch liên quan t i ph n c ng nh v y c n ph i c tính t i. - Gi i quy t l i c a d li u vào. u m u ch t là ph i ki m tra l i c a d li u a vào. Ph i xác nh cách ki m tra và s a i. m b o d b o trì, k c ki m soát úng n v ph ng ti n vào và ra. Thi t k ph i c chu n b có xem xét t i vi c d b o trì và ki m soát úng ph ng ti n vào và ra.

(5)

o ra tài li u thi t k trong

Tài li u trong

c t o ra nh m t s n ph m c a công vi c

- Chính sách thi t k trong - C u hình h th ng - Ch c n ng ch ng trình - B trí màn hình - B trí cái vào và cái ra - T ch c t p - Hi u n ng h th ng - K ho ch ki m th tích h p

c nêu

trên:

100 Ch

ng 3 Thi t k trong

(6) Ki m

m thi t k

c ích c a ki m m thi t k trong giai n thi t k trong là: - Làm h p l r ng yêu c u c a ng i dùng c tho mãn - Ki m ch ng tính nh t quán v i thi t k ngoài c duy trì và d li u thi t k trong ã chu n b có th c trao cho giai n thi t k ch ng trình. Ghi nh hai m c ích này, vi c ki m m thi t k c ti n hành theo cách k l ng. Cu c p ki m m thi t k là quan tr ng trong b t kì giai n nào; thi t k ch ng trình và các ti n trình ti p theo sau ó b nh h ng l n b i li u cu c ki m m thi t k ti n hành cho thi t k trong có thành công hay không.
m c n l u ý khi ti n hành ki m

m thi t k >

- Các s n ph m c t o ra giai n thi t k trong c ki m ch ng.. - N i dung c a thi t k trong c ki m m xác nh n r ng nó là nh t quán v i n i dung c a tài li u thi t k ngoài, và r ng t t c các ch c n ng c nêu ra trong tài li u thi t k ngoài là c cài t. - Các ch c n ng c cài t c ki m m xác nh n r ng chúng c phân chia và u trúc thích h p. - Các giao di n gi a các ch ng trình c ki m m xác nh n r ng chúng ã c thi t k úng. - S thích h p c a thi t k d li u v t lí c ki m m. - Các cái vào và cái ra chi ti t c ki m m xác nh n r ng chúng c thi t k có tính t i vi c làm d dàng cho ng i dùng. - Các ch c n ng thi u và nh ng m không thích h p c ch ra.

3.2 Phân ho ch và c u trúc ch c n ng 101

3.2

Phân ho ch và c u trúc ch c

ng Phân ho ch và c u trúc ch c n ng là công vi c phân ho ch các ch c n ng c a các h con thành các ch ng trình sau khi xem xét tài li u thi t k ngoài và làm sáng t các ch c n ng a t ng ch ng trình, lu ng các thao tác bao g m nhi u ch ng trình, và s phù h p c a ch ng trình n v i ch ng trình kia. Ti n trình c u trúc là không th thi u c cho c thi t k ngoài và phát tri n h th ng.

3.2.1

Các

n v c a vi c phân ho ch và c u trúc ch c

ng Trong giai n thi t k ngoài, h con c phân ho ch thành các ch c n ng. Trong giai n thi t k trong, h con c phân ho ch thành các ch ng trình d a trên các ch c n ng c a nó. khác bi t gi a ch c n ng và ch ng trình c mô t nh sau:

(1) Ch c n ng và ch

ng trình

con c xây d ng lên trong vi c phân ho ch nó thành các ch c n ng. Trong khi làm vi c phân ho ch, m i ch c n ng c xét nh nv c phân ho ch nh nh t; không k ó là ch ng trình hay công vi c th công. Hình 3-2-1 Phát tri n h con trong thi t k ngoài Qu n lí phi u sinh viên

Vào phi u

Tính ng m

Tích lu d li u cá nhân sv

a ra danh sách phi u sv

(th công)

Các ch c n ng c a h con trong ch ng trình là m t

c nghiên c u k l ng và chúng n v c a vi c x lí máy tính.

Hình 3-2-2 Phân ho ch và c u trúc ch c n ng trong thi t k trong Ki m soát phi u sinh viên

Vào phi u

Tính ng m

o ra danh sách phi u sv

c phân ho ch ra, ng v i

102 Ch

ng 3 Thi t k trong

(2) S p th t con

c phát tri n, nh ng các ch c n ng c a h con còn ch a

c s p th t .

Th t th c hi n ch ng trình c xác nh cài t các ch c n ng và th c hi n các thao tác m t cách có hi u qu . Nó th ng c bi u di n d i d ng l u ti n trình (xem Hình 3-2-3). Hình 3-2-3 L u

ti n trình

Các p chính a vào các b n ghi

Danh sách

n ghi t p chính

Tính t ng các b n ghi

ng các p chính

Các p chính

o ra danh sách b n ghi

Danh sách b n ghi

3.2 Phân ho ch và c u trúc ch c n ng 103

3.2.2

Các th t c phân ho ch và c u trúc ch c n ng

Các th t c phân ho ch và c u trúc ch c n ng bài t p c nêu sau ây.

Tính l

c gi i thích

ây b ng vi c tham chi u t i

ng tháng

n kê l ng, b n báo cáo tr l ng, và m t t p tr l ng hàng n m c c p nh t trên c s công vi c c a t ng nhân viên và d li u l ng. 1. Gi làm thêm và gi v ng m t trong t ng tháng c a nhân viên c a vào d a trên d li u làm vi c. 2. D li u vào c ki m tra. N u có ch a l i thì b n in danh sách l i s c in ra. Trong tr ng h p này, d li u vào c s a i và d li u này c n p l i vào máy. 3. Sau khi s a xong l i, d li u làm vi c c s p x p t ng ng v i mã phòng ban và nhân viên. 4. Các kho n ph phí và s ti n chi t kh u c tính toán d a trên t p l ng chính, và các tính toán khác c th c hi n. 5. B n kê l ng và báo cáo tr l ng tháng c in ra d a trên t p kê l ng có ch a d li u thu c t các b c 3 và 4 trên. 6. T p l ng hàng n m c c p nh t d a trên t p kê l ng.

(1) Nghiên c u k các ch c n ng Các ch c n ng c nghiên c u k d a trên l u làm vi c m i (DFD v t lí m i) và l u con làm vi c. T t c các ch c n ng ph i c cài t trong các h con u c nghiên c u k ng. Trong tr ng h p thi t k ngoài, công vi c th công mà máy tính không th c hi n s c a vào các ch c n ng. Tuy nhiên, các ch c n ng c th o lu n trong m c này ph i c cài t thành ch ng trình. Trong tr ng h p c bi t này, có th quan ni m b y ch c n ng c v trong Hình 1-2-4. Hình 3-2-4 Nghiên c u k các ch c n ng Ki m tra d li u làm vi c

px pd li u làm vi c

Tính l ng tháng

o b n kê ng

o báo cáo ng tháng

ot p ng n m

o t p kê ng

(2) Làm rõ lu ng d li u phân ho ch ch c n ng, lu ng d li u c n c bi u di n b ng vi c dùng d li u logic d t.

c x lí ph i c xác nh rõ. Lu ng d li u i d ng bi u lu ng d li u (DFD) hay s

104 Ch

ng 3 Thi t k trong

Hình 3-2-5 Làm rõ lu ng d li u (bi u di n nó d

i d ng s pl

li u làm vi c li u làm vi c ã ki m tra Ki m tra px p li u li u làm vi c làm vi c

b t) ng chính

li u làm vi c ãs px p Tính ng tháng

p chi n m (c )

p t ng k t chi n in l i ot p ng k t chi

p t ng k t chi

p t ng k t chi

ot p chi n m

p t ng k t chi

ob n ng k t chi

o báo cáo chi tháng

p chi n m (m i)

Báo cáo chi tháng

p t ng k t chi

(3) G p nhóm ch c n ng a trên lu ng d li u c v trên, các ch c n ng yêu c u c g p nhóm l i cho phép máy tính th c hi n t ng nhi m v ã nêu. B c này r t có th c g i là b c chu n b , u d n t i vi c t o ra và dùng l i các b ph n.. Các ch c n ng trong lu ng c v theo (2) trên có th c g p nhóm nh trong Hình 3-2-6. Hình 3-2-6 G p nhóm ch c n ng pl li u làm vi c li u làm vi c ã ki m tra Ki m tra li u làm vi c

ng chính

li u làm vi c ãs px p

px p

Tính

li u

ng

làm vi c

p chi n m (c )

tháng p t ng t chi

p t ng t chi px p

n in l i p t ng t chi

Tính

li u

ng

làm vi c

tháng p t ng t chi

ob n kê l ng

o báo cáo l

ng

tháng

p t ng k t chi

<S p x p li u>

p chi m (m i)

Báo cáo l ng tháng a ra k t qu tính ng tháng>

3.2 Phân ho ch và c u trúc ch c n ng 105

(4) C u trúc phân c p i chú ý c nêu cho lu ng d li u, các ch c n ng c yêu c u s c a vào m t c u trúc phân c p trong các giai n. Nh c v trong Hình 3-2-7, m t s giao di n ch ng trình v i ch ng trình (b ng tham bi n) c chu n b t o m ch cho lu ng d li u vào và ra trong ch ng trình. Hình 3-2-7 C u trúc phân c p và giao di n ch

ng trình v i ch

ng trình

con tính ng tháng 1

2

Ki m tra d li u làm vi c

3

p x p d li u làm vi c 4

5

o t p t ng t chi

o b n t ng t chi

Tính l ng tháng

6

7

o báo cáo chi tháng

o t p chi hàng n m

< B ng tham bi n > Cái vào li u làm vi c 1

Cái ra li u làm vi c ã ki m tra. Danh sách l i

li u làm vi c ã ki m tra

D li u làm vi c ã s p x p

2 li u làm vi c ã s p x p 3

p chi chính li u làm vi c ã s p x p

4

ng k t chi, Báo cáo chi tháng p chi n m (m i) p t ng k t chi

p chi chính p t ng k t chi

n t ng k t chi

p t ng t t chi

Báo cáo chi tháng

p t ng k t chi

i chi n m (m i)

5 6 7


p chi n m (c )

m c n l u ý khi xây d ng các ch c n ng trong c u trúc phân c p>

- Nên tránh phân c p sâu. N u phân c p c t o ra quá sâu thì vùng thi t k ch có th b b qua. - Nên th n tr ng gi s ch ng trình trong m t phân c p là t i thi u.

ng trình

106 Ch

ng 3 Thi t k trong

Hình 3-2-8 Ví d v c u trúc phân c p không úng

(5) Xác

nh ch c n ng ch

ng trình

i h th ng phân c p c p th p nh t c v ra t (4), chi ti t v các trình con c a ch ng trình c xác nh v i vi c chú ý t i lu ng d li u. N u có th c thì các b ph n c a ph n m có th c l p ráp t i m này. Hình 3-2-9 Xác

nh ch c n ng ch

ng trình

Ki m tra d li u làm vi c li u

c

a vào và ki m tra.

u d li u làm vi c ch a l i, thì nó

c

a ra b n in l i

li u không ch a l i c ghi lên t p trên b nh ph xem nh d li u làm vi c ã ki m tra. li u a ra b n in l i li u làm vi c ã ki m tra

c s a l i, và l i

c

a ra nh

li u làm vi c ã s p x p li u làm vi c ã ki m tra c phân lo i theo mã phòng ban và nhân viên t o ra d li u làm vi c ã s p x p (d li u tháng)

(6)

ánh giá k t qu c a phân ho ch

Các ch c n ng ã phân ho ch c xém xét nh c u trúc ch ng trình và chúng c tính nh các ch ng trình. K t qu c a công vi c này, c mô t theo (5) trên, c ki m m i. it

ng ánh giá k t qu c a phân ho ch>

• N u ch

ng trình ch a hai hay nhi u ch c n ng (t ng s c a ch c n ng)

Hình 3-2-10 T ng s ch c n ng

Ch c n ng A Ch

Ch c n ng B

Ch c n ng C

ng trình này ch a nhi u ch c n ng

Ch c n ng A

Ch c n ng B

Ch c n ng C

3.2 Phân ho ch và c u trúc ch c n ng 107

‚ N u các ch ng)

ng trình ã phân ho ch

c g n n i v i nhau (tích h p ch c

Hình 3-2-11 Tích h p ch c n ng

Ch c n ng A

Ch c n ng B Hai ch

Ch c n ng A

Ch c n ng C

ng trình này

Ch c n ng B

Hai ch

ƒ N u c n xem xét l i các ch

Ch c n ng D

c g n n i v i nhau

Ch c n ng C

ng trình này

Ch c n ng D

c tích h p l i

ng trình ã phân ho ch t khía c nh hi u qu x lí

Hình 3-2-12 T khía c nh c a tính hi u qu x lí -

Chúng

c g p nhóm trong

A

B

Ch

ng trình

ch c n ng trích rút/so sánh và ch c n ng c p nh t

A

B

Ch

ng trình

C

-

Th i gian D chi m gi t ng lên

W D

E

F

W: t p làm vi c

C

Ch

ng trình

D

E

F

c l p c a các ch c n ng c dùng nh m t ph ng ti n ánh giá s thích h p c a phân c p và các ch c n ng c hàm ch a. Trong vi c ánh giá s c l p c a các ch c n ng, hai ch báo c nêu d i ây s c s d ng. Chúng s c gi i thích chi ti t trong m c 4.2.3. - S ch c n ng: S ch c n ng nên c t ng nhi u nh t có th c. - G n n i ch c n ng: G n n i ch c n ng nên c gi m nhi u nh t có th c.

(7) Làm tài li u

c t ch c n ng

Các ch c n ng ã phân ho ch thành các ch ng trình c mô t trong các tài li u. Nh ng tài li u này t o nên m t ph n c a tài li u thi t k trong. Chúng có th c chu n b d i d ng bi u lu ng d li u, l u , h phân c p c ng v i cái vào x lí cái ra (hierarchy plus input process output - HIPO), hay b ng b t kì ph ng ti n nào c ch nh làm chu n n i b .

108 Ch

ng 3 Thi t k trong

Hình 3-2-13, 3-2-14 và 3-2-15 a ra c u trúc h con, giao di n ch ng trình v i ch trình và các ch c n ng ch ng trình t ng ng trong tr ng h p v a trình b y trên. Hình 3-2-13 C u trúc h con 0.0 con tính ng tháng

1.1 Ki m tra li u làm vi c

Tính l

1.2 px p li u làm vi c

2.1 ot p ng k t chi

Hình 3-2-14 Giao di n ch

2.2 ob n ng k t chi

ng trình v i ch

2.0 ng tháng

2.3 o báo cáo chi tháng

2.4 o t p chi hàng n m

ng trình D li u h ng cs al i và nh p l i.

1.0 lí d li u làm vi c

a vào d li u làm vi c

Ki m tra d li u làm vi c li u làm vi c li u ã ki m tra

p x p d li u làm vi c

Danh sách l i

p x p theo mã nhân viên và phòng ban.

li u làm vi c ã s p p chi

li u

chính

ãs p li u làm vi c ã s p cho tháng hi n t i

li u chi ã s p o ra t p t ng k t chi

li u chi t ng nhân viên cho tháng hi n t i pb n kê chi

Hình 3-2-15 Ch c n ng ch

ng trình (

c t o ra cho t ng ch

ng trình)

Chi ti t v nhi m v Cách th c hi n nhi m v trong ch Gi i thích các tham bi n vào và ra Gi i quy t l i Danh sách các thông báo uý

c bi t

ng trình

ng

3.2 Phân ho ch và c u trúc ch c n ng 109

3.2.3

Ph

ng pháp thi t k có c u trúc

Các k thu t hay công c c dùng cho thi t k có c u trúc là nh sau: - L u - Flowchart - Bi u lu ng d li u - Data flow diagram (DFD) - C p b c c ng v i cái vào x lí cái ra - Hierarchy plus input process output (HIPO) - S có c u trúc - Structured chart - Bi u chuy n tr ng thái - State transition diagram - Bi u b t - Bubble chart

(1) L u u c ng còn c g i là s ti n trình. (L u th ng c dùng cho các x lí h l u.) u c t o ra b ng vi c dùng các kí hi u c chu n hoá, b ng vi c xác nh và phân tích các v n ph c t p và các th t c x lí nhi m v . Hình 3-2-16 L u

(s

ti n trình) a d li u làm vi c vào

Ki m tra

n in l i

li u làm vi c ã ki m tra

Hàng i: Mã phòng ban, mã nhân viên

px p

p chi chính

li u làm vi c ãs px p

Tính l

ng tháng

p t ng k t

p chi n m (c )

chi

In b n t ng k t chi

ng k t chi

In báo cáo chi tháng

Báo cáo chi

o t p chi n m

p chi n m (c )

110 Ch

ng 3 Thi t k trong

(2) Bi u

lu ng d li u (DFD)

Bi u lu ng d li u (DFD) c dùng di n t lu ng x lí nhi m v hay thao tác h th ng m t cách có h th ng. Trong khi vi t bi u lu ng d li u, nói chung c n ph i chú ý t i i d li u c dùng, cách nó c x lí và n i nó c l u gi . Bi u lu ng d li u là t k thu t d dùng và hi u qu trong vi c trình bày m t t ng quan v yêu c u ng i dùng. n ây nó ã c dùng ch ra lu ng d li u trong h con.

(3) H phân c p v i cái vào x lí cái ra (HIPO) phân c p v i cái vào x lí cái ra (HIPO) là m t công c h tr làm tài li u, c dùng nh t ph ng ti n ph h tr cho công vi c thi t k . i vì nó phân chia h th ng hay các ch c n ng ch ng trình m t cách có h th ng thành các ph n theo th t tu n t , nên có th áp ng cho nhi u nhu c u a d ng c a ng i qu n lí, ng i thi t k , các phòng ban dùng ch ng trình, nhân viên ch u trách nhi m phát tri n hay o trì,v.v.

(4) S

có c u trúc

có c u trúc c dùng bi u di n cho các ch c n ng c a t ng ch ng trình theo m t cách th c d hi u. Vi c dùng m t s có c u trúc, các quan h ch - t gi a các ch ng trình có th c di n t nh m t c u trúc phân c p. ts có c u trúc r t d hi u khi c dùng bi u di n cho các giao di n gi a các ch ng trình ch a h th ng hay c u trúc c a t ng ch ng trình. Hình 3-2-17 Hình 3-2-17 Các kí hi u

Module

(5) Bi u

L p

c dùng trong s

Các tham s và d li u i qua

có c u trúc

D li u ki m soát i qua

chuy n tr ng thái

Bi u chuy n tr ng thái c dùng ch cách tr ng thái thay i (chuy n i). Nó thích p cho vi c t ch c hay di n t tr ng thái c a h u hành hay ch ng trình ki m soát truy n thông. (Xem Hình 3-2-18.)
chuy n tr ng thái>

- Các tr ng thái có th x y ra c bao trong hình tròn hay hình ch nh t. - Các tr ng thái c n i b ng m i tên theo th t chúng x y ra. - Các u ki n gây cho m t tr ng thái c bi t x y ra c vi t sát c nh m i tên.

3.2 Phân ho ch và c u trúc ch c n ng 111

Hình 3-2-18 Bi u

chuy n tr ng thái 1. Nh p công vi c ( b c công vi c)

o công vi c i l nh 2.

u ki n th c hi n u ki n s n sàng) Ng t vào ra

3. Tr ng thái th c hi n (tr ng thái ch y) Thi t b b m gi ng t Ng t SVC

4.

(6) S

u ki n

i

5. Xóa ho c xác công vi c

nh

b t

b t c dùng phân tích hay phân chia m t h th ng hay ch ng trình mong mu n. Các m c n l u ý là khi phân tích m t h th ng hay ch ng trình: - D li u nào c sinh ra âu? - Lu ng d li u nh th nào? - D li u c x lí nh th nào? Công vi c c a thi t k có c u trúc có th c s p x p h p lí b ng vi c dùng các k thu t hay công c (1) t i (6) theo cách t h p.

112 Ch

ng 3 Thi t k trong

3.3

Thi t k d li u v t lí

Trong ti n trình thi t k d li u v t lí, các kho n m c và các c tr ng (vi c s d ng và t ng t ) c a d li u trong c s d li u, t p hay c u trúc b ng trong b nh , c xác nh trong ti n trình thi t k d li u logic, s c ki m m và cách t ch c v t lí và b trí d li u c thi t k . li u và ph ng ti n ghi nh ph i c xem xét có chú ý t i các c tr ng t ng ng c a chúng, và ph ng ti n l u gi thích h p nh t ph i c ch n l a sao cho các c tr ng d li u có th c dùng t n d ng các u th , các b n ghi có th c t ch c theo cách b trí hi u qu cao.

3.3.1

Th t c thi t k d

Th t c thi t k d li u v t lí vi c thi t k d li u v t lí, các th t chi ti t.

(1) Phân tích

li u v t lí

c mô t trong M c 3.1.2. M c này mô t n i dung c a công m quan tr ng c n l u ý, và nhi u c tr ng khác m t cách

c tr ng d li u

Các c tr ng c a d li u c phân tích ch t ch và thi t k c chu n b theo cách các c tr ng c a d li u t ng ng có th c t n d ng. Các m sau ây ph i luôn ghi nh khi thi t k : m quan tr ng c n l u ý> • Các c tr ng và vi c dùng d li u - ó là t p chính hay t p giao tác? - Ph i duy trì nó bao lâu (duy trì th i gian dài hay duy trì t m th i)? - Nó c dùng nh d li u d phòng hay duy trì nh b n ghi c p nh t? • Thêm, xoá hay thay i d li u - Kh i l ng d li u c thêm vào, xoá i hay thay i trong th i kì xác nh - N i dung c a nhi m v c n c th c hi n (theo tr t t khoá hay ng u nhiên) • C p nh t - Nó c c p nh t hàng ngày, hàng tháng, hàng n m hay theo th i kì xác nh? • Cách d li u c dùng - Nó c dùng cho x lí theo lô? - Nó c dùng cho x lí tr c tuy n? • B o trì - D li u có th c khôi ph c th nào n u nó b phá hu ?

(2) Xác

nh h th ng t ch c d li u trong c u trúc logic

u ph ng ti n l u gi hay t ch c v t lí c ch p nh n tr c khi h th ng dành cho vi c ch c d li u thành c u trúc logic c xác nh (t p chính hay t p giao tác, v.v.), thì tính hi u qu c a thao tác, s thay i công vi c thi t k v.v.., s b nh h ng b t l i.

3.3 Thi t k d li u v t lý 113

- Tr

ng h p ch t nh n c th ng cho t ch c d li u thành c u trúc logic c xác nh tr c h t, r i t ch c v t lí c xác nh. n: t p hàng hoá ph i c thi t k nh t p chính. t qu : T p hàng hoá c l u gi trên a t và c dùng nh t p tu n t có ch s . - Tr ng h p không ch p nh n c ch c v t lí c xác nh tr c, r i h th ng cho vi c t ch c d li u thành c u trúc logic c xác nh. n: Các t p ph i c l u gi trên b ng t và c dùng nh các t p tu n t có ch s . t qu : T p hàng hoá nên c dùng nh t p chính, nh ng b ng t là không ti n dùng. Chúng ta nên làm gì? u c n khuy n cáo là h th ng t ch c d li u thành c u trúc logic c xác nh tr c, i t ch c v t lí m i theo sau. m c n l u ý>

- Ph m vi c a vi c dùng d li u li u có cd nh dùng ch trong h th ng ang c phát tri n không? Hay nó ph i c dùng trong m t h th ng khác nh t p chính? Hay nó c dùng ch cho l p trình? - D li u t m th i hay d li u c t gi li u c x lí có ch c dùng t m th i không? Hay nó ph i c gi i quy t nh d li u c t gi ? - D li u có c x lí tu n t không và nó có t ng d n hay t ng nhanh? Nó có ph i là ki u d li u t ng d n và nó yêu c u duy trì b n ghi c p nh t?

(3) Xác • Xác

nh ph nh ph

ng ti n l u tr d li u

ng ti n ghi nh

Ph

ng ti n ghi nh d li u v t lí bao g m: a t ( a c ng) - B ng t am m a t quang (MO) ZIP - Streamer ( sao l u d li u lên a c ng) a t -quang, ZIP và streamer là các ph ng ti n ghi nh g n ây m i xu t hi n. Chúng có dung l ng nh l n (hàng ch c megabytes t i hàng tr m gigabytes) và thích h p cho vi c l u gi d li u multimedia. Các m sau ây nên c xem xét trong vi c l a ph ng ti n ghi nh thích h p nh t: - Dung l ng ghi nh c tr ng (ph ng pháp truy nh p d li u) - T c truy nh p - B o trì, v n hành, giá c , v.v.. u b n mu n truy nh p tr c ti p vào d li u dùng khoá, thì ch nh ng thi t b ghi nh cho phép truy nh p tr c ti p, nh a t , m i có th c dùng. ‚ Tính dung l

ng nh và th i gian truy nh p

Trong vi c tính dung l ng nh và th i gian truy nh p, c n ph i chú ý t i s khác bi t gi a các b n ghi logic và v t lí, và nhân t kh i.

114 Ch

ng 3 Thi t k trong

- B n ghi logic: M t n v d li u c m t ch ng trình x lí; nó là m t trong nh ng v t c gi i quy t b ng thi t k tr ng. - B n ghi v t lí: M t n v d li u c c vào và c ghi ra ph ng ti n ghi nh Hình 3-3-1 B n ghi logic và v t lí



n ghi

n ghi

B n ghi

B n ghi

u nhân t kh i là 3

m c n l u ý> - Nhân t kh i 3 ngh a là m t kh i ch a ba b n ghi logic. - Ch ng trình gi i quy t v i b n ghi logic, trong khi d li u a vào, và a ra t ph ng ti n ghi nh là các b n ghi v t lí. - Có l h ng gi a các kh i - interblock gap (IBG). Hình 3-3-2 a ra cách tính dung l ng b nh c a a t và th i gian truy nh p. Hình 3-3-2 Tính dung l

ng nh c a

a t và th i gian truy nh p

1. Dung l ng nh c a a t cylinder trên 1 a rãnh trên cylinder Dung l ng rãnh

800 cylinder 19 rãnh 24 000 byte

(Cách tính) Dung l ng l u tr c a a t có th c tính nh sau: Dung l ng l u tr c a rãnh x s rãnh x s cylinder Ví d : 24 000 bye trên 1 rãnh x 19 rãnh trên cylinder x 800 cylinder trên 1 a = 364 800 000 byte trên 1 a 2. Th i gian truy c p c a a t Kh n ng l u tr c a rãnh 15 000 byte Th i gian nh v u t trung bình 25 mili giây c quay 3000 vòng /phút dài m t b n ghi 15 000 byte tính c th i gian truy c p, c n 3 y u t : th i gian nh v u t trung bình, th i gian tìm ki m trung bình và th i gian truy n d li u. Vì trong b ng trên ch có th i gian nh v u t trung bình nên ta ph i tính th i gian tìm ki m trung bình và th i gian truy n d li u. Th i gian tìm ki m trung bình có th tính d dàng qua t c vòng quay c a a t . N u t c quay là 300 vòng / phút thì th i gian a quay 1 vòng m t 20 mili giây. Vì th i gian tìm ki m trung bình b ng m t n a th i gian a quay m t vòng nên th i gian tìm ki m trung bình là: 20 mili giây / 2 = 10 mili giây. Vì t c quay là 3000 vòng / phút = 50 vòng / giây nên th i gian truy n d li u là: 3 50 rãnh / giây x 15 000 byte / rãnh = 750 x 10 byte / giây i b n ghi có th truy n 15 000 byte nên t c truy n d li u là: 3 15 x 10 byte = 0.02 giây = 20 mili giây 3 750 x 10 byte / giây y th i gian truy c p là: 25 mili giây + 10 mili giây + 20 mili giây = 55 mili giây.

3.3 Thi t k d li u v t lý 115

(4) Thi t k cách b trí b n ghi Ti n trình thi t k cách b trí b n ghi là b trí các kho n m c d li u. • Thi t k Tr

ng (kho n m c) (thi t k b n ghi logic)

Trong vi c chu n b thi t k tr

ng, các

m sau ây nên

c l u ý:

• Th t các kho n m c - Các kho n m c nên c thu x p tu n t , b t u v i kho n m c khoá. N u khoá bao g m hai hay nhi u tr ng, thì nh ng tr ng này nên c b trí k ti p. - Các kho n m c nên c thu x p theo th t t m quan tr ng t cao t i th p hay t cao t i th p c a t n s s d ng. - Các kho n m c nên c thu x p theo cách d dùng. • Kích c tr ng và ki u d li u - Nên dùng nh d ng ngày tháng th ng nh t (yymmdd, yyyymmdd, v.v.). ây là chu n ngày tháng và gi qu c t c n ph i c thi t k sao cho b t kì ph n t nào (n m, tháng, ngày) trong nh d ng ngày tháng c ng có th c gi i quy t m t cách riêng bi t và ng th i, t t c các ph n t có th c dùng nh m t nhóm. - Các kho n m c s nên là s th p phân ã óng gói. • Tr ng l - Nên l p ra m t vùng d tr cung c p vi c m r ng t ng lai ( làm t ng s tr ng). - Các tr ng l nên c dùng i sánh chi u dài c a các b n ghi (sánh t 80 byte hay 256 byte). - Tr ng l c thi t l p theo hai cách: a. Không gian t do c thi t l p t i u cu i b. Không gian t do c thi t l p ngay sau m t t p cd nh dùng trong m r ng t ng lai. Không gian này nên có cùng kích c nh tr ng d li u hi n th i. • C n tính t i vi c d dùng mã hoá. ‚ Ki u b n ghi Có các ki u b n ghi sau: a. B n ghi chi u dài c nh Trong tr ng h p b n ghi chi u dài c nh, t ng b n ghi u bao g m m t t p có cùng chi u dài. N u trong ki u t p này có t o kh i, thì chi u dài c a t ng kh i tr thành nh nhau. n ghi chi u dài c nh c dùng r ng rãi b i vì c tr ng d dùng c a nó. b. B n ghi chi u dài bi n thiên Trong tr ng h p b n ghi chi u dài bi n thiên, chi u dài c a t ng b n ghi trong m t t p là không nh nhau. V i m t t p c t o ra dùng nh d ng b n ghi chi u dài bi n thiên, ng b n ghi c ch a trong t p ph i c g n s n v i m t b mô t b n ghi ch ra chi u dài c a b n ghi. Khi các b n ghi có chia kh i, thì t ng kh i ph i c g n v i b mô t n ghi ch ra chi u dài toàn th c a kh i ó. Hình 3-3-3 B n ghi chi u dài bi n thiên n ghi 1

B n ghi 2

c. B n ghi chi u dài không xác nh Trong tr ng h p b n ghi chi u dài không xác nh, chi u dài c a t ng b n ghi nh b i ch ng trình, vì chi u dài c a t ng b n ghi logic m t là khác nhau.

c xác

116 Ch

ng 3 Thi t k trong

ƒ B trí b n ghi n ph i tính t i nh ng m sau ây khi thi t k b trí b n ghi b ng cách dùng m u b trí n ghi (t p): - V i tên b n ghi, c n ch n dãy kí t d nh bi u di n cho n i dung c a d li u. - X (kí t ch -s ), 9 (s ) và K hay G (ki u Nh t) ph i c a vào ch ra ki u c a thu c tính. - S các ch s t o nên kho n m c d li u ph i c a vào. M t ch s là m t kí ch -s (m t byte). Trong tr ng h p ki u Nh t B n, m t kí t t ng ng v i hai byte, và do ó ng i ta khuy n cáo r ng s các ch s c ng nh s các kí t c a vào làm cho t ng kho n m c d li u d hi u. Hình 3-3-4 Ví d v b trí b n ghi

3.3 Thi t k d li u v t lý 117

3.3.2

ch c d li u v t lí

(1) Ki u t ch c t p Các ki u t ch c t p v t lí c xác nh d a trên k t qu c a phân tích c tr ng d li u, ph ng pháp t ch c logic, ch c n ng ch ng trình, v.v... Các ki u t ch c t p v t lí là: - T p t ch c tu n t - T p t ch c tr c ti p - T p tu n t ch s - T p t ch c c phân ho ch - T p t ch c ghi nh o - Virtual storage organization file (VSAM file) - B ng Nên ch n ki u t ch c t p v t lí thích h p nh t theo m c ích ã cho. • T p t ch c tu n t Trong t p t ch c tu n t , các b n ghi c l u gi tu n t theo v trí liên ti p trên thi t b ghi nh . Các b n ghi th ng c thu x p theo th t t ng hay gi m v i kho n m c d li u nào ó c ch nh làm khoá, hay theo th t các b n ghi c t o ra. c tr ng> - Ki u t p này có th c t o ra trên b t kì ph ng ti n nh nào, a t , b ng t v.v. - Vi c c và ghi t p b t u t u b n ghi; không h tr cho truy nh p ng u nhiên. - B i vì các b n ghi c l u gi m t cách v t lí và k ti p nhau, nên b n ghi m i không th c b sung hay chèn thêm vào. Do ó, c p nh t t p nào ó trên b ng t , t p i ph i c t o ra. Tuy nhiên trong tr ng h p c a a t , d li u có th c ghi i vào t p g c. - T c truy nh p nhanh. - Ki u t p này là thích h p cho x lí theo lô hay sao l u d li u. ‚ T p t ch c tr c ti p p t ch c tr c ti p ch có th .

c dùng trên thi t b b nh truy nh p tr c ti p, nh

a

c tr ng> -

a ch c a d li u c tính b ng vi c dùng ph ng pháp tính a ch c bi t g i là ph ng pháp b m. Cùng m t a ch có th xu t hi n nhi u l n khi vi c chuy n i a ch c th c hi n. t a ch nh v y c g i là ng ngh a. Vi c truy nh p tr c ti p c h tr . Trong m t s tr ng h p, truy nh p tu n t c ng c h tr . Hi u qu b nh là cao. T c x lí nhanh. Ki u t p này là phù h p v i x lí th i gian th c tr c tuy n òi h i t c cao.

ƒ T p tu n t có ch s p cho phép tham chi u t i ch s v trí l u gi d li u c ng nh vi c c d li u c bi t c g i là t p tu n t có ch s . Ki u t p này ch có th c dùng trên thi t b nh truy nh p tr c ti p (direct access storage devices: DASD).

118 Ch

ng 3 Thi t k trong

c tr ng> - Vùng b nh d li u bao g m m t vùng ch s , vùng d li u chính và vùng tràn. - Vùng ch s bao g m ch s chính, ch s tr và ch s rãnh. Các ch s này c thi t sánh v i các khoá c a t ng b n ghi sao cho d li u có th c duy t và tìm. Do ó, các giá tr khoá ph i c thu x p theo th t t ng. - C truy nh p tu n t và tr c ti p u là có th . - Vì vùng ch s ph i c duy t tr c, nên m c hi u qu l u gi là th p. - T c x lí ch m. - Ki u t p này phù h p v i t p chính cho công vi c gi y t . „ T p t ch c có phân ho ch Trong t p t ch c có phân ho ch, t p tu n t c phân ho ch thành các t p con g i là thành viên, và m t danh m c c t o ra ch ra v trí b t u c a t ng thành viên cho t ng thành viên l có th c truy nh p tr c ti p. Ki u t p này ch có th c dùng trên các thi t b nh truy nh p tr c ti p (DASD), nh a , nh trong tr ng h p c a t p t ch c tr c ti p. c tr ng> - M c d u t ng thành viên có th c truy nh p tr c ti p, các b n ghi c ch a trong t thành viên c truy nh p tu n t . - T c truy nh p g n nh là gi ng t c c a t p t ch c tu n t . - M c hi u qu ghi nh th p h n m c hi u qu c a t p t ch c tu n t vì các danh c c t o ra. - Ki u t p này là thích h p cho t p ch ng trình và các th vi n khác nhau. … T p t ch c l u gi

o (t p VSAM file)

p t ch c l u gi o có th c dùng v i h u hành có ch c n ng b nh o. Ki u t p này ch có th c dùng trên các thi t b l u tr truy nh p tr c ti p (DASD), nh a t , nh trong tr ng h p c a t p t ch c tr c ti p. c tr ng> - T p này c thi t k b ng vi c tích h p ba ph ng pháp truy nh p c dùng cho các p t ch c tu n t có ch s . - B i vì ki u t p c ki m soát b i h u hành, nên ng i phát tri n h th ng không n nh chi u dài kh i hay chi u dài b n ghi. - Ki u t p này c chia thêm thành ba ki u: p d li u tu n t theo khoá : KSDS (t ng ng v i t p t ch c tu n t có ch s ) p d li u tu n t theo vi c a vào : ESDS (t ng ng v i t p t ch c tu n t ) p d li u b n ghi t ng i : RRDS (t ng ng v i t p t ch c tr c ti p) † B ng ng là m t vùng làm vi c c thi t l p trên n v b nh chính. Trong tr COBOL, các m c sau c nh ngh a trong Data Division: - Tên b ng - S các b ng - Tên c a kho n m c trong b ng - Ki u kho n m c d li u (d li u ch -s , d li u s , v.v..)

ng h p c a

- B i vì b ng n m trong b nh , nên t c truy nh p r t nhanh. - C hai vi c truy nh p tu n t và tr c ti p u có th có do c u trúc ch

ng trình.

3.3 Thi t k d li u v t lý 119

- N u máy tính b t t, thì d li u b m t. Do ó, b ng không th chính. - B ng nói chung c dùng nh m t vùng th c hi n duy t t c hay tính t ng d li u.

c dùng nh t p cao trên d li u,

(2) Cách x lí Cách d li u c nh d ng và duy trì có nh h ng t i tính s d ng c c a h th ng. Khi phát tri n c u trúc d li u trong thi t b nh , ph i xem xét các nhân t khác nhau, ch ng h n ph ng pháp truy nh p, hi u qu truy nh p, hi u qu không gian, nh v ch h ng, hi u qu a kh i l ng b m trong b nh , v.v.. Tính t i t t c nh ng nhân t này, vi c gi i quy t các t p và dùng c s d li u nên c xem xét t i. Hi u n ng, giá c , gi i quy t tr c tr c và nh ng nhân t khác liên k t v i thi t k h th ng chung nên c xác nh cùng v i xem xét v các yêu c u h th ng. Tuy nhiên khó t t i tính hi u qu và dung l ng nh , hay tính hi u qu c a vi c duy t (hi u qu ghi) vào cùng lúc. Nh ng nhân t liên quan t i tính hi u qu này ph i c xác nh cho chúng có th c gi cân b ng. Các t p c ng c di n gi i m t cách khác nhau, tu theo h u hành mà trong ó ch ng trình ph n m m c t o ra ang ch y. C n ki m ch ng các ch c n ng d ch v qu n lí t p do u hành cung c p. T ng ng v i di n gi i c a UNIX, m t trong nh ng h u hành chính, n i dung c a t p nên c ch ng trình nh n ra và không c n h th ng t p c a UNIX nh n ra. Tuy nhiên theo di n gi i c a MVS, m t nhóm d li u logic c nh n ra nh m t b n ghi và n v c s c a thao tác t p c ng i l p trình thi t k , là c h th ng t p h tr .

120 Ch

ng 3 Thi t k trong

3.4

Thi t k vào ra chi ti t

Trong giai n thi t k ngoài, màn hình và báo cáo c thi t k cho phép ng i dùng nh n ra hình nh c a màn hình và cái ra. Vi c thu x p chính xác các kho n m c, kích th c font, m u s c, ki u bi u t ng và các chi ti t khác là ch cho các ràng bu c liên quan t i ph n c ng hay h th ng không c t o ra trong giai n thi t k ngoài. Trong giai n thi t k trong, nh ng chi ti t nh v y c d a trên hình nh ã c t o ra trong giai n thi t k ngoài. Thi t k trong c chu n b v i xem xét liên quan t i các ràng bu c ph n c ng. B i vì thi t k trong d a trên công vi c c a thi t k ngoài, nên ch m chính là t t i vi c d dùng cho ng i dùng.

3.4.1

Thi t k d li u vào chi ti t

u d li u vào là m t trong nh ng d li u u d li u vào.

a vào chính. M c này mô t thi t k chi ti t cho

(1) M c ích thi t k Ng i dùng s d ng m u d li u vào. thi t k m u d li u vào c trau chu t, có cân nh c k , c n ghi nh v các u ki n c a ng i dùng và t c , chính xác và tính d dàng a d li u. Các m c ích ph i t c tr c h t trong thi t k m u d li u vào là: - D vi t - D a vào máy tính (gõ vào)

(2) Thi t k Kích c c a m u, s l ng b n sao, m u s c li u vào ph i c xác nh. •D

c dùng trong m u và khuôn kh c a m u d

a vào d li u

• Ph i gi l ng công vi c c n vi t m c t i thi u Nh ng m sau nên c xem xét ti t ki m th i gian và lao ng c a ng i dùng trong vi c a d li u vào: - Ph ng pháp l a ch n (ng i dùng c yêu c u a ra ch n l a và óng khuôn t kho n m c) - S t i thi u các kho n m c a vào - S trùng l p - Các kho n m c c nh c n c in ra trên m u a vào d li u - Nh ng kho n m c ít c a vào s c g p nhóm vào vùng l u ý • Kho n m c a vào Kho n m c a vào nên c thu x p theo trình t ý ngh . - Ng i dùng nên c h ng d n tr c h t a d li u vào nh ng kho n m c c n chính. - Ng i dùng nên c h ng d n a d li u vào t góc trên bên trái t i góc d i

3.4 Thi t k vào ra chi ti t 121

bên ph i. - Các kho n m c

a vào nên d

Hình 3-4-1 Cách t ng kho n m c có th 1. D a ra nh ng gì mà ng

c và d hi u. c làm cho d

i s d ng mu n vi t m t cách rõ ràng

Ngày____________________________ Ngày: n m 2000__, tháng______ngày__

2. H

ng d n ng l

nh n

‚D

Khó hi u D hi u

i s d ng ng n anh ta/ cô ta t vi c t o ra l i nh p

ng

(không bao g m n

c và d hi u

Khó hi u ,

,

n h n)

u này ng n ng

i s d ng t vi c t o ra l i nh p.

a vào (t bàn phím) máy tính

chính xác c a d li u có th c m b o n u d li u c a vào n i nó c sinh ra (t i ch làm vi c). Do ó, m u a d li u vào ph i c thi t k d a trên m c ích c a ng nhi m v x lí d li u, và n i dung c a các thao tác h th ng m i (lu ng d li u) v i gi thi t r ng nó c dùng t i t ng ch làm vi c. - Nên dùng m u nh m u a vào d li u cho phép ng i dùng nh n ra nó ngay tho t nhìn. - T ng kho n m c d li u nên c bao trong ng m d th y. - M t kho n m c tách bi t nên c thi t l p cho phép ng i dùng phân bi t trên u a d li u vào mà d li u ã c a vào v i nh ng ph n ch a a vào. u a vào d li u c nêu nh sau. Hình 3-4-2 M u

a vào d li u (riêng cho OCR)

ƒ Thi t k m u OCR ng vi c dùng b c kí t quang h c OCR, b n có th a d li u vào tr c ti p b ng vi c cho m u qua máy c. V i giai n hi n t i c a vi c phát tri n công ngh OCR, vi c c sai th ng xu t hi n ngay c d li u c vi t úng và d c. Có m t s bi n pháp tho hi p c ch n: chú ý t i vi c làm rõ m u OCR ( ng n c n vi c c l m) hay a ra nh ng gi i thích v ki u kí t .

122 Ch

ng 3 Thi t k trong

(3) Ki m tra d li u

a vào

li u a vào bao gi c ng ph i c ki m tra vì xác su t ng i dùng ph m sai l m a vào là cao, hay vì máy OCR hay OMR c l m d li u vào. Sai l m trong d li u a vào có th d n t i không ch k t qu không úng, mà còn c vi c làm t t h th ng hay h th ng ch y m. n thân d li u có th ch a l i. D li u a vào v t quá m t gi i h n th i gian a vào xác nh hay d li u nào ó b m t. T t c nh ng v n này u c coi là l i a vào. • S a l i d li u Khi m t l i d li u c tìm th y, nó ph i c s a ngay l p t c. Nh ng hành th c hi n khi tìm th y l i ph i c xác nh rõ ràng.

ng c n

• L i c tìm th y tr c khi d li u c a vào máy tính ul i c tìm th y khi d li u c a vào, thì m u a vào d li u ph i c tr i cho b ph n n vào nó. Thao tác viên không bao gi c s a l i này. N u thao tác viên s a nó theo ch quan c a mình, thì có th m t v n tr m tr ng, b t ng s y ra v sau. Các l i c tìm th y giai n này có nh h ng nh t i thao tác x lí d li u. • L i do ch ng trình phát hi n ra ul i c tìm th y khi m t ch ng trình ã lo i b d li u a vào, thì vi c x lí li u ã c ti n hành. Do ó, ph i xác nh nh ng m nào l i c n cs a ch a. ‚ Gi i quy t l i d li u • B qua l i d li u và ti p t c x lí d li u u ch có vài l i d li u trong hàng nghìn d li u c x lí v i m c ích th ng kê, thì nh ng l i nh v y ch có nh h ng t i thi u lên các thao tác x lí toàn th , và có th b qua c. N u t t c các d li u ph i c ng kí, hay n u t l d li u l i t ng lên, ph ng pháp gi i quy t l i này không th dùng c. • Th c hi n x lí d li u sau khi t t c các l i d li u ã cs a Ph ng pháp gi i quy t l i này c dùng n u nó c gi i quy t trong u ki n r t nghiêm ng t và không m t l i nào c phép xu t hi n (ch ng h n d li u ng kí). Tuy nhiên công vi c này bao g m vi c s a l i d li u r t t n th i gian. • Ch dùng d li u úng và ti p t c x lí d li u Ch dùng d li u úng thì vi c x lí d li u có th c ti p t c. Sau khi c hoàn t t, các l i d li u c s a, và c g p v i d li u úng. Ti n trình chính, b t u khi t t các d li u ã c làm thành s n có.

3.4 Thi t k vào ra chi ti t 123

ƒ Ph

ng pháp ki m tra d li u

Hình 3-4-3

a ra các ph

Hình 3-4-3 Các ph

ng pháp ki m tra d li u Ki m tra

nh d ng

Các v n li u

Ki m tra s

c t o theo

c n ki m tra

nh d ng c th

Các d li u khác v i các ký t s không li u không

c nh p vòa trong các m c s

c quá ph m vi và gi i h n cho phép

l

Ki m tra gi i h n

Ki m tra t p

Ki m tra tính h p

Ph

ng pháp ki m tra d li u chính.

ng pháp ki m tra d li u

Ki m tra vùng

Giá tr ph i trong gi i h n cho phép

Ki m tra tràn

li u không

Ki m tra ch s ki m tra Ki m tra t ng

t quá

dài d li u cho phép

c mã hóa

xác

t qu tính toán b ng máy bàn ph i

nh các s

c úng

c so sánh v i k t qu tính toán

ng máy tính Ki m tra chu i

li u

Ki m tra s d

c s p x p theo chu i phù h p v i chu n cho phép

Các s bên có và bên n ph i phù h p

Ki m tra

d li u th c t ph i phù h p v i s d li u trong máy tính

Ki m tra b ng m t

3.4.2

cv

Các s ki m tra ph i

li u

a ra ph i

c ki m tra

tìm các l i d li u

Thi t k màn hình

Thi t k màn hình là m t trong nh ng nhân t quan tr ng mà ng i dùng xem xét xác nh li u h th ng c thi t k t t hay t i, nh ã c gi i thích trong m c dành cho phân tích h th ng. Màn hình là khuôn m t c a h th ng i v i ng i dùng. Màn hình ph i c thi t k i u tiên cao nh t dành cho vi c d dùng. i vì các k thu t giao di n ng i dùng ho (GUI) dùng ngôn ng tr c quan ã tr thành các k thu t máy tính ch o, nên m c này mô t cho thi t k màn hình dùng các k thu t GUI. Thi t k màn hình v i vi c dùng các k thu t GUI c th c hi n b ng vi c làm b n m u. Th c thi t k màn hình c nêu d i ây. 1. B trí chu n màn hình, các yêu c u ph i c áp ng th c hi n các ch c n ng xác nh, và m c thành th o c a ng i dùng c làm rõ ràng. 2. Màn hình b n m u c t o ra b ng vi c dùng ngôn ng tr c quan. 3. Ng i dùng ánh giá màn hình b n m u. Các s a i và c i ti n c th c hi n hoàn ch nh màn hình b n m u.

(1) Giao di n ng

i dùng

ho (GUI)

GUI dùng các bi u t ng tr c giác (kí hi u hình nh), các menu b t ra, menu th xu ng v.v cho phép các nhi m v c th c hi n. c bi t, m t m i tên c di chuy n b ng vi c dùng thi t b tr (chu t hay các thi t b khác) nh v vào ch mong mu n, n i m t bi u t ng hay kho n m c c ch n h ng d n cho máy tính th c hi n nhi m v ã nêu.

124 Ch

ng 3 Thi t k trong

Hình 3-4-4 Bi u t

ng và menu b t ra

Hình 3-4-5 Menu th xu ng (kéo xu ng)

Các ch c n ng GUI c xây d ng bên trong h u hành c a máy tính cá nhân. Tuy nhiên, trong tr ng h p c a UNIX, các ch c n ng GUI ph i c cài t thêm. Các bi u di n, ý ngh a và các thao tác trên các bi u t ng là khác nhau tu theo GUI c dùng. B i vì vi c chu n hoá ã c th c hi n cho t ng GUI, nên n ng su t thi t k ã c i ti n và s l i ã c gi m i.

(2) Thu t ng liên quan t i môi tr

ng GUI (Windows)

Tr c khi mô t v thi t k màn hình, m t s thu t ng liên quan t i thi t k màn hình trong GUI c gi i thích v n t t ây: • Ch

ng trình

c

u khi n theo bi n c

t c các ng d ng c dùng trong môi tr ng GUI u là các ch ng trình c u khi n theo bi n c . Các ng d ng c phát tri n tr c khi có GUI u ã c thi t k v i c u khi n tu n t . V i ch ng trình u khi n theo bi n c , các hành ng nh

3.4 Thi t k vào ra chi ti t 125

m chu t hay rê con ch y có th gây ra m t bi n c các th t c nh s n t ng ng.

c bi t, mà

nl

t nó l i kích ho t

‚ Windows (c a s ) s c a GUI là các c a s . Chúng thay

it

ng d ng n sang ng d ng kia.

ƒ Tài li u i dung tài li u và

c nêu trong m t c a s c g i là tài li u. Ki u tài li u c phân lo i i th thành hai ki u:

c g i là giao di n

a. Giao di n m t tài li u (SDI) Giao di n m t tài li u (SDI) nêu ra m t tài li u bên trong m t ng d ng. (Xem Hình 3-4-6.) Hình 3-4-6 Giao di n m t tài li u (SDI)

b. Giao di n a tài li u (MDI) Giao di n a tài li u (MDI) nêu ra nhi u tài li u bên trong m t ng d ng. Hình 3-4-7 Giao di n a tài li u (MDI)

„ H p tho i p tho i

c dùng

nêu ra thông tin ph n h i cho ng

i dùng và l i nh c ng

i dùng

126 Ch

ng 3 Thi t k trong

áp ng. (Xem Hình 3-4-8.) Hình 3-4-8 H p tho i

(3) Th t c và nhi m v cho thi t k màn hình b ng vi c dùng GUI Thi t k màn hình

c ti n hành theo sáu b

cd

i ây:

• Chu n hoá i vi c b trí trong các màn hình và t

ng tác, c n xác

nh các qui t c chu n.

Hình 3-4-9 Chu n hoá màn hình

Ph n t c chu n hoá Tính liên tác

Tính

u

i dung Ph m vi v n hành c ch ra sao cho ng i dùng có th ch n l a và a ra h ng d n. u mong mu n là màn hình có tính n ng thao tác tr c ti p cho phép áp ng ngay l p t c. Tính nh t quán hay tính u ph i c m b o theo cách cùng ch c n ng c hi n th và v n hành nh nhau (các bi u t ng ch ng h n)

Hi n th

Tr ng thái v n hành bao gi c ng nên c hi n th và thông tin c n thi t c cung c p m t cách thích h p sao cho ng i dùng có th có c m giác ch ng.

Ch c n ng

Các ch c n ng tr giúp tr c tuy n, ch c n ng khôi ph c, phím l i t t v.v. nên c xây d ng trong màn hình v i xem xét c nêu cho m c ng i dùng thành th o.

Thu t ng , us c

Thu t ng có th d hi u cho ng i dùng nên cs ng. M u s c nên c ch n l a không ch c t c hay làm m t ng i dùng.

3.4 Thi t k vào ra chi ti t 127

‚ Chu n b góc nhìn chung v màn hình GUI n chu n b m t hình nh bi u l cách b trí toàn b màn hình, và m i quan h gi a các u t trên màn hình. Các y u t c s trên màn hình bao g m các menu chính và menu h con, và các thao tác riêng c n th c hi n. ƒ T o ra lu ng màn hình GUI Th t c t
ng tác dùng các màn hình c n

c thi t k .

m quan tr ng>

- Sau khi màn hình hi n th i bi n m t, màn hình ti p c n m ra. - V trí màn hình là c nh. - Khi nút " óng" c nh n, màn hình c g i ph i c v ra. dùng màn hình ch nh c ng i dùng a vào, c n dùng h p thông báo và màn hình hi n th i v n còn m . - Thông báo c nh báo xu t hi n lôi kéo s chú ý c a ng i dùng, n u nút " óng" c nh n mà không c p nh t (c t gi ) d li u. „ Xác n xác
nh ph nh ph

ng pháp ng pháp

a vào màn hình GUI a vào màn hình GUI.

m quan tr ng>

- N u ng i dùng là ng i m i b t u, thì ph ng pháp ch n l a nh menu kéo xu ng c khuy n cáo. - N u ng i dùng có kinh nghi m, thì ph ng pháp a vào tr c ti p ( a th ng v n n vào) l i là mong mu n ti t ki m th i gian. - Các kho n m c nên c b trí theo cùng th t chúng ã c b trí trong m u a vào d li u, làm t i thi u l i a vào. - Các kho n m c nên c b trí t nh t i áy và t trái qua ph i. - M t báo ng nên c a ra khi m t l i a vào xu t hi n, ng th i m t h p thông báo nên xu t hi n lôi kéo s chú ý c a ng i dùng. Hình 3-4-10 Ví d v màn hình

… Xác

nh ph

ng pháp

a vào

a ra màn hình GUI

Trên màn hình GUI, nên có h tr cho ch c n ng xem tr c cho phép d li u c bi u l i nh d ng in ra. C ng v y, ch c n ng hi n th k t qu duy t nên c h tr . (Xem

128 Ch

ng 3 Thi t k trong

Hình 3-4-11.)
m quan tr ng>

- Các nút "back" và "next" nên c t vào, vì có th x y ra là t t c các d li u không th bi u th c h t lên màn hình do gi i h n kích th c c a màn hình. - Nút "print" nên có cho phép ng i dùng b t u in nh ng th có trên màn hình. - M u s c và kh i l ng d li u c hi n th trên màn hình nên c gi i h n cho li u c hi n th có th trông rõ ràng. Hình 3-4-11 Ví d v màn hình

a ra

† Thi t k b trí màn hình GUI t ph ng pháp thi t k cách b trí màn hình là v ra b trí màn hình trên m t m u c bi t. Ph ng pháp n a là dùng ngôn ng tr c quan và làm b n m u; b n m u c ánh giá, a i và c i ti n hoàn ch nh cách b trí màn hình g n nh t v i nh màn hình lí t ng.

(4) Các Các

m c n xem xét khi thi t k màn hình

m sau c n

c xem xét khi thi t k màn hình:

• Chu n hoá màn hình i vì môi tr ng GUI cho phép t do thi t k m c cao, nên các b trí màn hình y là hay b thay i và nh t là khi nhi u ng i cùng tham gia vào công vi c thi t k . Cho nên khi có nhi u ng i, nhi u ý ki n thì nh ng ph n c b n c a màn hình ph i c chu n hoá nh sau: ví d • Vùng tiêu và v trí a vào d li u Tiêu và ngày tháng ph i c a vào trong vùng tiêu . • Vùng nút trí c a nút xác nh ch c n ng ti p c n c xác nh. • V trí và n i dung c a thông báo (k c thông báo m u s c) Các yêu c u c s v h p thông báo nên c xác nh. (Ch nút OK hay các nút làm l i và xoá b là c c n t i?)

3.4 Thi t k vào ra chi ti t 129 Hình 3-4-12 H p thông báo

• Lu ng các hình m u ti n trình n xác nh lu ng c s ; ch ng h n menu chính → menu con → t ng ti n trình. • Dùng các phím PF (ch c n ng ch ng trình) Ph i xác nh xem li u các phím PF có c dùng hay không. • B m chu t n thi t l p các qui t c chu n v b m kép và b m chu t. • Dùng bi u d Nên dùng các bi u d làm cho ng i dùng d hi u. Hình 3-4-13 Bi u d

• Chu n hoá ti n trình t ng tác Nên chu n hoá t ng tác b ng vi c dùng h p thông báo v.v... • M us c các m u nên c gi m c n m hay ít h n. M u và các m u sáng nên c dùng lôi kéo s chú ý vào m t vùng nh , trong khi m u xanh nh t và các m u khác nên c dùng bi u th cho mi n l n. t

nh d ng chu n nh

c mô t

trên s làm t ng tính d dùng.

‚ Phím t t Trong khi chu n b cái nhìn toàn b v màn hình, ng ch có hi n th các menu d n t ng c và ch n các c tr ng, mà còn ph i cung c p c nh ng c tr ng ch n tr c ti p (các phím t t) t ng ng v i m c thành th o c a ng i dùng. u này làm nh b t t i công vi c, và làm ng n b t th i gian a vào, trong khi làm gi m th i gian và công s c toàn th . (Xem Hình 3-4-14.)

130 Ch

ng 3 Thi t k trong

Hình 3-4-14 Phím t t

ƒ Hành

ng c n th c hi n khi màn hình b khoá, hay ph m ph i l i

a vào v.v..

Màn hình ph i c thi t k bao quát c l i ra kh n c p khi m t ch c n ng b bu c ph i t thúc thì có th c dùng thoát kh i ch ng trình, khi màn hình b khoá c ng nh c n có h p thông báo a ra l i c nh báo. „ Khuôn m u màn hình i vì nhi u màn hình ( a c a s v.v..) ph i c dùng th c hi n m t nhi m v , nên lu ng các khuôn m u màn hình ph i c thi t k cho phép ng i dùng xem các màn hình khác m t cách có hi u qu . Ch c n ng xoá lu ng các khuôn m u k ti p (nút c t b ) ng nh tr giúp tr c tuy n nên c h tr . Hình 3-4-15 Ch c n ng tr giúp tr c tuy n

3.4 Thi t k vào ra chi ti t 131

(5) Thi t k thông báo u m t thông báo v các u ki n h th ng c th hi n trên màn hình, thì tính hi u qu n hành h th ng s t ng lên. Màn hình nên c thi t k hi n th tr ng thái bên trong, nh l i in ra, vi c nh n vào phím không h p l , và l i d li u. (Các l i nên c th hi n ng m u trong khi m t báo ng c a ra cùng lúc ó.) i vì mã d x lí h n, nên c ng ph i thi t k v mã (mã n i b ). Hình 3-4-16 a ra m t ví d v thi t k thông báo. Hình 3-4-16 Thi t k thông báo

M X XXX XXX th t

h th ng con

p thông

p

000: Chung 010: H th ng con x lý thanh toán chính 020: H th ng con x lý hàng tháng I : Mô t m c E :L i W : C nh báo l i G : H ng d n nh p

Tên mã nh n d ng thông Mã thông p ME000001 MG000002

ME000001 MI000002 ME000003

p

Thông p Phím nh n là khóa ch c n ng không pl Sau khi ki m tra d li u nh p vào, nh n khóa th c hi n Khóa ã t n t i t gi y lên máy in D li u c làm n i b t trong video o ng c ch a các l i

Mô t Nh n khóa ch c ng sai Thúc y ng i dùng ki m tra d li u Khóa sai c thi t p s d ng? Gi y không t trong máy in Nh p d li u ch a i

132 Ch

ng 3 Thi t k trong

3.4.3

Thi t k d li u

a ra chi ti t

Ng i dùng a vào d li u, cho máy tính x lí nó, và a d li u ra trên màn hi n th hay trên gi y ki m tra k t qu c a vi c x lí d li u. Các m u a ra d li u c n ph i c thi t cho nó d hi u và c dùng cho các thao tác x lí d li u.

(1) Th t c và nhi m v thi t k báo cáo i vì dàn bài c a báo cáo a ra ã c thi t l p trong giai n thi t k ngoài, nên khuôn u a d li u ra ph i c thi t k b ng vi c dùng m u chuyên d ng (s cách) d a trên d li u do thi t k ngoài cung c p. (Xem Hình 3-4-17.) u m t khuôn m u a d li u ra c dùng, thì nó nên c thi t k theo chi ti t nhi u h n a trên dàn bài c a khuôn m u ã c t o ra trong giai n thi t k ngoài. Hình 3-4-17 S

cách (ví d )

Nh -

ng m sau nên c xét t i khi chu n b thi t k b ng vi c dùng s cách: M t dòng có 132 v trí kí t (trong tr ng h p c a Hình 3-4-17). M t trang có 48 dòng (trong tr ng h p c a Hình 3-4-17). V nguyên t c, m t kí t nên c a vào t ng ô m t. Trong tr ng h p kí t ch bi u ý thì a vào trong hai ô. Khuôn m u a d li u ra là th t c bao g m ba b c c nêu d i ây: • Xác

nh v trí tiêu

trí c a tiêu

(các tiêu

và các dòng chi ti t l n, v a và nh ) và

c t v các dòng chi ti t

c xác

nh.

• V trí tiêu trí c a tên báo cáo a ra, s trang (th ng c a vào góc trên bên ph i), ngày tháng báo cáo c chu n b (th ng góc trên bên ph i), và tiêu con cho các mô t chi ti t c xác nh V trí c a tiêu con nói riêng ph i c xác nh c n th n vì nó nh h ng t i s v trí kí t mà theo ó t ng kho n m c d li u ph i c

3.4 Thi t k vào ra chi ti t 133

a vào (Xem Hình 3-4-18.) Hình 3-4-18 Xác

nh v trí c a tiêu

• Các dòng n i d li u chi ti t c a vào Vi c t kho ng cách gi a các dòng và v trí c a dòng cu i cùng c n c xác nh. Trong Hình 3-4-17, các kí t có th c in ra trên 48 dòng m t trang. Cách b trí này nên c thi t k sao cho d li u c a vào trên nh ng dòng này là th y c và hi u v i ng i dùng. ‚ Xác

nh v trí c a các kho n m c d li u và s ch s

Các v trí c a kho n m c d li u

c in trên t ng dòng và s các ch s

c xác

nh.

• V trí c a kho n m c d li u Các kho n m c d li u c a cùng ki u c in c n k bên nhau. C ng v y, ng i dùng có th hình dung ra t ng s d dàng n u các kho n m c d li u c thu x p t trái sang ph i. • Xác nh s các ch s các h p nên c xác nh v i s d d tr nào ó. Khi t ng s c in ra, c n d ki n có th in ra s l n t i a. i các s , vi c b các s không ng tr c nên c th c hi n làm cho chúng thành d th y. Hình 3-4-19 Các th hi n s các ch s cho t ng kho n m c d li u các ch s có th

c so n th o nh sau

----,--9

à -54,000

-$$$,$$$

à -$54,000

-zzz,zz9

à - 54,000

làm cho các ch s thành d th y.

ƒ Thi t k b trí báo cáo i t t c nh ng xem xét trên, d li u ph i c báo cáo d li u a ra. (Xem Hình 3-4-20.)

a vào trong s

có ch tr ng

thi t

134 Ch

ng 3 Thi t k trong

Hình 3-4-20 Thi t k báo cáo

(2) Nh ng

a d li u ra

m c n xem xét khi thi t k báo cáo

Báo cáo nên c thi t k v i xem xét y v tính dùng y, nh ng m sau nên c xem xét khi thi t k báo cáo:

c và "d

c." T

ng t nh

• V trí tiêu và các kho n m c a ra nên c chu n hoá nhi u nh t có th c. u các v trí tiêu và các kho n m c a ra c chu n hoá bên trong, thì báo cáo là u nhau, d th y và x lí. • Nên dùng nh ng nh d ng d th y. i nh ng dòng có ch a d li u chi ti t, nên xác nh kho ng cách dòng, v trí kí t , vi c u ch nh kho n m c d li u (b các s không v.v..), kích c font v.v… làm cho toàn b báo cáo thành m t k t c u d nhìn. • D li u nên c thu x p theo m c quan tr ng t trái sang ph i và t trên xu ng i. Các kho n m c d li u các v trí bên trái nh t và bên ph i nh t c nh n m nh. • Các xâu kí t nên c canh trái, và s nên c canh ph i. Các xâu kí t a ra nên c canh trái. Các v trí không dùng nên cách. Các s nên c canh ph i và c hi u ch nh khi c n thi t. • Các nh d ng c l p theo nhóm. li u c a cùng ki u nên c g n v i nhau thành nhóm, và ng d nhìn. (Xem Hình 3-4-21.)

c b tr ng nh d u

c thu x p trong

nh

3.4 Thi t k vào ra chi ti t 135 Hình 3-4-21 Thi t k

nh d ng cho t ng nhóm

PRG0100

*** Danh sách b n ghi sinh viên (toàn nhóm) *** 1 Tháng 12, 2000 Trang 1 Phòng L p S tham d Tên Ph n c ng Ph n m m L p trình Th ng m i s DK01 01 Ichiro Suzuki A B B B nt ng t ς ς ς ς ς nh trên ς ng t DK02 01 Yoshio Yamamoto B A B A ng t nh trên ς ς ς ς ς ς nh trên Phòng h th ng JS01 01 Tokuaki Honda B B A A ng t thông tin ς ς ς ς ς ς nh trên JS02 01 Tsuyoshi Hashimoto A B B A ng t ng t ς ς ς ς ς ς nh trên nh trên

136 Ch

ng 3 Thi t k trong

3.5

o ra và dùng l i các b

ph n 3.5.1

Khái ni m v t o ra và dùng l i các b ph n

Nói chung, thách th c c a vi c dùng l i ph n m m là d ‘tìm’, ‘ ng kí’ và ‘thay i’. N u các ph n ph n m m c xem nh ph ng ti n cho vi c dùng l i, thì nh ng thách th c này b thay th b i ‘s nh t quán c a các b ph n xem nh các n v ’, ‘h th ng hoá c a các b ph n’, và ‘tính c l p c a các b ph n’. Trong khái ni m h ng i t ng, thì n v c a b ph n ph n m m là m t i t ng. Các i ng c h th ng hoá trong th vi n l p, và tính c l p c a i t ng c th c hi n qua vi c bao b c. Do ó, khái ni m h ng i t ng có th c nói là thích h p cho vi c dùng l i các s n ph m công vi c.

3.5.2

Dùng gói ph n m m

(1) Th vi n ch

ng trình con

Th vi n ch ng trình con t lâu ã c bi t t i nh gói ch ng trình con khoa h c - scientific subroutine package (SSP), trong l nh v c tính toán khoa h c và k ngh . Các ch ng trình con và hàm ph c t p không do ng i dùng phát tri n mà c các nhà ch t o, các tr ng i h c và vi n nghiên c u t ng h p thành th vi n s n có cho ng i dùng. Khái ni m này ã c áp d ng cho vi c phát tri n các ch ng trình ng d ng nghi p v , và các ch ng trình con có ích c cung c p nh các gói cho ng i dùng thông th ng, không m t ti n. B ng cách dùng các gói này, ng i ta t t i vi c rút g n áng k gi công c n phát tri n ph n m m. Tuy nhiên h th ng ng d ng nghi p v l i ch a các v t ph m ã c phân lo i hay tri th c s h u riêng. Do ó, m t công ti t ch c các ch ng trình con c phát tri n d a trên các chu n n i b , thành th vi n và cho phép chúng c dùng l i ch trong n i b .

(2) Th vi n l p Trong phát tri n h ng i t ng, các i t ng c bao b c nh ng thay i c a m t i ng này không nh h ng t i các i t ng bao quanh. Có th duy trì tính c l p c a t ng i t ng. Do ó, các i t ng có th c dùng l i nh các b ph n d dàng h n các b ph n trong ch ng trình c phát tri n b ng vi c dùng ngôn ng th t c. Ch ng h n trong tr ng p ngôn ng Java, các i t ng th ng c dùng c t p h p trong th vi n l p. B ng vi c dùng th vi n l p, th i gian và lao ng c n cho phát tri n ch ng trình có th c ti t ki m.

3.6 T o ra tài li u thi t k trong 137

3.6

o ra tài li u thi t k trong

Tài li u thi t k trong c t o ra d a trên d li u do thi t k trong cung c p. Thi t k trong c chu n b d a trên tài li u thi t k ngoài theo quan m c a ng i phát tri n. B i vì tài li u thi t k trong c ng i phát tri n duy t xét, nên vi c dùng các thu t ng k thu t trong tài li u này là c phép. C ng v y, t t c các chi ti t, k c h con, ch ng trình và ngo i l , u ph i c mô t trong tài li u thi t k trong. t qu c a công vi c thi t k h th ng c bi t c biên so n thành tài li u thi t k trong. Thi t k trong là m t ti n trình thi t k quan tr ng vì nó có trách nhi m tho mãn m i yêu c u ng i dùng do thi t k ngoài xác nh. B t kì sai l m thi t k nào c ng u có th có tác ng nghiêm tr ng lên các ti n trình v sau. Ph i luôn nh r ng m t ph n nh c a h th ng c thi t trong giai n thi t k h th ng và do ó ng i ta ph i nh r ng b t kì thay i nào trong thi t k ã hoàn ch nh u không th d dàng c th c hi n. Tài li u thi t k trong bao g m các ph n t c v trong Hình 3-6-1. Hình 3-6-1 Các y u t trong tài li u thi t k trong ho ch ki m th Hi u n ng h th ng u hình t p trí báo cáo vào/ra trí màn hình Ch c n ng ch ng trình u hình h th ng Chính sách thi t k trong Tài li u thi t k trong

3.6.1

ch c tài li u thi t k trong

(1) Chính sách thi t k trong Trong chính sách thi t k trong, c n mô t m t t ng quan v chính sách phát tri n h th ng tr khi b t u công vi c thi t k . • Ph

c

ng pháp thi t k

Mô t cho ph ng pháp thi t k c ch n cho công vi c thi t k trong. Thông th ng ph ng pháp thi t k có c u trúc c s d ng. Mô t cách dùng ph ng pháp thi t k có c u trúc c xác nh v i vi c nói t i các ph ng pháp thi t k ã c xét duy t khác.

138 Ch

ng 3 Thi t k trong

‚ K thu t làm tài li u Các k thu t làm tài li u nh : HIPO, DFD, l u ch p thu n và cách chúng c ch p nh n.

,s

b t v.v... Mô t cho các k thu t

c

ƒ Nhi m v thi t k „ Các công vi c khác Mô t th t c ghi l i thay i, chi ti t v xét duy t thi t k và các v n tr c khi b t u công vi c thi t k .

khác ph i xác

nh

(2) C u hình h th ng Trong c u hình h th ng, mô t cho các chi ti t v h th ng và h con

c nêu sau ây.

• T ng quan h th ng (lu ng h th ng) Trong t ng quan h th ng, mô t cho lu ng h th ng m i (DFD h th ng m i) c t o ra b i phân tích h th ng. N u thay i c th c hi n trong lu ng h th ng m i do vi c c u trúc hay phân ho ch ch c n ng trong thi t k h th ng thì c n mô t cho lu ng h th ng m i ã thay i. ‚S

c u trúc h th ng (bi u

Bi u

các n i dung

c

ƒ Giao di n gi a các ch

n i dung)

a ra trong Hình 3-2-13. ng trình

Bi u nêu ra cái vào cho t i cái ra t m t ch ng trình li u (DFD), l u v.v... (Xem Hình 3-2-14.)

c v ra. S d ng bi u

„ Bi u

quan h ch

Th

a ra lu ng ti n trình bi u th cho trình t th c hi n c a ch

ng

… B n in ch

ng trình

(3) Ch c n ng ch

ng trình ch ra tên c a ch

ng trình

c dùng trong h th ng, t ng

ng trình

Trong các ch c n ng ch ng trình có mô t v các ch dùng bi u cái vào x lí cái ra (IPO).

ng trình ã

chung

Mô t m t t ng quan v các h con và ch ‚ Bi u

ng trình.

ng trình

n chu n b b n in ch quan v n hành v.v...

• Bi u

lu ng d

ng trình.

chi ti t

Mô t các chi ti t c a t ng

n v ch c n ng riêng (ch

(4) B trí màn hình Trong b trí màn hình, các tài li u sau - Cái nhìn chung v màn hình - Bi u chuy n màn hình

c nêu ra:

ng trình).

c phân chia b ng vi c

3.6 T o ra tài li u thi t k trong 139

(5) B trí báo cáo vào/ra Danh sách các báo cáo c dùng trong h th ng, các gi i thích chi ti t v t ng báo cáo và vi c trí c a c hai lo i tài li u g c a vào và báo cáo a ra c ính kèm. (Xem Hình 3-4-2 và 3-4-20.)

(6) C u hình t p Danh sách các t p c dùng trong h th ng, nh ng gi i thích chi ti t v t ng t p và cách b trí p c g n v i c u hình t p. (Xem Hình 3-3-4.) Tên t p, dung l ng t p, tên th vi n và v trí (s hi u a) c mô t trong danh sách các t p. ng t nh v y, c t cho các b ng c dùng trong h th ng c ng c ính kèm.

(7) Hi u n ng h th ng Hi u n ng h th ng c tính toán và ánh giá d a trên hi u n ng máy tính, dung l ng b nh và hi u n ng c a thi t b nh , b n thân ph n m m h th ng và x lí, môi tr ng h th ng v.v. Mô t cho hi u n ng h th ng ã c tính toán. - Kh i l ng trung bình các d li u c sinh ra và kh i l ng d li u trong gi cao - Th i gian x lí d li u (cho m t kho n m c hay trong m t th i kì xác nh)

m

(8) K ho ch ki m th Mô t k ho ch ki m th tích h p. - Kh i l ng d li u

3.6.2 Các

Các

m sau ây c n

m c n l u ý khi t o ra tài li u thi t k trong c l u ý khi t o ra tài li u thi t k h th ng:

• Tài li u thi t k trong ph i bao hàm t t c các ch c n ng c mô t trong tài li u thi t k ngoài. c d u thi t k trong c t o nên theo quan m c a ng i phát tri n, nó v n ph i d a trên thi t k ngoài c t o ra theo quan m c a ng i dùng. B i vì nhân t hàng u trong vi c phát tri n h th ng là ng i dùng, cho nên c n xác nh n l i r ng t t c m i yêu c u c a ng i dùng u c bao hàm trong tài li u thi t k trong. • T t c các ch ng trình u ph i c mô t rõ ràng. Không ch mô t nh ng ph n chính c a ch ng trình mà còn c các ph n ngo i l , s a ch a, sao l u và các yêu c u ch ng trình khác. • T t c các t p và t t c cái vào và cái ra t c các t p, màn hình và báo cáo vào/ra ràng. • M i th t c gi i quy t l i u ph i Cách th c l i c x lí nh h ng t i th i gian gi i quy t l i.

u ph i c mô t rõ ràng. c dùng trong h th ng ph i

c mô t rõ ràng. tin c y h th ng. T

c mô t rõ

ng t nh v y, ph i mô t rõ

• Ph i tôn tr ng chu n làm tài li u, c n tránh các cách di n t sai l m. n b n trong tài li u ph i c vi t theo cách th c rõ ràng, chính xác.

140 Ch

ng 3 Thi t k trong

3.6.3

Ki m

m thi t k

Vi c ki m m c ti n hành trong giai n thi t k c a ti n trình phát tri n ph n m m c i là ki m m thi t k . Nó bao g m các c t thi t k . B i vì ch t l ng s n ph m c xác nh theo c t thi t k , nên cu c h p ki m m là r t quan tr ng c i ti n ch t l ng ph n m.

(1) Ph

ng pháp ki m

m

Ki m m thi t k ch y u c ti n hành vào ti n trình thi t k h th ng và thi t k ch trình. Các tài li u là ch cho cu c h p ki m m thi t k bao g m nh ng tài li u sau: - Tài li u thi t k trong - Bi u quan h ch ng trình - Các h ng d n v ch c n ng ch ng trình - Tài li u thi t k màn hình chi ti t - Tài li u thi t k báo cáo chi ti t - Tài li u thi t k t p chi ti t - Tài li u thi t k d li u ki m th Nh ng chu n b sau ph i

c th c hi n tr

c khi b t

u ki m

ng

m thi t k :

• L p k ho ch ki m m thi t k Ph i u ch nh l ch và trình cho t ch c ch u trách nhi m th c hi n ki m m thi t k . • Phân ph i tài li u có liên quan tr c khi b t u ki m m thi t k Nh ng tài li u ã chu n b và các tài li u có liên quan c phân phát cho nh ng ng i tham vào ki m m thi t k , cho h có th ki m tra chúng tr c khi ki m m c th vào thi t k • Chu n b danh sách ki m m ng vi c i chi u vào danh sách ki m m, c n ki m k l ng tính thích h p c a n i dung các kho n m c, tính nh t quán, vi c b sót, s tuân th v i chu n n i b , s rõ ràng, tính hi u c và các m khác. Danh sách ki m m ph i bao g m t t c nh ng m này cho s t c ki m m có th c ánh giá úng. Trong ki m m thi t k th c t , các tài li u c t o ra trong giai n sánh v i nh ng c t thi t k c t o ra giai n thi t k ngoài. Ch t l xác nh c ánh giá, và m c tuân th các c tr ng ch t l ng ki m m. Th i gian dành cho vi c ki m m thi t k là x p x hai gi cho m i ki m khác, tu theo kích c c a ch ng trình. Vi c ki m m thi t k này nên th ng m t hay hai l n.

(2) H th ng ki m

thi t k trong c ng c a t ng tài li u c yêu c u s c m, mà c ng có th c th c hi n thông

m

Nh ng ng i c nêu d i ây óng vai trò trung tâm trong vi c th c hi n ki m m thi t k : - Nh ng ng i thi t k có cùng m c k n ng k thu t nh nh ng ng i tr c ti p ch u trách nhi m cho vi c t o ra ch ng trình trong giai n thi t k trong - Nh ng nhân viên liên quan t i ti n trình thi t k Nh ng ng i c p cao h n ng i thi t k và nh ng nhân viên liên quan không nên tham gia vào cu c ki m m thi t k . u này là vì h p ki m m thi t k nh m ánh giá các tài li u, không ánh giá kh n ng c a ng i th c hi n ki m m thi t k .

3.6 T o ra tài li u thi t k trong 141

Nói chung, m t b ph n chuyên cho ki m m thi t k c thành l p c l p v i t ch c mà nh ng ng i thi t k và nh ng nhân viên liên quan này thu c vào. Do ó, ki m m thi t k có th c ti n hành theo quan m c a bên th ba.

(3) S tham d c a ng

i dùng

Thi t k màn hình chi ti t hay thi t k báo cáo chi ti t, là công vi c t o ra giao di n gi a h th ng và ng i dùng. Do ó, t ch c ng i dùng có th tham gia vào ki m m thi t k khi có nhu c u phát sinh.

142 Ch

ng 3 Thi t k trong

Bài t p Q1

Công vi c nào là công vi c thích h p nh t c làm t ph n c a ho t ng phát tri n h th ng?

a. Thi t k mã c. Thi t k c u trúc ch ng trình e. Thi t k d li u v t lí

Q2

Hãy ch n hai nhi m v c n n thi t k trong.

b. Thi t k d li u v t lí d. Xác nh yêu c u

c th c hi n trong thi t k d li u v t lí trong giai

a. c l ng th i gian truy nh p và dung l ng c. Phân tích m i quan h d li u d. T o ra ghi

Q3

ct t p

b. Xác nh kho n m c d li u e. Xác nh cách b trí b n

K thu t nào là k thu t bi u di n các ch c n ng và lu ng d li u b ng các kí hi u ch ra lu ng d li u, x lí (ch c n ng), kho d li u và ngu n ngoài (ngu n li u c sinh ra và g i i)? (K thu t này là m t trong các ph ng pháp phân tích có c u trúc.)

a. DFD

Q4

thi t k trong, xem nh

b. ERD

c. S

NS

d. Bi u

chuy n tr ng thái

Mô t nào là mô t thích h p v HIPO, m t ph

e. bi u

Warnier

ng pháp thi t k có c u trúc?

a. Bi u các n i dung và bi u lu ng d li u c dùng. b. Thông tin u khi n c truy n qua gi a các kh i x lí c mô t cùng v i các m i tên trong bi u n i dung. c. Bi u n i dung ch ra ch c n ng toàn th c a ch ng trình, và các s c a vào trong các kh i x lí ch ra trình t x lí. d. Các kí hi u trong l u c dùng ch ra cái gì c ch n và cái gì c l p l i. e. M i quan h gi a các b c vào/ra và x lí có th c bi u di n rõ ràng.

Q5

Trong xem xét c nêu d i ây v thi t k màn hình trong các giai ngoài và trong, xem xét nào là xem xét không thích h p?

n thi t

a. Vi c chuy n màn hình nên c thi t k v i vi c xem xét không ch vi c l a t ng b c ng vi c dùng m t menu, mà còn v i truy nh p tr c ti p vào màn hình mong mu n cho ng i dùng ã thành th o. b. T ng kho n m c mà d li u c a vào trên màn hình ph i c bao trong ngo c vuông, nh n m nh r ng nó là tr ng a vào d li u. c. Cách b trí màn hình ph i c thi t k theo cách các kho n m c c n tham chi u c thu x p t trái sang ph i, và t trên xu ng d i. d. hoàn thành ti n trình ang di n ra, màn hình ph i c thi t k ng n c n ng i dùng kh i b vi c a vào d li u, hay tr l i màn hình tr c ó. e. B trí màn hình ph i c chu n hoá; các qui t c v v trí cho hi n th tiêu và thông báo ph i c thi t l p.

4

Thi t k ch

ng

trình

c ích c a ch

ng

Thi t k ch ng trình là m t ti n trình quan tr ng vì nó làm cho các nhi m v l p trình c trôi ch y. u m t ch ng trình c phát tri n v i giao di n rõ ràng và các mô un c thi t k nh nh ng h p en, thì các b ph n c a ch ng trình này có th c dùng l i hay chúng có th c dùng t o ra ch ng trình m i. Có th có kh n ng xây d ng h th ng ch t l ng cao ng vi c t h p n gi n các mô un ch t l ng cao. Ch ng này mô t t ng nhi m v thi t k ch ng trình ng nh các s n ph m công vi c trong giai n thi t k ch ng trình. • Hi u m c ích, nh ng m quan tr ng và nhi m v liên quan t i thi t k ch ng trình ‚ Hi u n i dung và ý ngh a c a t ng ti n trình trong giai n thi t k ch ng trình ƒ Hi u vi c phân ho ch mô un và cách ánh giá mô un

144 Ch

ng 4 Thi t k ch

ng trình

Gi i thi u Thi t k ch ng trình là ti n trình cu i cùng trong toàn th giai n thi t k . ng th i hay song song v i vi c l p trình, tài li u thi t k ch ng trình c chu n b trong quá kh . Tuy nhiên, v i qui mô ngày càng t ng c a vi c phát tri n h th ng, nhu c u t ng n ng su t và s d ng các b ph n, vi c thi t k ch ng trình không còn là công vi c ph cho l p trình a, bây gi nó c coi nh m t trong nh ng ti n trình phát tri n h th ng. Trong giai n thi t k trong, h con c phân chia thành các n v ch ng trình ch c n ng. Trong giai n thi t k ch ng trình, công vi c chính là phân ho ch mô un. T ng n v ch ng trình ch c n ng c xác nh b i thi t k trong, c phân ho ch ra b ng vi c dùng ph ng pháp thi t k có c u trúc theo các mô un, nh ng n v nh nh t có th c so n th o ra. V i vi c phân ho ch ch ng trình thành các mô un, m t ch ng trình có th c làm cho hi u h n và d b o trì h n. H n n a, làm cho nh ng mô un ó là m t ph n c a ch ng trình m i phát tri n trong t ng lai, c n có vi c phân ho ch logic. Trong giai n thi t k ch ng trình, n i dung c a tài li u thi t k trong tr c h t ph i c hi u m t cách th u áo, và sau ó m c ích và th t c ph i c thi t l p làm nh ng nhi m thi t k ch ng trình có hi u qu .

4.1 thi t k ch

c ích và nhi m v ng trình

Thi t k ch ng trình là pha th t theo mô hình thác trình c thi t k d a trên tài li u thi t k trong.

4.1.1

c ích c a thi t k ch

c a

. Nó là pha mà trong ó các ch

ng

ng trình

c ích c a thi t k ch ng trình là thi t k c u trúc bên trong c a ch ng trình. Trong thi t ch ng trình, ph ng pháp thi t k có c u trúc c dùng phân ho ch ch ng trình thành các mô un. B ng vi c phân ho ch ch ng trình thành mô un và làm sáng t m i quan h gi a các mô un, c u trúc c a ch ng trình và vi c b o trì có th c làm d dàng h n. Hình 4-1-1 a ra các i t ng c gi i quy t trong vi c phát tri n h th ng, k c nh ng i ng c bao hàm trong các pha tr c. Các i t ng c gi i quy t trong vi c phát tri n h th ng c chia nh ra tu theo qui mô a vi c phát tri n nh sau: th ng-h con-giao tác/công vi c-ch ng trình-mô un- n (ch c n ng)-ch l nh

4.1 M c ích và nhi m v c a thi t k ch

Thi t k trong Thi t k ngoài

n v công vi c trong phát tri n h th ng th ng

con

con

Giao tác

Ch

Mô un

Ch

Mô un

n

ng trình

Mô un

n

n

n

ch

n

ng trình

Giao tác

Thi t k ng trình

Hình 4-1-1 Các

ng trình 145

Các mô un bao g m: n v d ch trong ngôn ng c p cao - Các kho n m c ch c n ng c a ch ng trình - Kho n m c n v menu - Ch ng trình g c có t 10 t i 300 câu l nh - Các nhi m v (ti n trình) x trí d i vi c qu n lí nhi m v (ti n trình) n v mô un n p - S v t c dùng trong vi c phát tri n h ng s v t n v bi n c giao di n ng i dùng ho (GUI) t mô un có th nh ngh a này nên

4.1.2

c xác nh nh m t n v logic c h u v m t c hi u ch nh m t tiêu chí.

Nhi m v thi t k ch

nh l

ng hay logic.

ng trình

Công vi c thi t k ch ng trình c th c hi n theo các b 1. Xác nh n n i dung c a tài li u thi t k trong 2. Phân ho ch thành mô un 3. Chu n b c t mô un 4. Chu n b tài li u thi t k ch ng trình 5. Chu n b c t ki m th 6. Th c hi n ki m m thi t k

c

c nêu sau ây:

(1) Xác nh n n i dung c a tài li u thi t k trong Trong khi ti n hành thi t k h th ng, tính nh t quán c a t t c công vi c thi t k , k c thi t k s , thi t k ngoài, thi t k trong và thi t k ch ng trình, u ph i c duy trì. ph n ánh i dung c a thi t k trong nh m t t ng th trong thi t k ch ng trình, nh ng m c nêu i ây ph i c xem xét tr c khi ch ng trình c xác nh trong thi t k trong thành các

146 Ch

mô -

ng 4 Thi t k ch

ng trình

un. Xác nh ch c n ng (ph i làm gì) Thông tin vào ( a vào cái gì) X lí (ki u x lí nào c n th c hi n) Cái ra ( a ra cái gì)

(2) Phân ho ch mô un Vi c phân ho ch mô un là công vi c phân ho ch các ch c n ng ch ng trình thành các n v biên d ch, b ng cách dùng ph ng pháp thi t k có c u trúc. Nó là thi t k ch ng trình lõi. y chi c xe làm ví d gi i thích cho vi c phân ho ch mô un. Hình 4-1-2 Phân ho ch xe

Xe c l p ráp v i m t thân xe, ng c , bánh xe, ch ng i v.v.. N u tài li u thi t k chu áo và c t v xe và các b ph n u có s n, thì vi c s n xu t nó c th c hi n d dàng b ng vi c t o ra t ng b ph n tr c khi l p ráp các b ph n ó l i. N u phanh h ng, b ph n c a nó có th c s a l i hay thay th . u này áp d ng cho vi c phát tri n h th ng. Không gi ng nh tr ng h p l p ráp xe, các b ph n trong vi c phát tri n h th ng là không th y c, do ó vi c phân ho ch c th c hi n t khía c nh v t lí cho t i logic. Nên tránh vi c ch dùng kích c nh cách o vi c phân ho ch vì nó làm phát sinh các mô un thi u s th ng nh t, làm khó cho vi c th c hi n các nhi m v l p trình hay b o trì. Do ó, xem nh m t nguyên t c mô un ph i c phân ho ch thành các n v logic, và m t cách o v t lí ph i c dùng làm ph ng ti n ph . Vi c phân ho ch mô un có các u m sau: • Tính c l p c a mô un có th c m b o. ng vi c phân ho ch n i dung c a x lí c xác nh trong thi t k trong thành các n v k t v m t logic thay vì thành các n v v t lí, tính c l p mô un có th c m b o. • Hi u qu x lí c c i thi n ng vi c t i thi u hoá các quan h v i các mô un khác, hi u qu x lí có th c i thi n. • T o ra và dùng l i các b ph n Các mô un có th c dùng b i ch ng trình, hay các mô un có th c dùng l i thì u có th c trích ra t o ra các b ph n m i, hay nh các b ph n trong các ch ng trình khác. • Tính hi u qu và tin c y b o trì c c i ti n u c n thay i các ch c n ng h th ng, thì ch nh ng mô un c liên k t v i nh ng thay i h th ng m i có th b thay i hay thay th , cho nên hi u qu b o trì và tin c y có th c c i ti n. Th t c phân ho ch mô un và các chi ti t v thi t k c u trúc s c mô t v sau.

(3) Chu n b n xác

c t mô un

nh n i dung c a vi c x lí

c th c hi n b i t ng mô un.

c t mô un ph i

c

4.1 M c ích và nhi m v c a thi t k ch

ng trình 147

chu n b có chú ý t i các chi ti t, không b sót các ch c n ng.

(4) Chu n b tài li u thi t k ch

ng trình

t qu c a công vi c c th c hi n theo các b c (1), (2) và (3) trên c so n thành tài li u thi t k ch ng trình, dùng làm h ng d n cho vi c mã hoá. Trong tài li u thi t k ch ng trình, nh ng thông tin sau ây ph i c mô t : ng l i thi t k ch ng trình - T ng quan v ch ng trình - Bi u c u trúc ch ng trình - Chi ti t x lí - Tr ng h p ki m th - Mô t kho n m c

(5) Chu n b

c t ki m th

c t ki m th c chu n b t ng ng theo m c ích c a t ng ki m th . Ki m th ch trình c phân lo i thành các ki m th n v và ki m th tích h p.

(6) Ki m

ng

m thi t k

c ích c a ki m m thi t k là: - Làm h p l vi c tho mãn yêu c u ng i dùng - Ki m ch ng s nh t quán v i thi t k trong, và s n sàng cho vi c chuy n sang công vi c p trình u ý t i nh ng m c ích này, c n ph i ti n hành ki m m thi t k . Các cu c h p ki m m là quan tr ng t t c các giai n. K t qu c a vi c ki m m thi t k c ti n hành trên n i dung c a thi t k ch ng trình có nh h ng l n t i công vi c l p trình.
m quan tr ng c n xét t i khi ti n hành ki m

m thi t k >

- N i dung c a tài li u thi t k ch ng trình ph i c ki m tra. - N i dung c a tài li u thi t ch ng trình ph i c so sánh v i n i dung c a tài li u thi t k trong. C n ch ra các ch c n ng thi u và các khi m khuy t. - Xác nh n r ng không có các ch c n ng có liên quan t i mô un mà b thi u. - Xác nh n r ng vi c phân ho ch mô un ã c làm úng - Tính nh t quán c a giao di n gi a các mô un ph i c ki m ch ng. C ng v y, ph i ki m tra xác nh n r ng không có giao di n nào b thi u.

148 Ch

ng 4 Thi t k ch

4.2 ch

ng trình

Thi t k ng trình

có c u trúc cho

Khi qui mô h th ng m r ng l n d n và các ch c n ng mà ng i dùng yêu c u tr nên ph c t p n, thì ch ng trình c dùng v n hành h th ng nh v y c ng tr thành ph c t p. K t qu là, s các l i ti m tàng t ng lên, và th i gian và chi phí ph i tiêu s a chúng c ng t ng lên. Trong quá kh khi ph n c ng còn t, các ch ng trình ã c thi t k b ng c u trúc logic ph c t p c th hoá các ch c n ng nâng cao; và vi c vi t nh ng ch ng trình nh v y là c i cho ng i l p trình bi u l tài n ng c a mình. Tài nguyên h th ng bây gi ã s n có d th a; u quan tr ng là t o ra ch ng trình ch t l ng cao, d hi u.

4.2.1

Th t c thi t k có c u trúc

c này mô t các nhi m v thi t k có c u trúc c a vi c phân ho ch m t ch ng trình thành các mô un. m m u ch t trong thi t k có c u trúc là phân ho ch ch ng trình theo cách nó làm t ng s c l p c a các mô un . Hình 4-2-1 Th t c thi t k có c u trúc Xác

nh module m c cao nh t

Phân tích ch c n ng c a i module Ch n ph

ng pháp phân ho ch

Phân ho ch ch ng trình thành các module Xác



nh giao di n gi a các module Phân ho ch l i module Không t thúc

Chi ti t v t ng b

(1) Xác

c là nh sau:

nh mô un m c cao nh t

Mô un m c cao nh t là mô un th c hi n hai ch c n ng:

cg it il n

u tiên khi ch

ng trình b t

u. Mô un này

4.2 Thi t k có c u trúc cho ch

ng trình 149

- Ki m soát toàn b ch ng trình (t ng mô un ) t các giá tr kh i u cho các kho n m c d li u (nh b m) - M và óng t p Có tr ng h p mà mô un m c cao nh t ch ki m soát toàn b ch ng trình, còn các mô un khác (các mô un m c th p) t giá tr kh i u cho các kho n m c d li u và m óng t p.

(2) Phân tích ch c n ng c a t ng mô un t c các ch c n ng c t y u c n cho vi c ch y ch ng trình u c nh n di n. Chúng c phân ho ch thêm n a ra hay c t h p l i khi c n cho chúng có th c phân ho ch thành t t p t i u các mô un. ct p - Ki m tra l i trong d li u - X lí (tính toán) d li u a d li u ra - Gi i quy t l i

(3) Ch n ph

a vào

ng pháp phân ho ch

i quan m c nói t i d i ây, ph ng pháp phân ho ch mô un thích h p nh t c n ph i c ch n ra. T ng ph ng pháp phân ho ch c mô t chi ti t trong M c 4.2.2. • Ph Ph
ng pháp phân ho ch c thi t k v i chú ý t p trung vào lu ng d li u ng pháp này là thích h p cho h th ng giao tác tr c tuy n. t kì m t trong nh ng ph ng pháp sau ây u có th c dùng:> Ph ng pháp phân ho ch STS Ph ng pháp phân ho ch TR Ph ng pháp phân ho ch hàm chung

• Ph Ph <M -

ng pháp phân ho ch c thi t k v i chú ý t p trung vào c u trúc d li u ng pháp này là thích h p cho ki u x lí theo lô trong ó ch y u x lí các t p. t trong hai ph ng pháp sau có th c dùng:> Ph ng pháp Jackson Ph ng pháp Warnier

(4) Phân ho ch ch

ng trình thành các mô un

ng vi c dùng b t kì ph ng pháp phân ho ch nào ã c nêu m c (3) trên, ch ng trình c phân ho ch thành các mô un d a trên các chu n cho vi c phân ho ch mô un. Mô un cg it i c g i là mô un c p d i . 1. Xác nh mô un m c cao nh t 2. Xác nh các mô un c g i b i mô un m c cao nh t 3. Xác nh các mô un c g i b i b c 2 trên ây 4. Các mô un c chia ra d n t ng b c thành các mô un m c th p. Trong vi c phân ho ch, h ng d n sau nên c tuân th :
ng d n v phân ho ch mô un:>

- N u m t ch

ng trình bao g m t 10 t i 300 mô un, thì vi c phân ho ch có th

c th c

150 Ch

ng 4 Thi t k ch

ng trình

hi n d dàng. - S các mô un c ch a m t m c (phân c p b c) nên là m i hay ít h n. - Chi u sâu nên là b n m c hay ít h n. Hình 4-2-2 a ra m t tr ng h p trong ó ch ng trình c phân ho ch úng, và tr khác nó c phân ho ch không úng. Hình 4-2-2 Hai tr
ng h p ch

(5) Xác

ng h p

ng h p phân ho ch mô un ng trình phân ho ch thích h p>


ng h p ch

ng trình phân ho ch không thích h p>

nh giao di n gi a các mô un

Bây gi chúng ta mô t d li u, và các u ki n c n truy n d li u gi a các mô un. (Xem Hình 4-2-3.) Vi c xác nh giao di n gi a các mô un c ng quan tr ng nh vi c phân ho ch mô un. Th m chí sau khi ch ng trình ã c phân ho ch thành các mô un, thì tin c y c a b n thân ch ng trình c ng ch có th c m b o n u t ng giao di n mô un có th th c hi n ch c ng c a nó; ch ng h n, n u A c a vào, thì B c cho l i mà không h ng. Có khuy n cáo r ng s các kho n m c d li u có th c truy n qua m t giao di n nên gi b y hay ít n. Hình 4-2-3 Giao di n gi a các mô un Thi t b u cu i

Nh p / xu t d li u vào / t thi t b u cu i 1 áp ng yêu c u v n chuy n 3

2 Tìm hàng t n kho

pt n kho Mã S hàng Hàng t n kho

ng

a vào t

S hàng t n d tr

p s n ph m c thêm vào kho

Tìm s n ph m ã nh p vào kho

Mã Ngày các s n ph m S s n ph m d tr S s n ph m c Hàng c a vào l u kho c a vào l u a vào l u kho

các module m c cao

theo k ho ch

kho theo k ho ch theo k ho ch

a ra t các module m c cao

tn i 1

Mã hàng, S l

ng s n ph m theo

Tr ng thái, thông

p A, thông

pB

yêu c u, ngày v n chuy n theo yêu c u 2

Mã hàng

S hàng t n kho không d tr

3

Mã hàng

Ngày các s n ph m c l u kho theo k ho ch, s s n ph m c l u kho theo k ho ch

(6) Xem xét vi c phân ho ch l i mô un u ch ng trình un c cho v i

c phân ho ch thành các mô un, d a trên tiêu chí cho vi c phân ho ch mô c l ng không mong mu n, thì m t trong nh ng ph ng pháp phân ho ch

4.2 Thi t k có c u trúc cho ch

ph

ng trình 151

c nêu trong (3) ph i c ch n làm l i nó theo cách trên xu ng. N u làm nh v y, nhi u ng pháp có th c dùng t h p v i nhau khi c n.

Hình 4-2-4 Dùng m t ph

ng pháp phân ho ch t h p v i các ph

ng pháp khác

Phân ho ch STS

Phân ho ch TR

Phân ho ch ch c n ng thông th


ng pháp phân ho ch ph i

c dùng >

ng pháp phân ho ch STS c dùng cho các mô un m c cao. ng pháp phân ho ch TR c dùng cho các mô un m c trung. ng pháp phân ho ch ch c n ng th ng c dùng tích h p các mô un chi ti t, c th p.

4.2.2

Các k thu t phân ho ch mô un

(1) Các k thu t phân ho ch li u • Ph

ng

n hình

c thi t k v i chú ý t p trung vào lu ng

ng pháp phân ho ch STA

nguyên t c, d li u c x lí qua ba b c: a vào, x lí và a ra. Ph ng pháp phân ho ch STS (Source –Transform-Sink Ngu n-Bi n i-B ch a) c thi t k v i chú ý t p trung vào lu ng d li u này, ch ng trình c chia thành ba ph n nh sau: - Ngu n (ch c n ng x lí u vào) - Bi n i (ch c n ng x lí d li u) - B ch a (ch c n ng x lí u ra) Ph ng pháp này là thích h p gi i quy t cho các mô un m c cao có t t c các ch c n ng a vào, x lí và a ra. Hình 4-2-5 Th t c phân ho ch STS u trúc ch

ng

trình ph i rõ ràng Xác

nh lu ng d li u, và k t h p m i b theo các ch c n ng c th Xác

Xác

nh m tr u ng t i a nh các module

pd Xác

c

i tr c ti p

nh các giao di n

i các module c p cao

Kh n ng phân ho ch l i Có Phân ho ch l i

Không t thúc

152 Ch

ng 4 Thi t k ch

ng trình

1. Tr

c h t c u trúc ch ng trình c làm sáng t . u trúc ch ng trình c làm sáng t v i chú ý chính dành cho các ch c n ng, nh c a ra trong Hình 4-2-6. Các ch c n ng nên c g p nhóm l i sao cho s các ch c n ng là t ba t i m i.

Hình 4-2-6 Làm sáng t c u trúc ch

ng trình Ch p nh n m

Th c hi n

yêu c u

cc u

trúc trong câu h i

t c các yêu c u tìm ki m

o các

a ra d li u

Chia thành các ch c n ng

Thu li u

câu h i tìm ki m c Tìm c s li u

Module m c cao

2. Lu ng d li u vào và ra c nh n di n và t ng b c trong lu ng này c liên k t v i các ch c n ng xác nh. ng b c trong lu ng d li u này trong ch ng trình c liên k t và móc n i l i, dùng các i tên (s b t) t o ra lu ng d li u chính cho vào và ra, nh c v trong Hình 4-2-7. Hình 4-2-7 Liên k t t ng b

c trong lu ng d li u v i các ch c n ng xác o các

Ch p nh n yêu c u

câu h i tìm ki m

Tìm c s li u

Thu

c

nh

Hi n th d li u

li u

Yêu c u tìm ki m

Yêu c u tìm ki m

3. Nh n di n m tr u t ng t i a Nh n di n m tr u t ng n i d li u có th không còn c xem xét là d li u vào ( m vào tr u t ng t i a ), và m mà d li u b t u thành hình nh d li u a ra ( m a ra tr u t ng t i a ), nh c nêu trong Hình 4-2-8. Hình 4-2-8

m tr u t

ng t i a o các

Ch p nh n yêu c u

câu h i tìm ki m

Tìm c s li u

Thu

c li u

a ra d li u

Lu ng d li u chính m vào tr u ng t i a Ph n ngu n (

a vào)

Ph n chuy n

a ra

m ra tr u ng t i a i (x lý)

3. Xác nh các mô un c p d i tr c ti p u trúc, và liên k t các mô un (k c mô un c p cao) ã lí và cái ra, nh c nêu trong Hình 4-2-9.

Ph n chìm (

u ra)

c phân ho ch thành cái vào,

4.2 Thi t k có c u trúc cho ch

ng trình 153

Hình 4-2-9 C u trúc các mô un Th c hi n t t c các yêu c u tìm ki m

1

2

a ra câu h i tìm

3

Tìm ki m

ki m ti p theo

Ti n hành thi t l p

s d li u

li u

5. Xác nh các giao di n v i các mô un c p cao Xác nh giao di n v i các mô un c p cao (giao di n gi a các mô un). (Xem Hình 4-2-10.) Hình 4-2-10 Xác

nh các giao di n gi a các mô un u vào

u ra

1

-Tìm ki m câu h i (không)

- B n yêu c u -

a ch cu i

- Mã l i 2

- B n thông tin - Mã l i

3

. B n thông tin - Mã l i . B n yêu c u . a ch cu i

6. Ki m tra kh n ng phân ho ch l i Ki m tra xem li u có mô un nào ph i ho ch các mô un. ‚ Ph

ng pháp phân ho ch TR (ph

c phân ho ch l i không. N u có, ti p t c phân ng pháp phân ho ch giao tác)

u ki u giao tác có th c xác nh b ng ki u c a d li u, thì nên dùng ph ng pháp phân ho ch TR g p nhóm (làm mô un hoá) cho các mô un theo ki u giao tác. Ph ng pháp này ph thu c d li u. Hình 4-2-11 Các mô un

c phân ho ch dùng ph

ng pháp phân ho ch TR

p nh t t p chính

Ki m tra d li u

p nh t

nh p vào

lý trong kho

a ra t p chính

lý ngoài kho

ng vào t p chính

: Ph n chia c x lý b i phân ho ch TR ra kèm theo hình ch nh t c tô.

c

a

Trong ví d c nêu trong Hình 4-2-11, các ki u giao tác c phân ho ch theo các ki u d li u vào (x lí trong kho, x lí ngoài kho, b sung vào t p chính). Khi c n x lí m t ki u d li u nào ó, m t giao tác t ng ng c a nh ng giao tác ã c phân ho ch này s cl a ra.

154 Ch

ƒ Ph

ng 4 Thi t k ch

ng trình

ng pháp phân ho ch ch c n ng chung

u có các mô un có các ch c n ng chung, thì ph 4-2-12.) Hình 4-2-12 Ph

ng pháp này

c dùng. (Xem Hình

ng pháp phân ho ch ch c n ng chung Tìm t p nhân viên

Tìm ra giao d ch vào thích h p

Tìm ra b n ghi nhân viên thích h p

Hi n th b n ghi lên màn hình

Hi n th thông pl i

(2) K thu t phân ho ch h Các mô un li u vào và ra. • Ph

ng c u trúc d li u

c thi t k b ng vi c thi t l p quan h c u trúc c a mô un v i c u trúc c a d

ng pháp Jackson

i ph ng pháp Jackson, các mô un c phân ho ch b ng vi c l p m i quan h gi a c u trúc c a ch ng trình v i c u trúc c a d li u vào và ra.
ng pháp Jackson>

1. Xác nh c u trúc c a d li u vào và ra. 2. Tìm m i quan h m t-m t gi a các k t c u trong c u trúc c a d li u vào và ra. N u không th tìm c, thì m t c u trúc d li u trung gian ph i c thi t l p. 3. T o ra c u trúc ch ng trình d a trên c u trúc c a d li u ra. 4. Ki m ch ng c u trúc ch ng trình b ng vi c tham chi u t i c u trúc d li u vào.
ng pháp Jackson>

Trong tr ng h p c a ph ng pháp Jackson, m t c u trúc d li u c ng nh c u trúc ch ng trình c xây d ng nên b ng vi c dùng ba k t c u, "tu n t ," "l p" và "tuy n l a" c nh ngh a t ng ng theo các ph n t c s . Hình 4-2-13 Các k t c u c a ph

B

ng pháp Jackson







A

D

F

C

D

E

G

H

I

• Y u t : Các k t c u không th c phân chia thêm n a Ví d : Kho n m c d li u, câu l nh, v.v... • Tu n t : K t c u bao g m các k t c u con; m i k t c u con xu t hi n tu n t ch t l n. Ví d : B n ghi (nhi u kho n m c d li u), trình x lí tu n t , v.v. • L p (*): M t k t c u xu t hi n l p i l p l i. Ví d : T p tu n t , câu l nh PERFORM, v.v... • Tuy n l a (°): Bao g m nhi u k t c u con; m t trong chúng c l a l y. Ví d : N -Có, câu l nh EVALUATE v.v...

4.2 Thi t k có c u trúc cho ch

ng trình 155

Dùng ph

ng pháp Jackson, các mô un

c phân ho ch nh

c nêu trong Hình 4-2-14.

Hình 4-2-14 D li u vào và ra < Nh p d li u> 10020 IR 620405 200 000 Nhóm khách hàng

10020 IR 620402 150 000 10020 CR 620401 80 000 10010 SR 620403 50 000

Nhóm khách hàng

10010 IR 620401 100 000

<Xu t d li u> Báo cáo v ti n nh n c t khách hàng hi u L p Ngày S ti n khách hàng b n ghi nh n c 10010 620401 100 000 * 100 000 10020 620402 150 000 620405 200 000 * 350 000 xxx xxx xxx

• Xác nh c u trúc c a d li u vào và ra. li u vào bao g m nh ng u sau, nh c nêu trong Hình 4-2-14: - T p vào: Cùng nhóm khách hàng c l p l i. - Nhóm khách hàng: Cùng b n ghi nhóm khách hàng c l p l i. - Ki u c a b n ghi khách hàng: B n ghi ti n nh n c và các b n ghi khác li u ra bao g m nh ng u sau: - D li u ra: B n ghi v ti n nh n c t m i khách hàng c l p l i. - B n ghi v ti n nh n c: Danh sách chi ti t ti n nh n c t t ng khách hàng, và ng s ti n nh n c t khách hàng c l p l i. - Danh sách chi ti t v ti n nh n c t khách hàng: B n ghi v ti n nh n c cl p i. Do ó, các c u trúc c a d li u vào và ra có th c xác nh nh c nêu trong Hình 4-2-15. Hình 4-2-15 C u trúc c a d li u vào và ra



p vào

Biên b n nh n ti n

Nhóm khách hàng n ghi khách hàng Các b n ghi khác vào Các b n ghi khác

n ghi nh n ti n

Tiêu biên b n

Chi ti t biên b n

Dòng ghi t ng s ti n nh n c

n ghi nh n ti n t i khách hàng Danh sách chi ti t s ti n nh n c t khách hàng khác

Dòng ghi t ng s ti n nh n c

n ghi nh n ti n

• Tìm m i quan h m t-m t gi a các k t c u trong c u trúc c a d li u vào và ra (xem Hình 4-2-16). N u không có quan h nh v y, ph i thi t l p ra m t c u trúc li u trung gian. Trong tr ng h p c a Hình 4-2-15, có ba quan h m t-m t: - T p vào và báo cáo v ti n nh n c

156 Ch

ng 4 Thi t k ch

ng trình

- Nhóm khách hàng và b n ghi v ti n nh n c t t ng khách hàng - M t b n ghi ti n nh n c và b n ghi khác v ti n nh n c Hình 4-2-16 M i quan h m t-m t gi a các ph n t tích h p p vào

t

Biên b n nh n ti n

m t

Nhóm khách hàng

Tiêu biên b n

n ghi khách hàng

t

n ghi nh n ti n t i khách hàng

n ghi nh n ti n

Danh sách chi ti t s ti n nh n c t khách hàng khác t



Dòng ghi t ng s ti n nh n c

m t

Các b n ghi khác vào Các b n ghi khác

Chi ti t biên b n

Dòng ghi t ng s ti n nh n c

n ghi nh n ti n

m t

T o ra c u trúc ch ng trình d a trên c u trúc c a d li u ra. o ra c u trúc ch ng trình d a trên m i quan h m t-m t gi a các k t c u. (Xem Hình 4-2-17.) V nguyên t c, c u trúc c a ch ng trình ph i có quan h v i d li u a ra, và d li u a vào c dùng cho c vi c ki m ch ng và s a c u trúc ch ng trình. (Ch d n "B qua các b n ghi khác - Ignoring other records" là k t qu thu c sau khi m t ph n a c u trúc ch ng trình ã c s a l i.) Hình 4-2-17 C u trúc ch

ng trình In biên b n v s ti n nh n c d a trên t p nh p vào In tiêu biên b n

In chi ti t biên b n

In dòng ghi t ng s ti n nh n c

In biên b n nh n ti n t m i khách hàng In chi ti t báo cáo khách hàng

In dòng ghi t ng s ti n nh n c t khách hàng

In dòng ghi t ng s ti n nh n c qua các b n ghi khác (không th c hi n gì c )

‚ Ph

In 1 dòng

ng pháp Warnier

Ph

ng pháp Warnier là k thu t thi t k mô un có c u trúc d a trên lí thuy t t p h p. Nó c s d ng r ng rãi phân ho ch các mô un cho vi c x lí t p và các ng d ng nghi p v khác. c tr ng c a ph

ng pháp Warnier>

- Phân tích d li u là c s c a ph ng pháp này. - Ph ng pháp này d a trên "khi nào, âu và bao nhiêu l n." Vi c phân tích

c th c

4.2 Thi t k có c u trúc cho ch

ng trình 157

hi n theo cách trên xu ng. - Trong khi ph ng pháp Jackson c thi t k làm vi c c u trúc ch y u d a trên d li u a ra, thì ph ng pháp Warnier c thi t k làm vi c c u trúc d a trên d li u a vào. Các nhi m v phân ho ch c a ph ng pháp Warnier c nêu d i ây. Xem nh m t ví d , y l i ví d c v trong Hình 4-2-14.
ng pháp Warnier>

1. Tìm m i quan h m t-m t gi a c u trúc c a d li u a vào và c u trúc logic c a ch trình. Tr c h t so sánh c u trúc c a d li u vào v i c u trúc logic c a ch ng trình. Hình 4-2-18 So sánh c u trúc c a d li u vào v i c u trúc logic c a ch

10020 PR 620402 150 000 10020 CR 620401 80 000

Nhóm khách hàng

lý nhóm khách hàng

(n l n)

Ph n k t thúc

(m t l n)

Ch

10010 SR 620403 50 000

ng trình

c ch ng trình Ph n b t u (m t l n)

10020 PR 620405 200 000 ng trình

Nhóm khách hàng

ng

10010 PR 620401 100 000 S hi u L p Ngày Ti n khách b n ghi nh n c IR: B n ghi ti n nh n

c

Cùng c u trúc nh c nêu trong Hình 4-2-14 c tham kh o t i ây. C u trúc logic a ch ng trình t ng ng bao g m các t p con sau: - Ph n b t u - Ph n nhóm khách hàng - Ph n k t thúc (N: s l n l p, 0 và 1: ho c c l a) Ví d c nêu trong Hình 4-2-18 ch ra r ng vi c x lí cho nhóm khách hàng ti p t c cho i khi vi c x lí cho t t c các t p c hoàn t t. 2. Chia ra các t p con theo cách t trên xu ng. Nhóm khách hàng ã c chia thêm ra c nêu trong Hình 4-2-19. Hình 4-2-19 Chia ra các t p con (b

c 1) c nhóm khách hàng

Ph n Nhóm khách hàng

Ph

u c a nhóm khách hàng (1 l n)

lý b n ghi khách hàng (m l n) Ph n cu i nhóm khách hàng (1 l n)

u trúc logic c a nhóm khách hàng bao g m các t p con sau: Ph n b t u c a m t nhóm khách hàng Ph n b n ghi khách hàng Ph n k t thúc c a nhóm khách hàng n b n ghi khách hàng ã c phân chia thêm c nêu trong Hình 4-2-20.

158 Ch

ng 4 Thi t k ch

ng trình

Hình 4-2-20 Chia ra các t p con (b

c 2)

c b n ghi khách hàng Ph n b t n ghi khách hàng

u c a b n ghi khách hàng (1 l n)

Li u nó có là b n ghi v ti n nh n c hay không( không ho c 1 l n) Ph n k t thúc nhóm khách hàng (1 l n)

u trúc logic c a ph n b n ghi khách hàng bao g m các t p con sau: - Ph n b t u c a b n ghi khách hàng - Li u nó có là b n ghi v ti n nh n c hay không - Ph n k t thúc c a b n ghi khách hàng Vì t p con "li u nó có là b n ghi v ti n nh n c hay không " không th thêm n a, nên vi c phân ho ch d ng l i t i m c này. 3. V l u u

c phân chia

. c v ra d a trên Hình 4-2-18, 4-2-19 và 4-2-20

Hình 4-2-21 L u t

u

Ph n b t u m c ch ng trình Ph n b t u nhóm khách hàng

M c b n ghi khách hàng

M c nhóm khách hàng

M c ch

ng trìn

Ph n b t u n ghi khách hàng không

Xác

nh



b n ghi: IR lý b n ghi nh n ti n

t thúc ph n n ghi khách hàng Có Xác nh xem x lý b n ghi khách hàng có hoàn thành hay không

không

Ph n cu i nhóm khách hàng

Xác nh xem không x lý nhóm khách hàng có hoàn thành hay không

Có Ph n cu i m c ch ng trình t thúc

c nêu trong Hình 4-2-21.

4.2 Thi t k có c u trúc cho ch

ng trình 159

(3) Dùng t h p các k thu t phân ho ch thu t phân ho ch c s c dùng cho thi t k c u trúc là ph ng pháp STS. Trong b c u tiên c a vi c phân ho ch ch ng trình, ph ng pháp này bao gi c ng c dùng, b i vì vi c phân ho ch STS cho phép ng i l p trình nh n di n c u trúc duy nh t c a ch ng trình làm vi c ti p. Nó c ng làm cho ng i l p trình có kh n ng hi u cách th c d li u ch y qua t i ng b c c a vi c x lí d li u, và cách nó c bi n i trong khi c x lí b i t ng ch c ng. Trong ph ng pháp phân ho ch STS, các ch c n ng c chia thành các ch c n ng c p i. u ph ng pháp phân ho ch STS không th áp d ng c, thì ph i dùng ph ng pháp khác. Phân ho ch STS không làm vi c t t v i các mô un ph thu c d li u – các mô un mà khó rút ra c u trúc ch ng trình tr c ti p. Trong tr ng h p này ph i dùng phân ho ch TR. Trong ph ng pháp phân ho ch TR, các ch c n ng c chia thành các ch c n ng c p d i t ng ng. Khi các mô un c phân ho ch ra, s các mô un liên t c t ng lên. Tuy nhiên, nó không t ng vô h n; khi các mô un c phân ho ch t i m t gi i h n nào ó thì các mô un u xa nh t ch là các câu l nh. M c d u ây là tr ng h p c c oan, vi c phân ho ch nên d ng l i t i m nào ó. Tiêu chu n c nêu d i ây c dùng xác nh khi nào thì d ng vi c phân ho ch: • Tr c khi b n b t u phân ho ch m t mô un, hãy nhìn tr c vào c u trúc logic c a mô un. N u b n có th nhìn tr c nó m t cách d dàng, thì mô un c c l ng ch a quãng n m m i câu l nh. Do ó, b n có th xác nh r ng b t kì vi c phân ho ch nào thêm ng u không c n thi t. ‚ N u b n không còn có th phân ho ch c mô un thành các mô un c p d i tr c ti p có b n v m t ch c n ng (s gi i thích d i ây), thì b n có th xác nh r ng b t kì vi c phân ho ch nào thêm n a c ng là không c n thi t. ƒ N u b n phân vân gi a vi c d ng l i và vi c ti p t c phân ho ch, thì b n nên ti p t c phân ho ch. N u vi c phân ho ch c a b n quá nhi u, b n có th t ch c l i các mô un, tuy nhiên a ch a ch ng trình c phân ho ch quá nhi u còn d h n là ch ng trình c phân ho ch không . u trúc mô un thay i t hình chóp nh n sang hình dáng mái n th H i giáo, nh c nêu trong Hình 4-2-22. u này là do vi c phân ho ch ch c n ng thông th ng c th c hi n c cu i cùng c a vi c phân ho ch mô un. Hình 4-2-22 Hình dáng c a c u trúc mô un Ph n phân chia Hình chóp

Ph n phân chia Ph n phân chia

Mô hình duy nhât

Mô hình chung

Hình 4-2-23 cung c p t ng quan v các k thu t phân ho ch mô un, hay các k thu t thi t k

160 Ch

ch

ng 4 Thi t k ch

ng trình ã

ng trình

c mô t cho t i nay.

Hình 4-2-23 Các k thu t phân ho ch mô un thu t phân ho ch mô un thu t thi t k theo lu ng d li u Phân ho ch STS

Phân ho ch thành các ch c n ng c p d

Phân ho ch TR

Phân ho ch thành các ch c n ng t

Phân ho ch ch c n ng chung

i

ng

Trích các ch c n ng c p d

ng i

thu t thi t k theo c u trúc d li u

4.2.3

Ph

ng pháp Jackson

Ph

ng pháp Warnier

Tiêu chí cho vi c phân ho ch mô un

Công vi c thi t k ch ng trình ph c t p có th c làm n gi n hoá b ng vi c phân ho ch ch ng trình thành các mô un, nh ã gi i thích trong m c tr c. Trong thi t k và s a i, ng ph n c a ch ng trình ph i m b o tính c l p c a mô un, cho t t c các mô un có th th c hi n các ch c n ng ã nêu mà không nh h ng l n nhau. Hai m này, vi c làm n gi n hoá thi t k ch ng trình và tính c l p c a mô un, là nh ng m c tiêu ch y u ph i c t t i trong thi t k có c u trúc. Có hai cách o c dùng ánh giá tính c l p c a mô un: b n mô un ch ra s c b n a m i quan h gi a các mô un, và vi c g n n i mô un ch ra m i quan h gi a các mô un

(1)

b n mô un

b n mô un là m t trong nh ng h ng d n mà ta có th tham chi u t i khi xác nh các mô un trong ti n trình thi t k . Các ki u b n mô un c xem xét t khía c nh c a vi c dùng i mô un, khuynh h ng l i, tính c l p, tính b o trì c, tính m r ng c v.v.. c bi t, chúng c xem xét theo tr t t nh ng hi u qu không mong mu n cho t i hi u qu c mong mu n, c t o ra b i t ng ki u b n mô un.

4.2 Thi t k có c u trúc cho ch Hình 4-2-24

ng trình 161

b n mô un Th p ng

trùng h p ng

ng ng

logic th i gian

theo th t c

ng

trùng h p

ng

lan truy n

ng

thông tin

ng

cl p

ch c n ng

Cao



b n trùng h p ng u nhiên

u b t kì u ki n nào trong nh ng u ki n sau mà áp d ng c cho m t mô un b n ang ki m tra, b n c a mô un nh v y c g i là b n trùng h p ng u nhiên : - Các ch c n ng c a mô un không th c xác nh. - Mô un có nhi u ch c n ng không liên quan l n nhau. c d u ng i l p trình s không ch ý t o ra mô un nh v y, u ó có th c t o ra m t cách không ch ý trong nh ng hoàn c nh sau ây: - N u mô un c phân ho ch thành nh ng ph n tu ti n g i chèn l p. - N u ng i l p trình ph i áp ng yêu c u r t nghiêm kh c, ch ng h n “s các câu l nh trong t ng mô un ph i là 50 t i 60". Mô un c t o ra trong nh ng hoàn c nh nh v y không th c dùng l i chút nào; nó có th gây ra vi c gi m sút tính b o hành c c ng nh tính m r ng c c a ch ng trình. Ng i ta cho r ng ch ng trình b phân ho ch thành các mô un có b n trùng h p ng u nhiên còn t i h n ch ng trình không c phân ho ch chút nào. Hình 4-2-25 a ra m t ví d v b n trùng h p ng u nhiên . Hình 4-2-25 Ví d v

b n trùng h p ng u nhiên

400

Ch c n ng 1

Ch c n ng 2

1300 1600 2000 Ch

0

Ch c n ng 1

0

Ch c n ng 3

Ch c n ng 2-1

Ch c n ng 2-2

500

Ch c n ng 2-3

0

Ch c n ng 3-1

500

Ch c n ng 3 - 2

0

Ch c n ng 4 ng trình tr c khi c phân ho ch

Trùng h p 500 0

Ch c n ng 4

Trùng h p

Trùng h p 500

i module sau khi



b n logic

hoàn thành phân ho ch

Mô un có hai hay nhi u ch c n ng có liên quan, và vi c th c hi n m t trong nh ng ch c ng này do mô un g i l a ra, v thu t ng c g i là b n logic. Ki u mô un này th c hi n các ch c n ng qua m t giao di n. Hình 4-2-26 a ra ki u mô un này.

162 Ch

ng 4 Thi t k ch

Hình 4-2-26 Mô un v i

ng trình b n logic (ví d )

Tên module: Các

i

c ch p nh n: 4

i 1:

i u

i là 0: Xóa b ng

Mã ch c n ng

u

i là 1: Thêm các m c vào b ng

(1 s )

u

i là 2: Xóa các m c t b ng

i 2: Tên

u

i là 3: Tìm b ng

u

i là 4: Sao chép b ng t i t p ki m tra

Các ch c n ng c a

i là

i nh p n u các ch c n ng 1,2 và 3

Các ch c n ng c a

i là

i gi n u các ch c n ng 0 và 4

c s d ng c s d ng

(4 s ) i 3: (8 s )

Các ch c n ng c a

i là

i nh p n u ch c n ng 1

Các ch c n ng c a

i là

i xu t n u ch c n ng 3

Các

i 4:

i khác là

c s d ng c s d ng

i gi

i ra ( tr ch c n ng 0)

l i (1 s )

0: Không l i (k t thúc bình th

ng)

Ch c n ng 1:

y

1 - b ng

Ch c n ng 2 và 3: 1 Ch c n ng 4:

,2

các m c ch ng chéo lên nhau

không có m c nào

1 - l i vào / ra, 2 - k t thúc t p, 3

không có d li u

i mô un có b n logic vi c gi i quy t nó có chút ít r c r i h n b i nh ng lí do c nêu sau ây: i c di n gi i theo cách khác, tu theo ch c n ng c g i. - M c d u m t i nào ó b b qua b i ch c n ng nào ó, nó không th b b i c. - Cho dù ch m t ch c n ng c dùng, c ng c n th a nh n các ch c n ng khác. ng v y, n u m t ch c n ng c m t mô un dùng mà ph i b s a i, thì t t c các mô un khác dùng mô un c bi t này c ng u ph i c s a i m c d u chúng là không liên quan i ch c n ng c thay i. Quan ni m t t c các nhi m v x lí c th c hi n theo b ng trên có th c t h p vào trong m t mô un là úng và h p lí. a quan ni m này vào th c hành, u áng mong mu n là dùng m t mô un có b n thông tin . Hình 4-2-27 a ra m t ví d v b n logic . Hình 4-2-27

b n logic (ví d ) ng ho t

ng

Mã ch c n ng i 1)

Ch c n ng 1

Ch c n ng 2

Ch c n ng 3

Ch c n ng 4

Ch c n ng 5

Xóa b ng

Thêm m c

Xóa m c

Tìm b ng

Sao chép t i t ps a

(không

i)

(

i 3)

i 2)

i 3)

i 1)

(

(

(

(

Quay tr l i

ƒ

b n th i gian

Mô un th c hi n nhi u ch c n ng tu n t c g i là mô un có b n th i gian. Tuy nhiên, các ch c n ng này có m i quan h y u v i nhau. Mô un kh i u hay mô un k t thúc thu c ki u mô un này.

4.2 Thi t k có c u trúc cho ch

Hình 4-2-28

a ra mô un có

Hình 4-2-28

ng trình 163

b n th i gian .

b n th i gian (ví d ) Module ban

u m t t p giao d ch m t t p chính t

u b ng hình ng

In tiêu

Các m i quan h m t

báo cáo

Các ch c n ng trong ki u mô un này có m i quan h l ng l o l n nhau. Tuy nhiên, có m t mô un th c hi n hai hay nhi u ch c n ng có m i quan h m nh. N u m t trong các ch c ng này là kh i u m t b ng, nh c nêu trong Hình 4-2-28, m t trình thao tác cho ng này nên t n t i m xa v i mô un kh i u trong ch ng trình. Trong m i quan h a nó v i các mô un khác (các mô un không t ng minh), khó mà phân bi t c mô un có b n th i gian v i các mô un khác. Do ó, m t mô un có b n th i gian h u nh không óng góp gì m y cho tính c l p c a ch ng trình. „

b n th t c

Mô un có b n th t c là t ng t nh mô un có b n th i gian vì nó th c hi n nhi u ch c n ng tu n t . T t c các quan h tu n t gi a các ch c n ng, tuy v y, l i c t ch c bên trong th t c gi i quy t v n . Ki u mô un này c g i là mô un có b n th t c. Hình 4-2-29 nêu ra m t ví d v mô un có b n th t c. Hình 4-2-29

b n th t c Module l i giao d ch qua t i t p giao d ch ti p theo Có tr m ki m soát c a t p chính a ra thông

p l i E13

Các ch c n ng có liên quan i ch c n ng khác theo c t ch ng trình

i quan h gi a các ch c n ng c a m t mô un có b n th t c có h i m nh h n m i quan gi a các ch c n ng c a mô un có b n th i gian. N u chúng không c xác nh, thì chúng khó mà có th th y rõ c. B i vì m c c a b n th t c vào quãng gi a trong c p c 7 m c, nên ch ng có gì c bi t mà chúng ta ph i coi th ng, ho c là x ng áng nh c i m t cách c bi t v ki u mô un này. …

b n trao

i

Trong m t mô un có b n trao i, m i quan h tu n t gi a t t c các ch c n ng c di n gi i nh m t th t c gi i quy t v n . u này là gi ng nh mô un có b n th t c. M t mô un c thi t k ra v i c tr ng này, c ng thêm v i c tr ng là có m i quan h d li u gi a t t c các ch c n ng, c g i là mô un có b n trao i. T c là, s khác bi t n i b t gi a mô un có b n trao i và mô un có b n th t c là ch t t c các ch c n ng u tham chi u t i cùng d li u. u m t c t mô un nêu ra r ng m t giao tác không thích h p c hi n th trên thi t b cu i và c sao chép lên t p ki m nh, ch ng h n, nh c nêu trong Hình 4-2-30, thì mô un ch a ch c n ng hi n th trên thi t b cu i và mô un ch a ch c n ng sao chép lên t p ki m nh là các mô un có b n trao i .

164 Ch

ng 4 Thi t k ch

Hình 4-2-30

ng trình

b n trao

i (ví d ) Ch

ng trình Giao d ch F

Module nh p

Hi n th

Module ki m tra giao d ch Hi n th giao d ch

n ghi l i

Sao chép t i t p s a

n ghi l i

Sao chép ps a F

Các module khác



Thi t b cu i

b n ch c n ng

áng ra b n thông tin nên c nói t i ây, n u chúng ta nh tuân theo tr t t c a b n, nh ng bây gi chúng ta mô t mô un có b n ch c n ng tr c. b n ch c n ng là m nh nh t trong t t c các ki u b n mô un. M t mô un th c hi n m t ch c n ng duy nh t c i là mô un có b n ch c n ng. M t mô un không th c phân lo i thành các ki u n trùng h p, logic, th i gian, th t c và trao i có th c xem là mô un có b n ch c ng. Cho dù m t mô un có th c hi n hai hay nhi u ch c n ng, nó là mô un có b n ch c ng n u chúng có th c mô t nh m t ch c n ng. Hình 4-2-31 a ra m t ví d v b n ch c n ng. Hình 4-2-31

b n ch c n ng (ví d )

Module t ng h p giao d ch

Module t ng h p giao d ch

t p giao d ch c t p giao d ch

ng h p t p giao d ch

Thêm b n ghi t i b ng t ng h p óng t p giao d ch



b n thông tin

Ch ng trình c thi t k b ng vi c dùng ch các mô un có b n ch c n ng không nh t thi t có m c c l p cao nh t. Ch ng h n, ba mô un có b n ch c n ng là mô un thêm m t kho n m c vào trong b ng kí hi u, mô un xoá kho n m c trong b ng kí hi u và mô un duy t b ng kí hi u. (Xem Hình 4-2-32.) c d u ba mô un này là c l p cao v i các mô un khác trong ch ng trình, chúng l i có quan h g n g i l n nhau vì các ch c n ng c a chúng u ph thu c vào c u trúc d li u c a ng kí hi u. Do ó, có th d oán tr c r ng n u c n s a i mô un này, thì hai mô un kia ng ph i c s a i.

4.2 Thi t k có c u trúc cho ch Hình 4-2-32 Mô un có

ng trình 165

b n thông tin (ví d )

Tên module: B ng thông tin ho t

ng c a qu n

m vào Xóa b ng thông tin c a qu n Không có thông s m vào Thêm các m c vào b ng thông tin c a qu n Thông s 1: Tên qu n (4 s ) (

u vào)

Thông s 2: Dân s c a qu n (8 s ) ( Thông s 3: C l i (1 s ) (

u vào)

u ra)

m vào Xóa các m c t b ng thông tin c a qu n Thông s 1: Tên qu n (4 s ) ( Thông s 2: C l i (1 s ) (

u vào)

u ra)

0: Không có l i, 1: m c không phù h p trong b ng m vào Duy t b ng thông tin c a qu n Thông s 1: Tên qu n (4 s ) (

u vào)

Thông s 2: Dân s c a qu n (8 s ) ( Thông s 3: C l i (1 s ) (

u vào)

u ra)

0: Không có l i, 1: m c không phù h p trong b ng m vào Sao chép b ng thông tin t i t p s a Thông s 1: C l i (1 s ) ( u ra) 0: Không có l i, 1: L i I/O, 2: EOF, 3: Không có d li u phù h p

Trong ví d trên, tính c l p c a ch ng trình có th un t ng h có b n ch c n ng, b ng m t mô un.

c t ng lên b ng vi c thay th ba mô u này c g i là b n thông tin.

c tr ng c a b n thông tin là: - Có nhi u m vào. - M i m vào có m t ch c n ng duy nh t. - T t c các ch c n ng u có liên quan t i m t khái ni m, c u trúc d li u và tài nguyên c ch a bên trong mô un . Ch nh c a b n thông tin là ch a khái ni m, c u trúc d li u, tài nguyên v.v.. trong t mô un và t t i vi c che d u thông tin. Hình 4-2-33 nêu ra ví d v b n thông tin . Hình 4-2-33

b n thông tin (ví d ) Module m vào

u hành b ng ký t

TH T C Chèn các m c vào trong b ng ký t QUAY L I

m vào

I VÀO Xóa các m c t b ng ký t

ng ký t

QUAY L I m vào

I VÀO Tìm b ng ký t QUAY L I t thúc

(2) N i mô un b n mô un quan tâm t i m i quan h bên trong mô un. M t khác, n i mô un quan tâm t i i quan h gi a các mô un. (Xem Hình 4-2-34.) M i quan h gi a các mô un nh h ng t i tính c l p c a mô un. Ng i ta ã xét th y là m i quan h gi a các mô un càng l ng, thì c c l p c a mô un càng tr nên cao h n.

166 Ch

ng 4 Thi t k ch

ng trình

Hình 4-2-34 N i mô un Th p

nh i n i dung i công c ng i ngoài i

u khi n id u i d li u cl p

u

Cao

• N i n i dung (content coupling) u m t mô un tr c ti p tham chi u t i n i dung c a mô un khác, hay nh y tr c ti p sang mô un khác, thì m i quan h gi a hai mô un này c g i là n i n i dung. (Xem Hình 4-2-35.) N u mô un này ã b s a i, thì c n s a c mô un kia. Các mô un có n i n i dung có th c t o ra b ng vi c dùng h p ng . Tuy nhiên, trong ph n l n các ngôn ng chúng không th c t o ra. Hình 4-2-35 N i n i dung (ví d ) Module A NH Y T I xxx

Trong tr

ng h p ngôn ng b c cao

Module A G IB

Tham chi u tr c ti p b i a ch tuy t i ho c d ch chuy n a ch

Trong tr Module B

Module B ( a ch xxx)

ng h p các

module t ng ng b i ng i so n th o liên k t

Ch c n ng b

Ch c n ng b TR

L I

‚ N i công c ng (common coupling) i quan h gi a các mô un tham chi u t i c u trúc d li u toàn c c (bi n toàn c c) cg i là n i công c ng. Ch ng h n, có m t khái ni m c g i là kh i common trong FORTRAN. Các bi n c khai báo b ng câu l nh COMMON n i vùng b nh mà ch ng trình dùng. (Xem Hình 4-2-36.) N i công c ng l y theo tên c a nó t s ki n là vùng b nh c làm thành ch chung cho phép các mô un dùng chung. Hình 4-2-36 N i công c ng (ví d 1) Ch

ng trình chính

Các kh i chung Khai T báo TBL

COMMON TBL (3) ,A,B,C A=314 CALL SUBRTN

Khai báo Ch ng trình con COMMON T(3) ,L,M,N .

A B C

314 10

L M N

Các vùng chung

M=10 .

4.2 Thi t k có c u trúc cho ch

ng trình 167

Các v n c a n i công c ng c tóm t t nh sau: - D li u toàn c c làm h h i cho tính d c và d hi u c a ch ng trình. - C u trúc d li u toàn c c có th gây cho các mô un có v liên quan l i tr thành ph thu c l n nhau. - Các mô un tham chi u t i d li u toàn c c thì khó dùng cho các ch nh khác. (Trong khi th c hi n x lí song song hay x lí a nhi m, tính nh t quán c a vùng d li u công ng ph i c tính t i.) - B i vì các mô un c n i qua các tên bi n, nên khó dùng l i chúng cho ch ng trình i. - N u d li u toàn c c là d li u ki u có c u trúc, thì th m chí l i còn khó s d ng l i chúng h n. (T o ra c u trúc câm) u c u trúc d li u toàn c c c dùng, thì nhi u d li u h n m c c n thi t s b ph i y ra cho các mô un khác. (Xem Hình 4-2-37.) Hình 4-2-37 N i công c ng (ví d 2) Module A X Có th truy c p th m chí u không c n thi t

Y Gi

Module A Có th truy c p th m chí u không c n thi t

X

X

Gi

Y

Z

Z

Module A Có th truy c p th m chí u không c n thi t

Gi Y Z

- Vi c truy nh p d li u bên trong ch ng trình không th c qu n lí úng. u m t ph n trong m t c u trúc d li u toàn c c b thay i, thì m i mô un tham chi u t i ph n b thay i ó c a d li u ph i c d ch l i. ƒ N i ngoài (extern coupling) u có m t nhóm các mô un ho c không n i n i dung ho c không n i công c ng và tham chi u t i c u trúc d li u toàn c c, thì m i quan h gi a các mô un nh v y c g i là n i ngoài . M c d u vi c n i ngoài quan tâm t i m t t p các d li u toàn c c khác nhau v nh ng và ý ngh a, vi c n i ngoài quan tâm t i t p d li u có cùng m t ki u. li u cùng ki u ngh a là: - Ki u d li u này không ch a ki u d li u khác; ch ng h n d li u s , d li u kí t , v.v... - B ng hay danh sách ch có m t kho n m c - M ng có các ph n t v i cùng ngh a Trong n l c c a chúng ta tìm ra gi i pháp cho các v n liên k t v i vi c n i công c ng, vi c n i ngoài cho phép chúng ta c i thi n các u ki n liên quan t i ch nh ng v n sau: - S ph thu c không mong mu n gi a các mô un - T o ra c u trúc câm - Quá ph i bày d li u Cho dù chúng ta có th th c hi n nh ng c i ti n nào ó v i các v n trên, các u ki n v n còn không tho mãn.

168 Ch

ng 4 Thi t k ch

ng trình

Hình 4-2-38 N i ngoài Module A

Khai báo ngoài →

X

Module B

Khai báo ngoài →

„N i

X

X

u khi n (control coupling)

u có hai mô un không n i n i dung c ng ch ng n i công c ng, ch ng n i ngoài và n u mô un này truy n các ph n t u khi n cho mô un kia, thì m i quan h gi a hai mô un này c g i là n i u khi n. Khi mô un này truy n m t mã hàm hay khoá u khi n cho mô un kia có b n logic, thì m i quan h gi a chúng là n i u khi n. B i vì m t mô un truy n d li u u khi n ph i bi t c u trúc logic c a mô un kia, nên m c c l p là không cao l m. M i quan h n i u khi n b h n ch vào tr ng h p mô un này xem nh n i g i li u, truy n các i nh ph ng ti n u khi n các ch c n ng và logic c a mô un kia xem nh n i nh n. N u mô un này truy n i mà không có m c ích nào c ch rõ cho mô un kia thì m i quan h gi a hai mô un này không th c g i là n i u khi n, cho dù mô un kia xem nh n i nh n dùng i ó (d li u u khi n). Hình 4-2-39 N i

u khi n (ví d ) Module SUB

Module A T o ch c n ng 1 ã th c hi n

X=1 CALL

SUB (X , SW)

=1

SW

Ch c n ng 1

=2

Ch c n ng 2

ây là ch c n ng 1?

… N i d u (stemp coupling) u có hai mô un không ph i là n i n i dung, c ng không n i công c ng, không n i ngoài không n i u khi n và n u chúng tham chi u t i cùng c u trúc d li u không toàn c c, thì i quan h gi a hai mô un này c g i là n i d u. M c d u n i d u là t ng t v i n i công c ng, s khác bi t là ch các mô un c a n i d u tham chi u t i c u trúc d li u không toàn c c, không t i c u trúc d li u toàn c c. Mô un " ánh giá" c nêu trong Hình 4-2-40 c dùng c p nh t "thu nh p hàng n m," ng vi c dùng m t b n ghi nhân viên c nh p kh u vào mô un A nh m t i, c ng nh li u trên "v trí công tác," "n ng su t lao ng" và "s n m công tác" c a m t nhân viên.

4.2 Thi t k có c u trúc cho ch

ng trình 169

Hình 4-2-40 N i d u (ví d )

Module A I C

Module A

ánh giá ng i ch (B n ghi nhân viên)

ánh giá (B n ghi nhân viên)

Thu nh p hàng n m

cc p

nh t d a trên s n m công tác, v

Ng

ng su t lao ng c a nhân viên (tên)

QUAY L I

B n ghi nhân viên

B n ghi nhân viên

c

trí công tác và Tên Nhân viên a ch Phòng ban trí công tác Thu nh p hàng n m ng su t lao ng Quá trình ào t o m công tác

Tên Nhân viên a ch Phòng ban trí công tác Thu nh p hàng n m ng su t lao ng Quá trình ào t o m công tác

i ch

m t mô un th c hi n ch c n ng " ánh giá", ít nh t ph i c n t i b n kho n m c d li u. i vì toàn th m t b n ghi nhân viên v n hành nh m t i, nên các kho n m c không c n t i khác bên c nh b n kho n m c này c ng c truy n. Do ó, n u có b t kì thay i nào c th c hi n trong nh ng kho n m c khác h n b n kho n m c này, thì mô un ch u trách nhi m th c hi n ch c n ng " ánh giá" ph i c d ch l i. H n n a, khi các kho n m c không c n i có th c tham chi u t i, thì có kh n ng là chúng b c p nh t l m. M i quan h gi a mô un " ánh giá" và t t c các mô un khác tham chi u t i nh ng kho n m c c bi t trong b n ghi nhân viên, c g i là n i d u. i d u làm cho chúng ta có kh n ng gi i quy t các v n sau c a n i công c ng: - Thi u tính d c và d hi u - Không phù h p c dùng cho các ch ích a d ng - Ph thu c tên c d u có th làm gi m t i vi c truy nh p d li u u khi n, nó không th xoá hoàn toàn t i vi c này. ng th i nó còn t n t i nh ng v n nh : - S ph thu c không mong mu n gi a các mô un - T o ra c u trúc câm - Quá ph i bày d li u † N i d li u c i ti n các u ki n liên quan t i mô un th m nh " ánh giá" v n , mô un ch u trách nhi m " ánh giá" ph i c thi t k nh m t mô un không bi t gì v b n ghi nhân viên. Mô un này c n ba kho n m c, "v trí công tác," "n ng su t lao ng" và "s n m công tác." Nó cho ra m t kho n m c "thu nh p hàng n m" d a trên d li u c ch a trong ba kho n m c này. N u chúng ta có th nh ngh a b n kho n m c này nh các i, chúng ta có th t o ra t mô un không bi t gì v b n ghi nhân viên. I I

ánh giá (b n ghi nhân viên) ↓ ánh giá (v trí công tác, n ng su t lao

ng, s n m công tác, thu nh p hàng n m)

170 Ch

ng 4 Thi t k ch

ng trình

Gi nh r ng mô un trên m i c t o ra và các yêu c u sau c áp ng, m i quan h gi a các mô un này c g i là n i d li u: - Tr ng thái c a vi c n i mô un không ph i là n i n i dung, công c ng, ngoài, u khi n hay d u.. - Hai mô un có quan h tr c ti p v i nhau. - T t c các giao di n gi a các mô un u có cùng ki u d li u. i d li u là m c n i y u nh t. (Xem Hình 4-2-41.) Hình 4-2-41 N i d li u Module A I C

Module A

ánh giá ng i ch (v trí công tác, n ng su t lao ng, s n m công tác, thu nh p hàng n m

ánh giá ( v trí công tác, n ng su t lao

ng,

n m công tác, thu nh p hàng n m) Thu nh p hàng n m

c

Ng

B n ghi nhân viên

c

p nh t d a trên tên nhân viên Tên Nhân viên a ch Phòng ban trí công tác Thu nh p hàng n m ng su t lao ng Quá trình ào t o m công tác

n m công tác , trí công tác và ng su t lao

trí công tác ng su t lao

ng

trí công tác ng

ng su t lao

n m công tác

ng

n m công tác

Thu nh p hàng n m

Thu nh p hàng n m

QUAY L I

i ch

(3) Tiêu chí cho kích c phân ho ch Kích c thích h p cho mô un nói chung là 40 t i 50 câu l nh d i d ng s các l nh th c hi n trong ngôn ng c p cao. N u kích c nh h n s này, thì ng i c ch ng trình th ng nh y t mô un này sang mô un kia và lu ng t duy c a ng i ó b ng t l i. u kích c l n h n nhi u, t c là, n u nó trên 100 câu l nh, thì các giao di n c xác nh rõ ràng s không có s n và có quá nhi u th ph i c xét t i. Tiêu chí cho kích c phân ho ch là nh sau: - V i ch ng trình c nh , có c u trúc t t (s các l nh th c hi n c là 200 t i 300 câu nh): Trung bình là 30 câu l nh - V i ch ng trình c v a (s các l nh th c hi n c là 2,000 t i 3,000): Trung bình 40 t i 50 câu l nh - V i ch ng trình c l n (s các l nh th c hi n c là 10,000 hay h n): Trung bình 100 t i 150 câu l nh - V i mô un có b n thông tin ( ây là tr ng h p ngo i l ): Trung bình 40 t i 50 câu l nh cho m t m vào Nh ng con s trên là trung bình và nên c dùng nh h ng d n n thu n. N u các mô un c phân ho ch hay c t h p mà quá tuân theo các con s này, thì m c c l p mô un gi m i. Ph i th t chú tr ng vào v n này.

(4) T o ra và dùng l i các b ph n xem xét mô un nh các b ph n và dùng l i chúng, chúng ta nên ý th c nhi u h n t i tính c l p c a mô un. M t mô un v i các ch c n ng c xác nh m h , mô un này ph thu c quá nhi u vào mô un kia, mô un này nh h ng quá nhi u t i mô un kia hay mô un

4.2 Thi t k có c u trúc cho ch

ng trình 171

ph thu c vào c u trúc d li u c bi t thì không th c dùng l i. c tiêu c a thi t k có c u trúc là t o ra ch các mô un có b n ch c n ng hay thông tin. u ch nh ng mô un nh v y m i có th c t o ra, thì tính c l p mô un có th c m o, t l l i có th c gi m i, tính m r ng có th c nâng cao, và xác su t dùng l i có th c t ng lên.

4.2.4

Phân ho ch ch

ng trình

(1) Nh ng m quan tr ng c n xem xét liên quan t i s các phân ho ch và chi u sâu c p b c • Chi u sâu c p b c u c p b c là quá sâu, thì c u trúc logic tr nên khó hi u. M c d u kích c c a ch ng trình là nhân t c n xem xét, chi u sâu c p b c ph i c gi i h n vào m i m c hay ít h n. Hình 4-2-42 Chi u sâu c p b c 0 1

1

3

2 3

2

2 3

3 4

5

4 5

6

6

7

7

7

8

8

8

9

9 10

2

M c phân c p

2

1

9 10

‚ Tr i c u trúc c p b c u c p b c c a các mô un tr i ra quá nhi u, thì lu ng ch ng trình tr thành khó hi u. S các mô un c p d i mà m t mô un nào ó có th tr c ti p g i n nên c gi i h n quãng i hay ít h n.

172 Ch

ng 4 Thi t k ch

ng trình

Hình 4-2-43 Tr i c u trúc c p b c 0

1

2

3

4

5

6

Tr i c u trúc phân b c

7

8

9

10

4.3 T o ra

4.3

o ra

c t mô un và

c t mô

c t ki m th

173

un và

c

ki m th 4.3.1

o ra

c t mô un

Sau khi ch ng trình c phân ho ch thành các mô un, các chi ti t v x lí c t ng mô un th c hi n s c xác nh (thi t k logic mô un). Công vi c vi t mã ph i c th c hi n có chú ý t i các chi ti t t m sao cho không b sót ch c ng.

(1) Nh ng

m quan tr ng c n xét khi t o ra các

c t mô un

- T o ra c u trúc n gi n, d hi u - Tính t i vi c d g l i và b o trì - Tôn tr ng chu n t o ra ch ng trình (chu n vi t mã)

(2) Th t c Các

t o ra các

c t mô un

c t mô un

c t o ra theo th t c nêu sau ây.

• Phân tích c u trúc d li u i vì c u trúc d li u có m i quan h ch t ch v i c u trúc logic c a mô un, nên c u trúc c a li u vào và ra ph i c phân tích, và m i quan h gi a d li u vào và ra c ng nh các kho n m c c sinh ra qua vi c x lí ph i c nh n di n và li t kê. Hình 4-3-1

a vào, x lí và < Nh p >

a ra

< X lý >

<

a ra >

< Nh p >

Danh sách

Gi i tính

Nh p d li u

n ph m

< X lý >

Nam?

d ng c u trúc l p

Tùy thu c vào

Có lý d li u

Không x lý a ra

a ra > li u nam

0 n ghi (Nam: 0, N : 1) Không

u có nhi u d li u a vào thì th ng s có nhi u d li u c

<

u ki n mà d li u ra thay

i

x lý d ng c u trúc l p

x lý

u có nhi u kho n m c d li u, thì vi c x lí d li u c th c hi n b ng vi c dùng m t c u trúc l p l i. N u d li u a ra thay i, tu theo hoàn c nh, vi c x lí d li u c th c hi n ng vi c dùng c u trúc l a ch n. ‚ Phân t ng c u trúc d li u i vi c ghi nh ý ngh a c a t ng kho n m c d li u, d li u

c t ch c và t h p l i, và

174 Ch

ng 4 Thi t k ch

ng trình

u trúc d li u c t o ra. M i quan h gi a d li u vào và ra vào c liên k t v i d li u ra.

c làm sáng t , và d li u

4.3 T o ra

c t mô un và

c t ki m th

175

ƒ Xây d ng logic (thu t toán) Vi c chuy n i d li u vào thành d li u ra là nhi m v c n th c hi n. Các u ki n a ra c xác nh khi xem xét t i c u trúc c a d li u ra. Các u ki n a ra ã xác nh c dùng làm rõ các chi ti t và xây d ng thu t toán. Logic này c vi t thành tài li u b ng vi c dùng gi mã. Hình 4-3-2 Gi mã c b n ghi

u tiên

DO WHILE trong b n ghi IF l p = trong kho THEN X lý trong kho ELSE IF l p = ngoài kho THEN X lý ngoài kho ELSE X lý l i ENDIF ENDIF c b n ghi ENDDO

(3)

n và câu l nh

Mô un bao g m các n nh t quán v m t logic. Kích c c a n là t 10 t i 50 câu l nh (câu, l nh). n trong m t mô un c phân lo i thành hai ki u c nêu d i ây: n u khi n ( n m c cao) u khi n t t c các n n gi i quy t/x lí d li u ( n m c th p) th c hi n nhi m v x lí d li u Hình 4-3-3

n

u khi n và

n gi i quy t/x lí d li u t nh

nh ban

u các

4.3.2

ng u

u ng

nh ng chính


n ki m soát>

t thúc nh ng


n x lý / truy n d li u>

u ki n x lí và chi ti t x lí là nh nhau, thì chúng nên

o ra

c t h p vào m t

n.

c t ki m th

Ki m th n v là ki m th c ti n hành trong giai n thi t k ch ng trình. Ch nh c a phép ki m th này là ki m ch ng c u trúc logic c a mô un ã vi t mã và giao di n gi a các mô un.

(1) Các ki u ki m th Ki m th nv u tiên c ti n hành ki m ch ng r ng c u trúc logic c a các mô un c t o ra theo úng c t mô un. K thu t c dùng trong ki m th này là ki m th h p tr ng lo i b i các l i và phòng ng a chúng không cho truy n qua các ki m th k ti p. Ki m th tích h p mô un ti p ó c ti n hành ki m tra giao di n gi a các mô un. c bi t, các mô un c n i l i xác nh n r ng các tham bi n vào và ra c xác nh trong c

176 Ch

ng 4 Thi t k ch

ng trình

mô un, có th c truy n úng. K thu t c dùng trong ki m th này là ki m th h p en. Vi c ki m th tính n i mô un c chia thành ki m th trên xu ng, c ti n hành b ng vi c i liên ti p các mô un c p cao v i mô un c p th p, và ki m th d i lên, c ti n hành b ng vi c n i liên ti p các mô un c p th p v i mô un c p cao. M i ph ng pháp u có u m và nh c m. Nên ch n m t trong các ph ng pháp này khi xét t i kích c c a ch ng trình và tài nguyên s n có.

(2) Nh ng

m quan tr ng c n xét khi thi t k tr

ng h p ki m th

Nói chung, tr ng h p ki m th không ch có ngh a là d li u ki m th mà còn là k ho ch ki m th và các tài li u khác. Tr c khi ti n hành các ki m th t i t ng m c, d li u ki m th nên c chu n b có xét t i các k thu t ki m th c ch p thu n. Ngoài d li u thông th ng, li u sai c ng ph i c chu n b . Các k t qu a ra có th d ki n tr c d a trên d li u ki m th c ng ph i c chu n b . N u phép ki m th c ti n hành có chú ý t i các chi ti t, thì ch t l ng c a ch ng trình có th c c i ti n, nh ng s c n t i nhi u công vi c. B i vì ng su t là t l ngh ch v i m c bao ph , nên c n thi t k d li u ki m th v i s chú tâm nào ó gi cho chúng c cân b ng.

4.4 T o ra tài li u thi t k ch

4.4

ng trình 177

o ra tài li u thi t k ch

ng

trình Tài li u thi t k ch ng trình c t o ra d a trên nhi u d li u và tài li u ã c chu n b trong giai n thi t k ch ng trình. Trong giai n thi t k ch ng trình, ch ng trình mà ã c xây d ng b ng thi t k trong c phân ho ch thành các mô un, và c u trúc logic c a mô un c xác nh. Do ó khi làm vi c thi t k ch ng trình, không c phân ho ch các mô un n a hay không c thi t k c u trúc logic c a chúng theo cách có th làm nh h ng t i các ch c n ng c a ch ng trình. Các ch c n ng này ã c thi t k trong giai n thi t k trong áp ng nh ng yêu c u c bi t. Trong giai n l p trình ti p theo, công vi c vi t mã c th c hi n theo úng tài li u thi t k ch ng trình. Có tr ng h p ng i làm h p ng c t làm công vi c thi t k ch ng trình và các ti n trình k ti p. Theo h ng ó, tài li u thi t k ch ng trình là r t quan tr ng, nó nh ng r t l n t i thi t k ch ng trình và các ti n trình ti p theo. Do ó, vi c ki m m thi t k ph i c ti n hành m t cách th u áo, d a trên tài li u thi t k ch ng trình rút ra và s a i khi m khuy t. Hình 4-4-1 a ra các kho n m c có trong tài li u thi t k ch ng trình. Hình 4-4-1 Tài li u thi t k ch

ng trình Mô t kho n m c d li u

c t ki m th Chi ti t x lí Bi u c u trúc ch. trình ng quan ch ng trình Chính sách thi t k h Tài li u thi th t k ngch ng trình

4.4.1

o ra tài li u thi t k ch

(1) Chính sách thi t k ch Ch

ng trình

ng trình và n i dung

ng trình

c thi t k d a trên chính sách thi t k ch

ng trình sau ây:

• Chính sách thi t k Tr c khi b t u thi t k ch ng trình, ph i mô t k thu t thi t k c ch p thu n. Th ng thi t k có c u trúc hay c dùng. N u ch n k thu t thi t k khác, thì ph i mô t lí do cho vi c ch p thu n này. • K thu t làm tài li u HIPO, DFD, l u , s b t, v.v.., c tham chi u t i nh k thu t làm tài li u. Ph i mô t các k thu t c ch p thu n và cách chúng c ch p thu n.

178 Ch

ng 4 Thi t k ch

• Nhi m v Mô t nhi • Các v n Ph i mô t c xác

ng trình

thi t k m v thi t k . khác các b n ghi thay nh tr c khi b t

i, chi ti t các cu c ki m u thi t k ch ng trình.

(2) B n t ng quan ch

m thi t k và các v n

ng trình

Bi u nêu ra c u trúc ch ng trình (k c ki u d li u vào và ra) c n quan ch ng trình. (Xem Hình 4-4-2.) Hình 4-4-2 B n t ng quan ch ng quan ch

c ính v i b n t ng

ng trình ng trình Ngày

Tên h th ng Tên ch

khác c n

/

/

H th ng thanh toán l

ng ng

ng trình X lý hàng tháng

Ngôn ng

i kh i

H con ID ch

Chính ho c ph

u

c ch p nh n X lý hàng tháng

ng trình GET20030

Các dòng mã

c ánh giá

Hàm li u làm vi c ã s p x p (t p d li u hàng tháng) Sau khi tr toàn b , tính t ng s l y i, cân o t p tr l

is

c ti p t c ki m tra t p l

ng chính

ã tr

ng chi ti t

ng k t chi và thu p d li u tháng

p d li u tháng

GET 20030 lý theo tháng

p d li u tháng

i dung tài li u thi t k

(3) Bi u

q

Thay

q

Gi i thích thêm v ch c n ng và

q

Danh sách thông

cách s d ng tài li u thi t k

q

T ng quan ch

q

Gi i thích v các thông s vào ra

q

q q

Gi n c u trúc ch Mô t quy trình IPO

i b n ghi

c u hình ch

q

Gi i thích thêm v x lý IPO p

ng trình

ng trình

ng trình

Bi u c u hình ch ng trình và danh sách các giao di n gi a các mô un c n c ính kèm. (Xem Hình 4-2-3.) Bi u các n i dung c t o ra b ng vi c dùng k thu t HIPO có th c dùng nh bi u c u hình mô un.

4.4 T o ra tài li u thi t k ch

ng trình 179

(4) Chi ti t x lí Tài li u mô t chi ti t x lí c n Bi u IPO, v.v.. c ng có ích.

(5)

c t ng mô un th c hi n

c ính kèm v i các chi ti t x lí.

c t ki m th

n k ho ch ki m th mô t nhân viên ki m th , kho n m c ki m th và ph ch ng c n c chu n b ti n hành các ki m th ch ng trình có hi u qu .

ng pháp ki m

(6) Mô t các kho n m c d li u Màn hình c dùng ch y ch ng trình và d li u vào/ra c ính vào mô t các kho n c d li u. C ng có th dùng màn hình và d li u vào/ra do thi t k ngoài và trong cung c p. Nh ng tài li u sau ây c ính kèm v i mô t v các kho n m c d li u: - Các m u a vào và các báo cáo a ra - Tài li u thi t k màn hình - Tài li u thi t k t p c t b ng - Các tài li u khác

4.4.2 ch

Nh ng ng trình

Nh ng

m c n l u ý khi t o ra tài li u thi t k

m sau ây nên


c xét t i khi t o ra tài li u thi t k ch

ng trình:

m quan tr ng c n xem xét>

- Các ch c n ng c mô t trong tài li u thi t k trong ph i c mô t trong tài li u thi t k ch ng trình mà không b sót. - T t c các d li u vào và ra ph i c mô t rõ ràng. - T t c các qui t c gi i quy t l i ph i c mô t rõ ràng. - Tiêu chí cho vi c chu n b tài li u ph i c tôn tr ng và c n tránh nh ng các bi u th c l c lõng.

4.4.3

p ki m

p ki m m thi t k trong tr ng h p c a giai

(1) Tài li u c n

m thi t k c th c hi n khi công vi c thi t k ch ng trình c hoàn t t, nh n thi t k trong. (Tham kh o chi ti t Ch ng 3.)

c ki m

m

Tài li u c n c ki m m trong giai - Tài li u thi t k ch ng trình - Bi u c u trúc ch ng trình c t ch ng trình c t mô un - Tài li u thi t k tr ng h p ki m th - Các tài li u khác

n thi t k ch

ng trình là:

180 Ch

ng 4 Thi t k ch

(2) Nhân s ki m

ng trình

m

Các nhân s nêu d i ây gi vai trò trung tâm trong vi c th c hi n bu i ki m m thi t k : - Nh ng ng i thi t k có cùng m c k n ng k thu t nh ng i tr c ti p ch u trách nhi m thi t k ch ng trình - Các nhân s có liên quan t i ti n trình thi t k p trên c a ng i thi t k và c a các nhân s này không c n tham d vào cu c h p ki m m thi t k .

Bài t p 181

Bài t p Q1

Nh n xét nào là không thích h p liên quan t i vi c phân ho ch mô un trong giai n thi t k ch ng trình?

a. S các mô un c p d i mà m t mô un có th g i t i ph i c gi i h n. b. Mô un ph i c thi t k sao cho nó ch a m t s úng các b c. c. Trong thi t k c u trúc c p b c mô un này g i t i mô un kia, ph i ý t i vi c gi chi u sâu trong gi i h n xác nh. d. Giao di n gi a các mô un ph i c làm n gi n hoá. e. Nên a vào các chú thích úng làm cho d hi u logic bên trong mô un.

Q2

Khi m t ch ng trình c d li u, l a ra ch d li u s và cho hi n ra giá tr trung bình, c l y ra làm phân ho ch STS, thì các ch c n ng c s p x p vào các lo i ch a, ngu n và bi n i. Hãy l a ra t h p úng t nh ng t h p c nêu i ây.

a b c d e

Q3

Vào d li u ch a ch a Ngu n Ngu n Bi n i

as B ch a Ngu n Ngu n Bi n i a ra

Ch c n ng Tính giá tr trung bình Bi n i Bi n i Bi n i Bi n i a ra

Bi u th k t qu Bi n i Bi n i ch a ch a Ngu n

Có m t ch ng trình ch p nh n c p nh t tr ti n c b n, c p nh t ti n công nh t và c p nh t kh u tr và c p nh t t p tính l ng. Ch ng trình này c phân ho ch thành các mô un, nh c nêu d i ây. Ph ng pháp phân ho ch mô un nào c dùng? C p nh t t p

p nh t tr ti n b n a. Ph c. Ph

Q4

ng pháp phân ho ch STS ng pháp phân ho ch giao tác

p nh t công nh t b. Ph d. Ph

p nh t kh u tr

ng pháp Jackson ng pháp Warnier

B n nên dùng ph ng pháp nào chuy n bi u lu ng d li u c phân tích có u trúc t o ra thành s c u trúc c dùng cho thi t k có c u trúc?

a. Ph d. Ph

ng pháp KJ b. Ph ng pháp OMT ng pháp phân ho ch giao tác

c. Ph

ng pháp Jackson

182 Ch

Q5 a. b. c. d.

Q6

ng 4 Thi t k ch

ng trình

K thu t nào sau ây là k thu t phân ho ch mô un h Ph Ph Ph Ph

ng c u trúc?

ng pháp phân ho ch ch c n ng chung ng pháp phân ho ch ngu n/bi n i/b ch a (ph ng pháp phân ho ch STS) ng pháp Jackson ng pháp phân ho ch giao tác (Ph ng pháp phân ho ch TR )

L u ý nào c nêu d i ây mô t sát nh t cho ph t o ra thi t k có c u trúc c a ch ng trình?

ng pháp Warnier

c dùng

a. Bi u c u trúc c a d li u vào và ra c v v i chú ý chính d n vào c u trúc d li u. Bi u c u trúc ch ng trình c chu n b d a trên bi u c u trúc d li u vào/ra. b. Các ch c n ng trong lu ng d li u c g p nhóm vào trong các lo i ngu n, bi n i và ch a v i chú ý chính c d n vào lu ng d li u c n gi i quy t. c. Ph n m m c coi nh m t tuy n t p các d li u và qui trình. Tính c l p mô un c ng lên b ng cách bao b c nh ng d li u và qui trình này. d. V i chú ý chính c d n vào c u trúc u khi n c a ch ng trình, logic ch ng trình c thi t k d a trên lu ng u khi n, bi u l m i quan h g i nhau.

Q7

Tính n i mô un là cách o s c l p mô un. Tính n i mô un càng y u, thì m c c l p mô un càng tr nên cao h n. Ki u n i mô un nào c nêu d i ây có tính n i m nh nh t?

a. N i công c ng

Q8

b. N i d u

c. N i d li u

d. N i d i dung

Khi ch ng trình sau c th c hi n, b n thu c k t qu nào trong s c nêu i ây? x ( i hình th c) là l i g i theo giá tr còn y là l i g i theo tham chi u. Main program a=3 ; b=2 ; sub (a, b) ;

a. a=3, b=2

b. a=3, b=7

Subprogram sub (x, y) x=x+y ; y=x+y ; return ; c. a=5, b=2

d. a=5, b=7

5

Th c hi n ch

ng

trình

c ích c a ch

ng

Trong giai n th c hi n ch ng trình, h th ng thông tin c thi t k theo các th t c ã c mô t , s c xây d ng nên. Ch ng này mô t nh ng m quan tr ng c n chú ý khi làm vi c l p trình (vi t mã), các ph ng pháp ki m th và các công c phát tri n khác nhau mà chúng ta có th dùng. • Hi u mô th c l p trình và phong cách l p trình ‚ Hi u các ki u khác nhau v ki m th , ph ng pháp ki m th và th t c ki m th ƒ Hi u các ki u và c tr ng c a các công c phát tri n khác nhau mà b n có th dùng cho vi c l p trình và ki m th

184 Ch

ng 5 Th c hi n ch

ng trình

Gi i thi u Cài t ch ng trình là cho m t d ng c th c a ch ng trình c thi t k v m t logic. c bi t nó bao g m ti n trình t o ra ch ng trình d a trên n i dung c a thi t k ch ng trình, và ti n trình th c hi n nh ng phép ki m th a d ng tr c khi cho ch y ch ng trình nh m t h th ng.

5.1

p trình

p trình là mô t (vi t mã) trong m t ngôn ng l p trình cho m t th t c (thu t toán) c xác nh b i thi t k ch ng trình. i ngôn ng l p trình u gán ngh a riêng c a nó cho các l nh và cú pháp th ng nh t chúng, và do v y mô t cho các thu t toán theo nh ng cách khác nhau. Do ó, c n có m t chu n chung (mô th c l p trình) xét t i nh ng c tr ng c a t ng ngôn ng l p trình. i vì công vi c l p trình c th c hi n b ng nhóm ng i, nên phong cách l p trình rõ ràng là n thi t m b o s nh t quán bên trong h th ng.

5.1.1

Mô th c l p trình

i ngôn ng l p trình c dùng u có mô th c riêng c a nó. Trong khi làm vi c l p trình, n hi u t ng mô th c l p trình riêng. i vì mô th c ph thu c vào t ng ngôn ng l p trình, nên nó ph i c nghiên c u cho t ng ngôn ng m t. Chúng ta phân l p nó m t cách i th thành b n ki u t ng ng v i vi c phân p v ngôn ng l p trình: -

Mô th Mô th Mô th Mô th

cl cl cl cl

p trình th t c p trình logic p trình hàm p trình h ng

it

ng

(1) Mô th c l p trình th t c p trình th t c là mô th c c a các ngôn ng l p trình th t c mô t cho gi i pháp v n d i ng m t chu i các th t c. C và COBOL là i bi u cho các ngôn ng l p trình th t c. t c tr ng c a ngôn ng l p trình này là l p trình có c u trúc. Khái ni m v l p trình có c u trúc d nh di n t m i thu t toán b ng vi c dùng ba c u trúc u khi n c s (tu n t , tuy n ch n và l p). B ng vi c dùng l c l p trình này, chúng ta có th t i thi u vi c dùng câu l nh go to th ng gây ra s suy gi m trong công tác b o trì.

5.1 L p trình 185

(2) Mô th c l p trình logic p trình logic là mô th c c a ngôn ng l p trình logic mô t cho gi i pháp v n d i d ng các khai báo logic. Prolog là i di n cho ngôn ng l p trình logic. c tr ng c a ngôn ng này là qui t c gi i d a trên tam n lu n. Trong tr ng h p c a Prolog, ba cú pháp c dùng: qui t c, s ki n và truy v n. Vi c sánh m u (th ng nh t), vi c tìm t ng (l n ng c) v.v.. c dùng làm các c u trúc c s .

(3) Mô th c l p trình hàm p trình hàm là mô th c c a ngôn ng l p trình hàm mô t cho gi i pháp v n d i d ng các khai báo hàm. LISP là i di n cho ngôn ng l p trình hàm. c tr ng c a ngôn ng này là vi c dùng m t c u trúc danh sách. B i vì các i t ng (d li u) c x lí u gi i quy t v i c u trúc danh sách, nên nhi u hàm c cung c p x lí danh sách. mô t và nh ngh a các hàm, m t h th ng ngôn ng tr u t ng cao g i là tính toán lambda c s d ng.

(4) Mô th c l p trình h

ng

it

ng

p trình h ng i t ng là mô th c c a ngôn ng l p trình h ng i t ng dùng i t ng có d li u và th t c (hành vi) c bao b c l i. Smalltalk và Java là các ngôn ng l p trình ng i t ng i di n. Các c tr ng c a ngôn ng l p trình này là: - Ch c n ng bao b c Ch c n ng này gi i quy t v i d li u (thu c tính) và th t c ( ng pháp) nh m t th c th . - Ch c n ng xây d ng th nghi m Ch c n ng làm th nghi m cho m t l p tr u t ng - Ch c n ng k th a Ch c n ng k th a các tính ch t c a m t siêu l p cho l p con - Ch c n ng truy n thông báo Ch c n ng truy n thông báo gi a các i t ng.

5.1.2

Phong cách l p trình

Phong cách l p trình là c s d a vào ó ch ng trình c t o ra. Khi h th ng tr nên l n qui mô, nhi u ng i phát tri n tham gia vào công vi c l p trình và do ó c n có m t phong cách l p trình rõ ràng. Phong cách l p trình c xác nh t các quan m sau: - Tính rõ ràng - Tính hi u qu - Tính b o trì c

(1) Tính rõ ràng Tính rõ ràng ngh a là kh n ng hi u c ch ng trình. ng i ta thi t l p ra nh ng qui t c vi t mã (chu n).

làm t ng m c

rõ ràng, nói chung

186 Ch

ng 5 Th c hi n ch

ng trình

Qui t c vi t mã xác nh các qui t c c n tuân th khi vi t mã: t t l , t tên bi n và mô un, l i chú thích v.v.. B ng vi c tuân theo các qui t c này, ta có th t o ra m t ch ng trình d hi u i i nh ng ng i khác. Công vi c vi t mã, c ti n hành tuân th theo các qui t c này, d ng nh t n nhi u th i gian h n công vi c vi t mã c làm mà không có qui t c nào. Vi c vi t mã c th c hi n theo các qui t c này cu i cùng d n t i vi c làm gi m th i gian dành cho ki m m l i, tuy nhiên, l i cho phép t ng l ng th i gian phát tri n ch ng trình c rút b t.

(2) Tính hi u qu Tính hi u qu ngh a là d dàng t o ra ch ng trình. làm t ng tính hi u qu , nh ng ph n d th a c a ch ng trình ph i c lo i b t i a. Tuy nhiên c ng nên l u ý ây r ng tính rõ ràng a ch ng trình có th c t ng thêm nhi u b ng nh ng ph n b sung vào ch ng trình. Ch ng h n, m c d u l i chú thích là ph n ph thêm không liên quan t i vi c th c hi n ch ng trình, nó v n óng góp làm t ng m c rõ ràng c a ch ng trình. Do ó, c n gi tính rõ ràng và tính hi u qu c cân b ng t t.

(3) Tính b o trì

c

Tính b o trì ngh a là d s a i ch ng trình. Ng i làm l p trình th ng không s a i ch ng trình. Vi c s a này do ng i khác th c hi n. làm cho công vi c b o trì c d dàng, u quan tr ng là c n t o ra ch ng trình d hi u. nâng cao tính b o trì c, b n thân ch ng trình ph i c c u trúc cao ng n c n vi c a i th c hi n ph n này có th nh h ng t i ph n khác c a ch ng trình.

5.1.3

Dùng b x lí ngôn ng

x lí ngôn ng là t chung nói t i các ch ng trình th c hi n các nhi m v d ch và so n th o làm cho ch ng trình ã vi t ch y c. Các b x lí ngôn ng i di n là: - B biên d ch, d ch ch ng trình vi t trong ngôn ng c p cao thành ch ng trình mã máy ngay l p t c. - B h p d ch, d ch ch ng trình c vi t trong h p ng thành ngôn ng máy ngay l p t c. - B thông d ch, d ch và th c hi n các câu l nh trong ch ng trình c vi t trong ngôn ng p cao theo t ng l nh m t. Trong khi làm công vi c l p trình, ng i ta ph i s d ng t i các c tr ng c a t ng b x lí ngôn ng này. Các c tr ng c a b thông d ch là: - Vi c th c hi n l n l t t ng l nh là có th c. - Ch ng trình có th c cho ch y ngay c khi ch a hoàn thành. i vi c t n d ng các c tr ng này, có th thu c nh ng ích l i sau: - Có th ki m ch ng c hành vi c a ch ng trình t i t ng m n i nó m i hoàn thành n a ch ng. - Công vi c g l i c th c hi n d dàng (có th d dàng thêm vào các l nh g l i). c th c hi n c a ch ng trình c vi t trong b thông d ch tuy v y l i ch m h n so v i t c c a ch ng trình c biên d ch. Do ó trong vi c l p trình th c t , b thông d ch c dùng tr c h t hoàn thi n ch ng trình, r i b biên d ch c dùng t ng t c vi c th c hi n nó.

5.1 L p trình 187

Hình 5-1-1 Dùng các b x lí ngôn ng [L p trình] Trình thông ch

Di n gi i/ Th c hi n

[Khi ch ng trình hoàn t t] Ch ng trình ngu n

Trình biên ch

Ch ng trình ích

t b x lí ngôn ng c dùng khá thông d ng khác là b ti n x lí. Theo ngh a h p, b ti n lí c dùng th c hi n các m r ng macro trong câu l nh ch ng trình hay nh p kh u các t p. Trong vi c l p trình th c t , b n nên nh n bi t r ng b ti n x lí ch y th c hi n nh ng ch c n ng này. Theo ngh a r ng, b ti n x lí c dùng chuy n m t ch ng trình vi t trong m t ngôn ng c p cao này thành m t ch ng trình c vi t trong m t ngôn ng c p cao khác. Do ó v i vi c dùng b ti n x lí, tr c h t b n có th xây d ng m t ch ng trình ng vi c dùng ngôn ng l p trình x, r i chuy n i nó sang nh d ng c a ngôn ng l p trình y và cho ch y ch ng trình ã chuy n i này. Ph ng pháp này dùng m t b x lí ngôn ng có liên k t v i b x lí ngôn ng khác, là có ích n u trình biên d ch y c dùng r ng rãi h n trình biên d ch x, hay n u vi c dùng hai b x lí ngôn ng khác nhau có th làm t ng tính hi u qu t i u. B i vì yêu c u tiên quy t cho k thu t l p trình này là chuy n i tr n tru t x sang y, nên x th ng là m t phiên b n m r ng c a y.

5.1.4

Môi tr

ng l p trình

x lí ngôn ng và các công c phát tri n khác c a vào trong môi tr ng phát tri n ng trình. H th ng l p trình c dùng nhi u trong nh ng n m g n ây là IDE, có các b lí ngôn ng và công c phát tri n c tích h p trong m t h th ng. ng t , các công c phát tri n ã c thi t k h tr cho các k thu t l p trình m i nh l p trình web ang c phát tri n. ch

(1) IDE (Môi tr ng phát tri n tích h p - integrated development environment) IDE cho phép m t lo t các nhi m v l p trình t so n th o ch ng trình ngu n cho t i vi c biên ch, và t móc n i cho t i g l i u c th c hi n trong m t môi tr ng liên t c. Công vi c p trình tr c ây ã c th c hi n b ng vi c dùng các công c khác nhau th c hi n t ng nhi m v l p trình. Do ó lu ng l p trình tr n tru b ng t quãng, gây ra gi m tính hi u qu và ng su t. IDE cung c p gi i pháp cho nh ng v n này, cho phép t t c các nhiêm v l p trình c th c hi n trong m t môi tr ng tích h p. Các c tr ng c a IDE là nh sau:

188 Ch

ng 5 Th c hi n ch

ng trình

- T ng h p v i các ngôn ng l p trình th ng c dùng (C, COBOL, v.v.) c thi t k cho phép hàng lo t nhi m v l p trình th c t c th c hi n. - Móc n i v i h qu n tr c s d li u Các s n ph m i di n c a IDE là: - Visual Studio 6.0 (Microsoft): Môi tr ng phát tri n Windows dùng VB, VC++ và các ngôn ng khác trong m t gói. - Delphi 5.0 (Borland): H th ng phát tri n tr c quan dùng trình biên d ch t c cao - Developer 2000 (Oracle): Môi tr ng phát tri n cho các ng d ng c s d li u dùng Oracle.

(2) L p trình Web Có hai cách ti p c n c tính t i t o ra vi c l p trình web b ng vi c dùng môi tr ng web: - Làm cho ch ng trình hi n th c hi n c trong môi tr ng web. - Phát tri n m t ch ng trình m i v i d nh cho ch y nó trong môi tr ng web. t công c phát tri n thích h p cho cách ti p c n th nh t trên ây là VB-web và công c thích p cho cách ti p c n th hai là FrontPage. C hai u do Microsoft cung c p. Các ch c n ng c n cho công c phát tri n web là: - Ch c n ng xây d ng GUI n gi n - Ch c n ng thi t k khung ch ng trình dùng thu t s - Dùng ASP (Active Server Page - trang ngu n ph c v tích c c) - T ng h p v i các ngôn ng qui c

5.2 Ki m th

5.2

189

Ki m th

Ng i ta th ng nói m t ch ng trình m i c t o ra ch a vài l i trong 100 dòng. Trong nh ng dòng này, l i t ti n trình l p trình và l i t ti n trình thi t k u có c . N u m t ch ng trình ch a l i c dùng v n hành m t h th ng tr c tuy n, thì nh ng h h ng nghiêm tr ng phát sinh ra không ch nh h ng t i công ti v n hành h th ng ó, mà còn nh h ng c t i công chúng l n bên ngoài. Do ó, vi c ki m th s n ph m ph i c ti n hành tr c khi chuy n giao s n ph m công nghi p. Vi c ki m th ch ng trình c ng ph i c ti n hành theo m t trình t ki m th c bi t ki m ch ng r ng ch ng trình và h th ng mà nó u khi n, có th v n hành t ng ng i các c t . M c d u chúng ta không th m b o hoàn toàn lo i b h t l i trong ch ng trình, chúng v n có th làm gi m s l i ó t i m c t i thi u nh t n u chúng ta ki m th ch ng trình theo cách chính xác, hi u qu .

5.2.1

ng quan v ki m th

Trong mô hình thác , ki m th n v , ki m th tích h p, ki m th h th ng và ki m th v n hành c ti n hành theo th t ó. Phía phát tri n h th ng th c hi n b c u trong ti n hành ki m th n v , tích h p và h th ng, trong khi b ph n ng i s d ng ch u trách nhi m ti n hành ki m th v n hành. Hình 5-2-1

ng quan v ki m th

ho ch c s

Ki m th v n hành

t thúc pha xây d ng

Thi t k ngoài Ki m th h th ng th ng Thi t k trong Ki m th tích h p

PG M

Thi t k PG

p trình

PG

Ki m th

nv

M

M

M

M

M

M : Mô un PG Ch ng trình

Khi b ph n ng i dùng hoàn thành ki m th v n hành, thì ch ng trình c chính th c chuy n t t ch c h th ng sang ng i dùng. Sau u này, t ch c ng i dùng nh n trách nhi m qu n lí ch ng trình.

190 Ch

ng 5 Th c hi n ch

5.2.2

Ki m th

ng trình

nv

Ki m th nv c ti n hành t i nh ng giai ki m th là t ng mô un.

(1)

ic

n s m nh t trong pha ki m th . M c tiêu

ng và m c ích c a ki m th

nv

Ki m th nv c ti n hành cho t ng mô un, n v nh nh t bên trong h th ng ang xây ng. M c ích là ki m ch ng l i công vi c ã c làm trong pha l p trình. Trong ki m th n v th c t , vi c ki m ch ng c th c hi n xem li u các ch c n ng mô un có t ng ng i c t mô un hay không. Sau khi các mô un ã c móc n i và tích h p vào m c h th ng ch ng trình, thì m t s l n công vi c c n làm là lo i b l i. tránh u này, l i tr c h t ph i c lo i b kh i t ng mô un trong giai n ki m th n v , tr c khi các mô un c tích h p l i.

(2) Ph • Ph

ng pháp ki m th và thi t k các tr

ng h p ki m th

ng pháp ki m th

nguyên t c, ki m th h p en th ng c ti n hành. Ki m th h p tr ng c ti n hành u c n. - Ki m th h p tr ng (còn g i là ki m th h p trong): Chú ý chính c d n vào c u trúc bên trong. - Ki m th h p en: Chú ý chính c d n vào giao di n (cái vào và cái ra) gi a các mô un. ‚ Thi t k tr

ng h p ki m th

Tr c khi ki m th ch ng trình, ph i chu n b các tr ng h p ki m th (d li u ki m th ). ó là m t nhân t quan tr ng c n xét t i vì nó nh h ng t i k t qu c a vi c ki m th , hay th m chí còn xác nh ra ch t l ng c a h th ng. thi t k các tr ng h p ki m th t i u, n u có s n m t h ng d n nào ó (tài li u thi t k tr ng h p ki m th ) thì s r t có ích. B ng cách tích lu các d li u và xem l i tài li u thi t tr ng h p ki m th , t ch c phát tri n có th l u gi cách làm c i ti n ch t l ng ph n m, và dùng nó nh ph ng ti n truy n d li u sang giai n l p trình sau.

5.2.3

Ki m th tích h p

Ki m th tích h p c ti n hành sau khi ki m th nv ã c hoàn t t. Chúng cd nh ki m ch ng l i nh ng công vi c ã c ti n hành trong các pha thi t k ch ng trình và thi t k ch ng trình.

(1)

ic

ng và m c ích c a ki m th tích h p

Ki m th tích h p c ti n hành ki m ch ng r ng nhi u mô un có th v n hành úng khi c n i v i các mô un khác có liên quan. Trong khi ti n hành vi c ki m th này, chú ý chính c dành cho giao di n gi a các mô un (giao di n gi a các ch ng trình). Cho dù không tìm th y v n gì trong ki m th n v , l i v n th ng xu t hi n khi các mô un c n i l i. N u i xu t hi n trong ki m th tích h p thì b n ph i quay lui tr v ti n trình tr c và s a v n . Hãy nh r ng b n c ng ph i ch a l i tài li u thi t k . Tr c khi ti n hành ki m th tích h p, ph i nh ngh a rõ ràng các mô un c n i theo th t

5.2 Ki m th

191

nào và khi nào.

(2) Cu ng và khi n trình Trong giai n l p trình c a phát tri n h th ng, ch ng trình có c u trúc phân c p bao g m nhi u mô un. Do ó, vi c mã hoá c th c hi n cho t ng mô un riêng, và các mô un c p cao hay c p th p c c n t i ki m ch ng s v n hành bình th ng c a các mô un ã xây ng. Trong ki m th th c t , các mô un câm c g i là cu ng hay khi n trình s c dùng i. - Cu ng (stub): M t ch ng trình dành cho ki m th cung c p các ch c n ng c a mô un c th p. - Khi n trình (driver): M t ch ng trình dành cho ki m th cung c p các ch c n ng c a các mô un c p cao Hình 5-2-2 Cu ng và khi n trình

Mô un ã hoàn thành ki m th

Mô un c n ki m th

Mô un c n ki m th

Cu ng



Khi n trình

Mô un c n ki m th

Mô un ã ki m th

Cu ng

Mô un c n ki m th

Mô un ã ki m th

Hình 5-2-3 nêu ra m t ví d v cu ng CALL "S" USING X Y

<S>

<Mô un c n ki m th >



Cu ng cho l i giá tr

Hình 5-2-3 Ví d v cu ng.

192 Ch

ng 5 Th c hi n ch

ng trình

(3) Ki m th t ng d n Trong ki m th t ng d n, các mô un ã hoàn t t ki m th s c móc n i liên ti p v i các mô un khác. Ki m th t ng d n c phân lo i i th thành ba ki m th c nêu d i ây: - Ki m th trên xu ng - Ki m th d i lên - Ki m th t h p (ki m th bánh mì k p th t) <

c tr ng> - Thích h p cho ki m th ch ng trình kích c l n. - C n dùng các mô un ki m th (mô un câm) nh các cu ng và khi n trình thay cho các mô un ch a hoàn thành. - K t qu c a vi c ki m th có th thay i, tu theo các mô un c móc n i vào theo trình nào. - D theo dõi d u v t l i v nguyên nhân. • Ki m th trên xu ng Ki m th trên xu ng c dùng phát tri n h th ng theo th t t các mô un cao t i mô un th p ( c g i là l p trình trên xu ng).

5.2.3.1

Hình 5.54 Ki m th trên xu ng A

Cu ng

Cu ng

A

B

C Mô un ã ki m th Mô un c n ki m th

Cu ng

Cu ng

Mô un câm

A

B

C

Cu ng

<

Cu ng

c tr ng> - Mô un m c cao nh t (mô un lõi hay mô un có logic) tr c h t c móc n i v i mô un cao nh t ti p ó và t t c các mô un khác c ng c móc n i gi ng th theo trình t các mô un t m c cao t i th p. - Các mô un quan tr ng c ki m th th ng xuyên h n các mô un kém quan tr ng,

5.2 Ki m th

193

do v y làm t ng tin c y c a giao di n gi a các mô un c p cao. - Ti n u ki n cho vi c dùng ki m th này là ch b n thân ch ng trình ph i ct o ra b ng vi c dùng thi t k có c u trúc. - B i vì mô un c p cao v i m t s nh các ch ng trình là c phát tri n tr c, nên khó làm vi c l p trình và ti n hành ki m th song song t i giai n kh i u. - Thích h p cho vi c phát tri n h th ng m i - Xem nh (ch ng trình) h th ng ki m th , c n dùng t i cu ng. ‚ Ki m th d Ki m th d c cao (

i lên

i lên c dùng phát tri n h th ng theo trình t các mô un m c th p t i c g i là l p trình d i lên).

Hình 5-2-5 Ki m th d

i lên A

B

C

D

E

Khi n trình Mô un ã ki m th Mô un c n ki m th

B

Mô un câm

C

D

E

Khi n trình

D

<

E

c tr ng> - Ki m th c ti n hành b ng vi c móc n i các mô un theo trình t mô un m c th p i cao. - Khi ki m th tích h p ã c hoàn t t, thì ch ng trình có th c ki m th theo u ki n v n hành th c t . - B i vì các mô un m c th p v i m t s l n ch ng trình là c phát tri n tr c h t, nên có th làm vi c l p trình, và ti n hành ki m th song song t i giai n kh i u. - Xem nh h th ng (ch ng trình) ki m th , c n có khi n trình. - Thích h p cho vi c phát tri n m t phiên b n s a i c a h th ng hi n t i.

194 Ch

ng 5 Th c hi n ch

ng trình

ƒ Ki m th t h p (ki m th bánh mì k p th t) Ki m th t h p (ki m th bánh mì k p th t) là vi c t h p c a các ki m th trên xu ng và i lên. Các ki m th trên xu ng và d i lên c ti n hành ng th i cho t i khi t t i làn ranh gi i tho hi p ã nh s n.

A B

i lên

Trên xu ng

Hình 5-2-6 Ki m th t h p

C ng t h p> D

E

c tr ng> - Các mô un trên ng t h p là ch cho ki m th trên xu ng trong khi các mô un i ng t h p là ch cho ki m th d i lên. - Vì các ki m th trên xu ng và d i lên có th c ti n hành ng th i, nên các ki m th có th c hoàn t t trong th i gian ng n h n nhi u. - Ph n khung c a ch ng trình có th c ki m th d dàng. - Xem nh h th ng (ch ng trình) ki m th , thì c cu ng và khi n trình u c c n t i.

(4) Ki m th không t ng d n Trong ki m th này, t t c các mô un có vi c ki m th nv ã c hoàn t t i và cho ch y. Ki m th không t ng i di n là ki m th big bang.

u

c móc

c tr ng> - Thích h p cho vi c ki m th ch ng trình kích c nh . - Không c n t i cu ng hay khi n trình. - N u l i xu t hi n thì khó dò d u v t chúng ng c v nguyên nhân. • Ki m th Big-bang Ki m th big-bang dùng k thu t c a vi c th c hi n ki m th n v tr c h t trên m i mô un, i móc n i chúng t t c l i m t lúc và th c hi n ki m th tích h p toàn b .

5.2 Ki m th

195

Hình 5-2-7 Ki m th Big-bang A B

C D

E Ph i cung c p cu ng và khi n trình cho t ng mô un

A

Cu ng B

Cu ng C

Khi n trình A

Khi n trình A

B

C

Cu ng D

Khi n trình C

D

Khi n trình C

E

Cu ng E

Ki m th tích h p

A

B

C

D

E

c tr ng> - B i vì ki m th này c ti n hành sau ki m th n v nên k t qu có tin c y cao. th c hi n ki m th móc n i thì cu ng hay khi n trình là không c n thi t. - Các mô un có th c ki m th t t c ngay m t lúc. - N u ki m th n v không c hoàn t t thì không th ti n hành ki m th big bang c. - Khó tìm l i trong giao di n gi a các mô un. - Sau khi tìm c l i, thì vi c g l i l i l ng nh ng.

5.2.4

Ki m th h th ng

Sau khi các mô un c móc n i v i nhau ã c ki m th , thì các ki m th c ti n hành theo trình t c a t ng ch ng trình, r i ki m th cho t ng h con m t, và cu i cùng ki m th cho toàn b h th ng. Các ki m th c ti n hành sau ki m th tích h p c g i là ki m th h th ng.

(1) T ng quan v ki m th h th ng Ki m th h th ng c ti n hành hành ki m th này, ph n l n chú ý c g i là ki m th toàn di n, và

ki m ch ng s phù h p v i thi t k ngoài. Trong vi c ti n c dành cho giao di n gi a các h con. Ki m th h th ng c ti n hành b i m t nhóm chuyên ki m th . Nó là ki m

196 Ch

ng 5 Th c hi n ch

th cu i cùng

ng trình

c ti n hành b i t ch c phát tri n h th ng.

Hình 5-2-8 Ph m vi c a ki m th h th ng

<
Ch.tr

Ch.tr

Ch.tr

Ch.tr

Ch.tr

Ch.tr

Ch.tr

Ch.tr

Ch.tr

Ch.tr

Ch.tr

Ch.tr

Ch.tr

Ch.tr

Ch.tr

Ch.tr

ng trình

c tích h p và toàn b h th ng



th ng

Ch.tr: Ch

ng trình

c ki m th >>

(2) Các ki u ki m th h th ng Ki m th h th ng c ti n hành nhau nh c nêu d i ây: • Ki m th tích h p ch

ki m tra các ch c n ng và hi u n ng t nhi u góc

khác

ng trình/h con

Các ch ng trình c móc n i v i nhau, và các h con và giao di n gi a các ch ng trình c ki m th .

c móc n i v i nhau, và các h con

‚ Ki m th ch c n ng Ki m th này c ti n hành c áp ng hay không.

ki m ch ng li u các yêu c u ch c n ng c a ng

i dùng có

ƒ Ki m th hi u n ng Ki m th này khác.

c ti n hành

ki m ch ng th i gian áp ng và các kho n m c hi u n ng

„ Ki m th v n hành Giao di n con ng ch ng.

i (GUI) và các

m khác liên quan t i v n hành

c ki m tra và ki m

… Ki m th ph c h i h ng hóc Cách th c h th ng có th ph c h i t h ng hóc và th c hi n l i các ch c n ng là th .

c ki m

† Ki m th t i Ki m th này c ti n hành ki m tra hi u n ng và ch c n ng c a h th ng khi m t kh i ng l n d li u c a vào m t lúc, hay khi m t t i l n c áp vào h th ng. ‡ Ki m th ngo i l Ki m th này c ti n hành ki m ch ng r ng h th ng có th gi i quy t thích h p cho các li u không h p l khi c a vào. ˆ Ki m th ch u

ng

Ki m th này c ti n hành làm vi c liên t c.

ki m ch ng r ng m t h th ng có th

ng v ng nhi u gi

5.2 Ki m th

5.2.5

Các ki m th

ng còn có ki m th v n hành ( th rà l i.

197

khác c ti n hành sau khi ki m th h th ng ã hoàn t t) và ki m

(1) Ki m th v n hành ch c c a ng i dùng ch u trách nhi m ti n hành ki m th v n hành. Ki m th v n hành là ki m th cu i cùng c ti n hành trên h th ng. T ch c c a ng i dùng ph i chu n b các tr ng h p ki m th , ti n hành ki m th trong u ki n v n hành th c t , và ki m ch ng r ng th ng tho mãn các c t ã c yêu c u. B i vì ki m th này d nh làm cho h th ng ã xây d ng c t ch c ng i dùng ch p nh n, nên nó c g i là ki m th ch p thu n hay ki m th ch p nh n. i vì ki m th v n hành c ti n hành b ng cách cho ch y ch ng trình trên máy ang c dùng cho v n hành nghi p v th c t , nên ph i h t s c chu áo ng làm nhi u các ho t ng nghi p v .

(2) Ki m th rà l i Ki m th rà l i có liên quan ch t ch v i ho t ng b o trì. c ích c a ki m th rà l i là ki m ch ng r ng nh ng s a i h th ng công vi c b o trì không nh h ng t i các b ph n ang ho t ng bình th

5.2.6

c ti n hành trong ng c a h th ng.

ho ch và nhi m v ki m th

Các ki m th a d ng c ti n hành trong phát tri n h th ng ã gi i thích các nhi m v ki m th chung và n i dung c a công vi c th .

(1) Nhi m v ki m th (t ng quan) Hình 5-2-9 ch ra m t t ng quan v các nhi m v ki m th . Hình 5-2-9 Nhi m v ki m th p k ho ch ki m th

Chu n b môi tr

ng

Ti n hành ki m th

Ki m ch ng k t qu ki m th

Phân tích nhu c u/ phân tích hi u n ng

a ch a và c i ti n tài li u hay ch ng trình

c mô t c r i. M c này c làm ti n hành ki m

198 Ch

(2)

ng 5 Th c hi n ch

ng trình

Lu ng ki m th và n i dung các nhi m v

• K ho ch ki m th n chu n b b n k ho ch ki m th . B n k ho ch ki m th có m i quan h ch t ch v i công vi c phát tri n h th ng, nh c v trong Hình 5-2-10. Hình 5-2-10 K ho ch ki m th [K ho ch ki m th ] p k ho ch c s



Thi t k ngoài



Thi t k trong Thi t k ch

ng trình

p trình


nv>

n chu n b b n k ho ch chung, có tên là l ch bi u ch . Các l ch bi u trong pha l p k ho ch s cho vi c ti n hành ki m th c xác nh t i m này. M i ki m th trong Hình 5.2.10 nên c l p l ch v i vi c t th i gian nêu sau ây:
Ki Ki Ki Ki

nh l ch bi u cho t ng ki m th >

m th v n hành: c xác nh khi k ho ch c b n c t o ra. m th h th ng: c xác nh trong thi t k trong. m th tích h p: c xác nh trong thi t k trong ho c thi t k ch ng trình. m th n v (mô un): c xác nh trong khi l p trình (thi t k mô un).

‚ Chu n b môi tr

ng ki m th

Các b c sau ây ph i c chu n b tr c khi ti n hành t ng ki m th : - H th ng ki m th - D li u ki m th - Ch ng trình ki m th (mô un) - Công c ki m th (gói ph n m m)

5.2 Ki m th

199

b nh Trình x ch p nhanh theo dõi v t

Công c sinh d li u ki m th Mô ph ng giao tác Công c g i

Công c ki m th

mô ph ng

M« pháng thiÕt bÞ

Mô ph ng l i t p Công c ki m soát ti n trình Công c phân tích k t thúc b t th ng

Hình 5-2-11 Công c ki m th

a. Thi t k h th ng ki m th Có nh ng tr ng h p máy c dùng cho các v n hành nghi p v ph i c dùng cho ch y ch ng trình ki m th . Tuy nhiên, n u máy này l u gi các t p hay c s d li u n c truy nh p t i trong v n hành hàng ngày, hay n u m t t i l ng l n b áp vào máy trong khi ki m th , thì vi c s n xu t s b gây r i lo n. Do ó, c n phát tri n hay thi t k cùng h u hành, t p và c s d li u nh ng s là i t ng c dùng trong vi c ch y n xu t th c. b. Thi t k ch

ng trình ki m th và d li u ki m th

Ph i thi t k ch ng trình ki m th (cu ng và khi n trình). C ng v y d li u ki m th ph i c chu n b và các tr ng h p ki m th ph i c thi t k b ng vi c dùng nhi u ph ng pháp. Có th dùng công c phát tri n m i có ây d dàng sinh ra d li u ki m th d a trên các tham bi n n gi n. M t công c nh v y là r t thu n ti n vì d li u sai có th c sinh ra t cách có ch ý. c. Thi t

t các công c ki m th

Các công c ki m th c n ph i

c thi t

t. Các ch

ng trình ti n ích c a h

u hành

200 Ch

ng 5 Th c hi n ch

ng trình

nói chung c dùng làm công c ki m th . Các gói ph n m m c thi t k làm công c ki m th bây gi r t s n có. Môi tr ng v n hành c a gói nh v y nên c ki m tra và a vào làm gi m chi phí phát tri n, và làm t ng tính hi u qu và ch t l ng c a ki m th . Hình 5-2-11 a ra m t s công c ki m th . 1) Công c g l i • Trình x ra Trình x ra a ra n i dung c a b nh hay thanh ghi. - X b nh : Vi t ra n i dung c a b nh hay thanh ghi khi vi c k t thúc b t th ng xu t hi n. - X ch p nhanh: V i m t l nh g r i nhúng trong ch ng trình, và n i dung c a b nh hay thanh ghi c vi t ra m i l n l nh này c th c hi n • B dò v t dò v t c ng còn c g i là ch ng trình dò v t. M i l n m t l nh c th c hi n và u ki n nào ó c tho mãn, thì b dò v t c kích ho t và ghi l i n i dung c a thanh ghi và a ch c a vùng b nh c tham chi u. • Công c sinh d li u ki m th Công c sinh d li u ki m th t ng sinh ra d li u ki m th d a trên các tham bi n do ng i dùng cung c p. • B mô ph ng - B mô ph ng giao tác mô ph ng cho h th ng x lí giao tác. - B mô ph ng thi t b mô ph ng cho m t thi t b cu i. - B mô ph ng h ng hóc mô ph ng cho các hoàn c nh h ng hóc. • X t p Ch ng trình x t p ghi ra n i dung c a m t t p c ghi trên thi t b nh nh at hay b ng t . 2) Công c ki m soát ti n trình ki m th Công c ki m soát ti n trình ki m th có th h tr cho m i ti n trình ki m th t l p k ho ch ki m th và thi t k cho t i g l i. 3) Công c phân tích k t thúc b t th ng Công c phân tích k t thúc b t th ng có th tìm ra nguyên nhân c a s k t thúc b t th xu t hi n cho ch ng trình, và nêu ra nh ng hành ng s a i.

ng

Các công c ki m th trên nên c s d ng nhi u nh t có th c có tính t i ngân sách có n. Chúng là nh ng công c hi u qu có th óng góp c i ti n n ng su t. K t qu là, ch t ng c a h th ng s t ng lên, chi phí b o trì sau khi h th ng tr nên v n hành có th c gi m b t, và có th trông i u t quay vòng t t h n. ng v y, các m sau nên c xem xét tr c khi ti n hành ki m th : - T o ra m t ch c n ng cho vi c x lí d li u ki m th trong toàn b b ng ph ng ti n JCL (job control language), các l nh l p v hay t p x lí theo lô. - C i thi n h ng hóc, m ng và các môi tr ng mô ph ng khác (b ng vi c dùng công c ki m th ) - T ng hoá x lí t ng tác ƒ Ti n hành ki m th Nhi u lo i ki m th ph i t.

c ti n hành trong

u ki n môi tr

ng th c hi n

c chu n b

5.2 Ki m th

201

„ Ki m tra k t qu c a ki m th Ki m th c ti n hành t ng ng v i các k ho ch ki m th và a vi c ki m th ph i c ki m tra l i.

c t ki m th , và k t qu

… Phân tích h ng hóc, phân tích hi u n ng Các l i và h ng hóc b phát hi n ph i c phân tích ch t ch b ng vi c dùng các công c và các k thu t ki m tra ch t l ng a d ng. † S a ch a và c i ti n tài li u và ch

ng trình g c

u l i hay sai sót thi t k c tìm th y và n u chúng có th c s a ch a ngay l p t c, thì ch ng trình ngu n ph i c s a ch a hay c i ti n. Ph n c a tài li u thi t k liên quan t i các i hay sai sót thi t k nh v y c ng ph i c s a ch a. N u ch ch ng trình ngu n c a ch a, thì s nh t quán gi a ch ng trình ngu n và tài li u thi t k s b m t, và r c r i có th xu t hi n khi công vi c ki m ch ng các ph n khác hay vi c b o trì c ti n hành. ‡ L y hành

ng thích h p sau m t ki m th hoàn t t

Sau khi m t ki m th ã sau ph i c ti n hành: a. Qu n lí ti n

c hoàn t t và ch

ng trình ã

c s a ch a, thì các hành

ng

ki m th và báo cáo

Ng i ch u trách nhi m ph i báo cáo v ti n c a vi c ki m th b ng vi c dùng báo cáo công vi c hàng tu n hay báo cáo ki m th . Sau khi ki m th c hoàn t t, ng i ó ph i báo cáo k t qu c a vi c ki m th b ng vi c dùng báo cáo hoàn thành ki m th . b. Ki m soát d li u liên quan t i h ng hóc li u v l i hay khi m khuy t c tìm ra trong khi ki m th ph i c tích lu l i. C ng y, l i xu t hi n trong tình hu ng nào, hành ng s a ch a nào ã ti n hành và các thông tin chi ti t khác ph i c c t gi . c. Xem l i tài li u v n hành th

ng l u

t sai l m c tìm ra trong giao di n con ng i hay trong các giao di n gi a các h con có th qui cho thi t k trong, nh c mô t trong m c † trên. Không ch ph n c a ch ng trình d n t i sai l m ó ph i c s a l i, mà c b n thân tài li u thi t k trong c ng ph i c ch a l i ng n c n cùng sai l m ó x y ra n a. ng n c n vi c l p l i các l i gây ra b i m t sai l m ph m ph i trong ti n trình ng c dòng tr c, m t ch ng trình, hay m t ph n c a tài li u thi t k liên quan t i sai l m ó ng nh tài li u v n hành t ng ng, ph i c s a l i hay xem xét l i ng n c n s xu t hi n n a c a cùng sai l m.

202 Ch

ng 5 Th c hi n ch

ng trình

Bài t p Q1

a. b. c. d.

Q2

Trong khi ti n hành các ki m th trong giai n phát tri n h th ng, các ki m th c ti n hành theo th t t các n v nh t i n v l n, và k t qu c a vi c ki m th c tích lu l i nh d li u. Tr t t các ki m th nào sau ây là thích p nh t? Ki Ki Ki Ki

m th h th ng → ki m th tích h p → ki m th nv m th h th ng → ki m th n v → ki m th tích h p m th n v → ki m th tích h p → ki m th h th ng m th n v → ki m th h th ng → ki m th tích h p

Thu t ng nào là thích h p nh t cho vi c ki m th c ti n hành v i s chú ý nh t c dành cho c u trúc bên trong c a ch ng trình và thu t toán?

a. Ki m th h th ng c. Ki m th h p en e. Ki m th d i lên

Q3

K thu t nào sau ây là chu n b d li u ki m th , và ki m th các ch c n ng a ch ng trình v i s chú ý nhi u nh t c dành cho m i quan h gi a d li u vào và k t qu a ra?

a. Ki m th trên xu ng c. Ki m th d i lên

Q4

b. Ki m th trên xu ng d. Ki m th h p tr ng

b. Ki m th h p en d. Ki m th h p tr ng

Mô t nào sau ây là thích h p cho ki m th tích h p c ti n hành trong ti n trình phát tri n h th ng, ngay sau ki m th n v (ki m th mô un) c hoàn t?

a. Ki m ch ng r ng h th ng có th th c hi n không có l i nào cho t t c các ch c n ng c xác nh trong tài li u thi t k ngoài b. Ki m ch ng r ng t p các m c tiêu v th i gian x lí và m c tiêu th i gian áp ng ã c tt i c. Ki m ch ng r ng không có v n gì trong các ki u và s thi t b vào và ra và thi t b truy n thông c ghép n i d. Ki m ch ng r ng không có v n gì v i giao di n gi a các mô un, là các c u ph n c a ch ng trình e. Ki m ch ng r ng vi c cho ch y nhi u vi c và ghép n i ng th i các thi t b cu i có th c th c hi n nh ã c xác nh

Q5

Gi i thích nào là úng v ki m th d

i lên, m t trong nh ng k thu t ki m th ?

a. Ki m th c ti n hành b ng cách móc n i các mô un theo tr t t mô un th p t i cao. Các khi n trình c c n t i làm cái thay th cho các mô un m c cao ch a hoàn t t. b. T ng mô un riêng l c ki m th . Khi t t c các mô un u ã c ki m th , thì chúng c móc n i và ki m th . c. Ki m th c ti n hành b ng vi c móc n i các mô un theo th t t mô un cao xu ng mô un th p. Cu ng c c n t i nh cái thay th cho các mô un c p th p ch a hoàn t t. d. Các ki m th c ti n hành theo tr t t ki m th n v , tích h p, h th ng và v n hành.

Bài t p

Q6

Mô t nào là úng cho d li u ki m th

c dùng

giám

nh ch

203

ng trình?

a. Các tr ng h p ki m th c chu n b tr c, và d li u ki m th có th áp ng các yêu u c xác nh trong tr ng h p ki m th c chu n b . b. Ch d li u ki m th có th c x lí úng m i c chu n b nh các ti n trình ki m th . c. Nh d li u c dùng cho ki m th , quãng 20% kh i l ng d li u c n x lí trong các thao tác th c t m i c chu n b . d. D li u ki m th b bác b nh l i trong giai n a vào không c n ph i c cung c p.

Q7

K thu t g l i nào ghi ra n i dung c a các bi n hay thanh ghi m i l n m t câu nh c bi t c th c hi n?

a. Walk-through c. B sinh d li u ki m th

b. nh ch p nhanh d. Khi n trình

204 Tr l i bài t p

6

p nh t v n hành

và phát tri n h th ng

c ích c a ch

ng

Hi u thi t k ch ng trình b ng cách s d ng ti p c n ng i t ng. • Hi u nh ngh a l p và các m i quan h ‚ Hi u cách ánh x thi t k vào hình th c th c hi n ƒ Hi u thi t k các d ch v Web b ng cách s d ng ti p n h ng i t ng

Tr l i bài t p 205

Gi i thi u t nhi u gói ph n m m c phát tri n i cùng v i hình th c i t ng nào ó. Kh n ng tái d ng các l p mà không c n lo l ng v thân chúng cho phép các h th ng k t h p l ng l o c phát tri n m t cách d dàng. Trong ch ng này, chúng ta s gi i thích v thi t k ch ng trình s d ng ph ng pháp h ng i t ng.

6.1

Thi t k ch

6.1.1

Thi t k ch

(1) T ch c c a ch

ng trình

ng trình h

ng trình h

ng

ng it

it

ng

ng

Truy nh p vào giao di n ng i s d ng, c c s d li u và các qui t c kinh doanh, t t c i nhau trong ch ng trình truy n th ng. Ch

u

ct h p

ng trình truy n th ng

Giao di n ng

i s d ng

Các qui t c kinh doanh Truy nh p d li u

Khi cách ti p c n h ng i t ng c ch p nh n cho thi t k ch ng trình, các c u ph n riêng l ph i c tách b ch. H u h t các giao di n ng i s d ng s d ng mô hình u khi n theo bi n c . Các hành ng th c hi n trong th gi i th c c d ch thành l i g i ch c n ng. B gi i quy t bi n c thích h p trong giao di n ng i s d ng c thay i x lí hành ng. u này d n t i các ki u l p sau: • Giao di n ng i s d ng ‚ Các l p mi n v n ƒ Các l p mi n c s d li u B ng cách chia thi t k ch ng trình thành 3 mi n này, u ó cho phép hi u và t o các mi n d dàng h n. Giao di n ng

i s d ng

a s cha

Mi n v n

Mi n c s d li u

i t ng khách hàng

Các ch c n ng bi n c Ki m soát Các ch c n ng bi n c

i t ng n ph m

i t ng n hàng

i t ng c d li u

s li u

206 Tr l i bài t p

u này cho phép vi c n i l ng l o gi a các ph n khác nhau c a ch ng trình b ng vi c chia các nh ngh a p vào ba mi n này. Giao di n ng i dùng bên máy khách cho phép ng i dùng t ng tác v i h th ng. Các l p mi n v n c dùng bao b c các qui t c kinh doanh. L p c s d li u c dùng cô l p v trí c a c s d li u làm cho nó thành trong su t v i h th ng. V trí c a các l p mi n v n có th trên máy ph c v hay máy khách. Vì t ng máy khách dùng m t t p các giá tr khác nhau, nên trong th c hành u thông th ng là c p cho các i t ng mi n v n vào máy khách.

(2) L p và it gói.

it

ng

ng là th nghi m c a l p. B n có th coi l p nh

nh ngh a. Các l p

c nhóm v i nhau nh m t

Gói

p g m 2 ph n • Thu c tính Thu c tính ch a nh ngh a d li u cho l p. ‚ Ph ng pháp (Methods) Ph ng pháp tr thành các ch c n ng trong l p.

nh ngh a p

Tên l p Thu c tính Ph

nh ngh a d li u

ng pháp Ch c n ng

Vùng truy nh p Có 3 ki u vùng truy nh p. a. Công (public) Truy nh p công ngh a là các ph

ng pháp và các thu c tính có th

c truy nh p t i t bên ngoài.

p Thu c tính t Thu c tính công

Thu c tính t Thu c tính công

b. Truy nh p t (Private) u này ngh a là các ph ng pháp hay các thu c tính ch có th c truy nh p b i các ph ng pháp n m bên trong i t ng. u này ngh a là ngay c các i t ng c a cùng m t l p c ng không th truy nh p c t i các ph ng pháp t c a các i t ng khác. Vì d li u trong m i l p c qu n lý b i b n thân i ng này, nên u này có ngh a là các thu c tính th ng là t và các ph ng pháp là công c. c b o v (Protected) u này ch áp d ng n u k th a c cài t. Truy nh p c b o v ngh a là các con cháu c a l p này có th truy nh p các ph ng pháp và các thu c tính ó.

Tr l i bài t p 207

p cha Thu c tính

cb o v Ph

ng pháp

cb o v

p con

Ph

ng pháp

„ Các l p mi n v n Các l p mi n v n bi u di n cho p mi n v n

ng c kinh doanh. Các qui t c kinh doanh

c

c bao b c trong các

Tên l p Các thu c tính Các qui t c kinh doanh c chia thành các l p ch u trách nhi m x lý b ph n a chúng

Các ph

ng pháp

Tên l p Các thu c tính Các ph

ng pháp

(3) Các thu c tính Các thu c tính bi u di n d li u mà mô t cho l p mi n v n Thu c tính tr ng thái Thu c tính quan h v i khóa ngo i n s c a i t ng • Thu c tính tr ng thái Các l p c bi t hoá bi u di n các tr ng thái có th

c

. Các ki u thu c tính khác là

nh ngh a b ng cách s d ng thu c tính tr ng thái.

208 Tr l i bài t p

Các c t c thay th b i thu c tính và t t c các ph ng pháp và thu c tính c k t h p. Thu c tính CurrentState c thêm vào phân bi t gi a các c t

‚ Thu c tính quan h khóa ngo i u m t l p có m t liên k t ho c m t k t t p v i m t l p khác, thì khóa ngo i xu t hi n trong l p thi t k . Ví

u BorrowerNo là danh x ng i t ng cho borrower, thì nó c ng xu t hi n nh m t thu c tính trong l p Borrowed copy. ƒ B n s c a i t ng (Cardinality of the object) Các thu c tính ki u s là ng viên t t cho vi c xác nh các tr ng thái gi i h n. B n s c a i t ng c bi u di n nh m t thu c tính trong l p. Ví d v ng i m n Borrower và tài li u c m n Borrowed copy

t thu c tính di n t s các b n sao

cm

n (Number of borrowed copies) có th

c thêm vào l p

Tr l i bài t p 209

borrower . T ng s các b n sao cm c s d ng xác nh xem ng i m

(4) Các ki u ph

n (number of borrowed copies) là h u h n. Thu c tính này có th n có v t quá gi i h n cho phép hay không.

ng pháp trong các l p mi n v n

Các ph ng pháp c tìm th y trong các l p mi n v n có th c phân lo i là Các ph ng pháp ki m ch ng tr ng thái Các ph ng pháp thay i tr ng thái Các ph ng pháp trao i d li u • Các ph ng pháp ki m ch ng tr ng thái Xét k ch b n m n sách trong h th ng th vi n. Ng i m n và tài li u ph i tho mãn m t s u ki n tr c khi c phép tham gia vào trong k ch b n này. Sau k ch b n này, có s thay i tr ng thái c a các i ng nh m i quan h c t o ra gi a ng i m n và tài li u. Tr c khi di n ra s ki n m n sách

it

ng

i t ng sách có th m n

ng

i n ch b n

n sách

Sau khi di n ra s ki n m n sách

i ng

i t ng sách cm n

t ng im n

i quan h n và sách

c t o gi a ng

i

Ph

ng pháp ki m ch ng tr ng thái c s d ng xác nh tr ng thái ban u c a i t ng. Các i ng tài li u v i tr ng thái có s n c phép tham gia trong vi c m n sách. u này ngh a là ph ng pháp ki u nh IsAvailable cho cái ra ki u True/False có th c s d ng xác nh xem i t ng tài li u là trong tr ng thái s n có hay không. Ví d v ph ng pháp ki m ch ng tr ng thái trong l p Copy (ví d VB) public Sub IsAvailable( OutReply As Boolean) ‚ Ph ng pháp thay i tr ng thái Ph ng pháp này c s d ng làm cho i t ng thay i tr ng thái c a nó. Ví d trong tr ng h p k ch b n m n sách i t ng tài li u c thay i t tr ng thái s n có sang tr ng thái ã c m n. u này ngh a là kh ng nh n di n i t ng ng i m n liên k t ph i c truy n qua i t ng tài li u. Ví d v ph ng pháp thay i tr ng thái trong l p Copy public Sub Borrow( InBorrower As Borrower) ƒ Ph ng pháp trao i d li u Ph ng pháp này bi u di n s trao i thông tin gi a các i t ng. Giao di n ng i s d ng có th yêu c u các giá tr c nêu ra cho th gi i th c. Thay vì t o nhi u ph ng pháp trao i d li u, m t c u trúc trao i có th c nh ngh a nh m t tham bi n. Hai ph ng pháp có th c nh ngh a bi u di n d li u truy n i ho c d li u tr l i.

(5) S ph thu c gi a các

it

ng

i l p có vùng trách nhi m riêng c a nó. Khi m t khách hàng c th c tích tr , tiêu chu n truy nh p nh giá tr khóa c truy n vào m t ph ng pháp trong l p khách hàng (Customer). L p khách hàng s không

210 Tr l i bài t p

c tr c ti p c s d li u. Vi c vi t và c c s d li u thu c trách nhi m c a l p Database. Thay vì th m t i t ng c a l p database c t o trong thân c a ph ng pháp Customer. Ph ng pháp c cung c p b i i t ng database r i c th c hi n b ng vi c truy n tiêu chu n truy nh p c yêu c u và nh n l i d li u. Không gi ng nh các ch ng trình truy n th ng, d li u c s d ng thi t l p các giá tr trong i t ng mi n v n , t c là customer. Trong truy c p d li u, i i t ng c nói t i khôi ph c d li u c a riêng chúng ng cách s d ng các ph ng pháp c cung c p b i i ng c s d li u i t ng s d li u

(6) L p c s d li u (Database) p c s d li u c s d ng che gi u v trí c a máy ph c v c s d li u. Nó c x lí gi ng nh máy u quy n proxy cho máy ph c v . Trong môi tr ng khách/ph c v , l p c s d li u s th c t giao ti p i máy ph c v c s d li u. Nh c m là giao di n máy khách c s d li u ph i c cài t. Máy khách

Máy ph c v c s d li u

Giao th c c s d li u ph n u khi n c s d li u ph i c xác nh trong máy khách

c s d ng

Ngày nay, các ki n trúc a bên ã thành thông d ng h n. Trong ki n trúc a bên, i t ng c s d li u trong máy khách th c t là m t u quy n proxy s d ng giao th c chu n nh SOAP truy nh p các d ch v web trên máy ph c v . Sau ó, các d ch v web có th truy nh p máy ph c v c s d li u ho c máy ph c v web khác i t i máy ph c v c s d li u. Các d ch v web có th c coi nh m t t h p các ph ng pháp p mi n v n c yêu c u mà ã c a ra s d ng.

Máy ph c v Web

Máy khách

ph n u khi n c s d li u không c n trong máy khách

Máy ph c v

c s d li u

Tr l i bài t p 211

Các l p mi n v n ch v web

Các ph

ng pháp

ban p

Các ph ng pháp

p ch v web

Các ph

ng pháp

Các ph ng pháp

p

Các ph ng pháp

u

212 Tr l i bài t p

Tr l i bài t p Tr l i cho Quy n 3 Ch

ng 1 (C u trúc d

li u)

Danh sách áp án áp án

______________________________________________________________

Q 1: Q 6: Q 11:

c c b

Q 2: Q 7: Q 12:

b d c

Q 3: Q 8:

b b

Q 4: Q 9:

d a

Q 5: Q 10:

Tr l i và mô t

Q1 Tr l i c. 190 Mô t trí c a a[5,6] trong m ng nh sau. a[1,1] a[2,1] a[3,1] a[4,1] a[5,1]

a[1,2] a[2,2] a[3,2] a[4,2] a[5,2]

a[1,10] a[2,10] a[3,10] a[4,10] a[5,3]

a[5,4]

a[5,5]

a[5,6]

Nó v trí th 46. a ch m t hai c a (a[1,2]) là 100 + 2*1=102 Và a ch m t ba c a (a[1,3]) là 100 + 2*2=104. Vì v y a ch m t 46 là 100 + 2*45=190

Q2 Tr l i b. Con tr cho Shizuoka

c

t là 70 và con tr cho Atami

c

t là 150

Mô t Danh sách m t chi u có th c hình dung nh sau: 10 Tokyo-->50 ShinYokohama-->90 Atami-->70 Hamamatsu-->30 Nagoya Sau khi chèn Shizuoka gi a Atami và Hamamatsu, danh sách m t chi u s nh sau 10 Tokyo-->50 ShinYokohama-->90 Atami-->150 Shizuoka-->70 Hamamatsu-->30 Nagoya

c c

Tr l i bài t p 213 Vì v y, con tr c a Shizuoka s là 70. Con tr c a Atami s là 150. Con tr 10

u

a ch 10 30 50 70 90 150

li u Tokyo Nagoya Shin Yokohama Hamamatsu Atami Shizuoka

Con tr 50 0 90 30 150 70

Q3 Tr l i b. Hàng

i

Mô t Hàng i c g i là h th ng vào tr c ra tr c (FIFO) à ây là câu tr l i Ng n x p c cho là h th ng vào sau ra tr c (LIFO). Cây nh phân là lo i c u trúc cây mà th t chèn và th t truy c p là c l p (không gi ng FIFO ho c LIFO) ng là lo i cây nh phân.

Q4 Tr l i A

b

c

d

e

1

3

3

3

6

7

4

4

7

4

3

5

6

1

3

Mô t Ng n x p qu nl ý d li u theo FILO(vào tr c ra sau). PUSH 1-->PUSH 5-->POP-->PUSH 7-->PUSH 6-->PUSH 4-->POP-->POP-->PUSH 3 PUSH 1-->PUSH 5 5 1 POP 1 PUSH 7-->PUSH 6-->PUSH 4 4 6 7 1 POP-->POP 7 1

214 Tr l i bài t p

PUSH 3 3 7 1

Q5 Tr l i c. 4 Mô t Ch s

Hình 1 Cây nh phân

Giá tr Con tr 1 Con tr 2

1

200

3

2

2

220

0

3

180

5

4

190

0

0

5

150

6

0

6

130

0

0

0 a

Hình 2 ng di n t cây nh phân

Trong hình 1 trên, m i nút di n t b ng m t s ch s , con tr 1 xác nh giá tr ch s c a nó t nút con bên trái, con tr 2 xác nh giá tr ch s c a nó t nút con bên ph i. "a" ngh a là giá tr tr s c a nút bên ph i c a 180 t c là 190 và giá tr ch s là 4.

Q6 Tr l i c. 13 Mô t Trong cây nh phân, m i nút ph i th a mãn u ki n sau. Giá tr khóa l n nh t c a các nút bên trái nút < Giá tr khóa c a nút < Giá tr khóa nh nh t c a các nút bên ph i nút Vì v y Nút có giá tr 12 ph i có giá tr l n h n 10 và nh h n 14.

Tr l i bài t p 215

Q7 Tr l i d. hicdbjfkgea Mô t Tìm ki m là th c hi n s d ng ph ng pháp th t ví tr , ngh a là m b t u d i cùng bên trái, phía ph i m i nút c theo dõi m t cách tu n t . Vì v y, h, i và c c a ra tr c.

Q8 Tr l i b. A + B × C - (D + E) ÷ F Mô t

÷

+ A

X

B Ký hi u Vì v y,

di n t B x C,

di n t A + B x C

F

+ C

D

E

216 Tr l i bài t p ng cách gi i thích d a theo h A + B x C - (D + E) / F

ng d n nh trên, câu tr l i là

Q9 Tr l i a. Chia ra và g p l i các nút

cho phép chi u sâu phân c p tr thành nh nhau.

Mô t a là úng. b ph n ánh b m

(b. Nh n di n v trí n i d li u

c l u gi b ng vi c dùng m t hàm nào ó và giá tr khoá.)

c mô t các t p truy c p tu n t

(c. Ch có th truy nh p tu n t t i d li u

u và d li u ti p ó.)

d di n t các t p t ch c phân ho ch

(d. Có danh m c và m t thành viên. Thành viên là t p

c t ch c tu n t .)

Q10 Tr l i c. 11 Mô t Trong câu h i này c n tìm v trí A sau khi 7

* 1)

i ch 7 và 25 vì 7 < 25

2)

i ch 7 và 11 vì 7 < 11

3)

i ch 7 và 9 vì 7 < 9.

c chèn vào v trí

.

Tr l i bài t p 217 u này hto i mãn yêu c u hoàn thành vi c

Sau khi

i ch .

i ch nh trên, ph n t trong v trí A là 11. Vì v y, câu tr l i là c.

Q11 Tr l i b. 2 Mô t Ch c n ng b m mod(a1 a2 a3 a4 a5, 13) mod(54321,13)=mod(5+4+3+2+1,13)=2 Vì v y ch s c a 54321 là 2.

Q12 Tr l i c. 0.7 Mô t ng b m v i 10 phân t Vì v y xác xu t t ng ngh a không x y ra cho các giá tr 5 là 9/10 x 8/10 x 7/10 x 6/10 = 3024/10000 Xác xu t xung t x y ra là 1-0.3024=0.6976

218 Tr l i bài t p

Tr l i cho Quy n 3 Ch

ng 2 (Các thu t toán)

Danh sách áp án áp án

______________________________________________________________

Q 1: Q 6: Q 11:

a d a

Q 2: Q 7: Q 12:

d e b

Q 3: Q 8:

c e

Q 4: Q 9:

b d

Q 5: Q 10:

d c

Tr l i và mô t

Q1 Tr l i a. Tuy n tính Mô t a. Tuy n tính Thu t toán tìm ki m tuy n tính tìm các ph n t tu n t t

u t i cu i b ng à

ây là câu tr l i

b. Nh phân Ph

ng pháp tìm ki m nh phân là ph

ng pháp thu h p d li u ích xu ng trong khi chia vùng tìm

ki m thành hai ph n. Các ph n t không

c tìm ki m m t cách tu n t .

c. B m m là cách s d ng c u trúc d li u ki m m ng. S d ng b m, b n có th truy c p tr c ti p t i d li u c th s d ng khóa không truy c p d li u b n ghi d.

i x ng m t m t.

ng ng là lo i cây tìm ki m nh phân. Nó là cây nh phân hoàn h o, có m i liên h v kích c gi a nút

cha và nút con. các nút anh em.

ng khác v i tìm ki m nh phân

ch

ng không có m i quan h v kích c gi a

Tr l i bài t p 219

Q2 Tr l i d. X = ai Mô t Ch s Giá tr

1 a1

2 a2

3 a3

... ...

i ai

... ...

n an

n+1 X

pl it b

c 2 t i b c 4. di n t u ki n l p. u ki n t n t i là giá tr c tìm th ho c v trí cu i c tìm . Vì v trí cu i ho c không c ki m tra trong b c 5, ô tr ng s là giá tr p v i giá tr ph n t hiên t i. à Câu tr l i là d

Kho ng tr ng

Q3 Tr l i C

a b k + l → lo k - l → hi

Mô t t

u

1 → l0 n → hi ( l 0 + h i) / 2 → k

=

A( k ) : x

>

a a

a b

l0:hi

> nt ix

Không t n t i x

t thúc



c tìm th

, ví d X phù

220 Tr l i bài t p

Ph

ng pháp tìm ki m nh phân là ph

ng pháp thu h p d li u ích trong khi chia vùng tìm ki m

thành hai ph n. 1) ch tr ng a u A(k) < X, chia vùng có n a cao h n thành hai ph n, vì v y k+1 à lo . 2) kho ng tr ng b u A(k) > X, chia vùng n a th p h n thành hai ph n, vì v y k-1 à hi Do ó, câu tr l i là c.

Q4 Tr l i b. 11 Mô t Trong tìm ki m nh phân, s l n so sánh trung trình và l n nh t v i s các ph n t là N: -S l n so sánh trung bình là [log2N] -S l n so sánh l n nh t là [log2N] +1 ([ ] là ký t Gaussian và s th p phân c a giá tr

a ra trong ký t

c b b t.)

l n trung bình là k thì 1 <= 2000/2k < 2 2k <= 2000/2k < 2k+1 ây, log21024 = log2(2)10=10 <= log22000 < log22048 = log2(2)11=11 Vì v y k = 10 và s l n l n nh t là k+1 = 11 à câu tr l i là b.

Q5 Tr l i d. N u s d li u là 10 hay nh h n, thì s l n so sánh trung bình mà ph ng pháp duy t tuy n tính òi h i là nh h n s l n trung bình c a ph ng pháp duy t nh phân. Mô t Trong tìm ki m nh phân, s l n so sánh trung bình và l n nh t v i s các ph n t là N: -S l n trung bình là -S l n l n nh t là

[log2N] [log2N] +1

Trong tìm ki m tuy n tính, s l n so sánh l n nh t là: N u s ph n t là N,

Tr l i bài t p 221

-S l n so sánh trung bình là -S l n so sánh l n nh t là a. Dùng ph a là úng.

N/2 N

ng pháp duy t nh phân, d li u ph i

c s p x p.

b.

duy t 100 d li u b ng vi c dùng ph ng pháp duy t nh phân, s l n so sánh t i a c c n t i tìm ra d li u ích là 7. u N=100, s l n trung bình cho tìm ki m nh phân là

log2100 < log2128 = log2(2)7 Vì v y trung bình là 6 và l n nh t là 7 à b c ng úng. c. N u ph ng pháp duy t tuy n tính dù d li u ã c l u gi . C c ng úng.

c dùng, s l n so sánh không nh t thi t gi m i cho

d. N u s d li u là 10 hay nh h n, thì s l n so sánh trung bình mà ph ng pháp duy t tuy n tính òi h i là nh h n s l n trung bình c a ph ng pháp duy t nh phân. u N=10, l n tìm ki m tuy n tính trung bình là 10/2 = 5 l n tìm ki m nh phân trung bình là log210 < log2(2)4 = 4 Vì v y d là sai à ây là câu tr l i e. N u s d li u t ng lên t 100 t i 1,000, thì s l n so sánh t ng lên 10 l n h n ph ng pháp duy t tuy n tính c dùng. B ng vi c dùng ph ng pháp duy t nh phân, s này ng lên hai hay ít h n. l n trung bình c a tìm ki m nh phân v i N=100 và N=1000 là nh d i ây. Vì v y e c ng úng. u N=100, log2100 < log2128 = log2(2)7 u N=1000, log21000 < log21024 = log2(2)10

Q6 Tr l i D

a T ng d n

b S px p

c p x p ngoài

d G p

Mô t 1) a, b p x p d li u theo th t tu n t t giá tr nh nh t p x p t ng d .

n giá tr l n nh

ngh a là

222 Tr l i bài t p

2) c u dãy d li u ích là l u tr ph , thì ho t

ng này g i là

p x p ngoài .

c.f. S p x p ngoài ngh a là s p x p d li u trong n v b nh chính. S p x p ngoài ngh a là d li u l u tr c l u tr trên a t ho c n v l u tr ph khác. 3) d Tích h p hai ho c nhi u t p

c l u tr theo th t trong m t t p

Q7 Tr l i e. S p x p n i b t Mô t

t

u →n

các ph n t Vòng l p n≤1 1→i Trao i i=n

A ( i ) : A (i + 1)

A(i)→w A(i+1)→A(i ) w → A ( i + 1) i+1→i

Trao

i

n-1→n

pl i

t thúc

c g i là

Tr l i bài t p 223

Trong l u

trên, so sánh A(i) và A(i+1), n u A(i) > A(i+1), chúng

t c p ph n t ti p theo m i ph n t trong chu i thì i ch .

c

i ch , ví d ,

c so sánh và n u chu i s là sai

Ph n này mô t s p x p n i b t. à câu tr l i là e.

Q8 Tr l i e. 10,000 Mô t Trong c c u s p x p n i b t, hai ph n t ti p theo m i ph n t trong chu i sánh và n u chu i sai thì i ch . ph c t p c a máy li u)

n toán là n2 (t

c so

ng ng v i m t hình vuông có c nh n, n: s

u s d li u l n g p 100 l n (tr c kia là 1000 và bây gi là 100 000), thì th i gian c tính s là (100)2 = 10,000 l n so v i tr c kia. à câu tr l i là e. 10,000.

Q9 Tr l i d. S p x p vun ng là ph ng pháp s p x p d li u b ng vi c bi u di n m t vùng ch a s p p nh m t cây con, l y giá tr t i a hay t i thi u t mi n ch a s p, chuy n giá tr t i a hay t i thi u vào vùng c s p x p và l p l i vi c này thu h p d n mi n ch a s p x p. Mô t a. S p x p nhanh Quick sort là ph ng pháp s p x p d li u theo các dãy con bao g m các kho n m c d li u c l y t các kho ng và s p x p các dãy con nh h n bao g m các kho n m c d li u c l y t i kho ng nh nh t. Câu này mô t ph ng pháp s p x p bóc v mà hai y u t d li u c xác nh ngay t m i y u t t i kho ng th i gian nào ó c ch n ra t dãy d li u. b. S p x p bóc v Shell sort là ph ng pháp s p x p d li u b ng cách so sánh m t c p các ph n t k nhau và tráo i chúng n u ph n t th hai l n h n ph n t th nh t. Câu này mô t ph ng pháp s p x p n i b ,là ph ng pháp so sánh m t c p các ph n t k nhau. c. S p x p n i b t Bubble là ph ng pháp s p x p d li u b ng cách t m t giá tr tham chi u trung gian, phân b các phân t v i giá tr l n h n giá tr tham chi u trong ph n này và t các ph n t v i giá tr nh h n giá tr tham chi u vào ph n kia và l p l i vi c này cho t ng ph n riêng m t.

224 Tr l i bài t p

Câu này mô t

ph

ng pháp s p x p nhanh .

d. S p x p vun ng là ph ng pháp s p x p d li u b ng vi c bi u di n m t vùng ch a s p p nh m t cây con, l y giá tr t i a hay t i thi u t mi n ch a s p x p, chuy n giá tr i a hay t i thi u vào vùng c s p x p và l p l i vi c này thu h p d n mi n ch a p x p. ây là mô t v ph ng pháp s p x p vun ng. à ây là câu tr l i

Q10 Tr l i c. D li u c chia thành m t nhóm các d li u nh h n m t giá tr tham chi u và nhóm kia là các d li u l n h n giá tr tham chi u. Trong t ng nhóm, m t giá tr tham chi u m i c l a ra và d li u gi ng th l i c phân chia thành hai nhóm d a trên giá tr tham chi u này. Vi c này c th c hi n l p l i. Mô t Trong câu h i này c n tìm mô t thích h p v s p x p nhanh. Ph ng pháp s p x p nhanh do Hoare thi t k . Nó di n t ph nhanh nh t s d ng ph ng pháp quy.

ng pháp s p x p

Giá tr tham chi u ( m th ho c giá tr th ) c ch n t d li u c s p x p. Giá tr trung bình c a ba ph n t (ph n t trái, chính gi a, ph i) c s d ng th ng xuyên. Sau ó, ph n t d li u nh h n giá tr chính c chuy n sang trái c a giá tr chính trong khi nh ng ph n t d li u l n h n giá tr chính c chuy n sang ph i. t c ph n t d li u c chia thành hai ph n. Ho t ng phân chia này c th c hi n l p l i cho à c. là mô t thích h p v ph

n khi ch còn l i m t ph n t .

ng pháp s p x p nhanh à ây là câu tr l i

a. So sánh và tráo i c th c hi n cho hai d li u xa nhau v i kho ng cách nào ó. Kho ng cách này d n d n và liên t c c thu h p s p x p m i d li u. a. mô t ph ng pháp s p x p nhanh. b. Giá tr t i thi u th nh t c tìm ra trong d li u. Giá tr t i thi u th hai c tìm ra trong d li u mà trong ó giá tr t i thi u th nh t không c bao hàm. Vi c này c th c hi n l p l i. b. mô t ph ng pháp l a ch n c b n. d. D li u k nhau c so sánh và tráo chuy n v cu i m ng d li u. d. mô t ph ng pháp s p x p n i b t.

il p il pl i

cho phép d li u nh h n

c

Tr l i bài t p 225

Q11 Tr l i a. TANGO (i) → TANGO (i+1) Mô t t

u

TANGO ( n ) → TANGO ( 0 ) Vòng l p i : n 1, -1, 0

Vòng l p

t thúc

Thu t toán này bao g m 1) TANGO(n) à TANGO(0) 2) L p, giá tr ch s

thay

i t n-1 t i 0 v i l

ng gi m b ng 1

Áp d ng thu t toán trên ta có. Gi s n=5 và m ng TANGO là ban c l u tr

l n l

t theo th

t

u. Ví d các t

FE , SW , JITEC , JIPDEC và METI

trong TANGO(1), TANGO(2), TANGO(3), TANGO(4) và

TANGO(5).

TANGO(0)

FE TANGO(1)

SW TANGO(2)

JITEC TANGO(3)

Sau khi áp d ng thu t toán này, t trong TANGO(n) gi s các t còn l i c d ch sang ph i. METI METI FE TANGO(0) TANGO(1) TANGO(2)

SW TANGO(3)

JIPDEC TANGO(4)

METI TANGO(5)

c l u tr trong TANGO(1), sau ó JITEC TANGO(4)

JIPDEC TANGO(5)

Sau khi th c hi n TANGO(5)àTANGO(0) , th c hi n theo vòng l p (giá tr ch s n0v il

ng gi m m t giá tr )

TANGO(4) à TANGO(5) TANGO(3) à TANGO(4) : TANGO(0) à TANGO(1)

thay

i t n-1

226 Tr l i bài t p

u này có th

c mô t s d ng ch s

nh

TANGO(i) à TANGO(i+1).

Vì v y câu tr l i là a.

b. TANGO (i) → TANGO (n-i) c. TANGO (i+1) → TANGO (n-i) d. TANGO (n-i) → TANGO (i) b,c,d là sai.

Q12 Tr l i b. Nh dùng

c th y theo quan m hình h c, ph ng ti p tuy n c a y = f(x).

ng pháp thu l y l i gi i x p x b ng vi c

Mô t Ph

ng pháp thu t toán Newton

gi i b ng cách s d ng

c mô t nh sau. Nh

c ch ra d

i ây, nó thu

cl i

ng ti p tuy n y=f(x). Vì v y câu tr l i là b.

c1 ng ti p tuy n y = f(x) t i p1( x1, y1) và thu

c

m x2 là giao c a

ng ti p tuy n và

ng ti p tuy n y = f(x) t i p2 (x2, y2) và thu

c

m x1 là giao c a

ng ti p tuy n và

tr c x. c2 tr c x. Khi b

c này

c th c hi n l p i l p l i thì

ng ti p tuy n chuy n g n t i k t qu .

c3 khác nhau gi a các giá tr x p x g n k nhau thu xác c a giá tr h i t

c xác

này nh h n giá tr h i t Bi u th c

nh tr

c xác

c trong b

c. Th c hi n l p l i b nh tr

c2

c so sánh v i

chính

c 1 và 2 cho t i khi s khác nhau

c.

ng ti p tuy n t i p1 là y-f(x1) = f'(x1)(x-x1),

m x2 là giao c a

ng ti p tuy n và

tr c x s d ng bi u th c sau: x i +1 = x 1 −

f (x i ) f ′( x i ) (i = 0, 1, 2, ...)

a. M c d u m t hàm f(x) không th px. u này là sai vì ph

c l y vi phân, nh ng v n có th thu

ng pháp này s d ng vi phân nh gi i thích

c. Cung c p hai giá tr kh i

trên.

u khác nhau.

u này c ng sai vì ch m t k t qu

c

a ra t m t giá tr ban

u.

c m t l i gi i

Tr l i bài t p 227

d. V i b t kì giá tr ban u nào bao gi c ng thu c m t giá tr x p x . Trong tr ng h p f (x n) =0, h i t s không bao gi di n ra, qua ó không thu giá tr x p x .

c

228 Tr l i bài t p

Tr l i cho Quy n 3 Ch

ng 3 (Thi t k trong)

Danh sách áp án áp án

______________________________________________________________

Q 1:

b

Q 2:

a,e

Q 3:

a

Q 4:

e

Q 5:

d

Tr l i và mô t

Q1 Tr l i b. Thi t k d li u v t lý Mô t Trong câu h i này c n tìm công vi c th c hi n thích h p nh t trong thi t k trong, nh b ph n c a ho t

ng phát tri n h th ng trong s các l a ch n sau.

a. Thi t k mã b. Thi t k d li u v t lý c. Thi t k ch d. nh ngh a các yêu c u e. Thi t k d li u Logic Thi t k trong, không gi ng nh thi t k ngoài, xác

ng trình theo c u trúc

nh cách th c hi n h th ng t quan

mc a

nhà phát tri n. Các ch c n ng c a h th ng module (các ch

ng trình)

c chia theo module (các ch c

ng trình) và giao di n gi a các

nh ngh a rõ ràng.

Thi t k trong d a trên k t qu c a thi t k ngoài, k t qu thi t k trong ti p theo, thi t k ch Các ho t

ng trình.

ng c a thi t k trong bao g m

- Phân tích ch c n ng - Thi t k c u trúc - Thi t k d li u v t lý - Thi t k vào ra - Xem xét thi t k trong Vì v y câu tr l i là b. Thi t k d li u v t lý

c s d ng trong b

c

Tr l i bài t p 229

Q2 Tr l i a.

cl

ng dung l

ng và th i gian truy nh p e. Xác

nh cách b trí b n ghi

Mô t Trong câu h i này c n xác

nh hai tác v

c th c hi n trong thi t k d li u v t lý trong giai

n

thi t k trong.

a. c l ng dung l ng và th i gian truy nh p b. Xác nh các y u t d li u c. Phân tích các m i quan h d li u d. T o các c t t p e. Xác nh cách b trí b n ghi Thi t k d li u v t lý bao g m các ho t

ng nh gi i h n dung l

ng t p, thi t k l u tr c s

li u, v.v Trong s các l a ch n

trên, a và e

Các l a ch n khác ( b, c và d)

c th c hi n trong thi t k trong.

c th c hi n trong thi t k ngoài.

Q3 Tr

l i a DFD

Mô t Trong câu h i này c n xác

nh bi u

c s d ng trong phân tích c u trúc

ng và lu ng d li u b ng cách s d ng các ký hi u kho d li u và ngu n ngoài (ngu n d li u

a. DFD b. ERD e. Bi u ò Warnier

c. S

NS

di n t các ch c

a ra lu ng d li u, x lý (các ch c n ng),

c sinh ra và g i i).

d. Bi u

chuy n tr ng thái

a DFD Chu n DFD cho bi u b Bi u Bi u

lu ng d li u: và bi u

này mô t trong câu h i. à

E-R này

c s d ng trong mô hình d li u

a ra các th c th và m i quan h gi a

chúng. cS

NS

Bi u

này

d Bi u Bi u e Bi u

ây là câu tr l i

c s d ng trong l p trình c u trúc.

chuy n tr ng thái này di n t các tr ng thái và các giao d ch gi a các tr ng thái. Warnier

230 Tr l i bài t p

Bi u

này c ng

c s d ng trong thi t k module.

Q4 Tr l i e. M i quan h gi a các b

c vào/ra và x lí có th

c bi u di n rõ ràng.

Mô t Trong câu h i này c n xác

nh mô t thích h p v HIPO, m t trong các ph

ng pháp thi t k c u

trúc.

a. Bi u các n i dung và bi u lu ng d li u c dùng. b. Thông tin u khi n c truy n qua gi a các kh i x lí c mô t cùng v i các m i tên trong bi u n i dung. c. Bi u n i dung ch ra ch c n ng toàn th c a ch ng trình, và các s c a vào trong các kh i x lí ch ra trình t x lí. d. Các kí hi u trong l u c dùng ch ra cái gì c ch n và cái gì c l p l i. e. M i quan h gi a các b c vào/ra và x lí có th c bi u di n rõ ràng. Chu n HIPO cho bi u Ph n pb nhau t i bi u

phân c p c ng cái vào v i x lý cái ra

là b ng hi n th n i dung mà hi n th các module trong c p b c gi ng t ch c. Ph n ng cái vào x lý cái ra là bi u a ra t t c các

quy trình, u vào và u ra. Vì v y a,b,c và d u úng. Câu tr l i là e.

Q5 Tr l i d.

hoàn thành ti n trình ang di n ra, màn hình ph i dùng b d vi c a d li u vào, hay tr l i màn hình tr

c thi t k c ó.

ng n c n ng

i

Mô t Trong câu h i này c n xác nh xem xét không thích h p v thi t k màn hình trong thi t k trong và thi t k ngoài. a. Vi c chuy n màn hình nên c thi t k v i vi c xem xét không ch vi c l a t ng b c ng vi c dùng m t menu, mà còn v i truy nh p tr c ti p vào màn hình mong mu n cho ng i dùng ã thành th o. b. T ng kho n m c mà d li u c a vào trên màn hình ph i c bao trong ngo c vuông, nh n m nh r ng nó là tr ng a vào d li u. c. Cách b trí màn hình ph i c thi t k theo cách các kho n m c c n tham chi u c thu p t trái sang ph i, và t trên xu ng d i. d. hoàn thành ti n trình ang di n ra, màn hình ph i c thi t k ng n c n ng i

Tr l i bài t p 231

dùng b d vi c a d li u vào, hay tr l i màn hình tr c ó. e. B trí màn hình ph i c chu n hoá; các qui t c v v trí cho hi n th tiêu và thông báo ph i c thi t l p. Trong các l a ch n trên, d là không thích h p vì nó ch thu hút t i s thu n ti n c a h th ng mà không thu n ti n cho ng i dùng ho c gi m ho t ng. Thi t k màn hình nên

c th c hi n b ng cách chú ý t i y u t giao di n con ng

i.

232 Tr l i bài t p

Tr l i cho Quy n 3 Ch

ng 4 (Thi t k ch

ng trình)

Danh sách áp án áp án Q 1: Q 6:

______________________________________________________________ e a

Q 2: Q 7:

c d

Q 3: Q 8:

c b

Q 4:

d

Q 5:

c

Tr l i và mô t

Q1 Tr l i e. Nên

a vào các chú thích úng

làm cho d hi u logic bên trong mô un.

Mô t Trong câu h i này c n xác

nh nh n xét không thích h p trong phân ho ch module.

a. S các mô un c p d i mà m t mô un có th g i t i ph i c gi i h n. b. Mô un ph i c thi t k sao cho nó ch a m t s úng các b c. c. Trong thi t k c u trúc c p b c mô un này g i t i mô un kia, ph i ý t i vi c gi chi u sâu trong gi i h n xác nh. d. Giao di n gi a các mô un ph i c làm n gi n hoá. e. Nên a vào các chú thích úng làm cho d hi u logic bên trong mô un. t c a, b, c và d là xem xét thi t k module. e là th c hành mã úng nh ng không liên quan t i phân ho ch module. Vì v y, câu tr l i là e.

Q2 Tr l i

c

Vào d li u Ngu n

Ch n s Ngu n

Ch c n ng Tính giá tr trung bình Bi n i

Hi n th k t qu ch a

Mô t Trong câu h i này, k t h p úng các STS. Ch

ng trình này

c

m ch c n ng c a ch

c d li u, ch n d li u s và

ng trình d a trên phân ho ch

a ra giá tr trung bình.

Tr l i bài t p 233

Vào d li u ch a ch a Ngu n Ngu n Bi n i

a b c d e

Trong ph

Ch c n ng Tính giá tr trung bình Ngu n Ngu n Bi n i Bi n i ch a

Ch n s B ch a Ngu n Ngu n Bi n i B ch a

ng pháp phân ho ch STS (ho c phân tích), m t ch

Hi n th k t qu Bi n i Bi n i ch a ch a Ngu n

ng trình

c chia thành ba ph n

nh sau 1) Ngu n (Ch c n ng x lý 2) Bi n

u vào)

i (Ch c n ng x lý d li u)

3) B ch a (Ch c n ng x lý Trong ph

ng pháp này,

lâu h n d li u

u ra)

m vào tr u t

u vào và

m ra tr u t

ng hóa l n nh t, n i d li u không th ng l n nh t, n i d li u b t

c xem xét

u mang hình nh d li u

u ra. Ch

ng trình trong câu h i

tính d li

c ng

c d li

c th c hi n.

, ch n d li u s

và hi n th giá tr trung bình . H n n a

u này c ng tính th c t trung bìnhcó th

sau.

Ch n s

c d li u

Lu ng d li u vào

Ngu n

Tính trung bình

m vào tr u t ng n nh t

Hi n th k t qu

m ra tr u ng l n nh t

Bi n

i

Lu ng d li u ra

ch a

c

a ra nh

234 Tr l i bài t p

Q3 Tr l i c. Ph

ng pháp phân ho ch giao tác

Mô t Trong câu h i này c n xác

nh tên ph

ng pháp phân tích

c dùng cho s chia theo ch

ng

trình c p nh t t p.

C p nh t t p

p nh t tr ti n b n a. Ph c. Ph

p nh t công nh t

ng pháp phân ho ch STS ng pháp phân ho ch giao tác

b. Ph d. Ph

p nh t kh u tr

ng pháp Jackson ng pháp Warnier

Phân tích là ti n trình chia ch c n ng thành module thành các m u ít ph c t p nh t. Có ba lo i ph

ng pháp phân tích

1) Phân tích b ch a/Bi n

ng lu ng d li

.

i/Ngu n

2) Phân tích giao tác 3) Phân tích ch c n ng Có các ph

ng pháp phân tích

1) Ph

ng pháp Jackson

2) Ph

ng pháp Warnier

Trong tr

ng c u trúc d li

sau:

ng h p trên, khi m i ph n sau khi phân tích di n t m t giao tác khác nhau, câu tr l i là

c. Phân tích giao tác.

Q4 Tr l i d. Ph

ng pháp phân ho ch giao tác

Mô t Trong câu h i này c n tìm ph phân tích c u trúc thành bi u

a. Ph ng pháp KJ b. Ph phân ho ch giao tác Câu tr l i là d.

ng pháp s d ng c u trúc

chuy n bi u

lu ng d li u

c t o ra b i

c s d ng cho thi t k c u trúc?

ng pháp OMT

c. Ph

ng pháp Jackson

d. Ph

ng pháp

Tr l i bài t p 235

a là ti p c n khoa h c b là m t trong các ph c là ph

gi i quy t v n ng pháp h

ng pháp phân ho ch h

ng

, do Jiro Kawakita it

Nh t B n phát tri n

ng.

ng c u trúc d li u.

Q5 Tr l i c. Ph

ng pháp Jackson

Mô t Trong câu h i này c n xác

a. Ph ng pháp phân ho b. Ph ng pháp phân ho c. Ph ng pháp Jackson d. Ph ng pháp phân ho t c a, b và d là k thu Vì v y câu tr l i là c, ph

nh k thu t phân ho ch module t p trung vào c u trúc d li u.

ch ch c n ng chung ch ngu n/bi n i/b ch a (ph

ng pháp phân ho ch STS)

ch giao tác (ph ng pháp phân ho ch TR) t phân ho ch h ng lu ng d li u. ng pháp Jackson ho c JSP (Jackson Structured

Programming.)

Q6 Tr l i a. Bi u Bi u

c u trúc c a d li u vào và ra c v v i chú ý chính d n vào c u trúc d li u. c u trúc ch ng trình c chu n b d a trên bi u c u trúc d li u vào/ra.

Mô t Trong câu h i này c n xác

nh mô t

úng nh t v ph

ng pháp Warnier

cs

ng t o th t k ch ng trình theo c u trúc. a. Bi u c u trúc c a d li u vào và ra c v v i chú ý chính d n vào c u trúc d li u. Bi u c u trúc ch ng trình c chu n b d a trên bi u c u trúc d li u vào/ra. b. Các ch c n ng trong lu ng d li u c g p nhóm vào trong các lo i ngu n, bi n i và ch a v i chú ý chính c d n vào lu ng d li u c n gi i quy t. c. Ph n m m c coi nh m t tuy n t p các d li u và qui trình. Tính c l p mô un c ng lên b ng cách bao b c nh ng d li u và qui trình này. d. V i chú ý chính c d n vào c u trúc u khi n c a ch ng trình, logic ch ng trình c thi t k d a trên lu ng u khi n, bi u l m i quan h g i nhau. Vì ph ng pháp Warnier là ph ng pháp phân ho ch h ng c u trúc d li u, nên câu tr l i là a.

236 Tr l i bài t p

Q7 Tr l i d. N i n i dung Mô t Trong câu h i này c n xác nh ki u n i module m nh nh t trong b n l a ch n sau: a. N i công c ng b. N i d u c. N i d li u d. N i n i dung i module t trong nh ng m c ích c a thi t k module là t i thi u hóa n i module v i các module khác. Nói cách khác là t o s c l p có th . Có 7 lo i n i module. T lo i có c l p ít nh t t i lo i có s c l p cao nh t nh sau: Không n i tr c ti p i d li u (c) i d u (b) i

u khi n

i ngoài i công công (a) i n i dung (d)

Module không dùng chung d li u v i các module khác. Hai module ch dùng chung thông tin qua ph n t d li u ng nh t. Hai module tham chi u cùng m t c u trúc d li u không toàn c u. t module i th ng qua ph n t ki m soát t i module khác t nhóm các module tham chi u c u trúc d li u toàn c u truy c p gi i h n (t p toàn c u). Nhóm các module tham chi u c u trúc d li u toàn u. M t module tham chi u tr c ti p vào trong các module khác

t nh t

i nh t ho c m nh nh t

Q8 Tr l i b. a=3, b=7 Mô t Trong câu h i này c n xác

Main program a=3 ; b=2 ; sub (a, b) ; x(

i chung)

Trong ch

nh c p ch

ng trình sau

a ra k t qu bao nhiêu

Subprogram sub (x, y) x=x+y ; y=x+y ; return ; c g i b i giá tr và y

c g i b i tham chi u.

ng trình chính, gán a =3 và b=2.

Tr l i bài t p 237

Sau ó ch ng trình con Vì x c g i b i giá tr và y

c th c hi n. c g i b i tham chi u khi g i ch

ng trình con, nên giá

tr c a a c duy t và a ch c a b c duy t. Vì v y, khi g i ch ng trình con, a không thay i, b tr thành 7. (x=x+y=3+2=5, y=x+y=5+2=7) t qu , a =3 (không thay i) và b=7. à Câu tr l i là b. a. a=3, b=2 b. a=3, b=7 c. a=5, b=2 d. a=5, b=7

238 Tr l i bài t p

Tr l i cho Quy n 3 Ch

ng 5 (Th c hi n ch

ng trình)

Danh sách áp án áp án

______________________________________________________________

Q 1: Q 6:

c a

Q 2: Q 7:

d b

Q 3:

b

Q 4:

Tr l i và mô t

Q1 Tr l i c. Ki m th

n v → Ki m th tích h p → Ki m th h th ng

Mô t Trong câu h i này c n xác

a. b. c. d.

Ki Ki Ki Ki

nh tr t t ki m th thích h p nh t.

m th h th ng → ki m th tích h p → ki m th nv m th h th ng → ki m th n v → ki m th tích h p m th n v → ki m th tích h p → ki m th h th ng m th n v → ki m th h th ng → ki m th tích h p

Th t c a ki m th nh sau. à Câu tr l i là c. Ki mUnit th tests nv

KiIntegration m th tíchtests h p

Ki System m th h tests th ng

Ki Operation m th v ntests hành

d

Q 5:

a

Tr l i bài t p 239

Q2 Tr l i d. Ki m th h p tr ng Mô t Trong câu h i này c n tìm thu t ng thích h p nh t cho ki m th c dành cho c u trúc bên trong c a ch

a. Ki m th h th ng c. Ki m th h p en e. Ki m th d i lên Các tr

c ti n hành v i s chú ý nh t

ng trình và thu t toán.

b. Ki m th trên xu ng d. Ki m th h p tr ng

ng h p ki m th cho ki m th h p tr ng

i c u trúc các module trong và lu ng

c thi t k b ng cách

a ra xem xét

c bi t

u khi n và logic.

Vì v y, câu tr l i là d.

Q3 Tr l i b. Ki m th h p en Mô t Trong câu h i này c n tìm k thu t ch

ng trình v i s chú ý nh t

chu n b ki m th d li u và ki m th các ch c n ng c a c dành cho các m i quan h gi a d li u

u vào và k t qu

u ra.

a. Ki m th trên xu ng c. Ki m th d i lên

b. Ki m th h p en d. Ki m th h p tr ng

Trong ki m th h p en, module ch chú ý t i các giao di n (

c xem nh h p en. Sau ó, d li u ki m th

u ra và

c thi t k

u vào) c a m i module.

p box en Black (module ho c các (A module or others) cái khác)

u ra Output

u vào Input

Vì v y, câu tr l i là b.

Các chi tidetails t bên are trong

Q4 Tr l i d. Ki m ch ng r ng không có v n ch ng trình

gì v i giao di n gi a các mô un, là các c u ph n c a

240 Tr l i bài t p

Mô t Trong câu h i này c n tìm mô t thích h p nh t v ki m th tích h p ki m th

phát tri n h th ng, ngay sau khi m t

n v ki m th

c ti n hành trong ti n trình

(ki m th

module)

c hoàn

thành. Trong ki m th tích h p, các ki m th liên k t các module. Các ho t

c ti n hành

ng c a các ch

m i ch

ng trình

c

a ra b ng cách

ng trình và các giao di n gi a các module

c

ki m tra.

a. Ki m ch ng r ng h th ng có th th c hi n không có l i nào cho t t c các ch c n ng c xác nh trong tài li u thi t k ngoài b. Ki m ch ng r ng t p các m c tiêu v th i gian x lí và m c tiêu th i gian áp ng ã c tt i c. Ki m ch ng r ng không có v n gì trong các ki u và s thi t b vào và ra và thi t b truy n thông c ghép n i d. Ki m ch ng r ng không có v n gì v i giao di n gi a các mô un, là các c u ph n c a ch ng trình e. Ki m ch ng r ng vi c cho ch y nhi u vi c và ghép n i ng th i các thi t b cu i có th c th c hi n nh ã c xác nh a. Mô t ki m th h th ng b. Mô t ki m th h th ng, c. Mô t ki m th v n hành

c bi t là ki m th th c hi n

d. Mô t ki m th tích h p à ây là câu tr l i e. mô t ki m th v n hành, c bi t là ki m th t i công vi c

Q5 Tr l i a. Ki m th c ti n hành b ng cách móc n i các mô un theo tr t t mô un th p t i cao. Các khi n trình c c n t i làm cái thay th cho các mô un m c cao ch a hoàn t t. Mô t Trong câu h i này c n xác

nh gi i thích thích h p h n v ki m th d

i lên.

a. Ki m th c ti n hành b ng cách móc n i các mô un theo tr t t mô un th p t i cao. Các khi n trình c c n t i làm cái thay th cho các mô un m c cao ch a hoàn t t. b. T ng mô un riêng l c ki m th . Khi t t c các mô un u ã c ki m th , thì chúng c móc n i và ki m th . c. Ki m th c ti n hành b ng vi c móc n i các mô un theo th t t mô un cao xu ng mô un th p. Cu ng c c n t i nh cái thay th cho các mô un c p th p ch a hoàn t t. d. Các ki m th c ti n hành theo tr t t ki m th n v , tích h p, h th ng và v n hành. Trong ki m th d i lên, các module c tích h p b ng cách di chuy n lên c p thi t ch ng trình. à Câu tr l i là a. b. Mô t ki m th big bang. c. Mô t ki m th trên xu ng. d.

a ra th t c a ki m th (nh

c

a ra trong câu 1)

Tr l i bài t p 241

Q6 Tr l i a. Các tr ng h p ki m th u c xác nh trong tr

c chu n b tr c, và d li u ki m th có th ng h p ki m th c chu n b .

áp ng các yêu

Mô t Trong câu h i này c n tìm mô t thích h p h n v d ch

li u ki m th

cs

d ng

ki m tra

ng trình.

a. Các tr ng h p ki m th c chu n b tr c, và d li u ki m th có th áp ng các yêu u c xác nh trong tr ng h p ki m th c chu n b . b. Ch d li u ki m th có th c x lí úng m i c chu n b nh các ti n trình ki m th . c. Nh d li u c dùng cho ki m th , quãng 20% kh i l ng d li u c n x lí trong các thao tác th c t m i c chu n b . d. D li u ki m th b bác b nh l i trong giai n a vào không c n ph i c cung c p. a. úng à ây là câu tr l i b,d Các tr ng h p ki m th có th a ra c hai u ki n t o quy t nh c th c hi n

u ki n

úng và sai mà m i

Q7 Tr l i b. Snapshot Mô t Trong câu h i này c n xác n m t câu l nh

nh tên k thu t g l i

c bi t

c th c hi n.

a. Walk-through b. c. B sinh d li u ki m th a Walk-through là m t lo i ph

Snapshot d. Khi n trình ng pháp xem xét

b Snapshot là sap chép t nh các chuy n tr bi n, giá tr thanh ghi và v.v... à c K thu t này t

vi t ra n i dung các bi n ho c thanh ghi m i

ng

c bi t t i m t th i

m

ây là câu tr l i

ng sinh d li u ki m th

d K thu t này thay th module g i

c s d ng trong ki m th d

i lên

c bi t. Nó ch a các giá

242

i chi u thu t ng Anh - Vi t

ng

i chi u thu t ng Anh - Vi t

[A] abstract data type approximation algorithm array type ascending order ASP assembler

Ki u d li u tr u t Thu t toán x p x Ki u m ng th t t ng ASP h p d ch

[B] balanced tree basic data structure basic data type basic exchange method basic insertion method basic selection method bi-directional list big bang test binary search method binary search tree binary tree bisection method black box test bottom-up programming bottom-up test Boyer-Moore method branch breadth-first search method B-tree bubble chart bubble sort

Cây cân b ng u trúc d li u c s Ki u d li u c s Ph ng pháp tráo i c s Ph ng pháp chèn c s Ph ng pháp l a c s Danh sách hai chi u Ki m th Big-bang Ph ng pháp duy t nh phân Cây tìm ki m nh phân Cây nh phân Ph ng pháp phân ôi Ki m th h p en p trình d i lên Ki m th d i lên Ph ng pháp Boyer-Moore Nhánh Ph ng pháp duy t chi u r ng tr B-cây b t px pn ib t

[C] cell chain method character string compression character string processing character string search character type child class library coding rules (standards) coincidental strength collation algorithm combination line combination test common coupling

Ô Ph ng pháp dây chuy n Nén xâu kí t lí xâu kí t Duy t xâu kí t Ki u kí t Con Th vi n l p Nh ng qui t c vi t mã (chu n) b n trùng h p ng u nhiên Thu t toán x p b ng t h p Ki m th t h p i chung

ng

c

i chi u thu t ng Anh

common function partitioning method communicative strength compiler computational complexity content coupling control coupling [D] DASD data check method data coupling depth-first search method dequeue descending order design review development tool DFD dialog box Dijkstra search method direct access storage device direct organization file directed graph directory divide-and-conquer method document driver dump routine dynamic programming method [E] eight-queen question encapsulation enqueue enumeration type ESDS event-driven program exhaustive search method external coupling external sorting [F] FIFO figure drawing file dump file processing file updating first-in first-out FIFO fixed length record flowchart

Ph

Vi t 243

ng pháp phân ho ch ch c n ng th b n trao i biên d ch ph c t p tính toán i n i dung i u khi n

ng

DASD Ph ng pháp ki m tra d li u i d li u Ph ng pháp duy t chi u sâu tr c y ra d li u t hàng i p theo th t gi m Ki m m thi t k Công c phát tri n Bi u lu ng d li u p tho i Ph ng pháp duy t c a Dijkstra Thi t b nh truy nh p tr c ti p p t ch c tr c ti p th có h ng Danh m c Ph ng pháp chia và tr Tài li u Khi n trình Trình x ra Ph ng pháp qui ho ch ng

Câu h i tám h u Bao b c u gi d li u vào hàng Ki u li t kê

i

Ch ng trình c u khi n theo bi n c Ph ng pháp duy t vét c n i ngoài p x p ngoài

FIFO hình t p lí t p p nh t t p

n ghi chi u dài c u

nh

244

i chi u thu t ng Anh

functional programming [G] gap garbage graph greedy algorithm method group control GUI [H] hash hash method heap HIPO home record

Vi t

p trình hàm

h ng Rác th Ph ng pháp thu t toán tham lam Ki m soát nhóm Giao di n ng i dùng ho

m Ph

ng pháp b m ng phân c p c ng v i cái vào x lí cái ra n ghi nhà

[I] IDE incremental test index index area indexed sequential file information hiding informational strength integer type integration test interfaces between modules interpreter

Môi tr ng phát tri n tích h p Ki m th t ng d n Ch s Vùng ch s p tu n t có ch s Che gi u thông tin b n thông tin Ki u nguyên Ki m th tích h p Giao di n gi a các mô un thông d ch

[J] Jackson method

Ph

[K] knapsack problem KSDS

Bài toán ba lô KSDS

[L] language processor last-in first-out LIFO leaf LIFO linear list linear search linear search method list structure logic programming logical strength logical type

ng pháp Jackson

x lí ngôn ng Vào sau ra tr c Lá Vào-sau-ra-tr c Danh sách tuy n tính Duy t tuy n tính Ph ng pháp duy t tuy n tính u trúc danh sách p trình logic b n logic Ki u logic

i chi u thu t ng Anh

[M] maximum abstraction input point maximum abstraction output point MDI member merge sort module module coupling module independence module logical design module partitioning module strength Monte Carlo method multiway tree multi-window

m vào tr u t ng t i a m a ra tr u t ng t i a Giao di n a tài li u Thành viên px pg p Mô un i mô un Tính c l p c a mô un Thi t k logic mô un Phân ho ch mô un b n mô un Ph ng pháp Monte Carlo Cây a nhánh ac as

[N] N-ary tree Newton's method node nonincremental test NULL numerical integration

Cây N ngôi Ph ng pháp Newton Nút Ki m th không t ng d n NULL Tích phân s

Vi t 245

[O] object-oriented programming OCR c kí t quang h c one-dimensional array operation test overflow area

ng m t chi u Ki m th v n hành Vùng tràn

[P] parent partial type partitioned organization file peer-review perfect binary tree physical data design pivot pointer type POP preprocessor primarity test problem prime data area probability algorithm probability algorithm with bounded errors problem-oriented data structure procedural programming

Cha m Ki u b ph n p t ch c có phân ho ch Ki m m l i Cây nh phân hoàn ch nh Thi t k d li u v t lí Th Ki u con tr t ra ti n x lí Bài toán ki m th s nguyên t Vùng d li u chính Thu t toán xác su t Thu t toán xác su t v i sai s b ch n u trúc d li u h ng v n p trình th t c

p trình h

ng s v t

246

i chi u thu t ng Anh

Vi t

procedural strength process chart program design document programming paradigm programming style PUSH

b n th t c u ti n trình Tài li u thi t k ch ng trình Mô th c l p trình Phong cách l p trình n vào

[Q] QC quality control queue quick sort

Ki m tra ch t l Hàng i p x p nhanh

[R] real number type record type recursive recursive algorithm recursive call reduction method regression test reuse ring list root RRDS

Ki u s th c Ki u b n ghi qui Thu t toán qui i qui Ph ng pháp rút g n Ki m th rà l i Dùng l i Danh sách vòng c RRDS

[S] sandwich test SDI segment sentinel search method sequential method sequential organization file Shaker sort Shell sort short-cut key shortest path problem simple type Simpson's method spacing chart SSP stable marriage problem stable matching stack stack pointer stamp coupling state transition diagram structured chart structured design structured design method

Ki m th bánh mì k p th t Giao di n m t tài li u n Ph ng pháp duy t lính canh Ph ng pháp tu n t p t ch c tu n t p x p sàng l c p x p bóc v Phím t t Bài toán ng i ng n nh t Ki u n Ph ng pháp Simpson không gian SSP Bài toán hôn nhân n nh i sánh n nh Ch ng Con tr ch ng id u Bi u chuy n tr ng thái có c u trúc Thi t k có c u trúc Th ng pháp thi t k có c u trúc

ng

i chi u thu t ng Anh

structured programming structured type STS partitioning method stub subordinate module subprogram library subscript synonym synonym record system test

p trình có c u trúc Ki u có c u trúc Ph ng pháp phân ho ch STS Cu ng Mô un c p d i Th vi n ch ng trình con Ch s ng ngh a n ghi ng ngh a Ki m th h th ng

[T] table table search test case design manual test data generation tool three-dimensional array time strength top-down programming top-down test total test TR partitioning method tracer trapezoidal rule tree structure two-dimensional array

ng Duy t b ng Tài li u thi t k tr ng h p ki m th Công c sinh d li u ki m th ng ba chi u b n th i gian p trình trên xu ng Ki m th trên xu ng Ki m th toàn di n Ph ng pháp phân ho ch TR dò v t Qui t c hình thang u trúc cây ng hai chi u

[U] undefined length record undirected graph uni-directional list unit test

n ghi chi u dài không xác th vô h ng Danh sách m t chi u Ki m th nv

[V] validity variable length record virtual storage organization file VSAM file

Tính h p th c n ghi chi u dài bi n thiên p t ch c l u gi o p VSAM

[W] Warnier method waterfall model web programming weighted graph white box test window

Ph ng pháp Warnier Mô hình thác p trình Web th có tr ng s Ki m th h p tr ng as

nh

Vi t 247

248

i chi u thu t ng

Vi t - Anh

ng

i chi u thu t ng Vi t - Anh

ESDS QC A n vào ASP B Bài toán ba lô Bài toán ng i ng n nh t Bài toán hôn nhân n nh Bài toán ki m th s nguyên t m n ghi chi u dài bi n thiên n ghi chi u dài c nh n ghi chi u dài không xác nh n ghi ng ngh a n ghi nhà ng Bao b c t ra B-cây Bi u chuy n tr ng thái Bi u lu ng d li u biên d ch dò v t c kí t quang h c h p d ch thông d ch ti n x lí x lí ngôn ng C p nh t t p Câu h i tám h u u trúc cây u trúc danh sách u trúc d li u c s u trúc d li u h ng v n Cây cân b ng Cây N ngôi Cây nh phân Cây nh phân hoàn ch nh Cây nhi u nhánh Cây tìm ki m nh phân Cha m Che gi u thông tin Ch s Ch s

PUSH ASP knapsack problem shortest path problem stable marriage problem primarity test problem hash variable length record fixed length record undefined length record synonym record home record table encapsulation POP B-tree state transition diagram DFD compiler tracer OCR assembler interpreter preprocessor language processor file updating eight-queen question tree structure list structure basic data structure problem-oriented data structure balanced tree N-ary tree binary tree perfect binary tree multiway tree binary search tree parent information hiding index subscript

i chi u thu t ng

Ch ng trình c u khi n event-driven program theo bi n c Con child Con tr ng n x p stack pointer Công c phát tri n development tool Công c sinh d li u ki m th test data generation tool as window Cu ng stub D ac as multi-window Danh sách hai chi u bi-directional list Danh sách m t chi u uni-directional list Danh sách tuy n tính linear list Danh sách vòng ring list DASD DASD qui recursive m a ra tr u t ng t i a maximum abstraction output point m vào tr u t ng t i a maximum abstraction input point b n logic logical strength b n mô un module strength b n th i gian time strength b n thông tin informational strength b n th t c procedural strength b n trao i communicative strength b n trùng h p ng u nhiên coincidental strength ph c t p tính toán computational complexity th graph th có h ng directed graph th có tr ng s weighted graph th vô h ng undirected graph n segment i sánh n nh stable matching ng heap ng ngh a synonym Dùng l i reuse ng t h p combination line Duy t b ng table search Duy t tuy n tính linear search Duy t xâu kí t character string search F FIFO FIFO FIFO first-in first-out G Giao di n a tài li u MDI giao di n gi a các mô un interfaces between modules Giao di n m t tài li u SDI Giao di n ng i dùng ho GUI c root i qui recursive call

Vi t - Anh 249

250

i chi u thu t ng

Vi t - Anh

Hàng i H phân c p c ng v i cái vào x lí cái ra p tho i K Khi n trình Ki m m l i Ki m m thi t k Ki m soát nhóm Ki m th bánh mì k p th t Ki m th Big-bang Ki m th nv Ki m th d i lên Ki m th h th ng Ki m th h p en Ki m th h p tr ng Ki m th không t ng d n Ki m th rà l i Ki m th t ng d n Ki m th tích h p Ki m th t h p Ki m th toàn di n Ki m th trên xu ng Ki m th v n hành Ki m tra ch t l ng Ki u b n ghi Ki u b ph n Ki u có c u trúc Ki u con tr Ki u n Ki u d li u c s Ki u d li u tr u t ng Ki u kí t Ki u li t kê Ki u logic Ki u m ng Ki u nguyên Ki u s th c KSDS L Lá p trình có c u trúc p trình d i lên p trình hàm p trình h ng s v t p trình logic p trình th t c p trình trên xu ng p trình Web

queue HIPO dialog box driver peer-review design review group control sandwich test big bang test unit test bottom-up test system test black box test white box test nonincremental test regression test incremental test integration test combination test total test top-down test operation test quality control record type partial type structured type pointer type simple type basic data type abstract data type character type enumeration type logical type array type integer type real number type KSDS leaf structured programming bottom-up programming functional programming object-oriented programming logic programming procedural programming top-down programming web programming

i chi u thu t ng

y ra d li u t hàng i LIFO h ng u u ti n trình u gi d li u vào hàng i M ng ba chi u ng hai chi u ng m t chi u Mô un Mô un c p d i Mô hình thác Mô th c l p trình Môi tr ng phát tri n tích h p t danh m c N Nén xâu kí t Ng n x p Nhánh Nh ng qui t c vi t mã (chu n) i công c ng id u i u khi n i d li u i mô un i ngoài i n i dung NULL Nút O Ô P Phân ho ch mô un Phím t t Phong cách l p trình Ph ng pháp b m Ph ng pháp Boyer-Moore Ph ng pháp chèn c s Ph ng pháp chia và tr Ph ng pháp dây chuy n Ph ng pháp duy t chi u r ng tr c Ph ng pháp duy t chi u sâu tr c Ph ng pháp duy t c a Dijkstra Ph ng pháp duy t lính canh Ph ng pháp duy t nh phân Ph ng pháp duy t tuy n tính Ph ng pháp duy t vét c n

dequeue last-in first-out gap flowchart process chart enqueue three-dimensional array two-dimensional array one-dimensional array module subordinate module waterfall model programming paradigm IDE directory character string compression stack branch coding rules (standards) common coupling stamp coupling control coupling data coupling module coupling external coupling content coupling NULL node cell module partitioning short-cut key programming style hash method Boyer-Moore method basic insertion method divide-and-conquer method chain method breadth-first search method depth-first search method Dijkstra search method sentinel search method binary search method linear search method exhaustive search method

Vi t - Anh 251

252

i chi u thu t ng

Vi t - Anh

Ph ng pháp Jackson Ph ng pháp ki m tra d li u Ph ng pháp l a c s Ph ng pháp Monte Carlo Ph ng pháp Newton Ph ng pháp phân ôi Ph ng pháp phân ho ch ch c ng th ng Ph ng pháp phân ho ch STS Ph ng pháp phân ho ch TR Ph ng pháp qui ho ch ng Ph ng pháp rút g n Ph ng pháp Simpson Ph ng pháp thi t k có c u trúc Ph ng pháp thu t toán tham lam Ph ng pháp tráo i c s Ph ng pháp tu n t Ph ng pháp Warnier Q Qui t c hình thang R Rác RRDS S p theo th t gi m p x p bóc v px pg p p x p ngoài p x p nhanh px pn ib t p x p sàng l c b t có c u trúc không gian SSP T Tài li u Tài li u thi t k ch ng trình Tài li u thi t k tr ng h p ki m th p t ch c có phân ho ch p t ch c l u gi o p t ch c tr c ti p p t ch c tu n t p tu n t có ch s p VSAM Thành viên Thi t b nh truy nh p tr c ti p Thi t k có c u trúc

Jackson method data check method basic selection method Monte Carlo method Newton's method bisection method common function partitioning method STS partitioning method TR partitioning method dynamic programming method reduction method Simpson's method structured design method greedy algorithm method basic exchange method sequential method Warnier method trapezoidal rule garbage RRDS descending order Shell sort merge sort external sorting quick sort bubble sort Shaker sort bubble chart structured chart spacing chart SSP document program design document test case design manual partitioned organization file virtual storage organization file direct organization file sequential organization file indexed sequential file VSAM file member direct access storage device structured design

i chi u thu t ng

Thi t k d li u v t lí Thi t k logic mô un Th Th t t ng d n Th vi n ch ng trình con Th vi n l p Thu t toán qui Thu t toán i sánh Thu t toán xác su t Thu t toán xác su t v i sai s b ch n Thu t toán x p x Tích phân s Tính c l p c a mô un Tính h p l Trình x ra V Vào-sau-ra-tr c hình Vùng ch s Vùng d li u chính Vùng tràn X t p lí t p lí xâu kí t

physical data design module logical design pivot ascending order subprogram library class library recursive algorithm collation algorithm probability algorithm probability algorithm bounded errors approximation algorithm numerical integration module independence validity dump routine LIFO figure drawing index area prime data area overflow area file dump file processing character string processing

with

Vi t - Anh 253

254 Tra c u thu t ng

Tra c u thu t ng n vào 11, 251 bài toán ba lô 83, 84 bài toán ba lô 82 Bài toán ng i ng n nh t 67 bài toán hôn nhân n nh 80, 81 Bài toán hôn nhân n nh 78 bài toán ki m th s nguyên t 85 Bài toán ki m th s nguyên t 85 m 17 n ghi chi u dài bi n thiên 115 n ghi chi u dài c nh 115 n ghi chi u dài không xác nh 115 n ghi ng ngh a 17 n ghi nhà 17 ns 209 ng 4 bao b c d li u 7 t ra 11 B-cây 14, 15 bi u chuy n tr ng thái 111 Bi u chuy n tr ng thái 110 Bi u lu ng d li u 109, 110 biên d ch 187 dò v t 202 c kí t quang h c 99 h p d ch 187 thông d ch 187 ti n x lí 188 x lí ngôn ng 187 p nh t t p 58 câu h i tám h u 49, 50 u trúc cây 12, 14 u trúc cây 12 u trúc cây 13 u trúc danh sách 8 u trúc d li u c s 3 u trúc d li u h ng v n 8 Cây cân b ng 14 cây cân b ng t t 14 cây N ngôi 13 Cây nh phân 13 cây nh phân hoàn ch nh 13 Cây nh phân hoàn ch nh 13 cây nhi u nhánh 13 Cây tìm ki m nh phân 14 Cha m 12 che gi u thông tin 7

Ch s Ch ng trình

4 c

u khi n theo bi n c 124 con 12 con tr ng n x p 11 công c phát tri n 188 Công c sinh d li u ki m th 202 as 125 Cu ng 193 ac as 130 Danh sách hai chi u 10 Danh sách m t chi u 10 danh sách tuy n tính 9 Danh sách vòng 10 DASD 117, 118 qui 44 DFD 109, 110, 138 m a ra tr u t ng t i a 152 m vào tr u t ng t i a 152 b n logic 162 b n mô un 160 b n th i gian 163 b n th i gian 163 b n thông tin 162, 165, 171 b n th t c 163 b n th t c 163 b n trao i 164 b n trùng h p ng u nhiên 161 b n trùng h p ng u nhiên 161 ph c t p tính toán 87 ph c t p tính toán 36, 38 ph c t p tính toán 36 th 67 th có h ng 67 th có tr ng s 67 th vô h ng 67 n 176 n 176 i sánh n nh 79 ng 14, 16 ng ngh a 18 ng ngh a 17 dùng l i 104 ng t h p 196 duy t b ng 30 duy t tuy n tính 87 duy t tuy n tính 28

Tra c u thu t ng

Duy t xâu kí t 51 ESDS 118 FIFO 11 Giao di n a tài li u 125 giao di n gi a các mô un 150, 153, 176 Giao di n m t tài li u 125 Giao di n ng i dùng ho 123 c 12 i qui 49 GUI 123, 126, 127, 128 hàng i 12 Hàng i 11 phân c p c ng v i cái vào x lí cái ra 108 th ng vào-sau-ra-tr c 11 HIPO 109, 110 p tho i 125 khi n trình 193 ki m m l i 187 ki m m thi t k 100, 140, 141 ki m soát nhóm 56, 57, 58 Ki m soát nhóm 55 ki m th bánh mì k p th t 194 Ki m th Big-bang 196 ki m th nv 147 Ki m th d i lên 195 ki m th h th ng 198, 204 ki m th h th ng 191 ki m th h p en 177 ki m th h p tr ng 176 Ki m th không t ng d n 196 Ki m th rà l i 199 Ki m th t ng d n 194 ki m th tích h p 192, 198, 204 ki m th tích h p 147 Ki m th t h p 196 ki m th toàn di n 197 ki m th trên xu ng 177 ki m th v n hành 191 ki m tra ch t l ng 202 ki u b n ghi 4 Ki u b n ghi 6 Ki u b ph n 3 ki u có c u trúc 4 ki u có c u trúc 4 ki u con tr 4 Ki u con tr 3 Ki u n 3 Ki u d li u c s 3 Ki u kí t 3

255

Ki u li t kê 3 Ki u logic 3 Ki u m ng 4 Ki u nguyên 3 Ki u s th c 3 KSDS 118 lá 15 Lá 12 p trình có c u trúc 185 p trình d i lên 195 p trình hàm 25 p trình h ng s v t 25 p trình logic 25 p trình th t c 25 p trình trên xu ng 194 p trình Web 190 y ra d li u t hàng i 12 LIFO 11 h ng 42 p 208 p c s d li u 212 p mi n v n 209 u 102 u ti n trình 109 u ti n trình 102 u ti n trình 109 u ti n trình 110 u gi d li u vào hàng i 12 ng ba chi u 5 ng hai chi u 4, 6 ng m t chi u 4 MDI 125 mô un 145, 148, 149, 159, 161, 165 mô un c p d i 149 Mô hình thác 96 Mô th c l p trình 185 Môi tr ng phát tri n tích h p 188 t danh m c 118 nén xâu kí t 54 Ng n x p 10 nhánh 12 Nhánh 12 nh ng qui t c vi t mã (chu n) 186 i công c ng 169 i công c ng 166 id u 169, 170 id u 168 i u khi n 168 i d li u 170 i d li u 169

256 Tra c u thu t ng

i mô un 160 i ngoài 167 i ngoài 167 i n i dung 166 NULL 10 Nút 12 Nút 12 ô8 OCR 121, 122 phân ho ch mô un 97 Phím t t 129 Phong cách l p trình 186 Ph ng pháp 208 ph ng pháp b m 117 Ph ng pháp Boyer-Moore 52 ph ng pháp chèn c s 39, 40, 42 ph ng pháp chia và tr 44 ph ng pháp dây chuy n 18 Ph ng pháp duy t chi u r ng tr c 68 Ph ng pháp duy t chi u sâu tr c 67 Ph ng pháp duy t c a Dijkstra 70 Ph ng pháp duy t lính canh 30 ph ng pháp duy t nh phân 32, 33 ph ng pháp duy t tuy n tính 32 Ph ng pháp duy t vét c n 30 Ph ng pháp duy t vét c n 30 Ph ng pháp Jackson 149, 154, 155, 182, 183 Ph ng pháp ki m tra d li u 123 ph ng pháp l a c s 37, 38 ph ng pháp Monte Carlo 86 ph ng pháp Newton 72, 73, 82 ph ng pháp phân ôi 71, 72 Ph ng pháp phân ôi 71 Ph ng pháp phân ho ch ch c n ng th ng 151 Ph ng pháp phân ho ch STS 149, 159, 182, 183 Ph ng pháp phân ho ch TR149, 153, 159, 183 Ph ng pháp qui ho ch ng 89 ph ng pháp rút g n 89 ph ng pháp Simpson 77 Ph ng pháp Simpson 76 ph ng pháp thi t k có c u trúc 146 ph ng pháp thi t k có c u trúc 144 ph ng pháp thu t toán tham lam 89 Ph ng pháp thu t toán tham lam 89 ph ng pháp tráo i c s 35, 36, 37, 39 ph ng pháp tráo i c s 34

ph ng pháp tu n t 18 Ph ng pháp Warnier 149, 156, 157, 182 pop 11 POP 11 PUSH 11 quan h 210 qui t c hình thang 74, 75 Qui t c hình thang 74 rác 9 RRDS 118 p theo th t gi m 32 p x p bóc v 42 p x p d li u theo th t t ng 44 px pg p 47 px pg p 47 p x p ngoài 47 p x p nhanh 44 px pn ib t 34 p x p sàng l c 41 SDI 125 b t 104 b t 103 có c u trúc 109, 110 cách 132 không gian 99 STS partitioning method 237 c l p mô un 148, 183 Tài li u 98, 99, 140 Tài li u 108 tài li u thi t k ch ng trình 145, 147, 178 tài li u thi t k ch ng trình 144 tài li u thi t k tr ng h p ki m th 192 p t ch c có phân ho ch 118 p t ch c ghi nh o 117 p t ch c l u gi o 118 p t ch c tr c ti p 118 p t ch c tr c ti p 117 p t ch c tu n t 118 p t ch c tu n t 117 p tu n t có ch s 113 p tu n t có ch s 117 p VSAM 117 thành viên 118 thi t b nh truy nh p tr c ti p 117, 118 thi t k có c u trúc 109 thi t k d li u v t lí 98 thi t k logic mô un 174 Th 44 th t t ng 34 Th vi n ch ng trình con 136

Tra c u thu t ng

Th vi n l p 136 Thu t toán qui 49 thu t toán i sánh 78 thu t toán i sánh 78 Thu t toán xác su t 85 thu t toán xác su t v i sai s b ch n 85 thu t toán x p x tiêu bi u 82 Thu c tính 208 Tích phân s 74 tính c l p c a mô un 160, 171 tính h p l 88 tr ng thái 211 Trình x ra 201

Truy nh p công truy nh p cb ov Truy nh p t vào-sau-ra-tr c hình vùng ch s vùng d li u chính vùng tràn vùng truy nh p t p lí t p lí xâu kí t

257

208 208 208 11 63 118 118 118 208 202 55 51

Related Documents

Tap 3
November 2019 4
Tap 3
December 2019 22
Bai Tap Winapi 3
June 2020 7
Bai Tap Word 3
November 2019 15
Bai Tap 3
June 2020 4
Bai Tap 3
June 2020 3