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

Thiết kế trang và lập trình - Tổng lượng tri thức cốt lõi và thực hành

261 384 0
Tài liệu đã được kiểm tra trùng lặp

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

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Thiết kế trang và lập trình - Tổng lượng tri thức cốt lõi và thực hành
Trường học Trường Đại học Công Nghệ Thông Tin - đại học Quốc Gia Hà Nội
Chuyên ngành Lập trình và thiết kế trang web
Thể loại Giáo trình
Thành phố Hà Nội
Định dạng
Số trang 261
Dung lượng 3,1 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Thiết kế trang và lập trình - Tổng lượng tri thức cốt lõi và thực hành

Trang 1

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

Trang 2

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

Trang 4

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 cdùng.

Trang 5

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

Trang 6

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

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 ithà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 cdù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 cvuô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)

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)

a ch c a bi n "b" li u

Bi n ki u con tr Bi n "b"

Trang 7

Hình 1-2-3 M ng hai chi u (v i ba hàng và hai c t)

t 1 Hàng 1 A(1, 1) A(1, 2)

A(2, 1) A(2, 2) A(3, 1) A(3, 2)

Khi m ng hai chi u c l u gi trong n v b nh chính, nó l y d ng c a m ng m t chi u

ng hai chi u c v trong Hình 1-2-3 l y d ng c a m ng m t chi u 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 khiFortran c dùng và theo chi u ngang khi COBOL c dùng

Hình 1-2-4 Cách d li u c a m ng hai chi u c l u gi trong n v b nh chính

A(1,1) A(1,2)

A(2,1) A(2,2)

A(3,1) A(3,2)

ƒ M ng ba chi u

ng ba chi u có 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

Trang 8

Hình 1-2-5 Xây d ng m ng ba chi u thành m ng hai chi u

ng nhi u chi u nh các m ng b n, n m hay nhi u chi u c ng 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ìnhhay 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

n ghi (d li u v sinh viên)

Trang 9

theo cùng cách nh m ng m t chi u, t ng d li u v n ph i c t tên nh n di n vì t ng

Trang 10

(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 nchèn m t d li u vào âu ó trong m ng, b n ph i d ch chuy n toàn b t ng d li u sau ó lùi

i m t v trí N u b n xoá m t d li u trong m ng, t ng t , b n ph i d ch chuy n toàn b

ng d li u sau d li u b xoá ó nhích lên m t v trí

Hình 1-3-1 Chèn thêm m t ph n t m ng

Không gi ng nh c u trúc ki u m ng, c u trúc danh sách cho phép ph n t d li u c a cùng

ki u c s p hàng tu n t Ki m m ng òi h i r ng vi c b trí logic cho các ph n t là gi ng

t nh vi c b trí v t lí c a chúng trong b nh chính Trong tr ng h p c a c u trúc danhsá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:

ch a a ch ô trong ph n con tr và ô này c móc n i sang ô kia qua con tr

Arai Ueki Endou Okada

Trang 11

Hình 1-3-2 C u trúc danh sách

(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à nhanhchóng (Xem Hình 1-3-3.)

Trang 12

a ch c a ô mà trong ó d li u ti p c l u gi B ng vi c l n theo nh ng a ch này

ng ô m t, b n có th th c hi n vi c duy t d li u

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

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 cchè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 ( và ) ch a a ch các ô nh c v trongHình 1-3-6

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

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 haichi u

Arai Inoue Wada u

trí uôi

trí u

Trang 13

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émvà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 utiê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 gitrong 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

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

sp - 1 sp + 1

Trang 14

Qu n lý bán hàng

Qu n lý b ph n bán hàng th 2

c

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

Trang 15

(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 utrú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ôikhô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 ngdù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útké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éodà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

Cây nh phân có c u trúc phân c p cha m - con, nh c v trong Hình 1-3-15

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

<Cách th c hi n vi c duy t d li u cây nh phân>

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 iHì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 cduy 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útcha 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 inú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 tnhá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 racây nh phân hoàn ch nh có m i nút

Cha Con Con

Trang 16

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

(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 acâ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 ncha 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 ctì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

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

3) 10=10

Trang 17

a 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 cnhi 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 cnhi 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 mhay ít h n u này cho phép lá bao gi c ng c duy trì trên cùng m c

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

1 2

3 9

1 2 5 6 7 8 10 11 12

Trang 18

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

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

9

8 7

4 1

9

8 7

4 1

ng ây không ph i là ng

i quan h v kích c trong hình ch nh t ch m

1

4 3

Trang 19

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á

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ình1-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 ghikhông th dùng c nó s c g i là b n ghi ng ngh a

Trang 20

‚ Ph 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 tcon tr ch ra a ch n i các b n ghi ng ngh a c c t gi

n ghi có th c s

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

Trang 21

Bài t p

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 Con tr cho Shizuoka c t là 50 và con tr cho Hamamatsu c t là 150

b Con tr cho Shizuoka c t là 70 và con tr cho Atami c t là 150

c Con tr cho Shizuoka c t là 90 và con tr cho Hamamatsu c t là 150

d Con tr cho Shizuoka c t là 150 và con tr cho Atami c t là 90

a Cây nh phân b Hàng i c Ng n x p d ng

PUSH n: D li u (nguyên "n") c y vào ng n x p

a ch 100 101 102 103

a [1, 1]

a [1, 1]

Trang 22

Q5 Hình 2 là bi u di n m ng cho cây nh phân c v trong Hình 1 Giá tr nào nên

Hình 2

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

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.

(1) Th t g c tr c: 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

ph i

(2) Th t g c gi a: Vi c tìm ki m c th c hi n theo th t c a cây trái, nút và cây ph i.(3) Th t g c sau: Vi c tìm ki m 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 qunào trong các k t qu sau có th là cái ra xem nh giá tr c a nút?

a abchidefjgk b abechidfjgk c hcibdajfegk d hicdbjfkgea

150 190

130

Trang 23

Q8 Cây nh phân c v d i ây có th c bi u di n b ng vi c dùng bi u th c s

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

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 Ch có th truy nh p tu n t t i d li u u và d li u ti p ó

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

Q11 M t s có n m ch s (a 1 a 2 a 3 a 4 a 5 ) ph i c l u gi trong m t m ng b ng vi c

0 1 2

11 12

9

28 19

C

Trang 25

2 Thu t toán

c ích c a ch ngCá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, uquan 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êuchu 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 ttoá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

Trang 26

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 ncá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 ngthu 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

Trang 27

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 khaibá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

- 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

Trang 28

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 ch ng m c nào ó, c u trúc d

li u xác nh ra khuôn kh cho thu t toán

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ùngtên c a d li u có ki u d li u ã c khai báo tr c (Xem Hình 2-1-1.)

Trang 29

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.

R-YOMIKOMI.

READ RUISEKI-FILE

AT END MOVE HIGH-VALUE TO R-HIZUKE NOT AT END COMPUTE R-COUNT = R-COUNT + 1 END-READ

Trang 30

(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 c gi i thích trong M c 2.2.1) c v trongHình 2-1-2 làm ví d

Hình 2-1-2 Thu t toán duy t tuy n tính và c u trúc d li u

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 nduy 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 cdù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 ithí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

TBL (i) : X

1 → tìm th y i+1 → i

TBL (i) : X

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

X 25 S l n l p l i

l n nh t = N

Trang 31

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

ƒ 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 sauhay lên tr c

Hình 2-1-4 Chèn thêm d li u vào trong m ng

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 cthu 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 chokhô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

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

Trang 32

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 iquy 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

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 ng pháp duy t r t n gi n t u b ngtheo cách tu n t

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ápduy 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

Trang 33

Hình 2-2-2 Ph ng pháp duy t lính canh

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 ntì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

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

<Tr 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

Ch có 1 phép

so sánh trong

quá trình tìm

ki m

Trang 34

(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 ngphá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

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 ukhô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

1866 2132 TBL(9) TBL(10)

Trang 35

Tìm th y : 1

X : TBL ( i )

X : TBL ( i )

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

Tìm ki m thành công

c làm tròn thành a trong s nguyên

Trang 36

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

(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ôngcò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 ithi u d li u gi ng nh b t n i lên b m t n c

Trang 38

N - 1 → N

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

Trang 39

(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áckho 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

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

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

Trang 40

j → MIN

SAVE → TBL (MIN)

TBL ( MIN ) : TBL ( j )

Ngày đăng: 13/02/2014, 23:59

HÌNH ẢNH LIÊN QUAN

Hình 1-1-1 ch  ra phân l p v  các c u trúc d  li u. - Thiết kế trang và lập trình - Tổng lượng tri thức cốt lõi và thực hành
Hình 1 1-1 ch ra phân l p v các c u trúc d li u (Trang 4)
Hình 1-3-13 v  ra c u trúc cây - Thiết kế trang và lập trình - Tổng lượng tri thức cốt lõi và thực hành
Hình 1 3-13 v ra c u trúc cây (Trang 14)
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à - Thiết kế trang và lập trình - Tổng lượng tri thức cốt lõi và thực hành
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à (Trang 33)
Hình 2-2-12  a ra l u   c a ph ng pháp chèn c  s . - Thiết kế trang và lập trình - Tổng lượng tri thức cốt lõi và thực hành
Hình 2 2-12 a ra l u c a ph ng pháp chèn c s (Trang 42)
Hình 2-2-13  a ra l u   c a ph ng pháp s p x p sàng l c. - Thiết kế trang và lập trình - Tổng lượng tri thức cốt lõi và thực hành
Hình 2 2-13 a ra l u c a ph ng pháp s p x p sàng l c (Trang 43)
Hình 2-2-40  a ra l u   c a c p nh t 1:1. - Thiết kế trang và lập trình - Tổng lượng tri thức cốt lõi và thực hành
Hình 2 2-40 a ra l u c a c p nh t 1:1 (Trang 62)
Hình 2-2-44 nêu vi c v ng th ng. - Thiết kế trang và lập trình - Tổng lượng tri thức cốt lõi và thực hành
Hình 2 2-44 nêu vi c v ng th ng (Trang 65)
Hình 2-2-47   L u   cho vi c v ng tròn - Thiết kế trang và lập trình - Tổng lượng tri thức cốt lõi và thực hành
Hình 2 2-47 L u cho vi c v ng tròn (Trang 68)
Hình 2-2-60  a ra l u   c a thu t toán   thu  c l i gi i c a f(x) = 0 b ng vi c dùng - Thiết kế trang và lập trình - Tổng lượng tri thức cốt lõi và thực hành
Hình 2 2-60 a ra l u c a thu t toán thu c l i gi i c a f(x) = 0 b ng vi c dùng (Trang 75)
Hình 2-2-64 nêu thu t toán   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-63. - Thiết kế trang và lập trình - Tổng lượng tri thức cốt lõi và thực hành
Hình 2 2-64 nêu thu t toán 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-63 (Trang 77)
Hình 3-4-16  a ra m t ví d  v  thi t k  thông báo. - Thiết kế trang và lập trình - Tổng lượng tri thức cốt lõi và thực hành
Hình 3 4-16 a ra m t ví d v thi t k thông báo (Trang 133)
Hình 4-2-31  a ra m t ví d  v  b n ch c n ng. - Thiết kế trang và lập trình - Tổng lượng tri thức cốt lõi và thực hành
Hình 4 2-31 a ra m t ví d v b n ch c n ng (Trang 168)
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. - Thiết kế trang và lập trình - Tổng lượng tri thức cốt lõi và thực hành
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 (Trang 181)
Hình 5-2-3 nêu ra m t ví d  v  cu ng - Thiết kế trang và lập trình - Tổng lượng tri thức cốt lõi và thực hành
Hình 5 2-3 nêu ra m t ví d v cu ng (Trang 195)
Hình 5-2-11   Công c  ki m th - Thiết kế trang và lập trình - Tổng lượng tri thức cốt lõi và thực hành
Hình 5 2-11 Công c ki m th (Trang 203)

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w