Mủc lủc
CHỈÅNG 1 5ÂẢI CỈÅNG VÃƯ CÄNG NGHÃÛ PHÁƯN MÃƯM
I. KHẠI QUẠT VÃƯ LËCH SỈÍ LÁÛP TRÇNH 5
I.1. Láûp trçnh tuún tênh 5
I.2. Láûp trçnh cọ cáúu trục 6
I.3. Láûp trçnh âënh hỉåïng âäúi tỉåüng (ÂHÂT) 6
I.4. Láûp trçnh trỉûc quan 7
I.5. Nhỉỵng tỉ tỉåíng cạch mảng trong láûp trçnh 7
II. CẠC PHỈÅNG DIÃÛN CA CÄNG NGHÃÛ PHÁƯN MÃƯM 8
II.1. Cäng nghãû pháưn mãưm l gç? 8
II.2. Nhỉỵng úu täú cháút lỉåüng bãn ngoi v bãn trong 8
II.3. Sn pháøm pháưn mãưm l gç ? 9
III. NHỈỴNG NÄÜI DUNG CÅ BN CA CNPM 11
III.1. Täøng quan vãư cäng nghãû pháưn mãưm 11
III.2. Chu k säúng ca pháưn mãưm 12
CHỈÅNG 2 18THIÃÚT KÃÚ PHÁƯN MÃƯM
I. NÃƯN TNG CA THIÃÚT KÃÚ PHÁƯN MÃƯM 18
II. PHỈÅNG PHẠP LÁÛP TRÇNH CÁÚU TRỤC 20
II.1. Khại niãûm vãư láûp trçnh cáúu trục 22
II.2. Nhỉỵng tỉåíng cå bn láûp trçnh cáúu trục 22
II.3. Cạc cáúu trục âiãưu khiãøn chøn 25
II.4. Mäüt säú vê dủ viãút chỉång trçnh theo så âäư khäúi 28
III. CÁÚU TRỤC TÄÚI THIÃØU 29
III.1. Cạc cáúu trục läưng nhau 31
IV. LÁÛP TRÇNH ÂÅN THÃØ 32
IV.1. Khại niãûm vãư âån thãø 32
IV.2. Mäúi liãn hãû giỉỵa cạc âån thãø 33
II.3. Chỉïng minh dỉìng 69
II.3.1. Chỉïng minh dỉìng ca mäüt chỉång trçnh 69
II.3.2. Chỉïng minh dỉìng ca Div 70
II.3.3. Âạnh giạ mäüt chỉång trçnh làûp 71
III. XÁY DỈÛNG CHỈÅNG TRÇNH 72
III.1. Måí âáưu 72
III.2. Bi toạn cåì tam ti 73
III.2.1. Låìi gii thỉï nháút 74
III.2.2. Låìi gii thỉï hai 75
III.2.3. Chỉïng minh tênh âụng âàõn ca chỉång trçnh (I) 76
III.3. In ra mäüt danh sạch theo thỉï tỉû ngỉåüc 80
III.3.1. TILDA1 81
IV. CẠC TIÃN ÂÃƯ V QUY TÀÕC SUY DIÃÙN 82
IV.1. Âiãưu kiãûn trỉåïc úu nháút v âiãưu kiãûn sau mảnh nháút ca mäüt dy lãûnh 82
IV.1.1. Hm fppre 83
IV.1.2. Hm fppost 83
IV.1.3. Sỉí dủng âiãưu kiãûn trỉåïc úu nháút v âiãưu kiãûn sau mảnh nháút âãø chỉïng
minh tênh âụng âàõn ca chỉång trçnh
84
TS. PHAN HUY KHẠNH biãn soản ii
Mủc lủc
IV.2. Cạc tiãn âãư gạn 86
IV.2.1. Âiãưu kiãûn trỉåïc úu nháút v âiãưu kiãûn sau mảnh nháút ca lãûnh gạn 86
IV.2.2. Quy tàõc tênh toạn âiãưu kiãûn sau mảnh nháút ca mäüt phẹp gạn 87
V. BI TÁÛP 89
CHỈÅNG 4 90THỈÍ NGHIÃÛM CHỈÅNG TRÇNH
I. KHO SẠT PHÁƯN MÃƯM 90
II. CẠC PHỈÅNG PHẠP THỈÍ NGHIÃÛM 92
II.1. Âënh nghéa v mủc âêch thỉí nghiãûm 92
II.2. Thỉí nghiãûm trong chu k säúng ca pháưn mãưm 94
III.2. Phán loải cạc phẹp toạn 119
III.3. Hảng v biãún 120
III.4. Phẹp thãú cạc hảng 120
TS. PHAN HUY KHẠNH biãn soản iii
iv Cäng nghãû Pháưn mãưm
III.5. Cạc thüc tênh ca âàûc t 122
III.5.1. Mä hçnh láûp trçnh (triãøn khai) 122
III.5.2. Mä hçnh âàûc biãût 123
III.5.3. Mä hçnh âäưng dỉ 123
III.6. Phẹp chỉïng minh trong âàûc t âải säú 123
III.6.1. L thuúttỉång âỉång 124
III.6.2. Khại niãûm vãư l thuút quy nảp 125
III.6.3. Chỉïng minh tỉû âäüng båíi viãút lải 126
III.6.4. Phán cáúp trong âàûc t âải säú 128
IV. ÂÀÛC T HAY CẠCH CỦ THÃØ HỌA SỈÛ TRỈÌU TỈÅÜNG 129
IV.1. Âàûc t phẹp thay âäøi bäü nhåï 129
IV.2. Hm 131
IV.3. Håüp thỉïc họa v phủc häưi 134
IV.4. Bàõt âáưu triãøn khai thỉûc tiãùn 137
IV.5. Phẹp håüp thnh (cáúu tảo) 140
IV.6. Triãøn khai thỉï hai 141
IV.7. Triãøn khai thỉûc hiãûn láưn thỉï ba 146
IV.8. Âàûc t lm gç ? 149
TS. PHAN HUY KHẠNH biãn soản iv
Âải cỉång vãư cäng nghãû pháưn mãưm 5
CHỈÅNG 1
Âải cỉång vãư cäng nghãû pháưn mãưm
I. Khại quạt vãư lëch sỉí láûp trçnh
1
1:
:Hãû âiãưu hnh MS−DOS â cọ cạc phiãn bn 1.0, 3.3, 5.0, 6.0, 7.0 v.v
Microsoft Windows â cọ cạc phiãn bn 1.0, 2.0, 3.0, 3.1, 3.11.
Nay l Windows 95, 97, 98 v.v
Turbo Psacal ca hng Borland Inc. â cọ cạc phiãn bn 5.0, 6.0, 7.0, 8.0 v.v
I.1.
Láûp trçnh tuún tênh
Våïi nhỉỵng MTÂT âáưu tiãn, ngỉåìi ta sỉí dủng ngän ngỉỵ mạy (machine
language) hay ngän ngỉỵ báûc tháúp (low level) âãø láûp trçnh v dng cạc khoạ cå khê
âãø nảp chỉång trçnh vo mạy. Theo â phạt triãøn ca cạc thiãút bë pháưn cỉïng, cạc
ngän ngỉỵ báûc cao (high level) våïi cạc dng lãûnh tỉûa tiãúng Anh bàõt âáưu âỉåüc sỉí
dủng. Mạy s dëch chỉång trçnh âọ sang ngän ngỉỵ mạy trỉåïc khi thỉûc hiãûn.
Våïi nhỉỵng ngän ngỉỵ láûp trçnh ban âáưu, chỉång trçnh viãút ra gäưm nhỉỵng dng
lãûnh cọ khuynh hỉåïng näúi nhau theo dy di, khọ hiãøu vãư màût logic. Ngỉåìi ta sỉí
1
ENIAC (Electronic Numerical Integrator and Computer) l chiãúc MTÂT âáưu tiãn ra âåìi nàm
1945 tải trỉåìng Âải hc Täøng håüp Pensylvania, nỉåïc M.
TS. PHAN HUY KHẠNH biãn soản 5
6 Cäng nghãû Pháưn mãưm
dủng cạc lãûnh nhy (goto) âãø âiãưu khiãøn chỉång trçnh mäüt cạch tu tiãûn. Chỉång
trçnh. Mäüt chỉång trçnh cọ cáúu trục âỉåüc giao cho nhiãưu ngỉåìi thç khi cọ sỉû thay
âäøi vãư cáúu trục dỉỵ liãûu ca mäüt ngỉåìi s nh hỉåíng âãún cäng viãûc ca nhỉỵng ngỉåìi
khạc.
Láûp trçnh âënh hỉåïng âäúi tỉåüng (ÂHÂT)
Láûp trçnh ÂHÂT (oriented-object programming) âỉåüc xáy dỉûng trãn nãưn tng
ca láûp trçnh cáúu trục v trỉìu tỉåüng hoạ dỉỵ liãûu (data abstraction).
Chỉång trçnh ÂHÂT âỉåüc thiãút kãú xung quanh dỉỵ liãûu m nọ thao tạc chỉï
khäng bn thán cạc thao tạc. Tênh ÂHÂT lm r mäúi quan hãû giỉỵa dỉỵ liãûu v thao
tạc trãn dỉỵ liãûu.
Âải cỉång vãư cäng nghãû pháưn mãưm 7
Trỉìu tỉåüng hoạ dỉỵ liãûu l lm cho viãûc sỉí dủng cạc cáúu trục dỉỵ liãûu tråí nãn âäüc
láûp âäúi våïi viãûc ci âàût củ thãø. Vê dủ säú dáúu cháúm âäüng (floating point number) â
âỉåüc trỉìu tỉåüng hoạ trong mi ngän ngỉỵ láûp trçnh. NSD thao tạc trãn cạc säú dáúu
cháúm âäüng m khäng quan tám âãún cạch biãøu diãùn nhë phán trong mạy ca chụng
nhỉ thãú no.
Láûp trçnh ÂHÂT liãn kãút cạc cáúu trục dỉỵ liãûu våïi cạc phẹp toạn. Mäüt cáúu trục
no âọ thç tỉång ỉïng, ta cọ nhỉỵng phẹp toạn no âọ. Vê dủ : mäüt bn ghi vãư nhán
sỉû cọ thãø âỉåüc âc, cáûp nháût sỉû thay âäøi v âỉåüc cáú
t giỉỵ, cn mäüt säú phỉïc thç âỉåüc
dng trong tênh toạn. Khäng thãø viãút säú phỉïc lãn tãûp nhỉ mäüt bn ghi nhán sỉû,
cng khäng thãø cäüng trỉì nhán chia hai bn ghi nhán sỉû våïi nhau nhỉ cạch ca säú
phỉïc.
Láûp trçnh ÂHÂT âỉa vo nhiãưu thût ngỉỵ v khại niãûm måïi, chàóng hản khại
niãûm låïp (class), khại niãûm kãú thỉìa (inheritence).
Ỉu âiãøm ca láûp trçnh ÂHÂT l lm cho viãûc phạt triãøn pháưn mãưm nhanh
chọng hån våïi kh nàng dng lải cạc chỉång trçnh c. Mäüt låïp måïi âỉåüc xem nhỉ
låïp suy diãùn, cọ thãø âỉåüc kãú thỉìa cáúu trục dỉỵ liãûu v cạc phỉång phạp ca låïp gäúc
hồûc låïp cå såí.
Mäüt trong nhỉỵng ngän ngỉỵ láû
Laỡm thóỳ naỡo õóứ laỡm chuớ õổồỹc sổỷ phổùc taỷp cuớa hoaỷt õọỹng lỏỷp trỗnh ?
II. Caùc phổồng dióỷn cuớa cọng nghóỷ phỏửn móửm
II.1.
II.2.
Cọng nghóỷ phỏửn móửm laỡ gỗ?
Theo tổỡ õióứn Computer Dictionary cuớa Microsoft Press
đ
(1994), Software
Engineering : The design and development of sofware (computer program), from
concept through execution and documentation.
Tổỡ õióứn Larousse (1996) õởnh nghộa chi tióỳt hồn : Cọng nghóỷ phỏửn móửm laỡ tỏỷp
hồỹp caùc phổồng phaùp, mọ hỗnh, kyợ thuỏỷt, cọng cuỷ vaỡ thuớ tuỷc lión quan õóỳn caùc giai
õoaỷn xỏy dổỷng mọỹt saớn phỏứm phỏửn móửm. Caùc giai õoaỷn õoù laỡ : õỷc taớ (specifiction),
thióỳt kóỳ (design), lỏỷp trỗnh (programming), thổớ nghióỷm (testing), sổớa sai
(debugging), caỡi õỷt (setup) õóứ õem vaỡo ổùng duỷng (application), baớo trỗ
(maintenance) vaỡ lỏỷp họử sồ (documentation).
Muỷc õờch chờnh cuớa cọng nghóỷ phỏửn móửm laỡ õóứ saớn xuỏỳt ra nhổợng phỏửn móửm
coù chỏỳt lổồỹng. Chỏỳt lổồỹng phỏửn móửm khọng laỡ mọỹt khaùi nióỷ
m õồn giaớn, bao gọửm
nhióửu yóỳu tọỳ. Chúng haỷn chổồng trỗnh chaỷy nhanh, dóự sổớ duỷng, coù tờnh cỏỳu truùc,
dóự õoỹc dóự hióứu, v.v
Ngổồỡi ta thổồỡng õaùnh giaù theo hai kióứu chỏỳt lổồỹng : nhổợng yóỳu tọỳ chỏỳt lổồỹng
bón ngoaỡi vaỡ nhổợng yóỳu tọỳ chỏỳt lổồỹng bón trong.
Nhổợng yóỳu tọỳ chỏỳt lổồỹng bón ngoaỡi vaỡ bón trong
Nhổợng yóỳu tọỳ chỏỳt lổồỹng bón ngoaỡi ngổồỡi duỡng coù thóứ nhỏỷn bióỳt õổồỹc, nhổ tọỳc
õọỹ nhanh, chaỷy ọứn õởnh, tờnh dóự sổớ duỷng, dóự thờch nghi vồùi nhổợng thay õọứi (tờnh
mồớ rọỹng), tờnh cọng thaùi hoỹc (ergonomy, human factor), v.v
Nhổợng yóỳu tọỳ chỏỳt lổồỹng bón ngoaỡi cuớa mọỹt saớn phỏứm phỏửn móửm laỡ :
Tờnh õuùng õừn Khaớ nng thổỷc hióỷn chờnh xaùc cọng vióỷc õỷt ra.
Tờnh bóửn vổợng Coù thóứ hoaỷt õọỹng trong nhổợng õióửu kióỷn bỏỳt thổồỡng.
Cạc tr chåi (games).
Cạc pháưn mãưm tråü giụp thiãút kãú (CAD, Designers ), tråü giụp ging dảy
Cạc hãû chun gia, trê tû nhán tảo, ngỉåìi mạy, v.v
Cạc chỉång trçnh phng chäúng virus, v.v
Dỉåïi âáy l bng tọm tàõt quạ trçnh tiãún họa ca sn pháøm pháưn mãưm :
Thåìi k âáưu tiãn
1950 − 1960
Xỉí l theo lä (Batch processing)
Pháưn mãưm âỉåüc viãút theo âån âàût hng
Thåìi k thỉï hai
1960 − 1970
Âa ngỉåìi dng (Multiusers)
Thåìi gian thỉûc (Real time)
Cå såí dỉỵ liãûu (Database)
Pháưn mãưm sn pháøm
TS. PHAN HUY KHẠNH biãn soản 9
10 Cọng nghóỷ Phỏửn móửm
Thồỡi kyỡ thổù ba
1970 1990
Hóỷ thọỳng xổớ lyù phỏn bọứ (Distributed processing system)
Thọng minh (Intelligence)
Phỏửn cổùng giaù thaỡnh haỷ
Hióỷu quaớ tióu thuỷ
Thồỡi kyỡ thổù tổ
1990 trồớ õi
Hóỷ thọỳng õóứ baỡn (Desktop Personal Notebook computers)
Lỏỷp trỗnh hổồùng õọỳi tổồỹng (Object oriented programming)
Lỏỷp trỗnh trổỷc quan (Visual programming)
Hóỷ chuyón gia (Expert system)
Maỷng thọng tin toaỡn cỏửu (Worldwide communication network)
phạt triãøn, cng nhỉ mä hçnh âỉåüc lỉûa chn.
Giai âoản xạc âënh :
Giai âoản ny tr låìi cáu hi l cại gç ? (What?) v khi no (When?) vãư dỉỵ liãûu
(thäng tin) cáưn xỉí l, mủc âêch chỉïc nàng va ìmäi trỉåìng phạt triãøn. Gäưm 3 bỉåï
c :
- Phán têch hãû thäúng.
- Láûp kãú hoảch dỉû ạn pháưn mãưm.
- Phán têch u cáưu thỉûc tiãùn.
Giai âoản phạt triãøn :
Giai âoản ny tr låìi cáu hi lm nhỉ thãú no ? (How?). Gäưm 3 bỉåïc :
- Thiãút kãú pháưn mãưm : Sỉí dủng cạc cäng củ âàûc t v láûp trçnh cáúu trục.
- Chn cäng củ hồûc cạc ngän ngỉỵ láûp trçnh âãø tiãún hnh viãút chỉång trçnh.
- Kiãøm thỉí (phạt hiãûn sai sọt, nháưm láùn ).
Giai âoản bo trç :
Giai âoản ny táûp trung vo cạc thay âäøi (Modify). Cọ 3 kiãøu thay âäøi :
- Sỉía âäøi : D pháưn mãưm cọ cháút lỉåüng täút, váùn täưn tải nhỉỵng khiãúm khuút tỉì
viãû
c sỉí dủng ca khạch hng (ngỉåìi sỉí dủng). Bo trç sỉía âäøi lm thay âäøi pháưn
mãưm, khàõc phủc khiãúm khuút.
- Thêch nghi : Nhàòm lm pháưn mãưm thêch nghi våïi mäi trỉåìng pháưn cỉïng, nhỉ
CPU, OS, cạc thiãút bë ngoải vi.
TS. PHAN HUY KHẠNH biãn soản 11
12 Cọng nghóỷ Phỏửn móửm
- Nỏng cao : Khaùch haỡng tỗm ra nhổợng chổùc nng phuỷ cuớa phỏửn móửm. Baớo trỗ
hoaỡn thióỷn õóứ mồớ rọỹng phỏửn móửm ra ngoaỡi nhổợng chổùc nng vọỳn coù.
III.2. Chu kyỡ sọỳng cuớa phỏửn móửm
Coù nhióửu mọ hỗnh khaùc nhau õóứ thóứ hióỷn mọỹt chu kyỡ sọỳng (life cycle). Sau õỏy
laỡ mọỹt chu kyỡ sọỳng kióứu cọứ õióứn theo mọ hỗnh thaùc nổồùc (waterfall model) gọửm
caùc giai õoaỷn nhổ sau :
Tỗm hióứu vaỡ phỏn tờch caùc yóu cỏửu (RAD Requirements analysis and
2. Láûp trçnh thàm d (exloratory programming) : Cho phẹp tàng nhanh quạ trçnh
âãø dáùn âãún tênh tha âạng ca hãû thäúng. Láûp trçnh thàm d thỉåìng âỉåüc ạp
dủng trong lénh vỉûc trê tû nhán tảo, khi NSD khäng thãø âënh hçnh âỉåüc cạc
âàûc t u cáưu. NSD quan tám âãún tênh tha âạng ca kãút qu hån l tênh
chênh xạc.
3. Bn máùu (prototyping) : Tỉång tỉû tiãúp cáûn láûp trçnh thàm d. Pha âáưu tiãn bao
gäưm phạt triãøn mäüt chỉång trçnh cho phẹp thỉí nghiãûm. Tuy nhiãn, mủc âêch
ca phạt triãøn l
thiãút láûp cạc u cáưu hãû thäúng. Sau âọ l sỉû ci âàût lải pháưn
mãưm âãø âỉa âãún hãû thäúng cháút lỉåüng - sn pháøm.
Kãút thục
Bàõt âáưu
Táûp håüp
u cáưu v
lm mën
Sn pháøm thiãút kãú
nhanh
Lm mën xáy dỉûng
bn máùu bn máùu
Âạnh giạ
ca khạch hng
vã
ư
ba
ín m
á
ù
u
Hçnh 1.3. Tiãúp cáûn kiãøu bn máùu
4. Biãún âi hçnh thỉïc (formal transformation) : L sỉû biãún âäøi cạc âàûc t hçnh
Hỗnh 1.4. Mọ hỗnh thaùc nổồùc caới tióỳn
1. Tỗm hióứu vaỡ phỏn tờch caùc yóu cỏửu: NSD hóỷ thọỳng vaỡ ngổồỡi phaùt trióứn hóỷ thọỳng
baỡn baỷc, trao õọứi (consultation) vồùi nhau õóứ thióỳt lỏỷp muỷc õờch, raỡng buọỹc vaỡ
caùc dởch vu cuớa hóỷ thọỳng phỏửn móửm, lộnh họỹi õổồỹc nhổợng õoỡi hoới cuớa baỡi toaùn.
2. Thióỳt kóỳ hóỷ thọỳng vaỡ phỏửn móửm : Tióỳn trỗnh thióỳt kóỳ hóỷ thọỳng phỏn chia caùc yóu
cỏửu thaỡnh caùc hóỷ thọỳ
ng phỏửn cổùng, phỏửn móửm vaỡ thióỳt lỏỷp mọỹt kióỳn truùc hóỷ
thọỳng toaỡn bọỹ (overall system architecture). Vióỷc thióỳt kóỳ phỏửn móửm bao gọửm
vióỷc thóứ hióỷn caùc chổùc nng hóỷ thọỳng phỏửn móửm (software system functions) õóứ
bióỳn õọứi thaỡnh caùc chổồng trỗnh khaớ thi.
3. Caỡi õỷt vaỡ kióứm thổớ tổỡng phỏửn : Trong giai õoaỷn naỡy, caùc õồn vở chổồng trỗnh
hay tỏỷp hồỹp caùc chổồng trỗnh õổồỹc kióứm thổớ lỏửn lổồỹt sao cho thoớa maợn caùc õỷc
taớ tổồng ổùng.
4. Tờch hồỹp vaỡ kióứm thổớ hóỷ thọỳng : Caùc õồn vở chổồng trỗnh õổồỹc tờch hồỹp vaỡ kióứm
thổớ nhổ laỡ mọỹt hóỷ thọỳng õỏửy õuớ õóứ õaớm baớo caùc yóu cỏửu õỷt ra ban õỏửu. Sau
giai õoaỷn naỡy, hóỷ
thọỳng phỏửn móửm õổồỹc giao cho khaùch haỡng.
5. Khai thaùc vaỡ baớo trỗ (operation and maintenance) : ỏy laỡ mọỹt pha daỡi nhỏỳt
cuớa chu kyỡ sọỳng. Hóỷ thọỳng õổồỹc caỡi õỷt vaỡ õổa vaỡo sổớ duỷng thổỷc tóỳ. Vióỷc baớo trỗ
bao gọửm vióỷc khừc phuỷc nhổợng sai soùt xaớy ra õaợ khọng xuỏỳt hióỷn trong caùc giao
õoaỷn trổồùc õoù cuớa chu kyỡ sọỳng. Vióỷc tọỳi ổu hoùa caùc dởch vuỷ cuớa hóỷ thọỳng õổồỹc
xem nhổ laỡ nhổợng yóu cỏửu mồùi õổồỹc phaùt hióỷn.
Âải cỉång vãư cäng nghãû pháưn mãưm 15
2. Mä hçnh xồõn äúc
Phạt triãøn trãn tênh ỉu viãût ca vng âåìi cäø âiãn v bn máùu, bäø sung nhng
úu täú cn thiãúu v thãm cạc úu täú måïi, phán têch ri ro.
Hçnh 1.5. Mä hçnh xồõn äúc
P
Bao gäưm cạc cäng củ pháưn mãưm trãn cå såí tỉû âäüng s
n sinh m chỉång trçnh
gäúc theo nhu cáưu ca ngỉåìi phạt triãøn :
Ngän ngỉỵ phi th tủc
2
(non procedural language) âãø truy cáûp cå såí dỉỵ liãûu.
Bäü sinh bạo cạo.
Bäü thao tạc dỉỵ liãûu. 2
l ngän ngỉỵ láûp trçnh khäng tn theo cạch gi th tủc hay gi chỉång trçnh con
thäng thỉåìng, khäng sỉí dủng cạc cáúu trục âiãưu khiãøn, tưn tỉû, m dỉûa trãn táûp
håüp cạc úu täúï v quan hãû âãø dáùn vãư kãút qu u cáưu. Vê dủ ngän ngỉỵ váún tin
SQL thüc loải ny.
TS. PHAN HUY KHẠNH biãn soản 15
16 Cọng nghóỷ Phỏửn móửm
Bọỹ tổồng taùc vaỡ thióỳt kóỳ maỡn hỗnh.
Bọỹ sinh chổồng trỗnh.
Baớng tờnh.
Cọng cuỷ õọử hoỹa.
Hỗnh 1.6. Kyợ thuỏỷt thóỳ hóỷ 4
ặu õióứm :
Thổồỡng õổồỹc sổớ duỷng õóứ xỏy dổỷng caùc hóỷ thọng tin vaỡ tổồng lai laỡ caùc ổùng duỷng
kyợ nghóỷ phaùt trióứn phỏửn móửm thồỡi gian thổỷc.
Tỏỷp hồỹp
y
óu cỏửu
Thióỳt kóỳ
4 GT
Baớn mỏựu voỡng thổù
n
Maợ hoù
a
Mọ hỗnh voỡng thổù n
4 GT
Hó
ỷ
thọỳn
g
hoa
ỷ
t õọ
ỹ
n
g
Kióứm th
ổ
ớ
Baớo trỗ
Tỏỷp hồỹp, hióứu caùc yóu cỏửu ban õỏử
u
Hỗnh 1.8. Tờch hồỹp caùc kyợ thuỏỷt TS. PHAN HUY KHAẽNH bión soaỷn 17
quyóỳt rọửi.
Hỗnh 2.1. Chổồng trỗnh laỡ mọỹt hóỷ thọỳng phỏn cỏỳp
vióỷc 1.1
vióỷc 1.2
vióỷc 3vióỷc 2vióỷc 1
vióỷc 1.2.3
. . .
vióỷc 1.2.2vióỷc 1.2.1
vỏỳn õóử
Nãưn tng ca thiãút kãú pháưn mãưm
Phỉång phạp láûp trçnh cáúu trục 23
Vê dủ 2 :
Phán têch bi toạn cäüng hai phán säú âãø âỉa vãư bi toạn tçm ỉåïc säú chung låïn
nháút.
Âãø cäüng hai phán säú, trỉåïc tiãn cáưn ỉåïc lỉåüc chụng, tiãúp âọ quy âäưng máùu säú âãø
láúy máùu säú chung. Cúi cng tiãún hnh cäüng hai tỉí säú ca hai phán säú â cọ chung
máùu säú. Viãûc ỉåïc lỉåüc phán säú âỉåüc âỉa vãư tçm ỉåïc säú chung låïn nháút ca tỉí säú v
máùu säú (sỉí dủng thût toạn Euclide).
Âãø quy âäưng máùu säú, cáưn tçm bäüi säú chung nh nháút. Viãûc tçm bäüi säú chung nh
nháút ca hai säú lải âỉåüc âỉa vãư tçm ỉåïc säú chung låïn nháút ca chụng :
BSCNN(b’, d’) = b’ * d’ / ỈSCLN(b’,d’).
Hçnh 2.2. Phán têch bi toạ
n cäüng hai phán säú
Nhỉ váûy, chỉång trçnh l mäüt hãû thäúng gäưm nhiãưu thnh pháưn phán cáúp, mäùi
thnh pháưn cọ nhiãûm vủ gii quút mäüt váún âãư så cáúp v cọ tênh âäüc láûp cao. Cạc
thnh pháưn nãn tỉång tạc våïi nhau täúi thiãøu. Giỉỵa hai thnh pháưn trong hãû thäúng
chè nãn cọ täúi âa mäüt âỉåìng tỉång tạc l âỉåìng trao âäøi thäng tin âãø dãù qun l v
dãù kiãøm soạt.
b) Khäng sỉí dủng lãûnh nhy goto
Lãûnh goto (jump statement) dng âãø chuøn âiãưu khiãøn âãún mäüt âiãøm khạc
trong chỉång trçnh. Lãûnh goto lm khọ qun l v khọ kiãøm soạt chỉång trçnh nãn
khọ âc, khọ sỉía sai (räúi ràõm nhỉ mọn mç såüi Spaghetti ca ).
Cạc chỉång trçnh viãút trãn ngän ngỉỵ aassembly hồûc trãn cạc ngän ngỉỵ báûc cao
nhỉ Fortran, Algol, Cobol thỉåìng sỉí dủng lãûnh goto.
Vê dủ 3 :
Chỉång trçnh Algol sau âáy sỉí dủng lãûnh goto âãø âiãưu khiãøn vng làûp tênh täøng
cạc pháưn tỉí ca mng a gäưm N säú thỉûc :
S := 0; I := 0;
Start : S := S + a[I]; I := I + 1;
if I <= N then goto Start;
c) Chỉång trçnh cọ tênh cáúu trục
Chỉång trçnh chè sỉí dủng cạc cáúu trục âiãưu kiãûn chøn, dãù hiãøu, dãù thãø hiãûn
thût toạn. Cáúu trục ca chỉång trçnh phn ạnh âỉåüc cáúu trục ca váún âãư v cạch
gii quút váún âãư (lm nhỉ thãú no ?). Phỉång phạp hay âỉåüc sỉí dủng âãø thiãút kãú
chỉång trçnh l phán têch tỉì trãn xúng (Top-Down Analysis) v täøng håüp tỉì dỉåïi
lãn (Bottom up Synthesis).
Näüi dung phỉång phạp phán têch tỉì trãn xúng l nhçn nháûn xem xẹt täøng quạt
ton bäü váún âãư, xút phạt tỉì mủc tiãu (âènh) âi xúng cạc thnh pháưn trong hãû
thäúng, chia cạc thnh pháưn thnh cạc thnh pháưn nh hån theo mäüt cáúu trục phán
cáúp chàût ch.
Nä
üi dung phỉång phạp täøng håüp tỉì dỉåïi lãn l xút phạt tỉì cạc váún âãư củ thãø
v cạch gii quút củ thãø, sau âọ têch håüp chụng lải thnh váún âãư låïn hån v cạch
gii täøng quạt hån, hỉåïng tỉì dỉåïi lãn trãn âãø nháûn âỉåüc váún âãư cáưn phi gii quút
ban âáưu
Cạch thiãút kãú ny gáy khọ khàn vç khọ kiãøm soạt v dãù lảc hỉåïng, khọ âạp ỉïng
âáưy â cạc u cáưu ca váún âãư.
c.
3
b) R nhạnh â
if C then S1
else S2
Nãúu C âụng thç thỉûc hiãûn
lãûnh S1.
Nãúu C sai thç thỉûc hiãûn
S2.
4
Lỉûa chn
(Selection)
case
C1 : S1
C2 : S2
. . .
Cn : Sn
endcase
Nãúu C1 âụng thç thỉûc
hiãûn S1.
Nãúu khäng, nãúu C2 âụng
thç thỉûc hiãûn S2, v.v
Cúi cng, nãúu Cn âụng
thç thỉûc hiãûn Sn.
Nãúu khäng thç thäi.
5
Cáúu trục làûp
(Iteration)
Kiãøm tra âiãưu kiãûn
C ?
True
False
S
TS. PHAN HUY KHẠNH biãn soản 25