Ng n Ng ợ L ỷp Trỗnh n Gia n: Thi t K & Ca i ỷtọ ổ ỏ ồ ớ óỳ óỳ ỡ Trang 1
KHOA C NG NGH TH NG TIN - I N T VI N TH NG ặ
VO NGO C LI Nẻ ĩ
Ng n Ng ỵ L ûp Trçnh n Gia n: Thi t K & Ca i àûtä ỉ á Âå í ãú ãú ì Â Trang 2
MỦC LỦC
MU C LU CÛ Û .....................................................................................2
CH NG 1ỈÅ .......................................................................................4
M Í ÂÁƯ ........................................................................................4
1.1 GIÅÏI THIÃÛU ÂÃƯ TI.....................................................................................................................4
1.2 QUAN ÂIÃØM THIÃÚT KÃÚ.............................................................................................................4
1.3 K THÛT BIÃN DËCH..................................................................................................................5
1.4 CÁÚU TRỤC ÂÄƯ ẠN.......................................................................................................................6
CH NG 2ỈÅ .......................................................................................7
THI T K NG N NG N GIA NÃÚ ÃÚ Ä ỈỴ ÂÅ Í ...............................................7
2.1 CẠC KHẠI NIÃÛM CÅ BN CA NGÄN NGỈỴ ÂÅN GIN..................................................7
2.1.1 Táûp cạc k tỉû håüp lãû trong ngän ngỉỵ....................................................................................7
2.1.2 Âënh danh........................................................................................................................................7
2.1.3 Tỉì khọa.........................................................................................................................................8
2.1.4 Dáúu cháúm pháøy, låìi gii thêch, hàòng k tỉû.........................................................................8
2.1.5 Phẹp toạn.......................................................................................................................................8
2.1.6 Biãøu thỉïc......................................................................................................................................8
2.2 SÅ ÂÄƯ CỤ PHẠP..............................................................................................................................9
2.3 CẠC CÁÚU TRỤC LÃÛNH.............................................................................................................11
2.3.1 Cáúu trục tưn tỉû......................................................................................................................11
2.3.2 Cáúu trục r nhạnh.....................................................................................................................11
2.3.3 Cáúu trục làûp .............................................................................................................................12
2.4 BÄÜ LÃÛNH........................................................................................................................................14
2.4.1 Lãûnh gạn.....................................................................................................................................15
2.4.2 Cạc lãûnh vo ra dỉỵ liãûu..........................................................................................................15
2.4.3 Cạc lãûnh âiãưu khiãøn................................................................................................................16
2.4.4 Cạc hm toạn hc.....................................................................................................................17
2.4.5 Cạc hm v âäư ha.................................................................................................................17
CH NG 3ỈÅ .....................................................................................20
A P DU NG M T S KY THU T BI N D CH C BA NÏ Û ÄÜ ÄÚ Ỵ ÁÛ Ã Ë Å Í .............20
3.1 PHÁN TÊCH TỈÌ VỈÛNG ...............................................................................................................20
3.1.1 Loải b khong tràõng v cạc dng chụ thêch......................................................................21
3.1.2 Cạc hàòng.....................................................................................................................................21
3.1.3 Nháûn diãûn âënh danh v tỉì dnh riãng..................................................................................22
3.1.4 Giao diãûn cho bäü phán têch tỉì vỉûng......................................................................................22
3.2 ÂËNH NGHÉA CỤ PHẠP.................................................................................................................23
3.2.1 Cáy phán têch cụ phạp................................................................................................................24
3.2.2 Tênh âa nghéa...............................................................................................................................25
3.2.4 Tênh thỉï báûc ca toạn tỉí........................................................................................................25
3.3 PHÁN TÊCH CỤ PHẠP ..................................................................................................................27
3.3.1 Vai tr ca bäü phán têch cụ phạp.............................................................................................27
3.3.2 Phán têch cụ phạp tỉì trãn xúng.............................................................................................29
3.3.4 Phán têch cụ phạp dỉû âoạn......................................................................................................32
3.3.5 Thiãút kãú bäü phán têch cụ phạp dỉû âoạn..............................................................................34
3.3.6 Âãû qui trại...................................................................................................................................34
KHOA C NG NGH TH NG TIN - I N T VI N TH NG Ä ÃÛ Ä Â ÃÛ ỈÍ ÃÙ Ä
VO NGO C LI NỴ Ü ÃÙ
Ng n Ng ỵ L ûp Trçnh n Gia n: Thi t K & Ca i àûtä ỉ á Âå í ãú ãú ì Â Trang 3
3.4 BNG K HIÃÛU............................................................................................................................35
3.4.1 Giao diãûn ca bng k hiãûu....................................................................................................35
3.4.2 Xỉí l cạc dnh riãng ................................................................................................................36
3.4.3 Mäüt ci dàût cho bng k hiãûu.................................................................................................36
CH NG 4 ỈÅ ....................................................................................39
THI T K CH NG TR NH D CH ÃÚ ÃÚ ỈÅ Ç Ë ............................................39
CHO NG N NG N GIA NÄ ỈỴ ÂÅ Í ..........................................................39
4.1 MÄ T CHỈÅNG TRÇNH DËCH....................................................................................................39
4.2 MÄ ÂUN PHÁN TÊCH TỈÌ VỈÛNG...............................................................................................41
4.3 MÄ ÂUN PHÁN TÊCH CỤ PHẠP...................................................................................................42
4.3.1 Xáy dỉûng biãøu âäư cụ phạp.....................................................................................................43
.....................................................................................................................................................................43
4.3.2 Phán têch cụ phạp âãû qui xúng..............................................................................................43
4.4 XỈÍ L NGỈỴ NGHÉA.....................................................................................................................45
CH NG 5 ỈÅ .................................................................................46
TH NGHI M CH NG TR NHỈÍ ÃÛ ỈÅ Ç ..................................................46
5.1 CẠCH SỈÍ DỦNG...........................................................................................................................46
5.2 BI TOẠN VÊ DỦ..........................................................................................................................47
CH NG 6ỈÅ .....................................................................................50
K T LU NÃÚ ÁÛ ..................................................................................50
6.1 KÃÚT QU ÂẢT ÂỈÅÜC.............................................................................................................50
6.2 TÊNH KH THI..................................................................................................................................50
6.3 HẢN CHÃÚ.......................................................................................................................................51
6.4 HỈÅÏNG PHẠT TRIÃØN .................................................................................................................51
PHU LU CÛ Û ....................................................................................52
TA I LI U THAM KHA ÃÛ Í ................................................................54
KHOA C NG NGH TH NG TIN - I N T VI N TH NG Ä ÃÛ Ä Â ÃÛ ỈÍ ÃÙ Ä
VO NGO C LI NỴ Ü ÃÙ
Ng n Ng ỵ L ûp Trçnh n Gia n: Thi t K & Ca i àûtä ỉ á Âå í ãú ãú ì Â Trang 4
CH NG 1ỈÅ
MÅÍ ÂÁƯU
1.1 GIÅÏI THIÃÛU ÂÃƯ TI
Khoa hc c ng ngh û phạt tri n, âàûc bi ût la Tin hc. ä ã ãø ã ì Âãø
s ïm hi u bi t va phạt huy ïng dủng cu a m n khoa hc na y,å ãø ãú ì ỉ í ä ì
ng i ta â â a Tin hc va o gia ng dảy cho cạc em hc sinh ỉåì ỉ ì í åí
cạc tr ng hc. Tin hc giụp cho hc sinh cọ kha nàng ph nỉåì í á
têch, t ng h üp, khại quạt họa v n â va âàûc bi ût la phạt tri näø å áú ãư ì ã ì ãø
t duy. Tin hc giụp cho vi ûc gia i quy t cạc ba i toạn chênh xạc,ỉ ã í ãú ì
r ra ng. Kh ng ri ng cạc hc sinh ph th ng ma cạc hc sinhì ä ã äø ä ì
ti u hc cng c n pha i hc â s ïm bi t v m n khoa hcãø áư í ãø å ãú ãư ä
na y.ì
Cọ th nọi b ïc â u â hc Tin hc la hc ng n ng ỵ l ûpãø ỉå áư ãø ì ä ỉ á
trçnh. Hi ûn â cọ r t nhi u cạc ng n ng ỵ l ûp trçnh b ûc caỗ áú ãư ä ỉ á á
Pascal, C, Foxpro... Cạc ng n ng ỵ na y hoa n toa n du ng bà ng ti ngä ỉ ì ì ì ì ò ãú
Anh, v ïi c u trục c u l ûnh ph ïc tảp. cạc em nho la m quenå áú á ã ỉ Âãí í ì
v ïi cạc ng n ng ỵ l ûp trçnh na y va ïng dủng nọ thç th ût kh ngå ä ỉ á ì ì ỉ á ä
â n gia n. Thi t nghé â n v n â na y, trong th i gian th ûc t ûpå í ãú ãú áú ãư ì åì ỉ á
t t nghi ûp, em chn â ta i “Thi t k ng n ng ỵ l ûp trçnh näú ã ãư ì ãú ãú ä ỉ á Âå
Gia n”, nhà m thi t k m üt ng n ng ỵ l ûp trçnh bà ng ti ng Vi ût,í ò ãú ãú ä ä ỉ á ò ãú ã
v ïi c u trục c u l ûnh â n gia n, d ù hi u nh ng kh ng m t tênhå áú á ã å í ã ãø ỉ ä áú
t ng quạt. Ng n ng ỵ na y s ph n na o giụp cho cạc em hc sinhäø ä ỉ ì áư ì
d ù da ng la m quen v ïi cạch l ûp trçnh â gia i quy t cạc ba iã ì ì å á ãø í ãú ì
toạn tr n mạy tênh. ã
1.2 QUAN ÂIÃØM THIÃÚT KÃÚ
Vi ûc thi t k m ïi m üt ng n ng ỵ la khạ ph ïc tảp, songã ãú ãú å ä ä ỉ ì ỉ
chụng ta cọ th d ûa va o m üt s u âi m cu a cạc ng n ng ỵãø ỉ ì ä äú ỉ ãø í ä ỉ
b ûc cao â cọ â x y d ûng n n m üt ng n ng ỵ thç v n â s â ná ãø á ỉ ã ä ä ỉ áú ãư å
gia n h n ma v ùn âạp ïng â üc cạc y u c u cu a ba i toạn. â å ì á ỉ ỉå ã áư í ì ÅÍ á
KHOA C NG NGH TH NG TIN - I N T VI N TH NG Ä ÃÛ Ä Â ÃÛ ỈÍ ÃÙ Ä
VO NGO C LI NỴ Ü ÃÙ
Ng n Ng ỵ L ûp Trçnh n Gia n: Thi t K & Ca i àûtä ỉ á Âå í ãú ãú ì Â Trang 5
chụng ta cọ hai ph ng phạp â gia i quy t: m üt la tảo trçnhỉå ãø í ãú ä ì
bi n dëch, hai la tảo trçnh th ng dëch.ã ì ä
Trçnh bi n dëch (compiler): la m nhi ûm vủ chuy n m üt ch ngã ì ã ãø ä ỉå
trçnh vi t trong ng n ng ỵ c p cao (ch ng trçnh ngu n) sangãú ä ỉ áú ỉå äư
ch ng trçnh trong ng n ng ỵ c p cao khạc hồûc ng n ng ỵ mạå ä ỉ áú ä ỉ
(ch ng trçnh âêch). Th i gian chuy n m üt ch ng trçnh ngu nỉå åì ãø ä ỉå äư
sang ch ng trçnh âêch â üc gi la th i gian dëch. Ch ng trçnhỉå ỉå ì åì ỉå
âêch s â üc th ûc thi trong th i gian âọ â üc gi la th i gianỉå ỉ åì ỉå ì åì
th ûc thi. Nh v ûy ch ng trçnh ngu n va d ỵ li ûu â üc x lỉ ỉ á ỉå äư ì ỉ ã ỉå ỉí
trong hai th i gian khạc nhau, â üc gi la th i gian dëch va th iåì ỉå ì åì ì åì
gian th ûc thi.ỉ
Trçnh th ng dëch la quạ trçnh x l dảng b n trong cu ậ ì ỉí ã í
ch ng trçnh ngu n va d ỵ li ûu cu ng m üt th i gian. Ch ngỉå äư ì ỉ ã ì ä åì ỉå
trçnh th ng dëch s ph n têch t ng phạt bi u va th ûc ä á ỉì ãø ì ỉ
thi lu n.ä
ta i â üc x y d ûng theo ph ng phạp th ng dëch. V ïiÂãư ì ỉå á ỉ ỉå ä å
ph ng phạp tảo trçnh th ng dëch ta cọ th âënh nghéa ch ngỉå ä ãø ỉå
trçnh la t ûp cạc l ûnh. Do âọ vi ûc th ûc hi ûn m üt ch ng trçnhì á ã ã ỉ ã ä ỉå
cng chênh la vi ûc th ûc hi ûn t ng c u l ûnh m üt. Ba i toạn â ã ỉ ã ỉì á ã ä ì ỉ
v vi ûc gia i quy t t ng c u l ûnh.ãư ã í ãú ỉì á ã
1.3 K THÛT BIÃN DËCH
Khi l ûp trçnh tr n m üt ng n ng ỵ c p cao na o âọ, cọ bao giá ã ä ä ỉ áú ì åì
bản t û ho i nh va o â u ma mạy tênh cọ th hi u â üc ch ngỉ í åì ì á ì ãø ãø ỉå ỉå
trçnh mçnh vi t â ma ph n têch va cho ra k t qua nh v ûú ãø ì á ì ãú í ỉ á
kh ng. Chênh nh va o m üt ch ng trçnh dëch â vi t cho ng nä åì ì ä ỉå ãú ä
ng ỵ âọ â dëch ch ng trçnh ngu n ra ch ng trçnh âêch, â ãø ỉå äư ỉå á
cng la k t qua cu a ch ng trçnh. Quạ trçnh dëch t ch ngì ãú í í ỉå ỉì ỉå
trçnh ngu n ra ch ng trçnh âêch th ng â üc th ûc hi ûn trongäư ỉå ỉåì ỉå ỉ ã
nhi u giai âoản.ãư
Ch ng trçnh dëch â üc vi t cho ng n ng ỵ n Gia n â y,ỉå ỉå ãú ä ỉ Âå í åí á
d ûa tr n m üt s k thu ût bi n dëch cu a L thuy t Trçnh Bi nỉ ã ä äú á ã í ãú ã
Dëch, g m cạc giai âoản sau:äư
KHOA C NG NGH TH NG TIN - I N T VI N TH NG Ä ÃÛ Ä Â ÃÛ ỈÍ ÃÙ Ä
VO NGO C LI NỴ Ü ÃÙ
Ng n Ng ỵ L ûp Trçnh n Gia n: Thi t K & Ca i àûtä ỉ á Âå í ãú ãú ì Â Trang 6
- Giai âoản ph n têch t v ûng: nhi ûm vủ c ba n cu a nọ lấ ỉì ỉ ã å í í ì
g üp cạc k t û tha nh cạc t t cho b ü ph n têch cụ phạp.ä ỉ ì ỉì äú ä á
- Giai âoản ph n têch cụ phạp: giai âoản na y, gia i thu ûtá åí ì í á
cu a ch ng trçnh la ph n têch cụ phạp cạc c u l ûnh â ng th ií ỉå ì á á ã äư åì
tênh toạn tảo k t qua cho t ng l ûnh trong ch ng trçnh ngu n.ãú í ỉì ã ỉå äư
1.4 CÁÚU TRỤC ÂÄƯ ẠN
Ch ng 1: Gi ïi thi ûu v mủc âêch, ph ng phạp, k thu ûtỉå å ã ãư ỉå á
x y d ûng â ta i va n üi dung â ạn.á ỉ ãư ì ì ä äư
Ch ng 2: Trçnh ba y ph n thi t k ng n ng ỵ n Gia n baå ì áư ãú ãú ä ỉ Âå í
g m ca l thuy t va ba i t ûp vê dủ.äư í ãú ì ì á
Ch ng 3: N u l n m üt s k thu ût c ba n â x y d ûngỉå ã ã ä äú á å í ãø á ỉ
ch ng trçnh dëch, k thu ût na y s â üc ạp dủng â thi t kỉå á ì ỉå ãø ãú ãú
ch ng trçnh cho â ạn.ỉå äư
Ch ng 4: D ûa tr n m üt s k thu ût ch ng 3 â thi t kỉå ỉ ã ä äú á åí ỉå ãø ãú ãú
ch ng trçnh dëch cho ng n ng ỵ n Gia n.ỉå ä ỉ Âå í
Ch ng 5: Trçnh ba y cạch s dủng ch ng trçnh va chảå ì ỉí ỉå ì
th m üt va i ch ng trçnh vê dủ.ỉí ä ì ỉå
Ch ng 6: Tọm tà t k t qua â âảt â üc, tênh kha thi, hảnỉå õ ãú í ỉå í
ch va n u l n h ïng phạt tri n cu a â ta i. ãú ì ã ã ỉå ãø í ãư ì
KHOA C NG NGH TH NG TIN - I N T VI N TH NG Ä ÃÛ Ä Â ÃÛ ỈÍ ÃÙ Ä
VO NGO C LI NỴ Ü ÃÙ
Ng n Ng ỵ L ûp Trçnh n Gia n: Thi t K & Ca i àûtä ỉ á Âå í ãú ãú ì Â Trang 7
CH NG 2ỈÅ
THIÃÚT KÃÚ NGÄN NGỈỴ ÂÅN GIN
2.1 CẠC KHẠI NIÃÛM CÅ BN CA NGÄN NGỈỴ ÂÅN GIN
Ph n na y gi ïi thi ûu v t ûp k t û, bi n, hà ng, t khọa,áư ì å ã ãư á ỉ ãú ò ỉì
chụ thêch, bi u th ïc va cạc qui tà c s dủng chụng.ãø ỉ ì õ ỉí
2.1.1 Táûp cạc k tỉû håüp lãû trong ngän ngỉỵ
- Cạc ch ỵ cại: du ng cạc ch ỵ cại ti ng Vi ût cọ d u hồûcỉ ì ỉ ãú ã áú
kh ng d u tu y ä áú ì
- Cạc ch ỵ s : 0, 1, 2, 3, 4, 5, 6, 7, 8, 9ỉ äú
- K t û gảch n i: _ỉ äú
- D u cạch (du ng â ph n bi ût gi ỵa cạc t ).áú ì ãø á ã ỉ ỉì
2.1.2 Âënh danh
ënh danh la m üt dy cạc k t û bà t â u bà ng ch ỵ cại, the ì ä ỉ õ áư ò ỉ
sau la ch ỵ cại, d u gảch d ïi hồûc ch ỵ s .ì ỉ áú ỉå ỉ äú
Vê dủ:
- T n âụng: bi n_x, bi n1, s , abc...ã ãú ãú äú
- T n sai: 1ab, 1bi n, a b, a#b,...ã ãú
Trong âënh danh ch ỵ hoa va ch ỵ th ng â üc xem la khạcỉ ì ỉ ỉåì ỉå ì
nhau. N u du ng m üt bi n ch ỵ th ng ma in ra m üt bi n ch ỵãú ì ä ãú ỉ ỉåì ì ä ãú ỉ
hoa hồûc ng üc lải thç ch ng trçnh s xem nh bi n âọ cọ giạỉå ỉå ỉ ãú
trë bà ng 0.ò
KHOA C NG NGH TH NG TIN - I N T VI N TH NG Ä ÃÛ Ä Â ÃÛ ỈÍ ÃÙ Ä
VO NGO C LI NỴ Ü ÃÙ
ënh Â
danh
Ch ỵ cạiỉ
Ch ỵ ỉ
säú
_
Ch ỵ cạiỉ
_
Hçnh 1.1 Bi u di ùn âënh ãø ã
danh
Ng n Ng ỵ L ûp Trçnh n Gia n: Thi t K & Ca i àûtä ỉ á Âå í ãú ãú ì Â Trang 8
2.1.3 Tỉì khọa
La cạc t da nh ri ng trong ng n ng ỵ, m ùi t cọ ch ïc nàngì ỉì ì ã ä ỉ ä ỉì ỉ
nh t âënh, khi s dủng pha i vi t âụng cụ phạp, kh ng â ücáú ỉí í ãú ä ỉå
du ng va o vi ûc âàût t n bi n.ì ì ã ã ãú
nãúu thç nãúu_khäng
trong_khi làûp âãún_khi làûp_lải
cho tåïi xúng
v hồûc ph_âënh
2.1.4 Dáúu cháúm pháøy, låìi gii thêch, hàòng k tỉû
- L i gia i thêch: Cho phẹp ng i l ûp trçnh che n c u ghi chụåì í ỉåì á ì á
va o b t kç vë trê na o trong ch ng trçnh nhà m mủc âêch la mì áú ì ỉå ò ì
sạng to th m c u trục cu a ch ng trçnh ma kh ng a nh h ngí ã áú í ỉå ì ä í ỉåí
â n cạc ph n khạc. Cạc l i chụ thêch â üc âàût sau d u ngồûcãú áư åì ỉå áú
kẹp (“).
Vê dủ: täøng := a+b; “tênh täøng hai säú a v b
- D u ‘;’ üc du ng â ph n cạch cạc c u l ûnh va kh ngáú Âỉå ì ãø á á ã ì ä
th thi u.ãø ãú
Vê dủ: a := a+b; c := a+b;
- Cạc hà ng k t û: Cạc hà ng k t û â üc bi u di ùn trongò ỉ ò ỉ ỉå ãø ã
càûp d u nhạy â n ‘ ‘áú å
Vê dủ: ‘Cho bản’
'Täøng cạc säú dỉång l: ’
2.1.5 Phẹp toạn
Cạc k hi ûu toạn hc + - * / = < > < > <= >= ()ã
- Phẹp toạn s hc: +, - , *, /, div, modäú
- Phẹp toạn quan h û: <, <=, >, >=, <>ã
- Phẹp toạn logic: va , hồûcì
- Toạn t gạn:ỉí <bi n> := <bi u th ïc>ãú ãø ỉ
Vê dủ: a:=b+1; x1:=(-b+c n_bh(delta))/2*a;à
2.1.6 Biãøu thỉïc
Bi u th ïc la m üt c ng th ïc tênh toạn â cọ m üt giạ trë theỗø ỉ ì ä ä ỉ ãø ä
m üt qui tà c toạn hc na o âọ. M üt bi u th ïc bao g m toạn tä õ ì ä ãø ỉ äư ỉí
KHOA C NG NGH TH NG TIN - I N T VI N TH NG Ä ÃÛ Ä Â ÃÛ ỈÍ ÃÙ Ä
VO NGO C LI NỴ Ü ÃÙ
Ng n Ng ỵ L ûp Trçnh n Gia n: Thi t K & Ca i àûtä ỉ á Âå í ãú ãú ì Â Trang 9
va toạn hảng. Toạn t â üc vi t bà ng d u cạc phẹp toạn.ì ỉí ỉå ãú ò áú
Toạn hảng cọ th la hà ng, ha m, la bi n. Cạc ph n t cu ẫø ì ò ì ì ãú áư ỉí í
bi u th ïc cọ th â üc ph n tha nh toạn hảng, th a s , bi ø ỉ ãø ỉå á ì ỉì äú ãø
th ïc â n gia n.ỉ å í
M üt bi u th ïc cọ ch ïa cạc toạn t quan h û â üc gi lậ ãø ỉ ỉ ỉí ã ỉå ì
bi u th ïc quan h û.ãø ỉ ã
Vê dủ: 9+c n_bh(a);à (a+b)*5-c; bi u th ïcãø ỉ
a <b, (a+b) >= c bi u th ïc quan h û (bi u th ïcãø ỉ ã ãø ỉ
boolean â n gia n)å í
(a<>0) v (d>0) bi u th ïc booleanãø ỉ
2.2 SÅ ÂÄƯ CỤ PHẠP
KHOA C NG NGH TH NG TIN - I N T VI N TH NG Ä ÃÛ Ä Â ÃÛ ỈÍ ÃÙ Ä
VO NGO C LI NỴ Ü ÃÙ
ch ng ỉå
trçnh
l ûnhã
;
âënh
danh
bi u ãø
th ïcỉ
lãûnh gạn
:=
lãûnh nãúu
n ú
btqh
th
ç
l ûnhã
n u_khãú ä
l ûnhã
lãûnh trong_khi
btqh
làûp
l ûnhã
trong_k
hi
lãûnh làûp_lải
l ûnhã
â n_khiãú
btqh
làûp_lải
;
lãûnh cho
cho
:=
âënh
danh
bi u ãø
th ïcỉ
â nãú
xú
bi u ãø
th ïcỉ
làû
l ûnhã
lãûnh
l ûnh ã
gạn
l ûnh ã
cho
l ûnh ã
trong_khi
l ûnh ã
n ú
l ûnh ã
làûp_lải
{ }
l ûnhã
Ng n Ng ợ L ỷp Trỗnh n Gia n: Thi t K & Ca i ỷtọ ổ ỏ ồ ớ óỳ óỳ ỡ Trang 10
KHOA C NG NGH TH NG TIN - I N T VI N TH NG ặ
VO NGO C LI Nẻ ĩ
sọỳ haỷng
bi u óứ
th ùcổ
(
õởnh
danh
h ngũ
)
haỷng thổùc
s ọỳ
haỷng
div
/
mod
s ọỳ
haỷng
<=
>
>=
=
<
<>
bióứu thổùc quan hóỷ
bi u óứ
th ùcổ
bi u óứ
th ùcổ
btqh
(
vaỡ
hoỷ
btqh
)
phu _õởnớ
btqh
btqh
Ng n Ng ỵ L ûp Trçnh n Gia n: Thi t K & Ca i àûtä ỉ á Âå í ãú ãú ì Â Trang 11
2.3 CẠC CÁÚU TRỤC LÃÛNH
Ch ng trçnh â s dủng 3 loải c u trục c ba n la tu n t û,ỉå ỉí áú å í ì áư ỉ
r nhạnh va làûp.ì
2.3.1 Cáúu trục tưn tỉû
C u trục tu n t û la c u trục ma mạy th ûc hi ûn li n tủcáú áư ỉ ì áú ì ỉ ã ã
t l ûnh â u ti n â n l ûnh cu i cu ng cu a ch ng trçnh.ỉì ã áư ã ãú ã äú ì í ỉå
2.3.2 Cáúu trục r nhạnh
Cụ phạp:
nãúu <âi u ki ûn logicãư ã > thç
< dy l ûnh 1ã >
nãúu_khäng
< dy l ûnh 2ã >
N u dy l ûnh nhi u h n hai l ûnh thç pha i âàût gi ỵa hai d ú ã ãư å ã í ỉ áú
ngồûc nhn “{“ va “}”.ì
Khi gàûp l ûnh na y, mạy ki m tra âi u ki ûn logic. N u âi ì ãø ãư ã ãú ãư
ki ûn logic âụng (khạc 0) thç th ûc hi ûn ã ỉ ã <dy l ûnh 1ã >. Co n n ãú
âi u ki ûn logic sai (bà ng 0) thç th ûc hi ûn ãư ã ò ỉ ã <dy l ûnh 2ã > (khi cọ
nãúu_khäng) hồûc bo qua c u trục na y (n u kh ng cọ í áú ì ãú ä nãúu_khäng).
Cọ th cọ nhi u c u trục n u...thç...n u_kh ng l ng nhaø ãư áú ãú ãú ä äư
nh ng kh ng â üc cà t nhau.ỉ ä ỉå õ
Vê dủ: “Gii phỉång trçnh báûc hai sau âáy:
xọa_mh();
viãút_xd(‘Nháûp cạc hãû säú a,b,c’)
âc_xd(a,b,c);
nãúu (a=0) thç
{
KHOA C NG NGH TH NG TIN - I N T VI N TH NG Ä ÃÛ Ä Â ÃÛ ỈÍ ÃÙ Ä
VO NGO C LI NỴ Ü ÃÙ
biãøu thỉïc
+
-
hảng
th ïcỉ
+
-
hảng
th ïcỉ
Hçnh 1.2 Dy s â bi u di ùn cụ phạp cu a ng n å äư ãø ã í ä
ng ỵ n Gia nỉ Âå í
Ng n Ng ỵ L ûp Trçnh n Gia n: Thi t K & Ca i àûtä ỉ á Âå í ãú ãú ì Â Trang 12
nãúu (b=0) thç
{
nãúu (c=0) thç viãút_xd(‘phỉång trçnh vä âënh’)
}
nãúu_khäng
viãút_xd(‘phỉång trçnh cọ nghiãûm duy nháút=’, -c/
b);
nãúu_khäng
{
delta:= b*b-4*a*c;
nãúu (d=0) thç
{
viãút_xd(‘phỉång trçnh cọ nghiãûm kẹp);
viãút(‘x1=x2 =’-b/2*a);
}
nãúu_khäng
nãúu (delta<0) thç
viãút_xd(‘phỉång trçnh vä nghiãûm’);
nãúu_khäng {
viãút_xd(‘phỉångtrçnh cọ hai nghiãûm’);
viãút_xd (‘ x1= ’, -b - sqrt(delta)/(2*a));
viãút_xd (‘ x1= ’, -b + sqrt(delta)/(2*a));
}
âc_xd();
Kãút qu:
Nháûp cạc hãû säú a, b, c:
-1
4
1
Phỉång trçnh cọ hai nghiãûm
x1=-0,236068
x2=4,23607
2.3.3 Cáúu trục làûp
a. Lãûnh làûp
trong_khi
Cụ phạp:
trong_khi <âi u ki ûn logicãư ã > làûp <dy l ûnhã >
Ch ng na o ỉì ì <âi u ki ûn logicãư ã > co n âụng thçì <dy l ûnhã > co nì
â üc th ûc hi ûn. M ùi l n th ûc hi ûn xong ỉå ỉ ã ä áư ỉ ã <dy l ûnhã >,<âi ư
ki ûn logicã > s â üc ki m tra, n u co n âụng ỉå ãø ãú ì <dy l ûnhã > ti pãú
tủc â üc th ûc hi ûn, n u sai l ûnh ti p theo â üc th ûc hi ûn.ỉå ỉ ã ãú ã ãú ỉå ỉ ã
Vê dủ: “Chỉång trçnh tênh täøng bçnh phỉång cạc säú
“s:=1
2
+2
2
+3
2
+...+n
2
viãút_xd(‘CHỈ NG TRÇNH TÊNH T ØNG BÇNH PHỈ NG’);Å Ä Å
viãút(‘ Bản mún nháûp bao nhiãu säú:’);
KHOA C NG NGH TH NG TIN - I N T VI N TH NG Ä ÃÛ Ä Â ÃÛ ỈÍ ÃÙ Ä
VO NGO C LI NỴ Ü ÃÙ
Ng n Ng ợ L ỷp Trỗnh n Gia n: Thi t K & Ca i ỷtọ ổ ỏ ồ ớ óỳ óỳ ỡ Trang 13
õoỹc_xd(n);
s:=0;
i:=1;
trong_khi(i<=n) l ỷp
{
s:=s+(i*i);
i:=i+1;
}
vióỳt_xd(Tọứng bỗnh phổồng cuớa:,n, sọỳ laỡ:
,s);
õoỹc_xd();
K
óỳt quaớ:
Baỷn muọỳn nhỏỷp bao nhióu sọỳ:
5
Tọứng bỗnh phổồng cuớa 5 sọỳ laỡ:55
b. Lóỷnh lỷp
lỷp_laỷi
C u l ỷnh ỏ ó lỷp_laỷi ... õóỳn_khi la c u l ỷnh y u c u ch ng trỗnh th ỷcỡ ỏ ó ó ỏử ổồ ổ
hi ỷn lỷp laỷi nhi u l n m ỹt s ha nh õ ỹng õ n khi tho a maợnó óử ỏử ọ ọỳ ỡ ọ óỳ ớ
õi u ki ỷn thoaùt cu a vo ng lỷp.óử ó ớ ỡ
Cuù phaùp:
lỷp_laỷi <daợy l ỷnhó > õóỳn_khi <õi u ki ỷn logicóử ó >
Ch ng na o ổỡ ỡ <õi u ki ỷn logicóử ó > co n sai thỗ daợy l ỷnh õ ỹcỡ ó ổồ
th ỷc hi ỷn. M ựi khi th ỷc hi ỷn xong ổ ó ọ ổ ó <daợy l ỷnhó >, <õi u ki ỷnóử ó
logic> seợ õ ỹc ki m tra, n u õuùng chuy n sang th ỷc hi ỷn l ỷnhổồ óứ óỳ óứ ổ ó ó
ti p theo, n u kh ng óỳ óỳ ọ <daợy l ỷnhó > laỷi õ ỹc ti p tuỷc th ỷc hi ỷn.ổồ óỳ ổ ó
Vờ duỷ: Tờnh tọứng s:=1+2+3+...+ n
xoùa_mh();
vióỳt_xd('Nhỏỷp bao nhióu sọ:ỳ');
õoỹc_xd(n);
i:=1; s:=0;
l ỷp_laỷi
{
s:=s+i;
i:=i+1;
}
õóỳn_khi(i>=n);
vióỳt_xd('Tọứng caùc chổ sọỳ õoù laỡ:',s);
õoỹc_xd();
Kóỳt quaớ:
Nhỏỷp bao nhióu sọỳ:
5
Tọứng caùc chổợ sọỳ õoù laỡ: 15
KHOA C NG NGH TH NG TIN - I N T VI N TH NG ặ
VO NGO C LI Nẻ ĩ
Ng n Ng ỵ L ûp Trçnh n Gia n: Thi t K & Ca i àûtä ỉ á Âå í ãú ãú ì Â Trang 14
c. Lãûnh làûp
cho
C u l ûnh làûp á ã cho la c u l ûnh la m cho ch ng trçnh th ûcì á ã ì ỉå ỉ
hi ûn làûp lải m üt s ha nh â üng m üt s l n nh t âënh.ã ä äú ì ä ä äú áư áú
Cụ phạp:
cho <bi n âi u khi nãú ãư ãø > =<giạ trë â ư > tåïi <giạ trë cu iäú > làûp
<l ûnh>ã
hồûc
cho <bi n âi u khi nãú ãư ãø > :<giạ trë â ư > xúng<giạ trë cu iäú > làûp
<l ûnh>ã
S l n th ûc hi ûn c u l ûnh do äú áư ỉ ã á ã <bi n âi u khi nãú ãư ãø > qui âënh,
bi n na y â üc gạn giạ trë â u la ãú ì ỉå áư ì <giạ trë â ư > sau m ùi l nä áư
th ûc hi ûn ỉ ã <l ûnhã > bi n âi u khi n s tàng l n hồûc gia mãú ãư ãø ã í
xu ng m üt â n vë, ti p tủc th ûc hi ûn äú ä å ãú ỉ ã <l ûnhã > cho â n khi bi nãú ãú
âi u khi n v üt quạ ãư ãø ỉå <giạ trë cu iäú >
Vê dủ: “Tênh täøng
xọa_mh();
viãút_xd ('Nháûp giạ trë ca n :');
âc_xd(n);
i:=0; s:=0;
cho i=1 tåïi n l ûpà
s:=s+i;
viãút_xd(‘Kãút qu l:’,s);
âc_xd();
Kãút qu:
Nháûp giạ trë n:
9
Kãút qu âọ l: 45
2.4 BÄÜ LÃÛNH
L ûnh la m üt chè thë y u c u mạy th ûc hi ûn m üt thao tạcã ì ä ã áư ỉ ã ä
na o âọ.ì
L ûnh â n la l ûnh kh ng ch ïa l ûnh na o khạc. L ûnh ghẹp lẫ å ì ã ä ỉ ã ì ã ì
l ûnh ghẹp nhi u l ûnh lải v ïi nhau tha nh chung m üt l ûnhã ãư ã å ì ä ã
bà ng cạch âàût gi ỵa hai d u ngồûc nhn “{“ va “}”. ò ỉ áú ì
Cạc l ûnh vi t ngàn cạch nhau b i d u “;” va tr n m üt do ngã ãú åí áú ì ã ä ì
cọ th vi t nhi u l ûnh.ãø ãú ãư ã
V ki u d ỵ li ûu thç ch ng trçnh nh ûn ki u s th ûc.ãư ãø ỉ ã ỉå á ãø äú ỉ
KHOA C NG NGH TH NG TIN - I N T VI N TH NG Ä ÃÛ Ä Â ÃÛ ỈÍ ÃÙ Ä
VO NGO C LI NỴ Ü ÃÙ
Ng n Ng ỵ L ûp Trçnh n Gia n: Thi t K & Ca i àûtä ỉ á Âå í ãú ãú ì Â Trang 15
2.4.1 Lãûnh gạn
bi n:=bi u_thãú ãø
ïc;ỉ
Tênh giạ trë cu a bi u th ïc b n pha i r i gạn cho bi n b n trạií ãø ỉ ã í äư ãú ã
Vê dủ: a:=10;
b:=8*(a+25)-5;
2.4.2 Cạc lãûnh vo ra dỉỵ liãûu
a. Lãûnh in lãn mn hçnh
:
(1) vi t( ’st1’,bt1,ãú
’st2’,bt2,’st3’,bt3...,’stn’,btn);
(2) vi t_xd(’st1’,bt1,ãú
’st2’,bt2,’st3’,bt3...,’stn’,btn);
(3) vi t_xd(‘’);ãú
Dảng (1): In cạc chu ùi va giạ trë cu a cạc bi u th ïc ra ma nä ì í ãø ỉ ì
hçnh, in xong kh ng xu ng do ng.ä äú ì
Dảng (2): In cạc chu ùi va giạ trë cu a cạc bi u th ïc ra ma nä ì í ãø ỉ ì
hçnh, in xong xu ng do ng.äú ì
Dảng (3): Kh ng in gç ca va xu ng do ng.ä í ì äú ì
Vê dủ:
viãút(‘a=’, a,’b=’,b);
viãút_xd();
hay viãút_xd(‘a+b=’,c);
b. Lãûnh nháûp dỉỵ liãûu tỉì bn phêm
(1) âc(bi n)ãú
(2) âc_xd(bi n1, bi n2, ...,ãú ãú
bi nN);ãú
(3) âc_xd();
Dảng (1): Mạy s nh ûn ngay k t û nh ûp va o va gạn chố ỉ á ì ì
bi n ma kh ng ch nh n ENTER. ãú ì ä åì áú
Dảng (2): Mạy ch ng i du ng nh ûp d ỵ li ûu t ba n phêm,åì ỉåì ì á ỉ ã ỉì ì
cạc d ỵ li ûu na y ngàn cạch nhau êt nh t m üt k t û tr ng n ã ì áú ä ỉ äú ãú
trong l ûnh cọ nhi u bi n, r i nh n ENTER â k t thục vi ûcã ãư ãú äư áú ãø ãú ã
KHOA C NG NGH TH NG TIN - I N T VI N TH NG Ä ÃÛ Ä Â ÃÛ ỈÍ ÃÙ Ä
VO NGO C LI NỴ Ü ÃÙ
Ng n Ng ợ L ỷp Trỗnh n Gia n: Thi t K & Ca i ỷtọ ổ ỏ ồ ớ óỳ óỳ ỡ Trang 16
nh ỷp. Sau õoù maùy seợ l n l ỹc l y giaù trở nh ỷp va o õ gaùn choỏ ỏử ổồ ỏỳ ỏ ỡ óứ
caùc bi n t ng ùng. Bi n nh ỷn giaù trở thu ỹc ki u th ỷc.óỳ ổồ ổ óỳ ỏ ọ óứ ổ
Daỷng (3): Ch ng i du ng nh n phờm ENTER õ ti p tuỷcồỡ ổồỡ ỡ ỏỳ óứ óỳ
th ỷc hi ỷn ch ng trỗnh.ổ ó ổồ
2.4.3 Caùc lóỷnh õióửu khióứn
a. Xoùa maỡn hỗnh
xoùa_mh();
Xoùa saỷch ma n hỗnh tr ùc khi in ra k t qua .ỡ ổồ óỳ ớ
b.Taỷo cổớa sọứ
c a_s (x1, y1, x2,ổớ ọứ
y2);
Taỷo c a s coù toỹa õ ỹ goùc tr n b n traùi x1, y1 va toỹa õ ỹ goùcổớ ọứ ọ ó ó ỡ ọ
d ùi b n pha i x2, y2.ổồ ó ớ
c. ỷt maỡu chổợ, maỡu nóửn
ma u_ch ợ(colỡ ổ
or);
ma u_n n(coỡ óử
lor);
Trong hai tr ng h ỹp tr n color la m ỹt bi n nguy n ch ùa maợổồỡ ồ ó ỡ ọ óỳ ó ổ
cu a ma u (xem ba ng2.1)ớ ỡ ớ
Vờ duỷ:
maỡu_chổợ(4) ch ợ in ra seợ la ma u õoổ ỡ ỡ ớ
maỡu_nóửn(1) ma u cu a n n seợ la ma u xanh da tr iỡ ớ óử ỡ ỡ ồỡ
d. Di chuyóứn con troớ
õ n(x, y)óỳ
Di chuy n con tro õ n taỷo õ ỹ x, y cu a ma n hỗnh t ng ùngóứ ớ óỳ ọ ớ ỡ ổồ ổ
v ùi c a s hi ỷn taỷi.ồ ổớ ọứ ó
e. Caùc lóỷnh vóử ỏm thanh
m_thanh(f);ỏ
Taỷo tờn hi ỷu m thanh v ùi t n s f.ó ỏ ồ ỏử ọỳ
KHOA C NG NGH TH NG TIN - I N T VI N TH NG ặ
VO NGO C LI Nẻ ĩ
Ng n Ng ợ L ỷp Trỗnh n Gia n: Thi t K & Ca i ỷtọ ổ ỏ ồ ớ óỳ óỳ ỡ Trang 17
t t();ừ
T t tờn hi ỷu m thanh.ừ ó ỏ
f. Lóỷnh tróự chổồng trỗnh
ch (ms);ồỡ
La m tr ự ch ng trỗnh m ỹt khoa ng th i gian miligi yỡ ó ổồ ọ ớ ồỡ ỏ
2.4.4 Caùc haỡm toaùn hoỹc
a. Tờnh cn bỏỷc hai cuớa x
cn_bh(x);
Ha m na y tờnh cn b ỷc hai cu a bi n s x, v ùi x la m ỹt s b tỡ ỡ ỏ ớ óỳ ọỳ ồ ỡ ọ ọỳ ỏỳ
kỗ l ùn h n 0ồ ồ
b. Haỡm tờnh giaù trở tuyóỷt õọỳi cuớa x
trở_td(x);
Ha m na y tờnh trở tuy ỷt õ i cu a bi n s xỡ ỡ ó ọỳ ớ óỳ ọỳ
c. Caùc haỡm tờnh sin(x), cos(x), tg(x)
sin(x);
cos(x);
tg(x);
2.4.5 Caùc haỡm veợ õọử hoỹa
Caùc ha m veợ õ hoỹa õ n gia n coù ma u neùt veợ õ ỹc xaùc õởnhỡ ọử ồ ớ ỡ ổồ
b i ha m ma u_veợ(t n ma u), v ùi t n ma u la caùc s trong ba ngồớ ỡ ỡ ó ỡ ồ ó ỡ ỡ ọỳ ớ
ma u 2.1.ỡ
a. Haỡm veợ õổồỡng thúng
õ_th ng(x1, y1, x2,ú
y2);
Veợ m ỹt õ ng th ng xaùc õởnh v ùi toỹa õ ỹ õi m õ u la (x1,y1)ọ ổồỡ ú ồ ọ óứ ỏử ỡ
toỹa õ ỹ õi m cu i la (x2,y2).ọ óứ ọỳ ỡ
b. Haỡm veợ hỗnh chổợ nhỏỷt
hỗnh_cn(x1, y1, x2,
y2);
KHOA C NG NGH TH NG TIN - I N T VI N TH NG ặ
VO NGO C LI Nẻ ĩ
Ng n Ng ợ L ỷp Trỗnh n Gia n: Thi t K & Ca i ỷtọ ổ ỏ ồ ớ óỳ óỳ ỡ Trang 18
Toỹa õ ỹ õốnh tr n b n traùi (x1,y1), toỹa õ ỹ õốnh d ùi b n pha iọ ó ó ọ ổồ ó ớ
(x2,y2).
c. Haỡm veợ õổồỡng troỡn
õ_tro n(x, y, r);ỡ
Toỹa õ ỹ t m cu a õ ng tro n (x,y), baùn kiùnh õ ng tro n rọ ỏ ớ ổồỡ ỡ ổồỡ ỡ
d. Haỡm veợ elip
elip(x, y, gd, gc, xr,
yr);
(x,y) la toỹa õ ỹ cu a t m elipỡ ọ ớ ỏ
gd la goùc õ uỡ ỏử
gd la goùc cu iỡ ọỳ
xr la baùn truỷc ngang, yr la baùn truỷc õ ùng.ỡ ỡ ổ
T n ma uó ỡ Giaù trở s (maợọỳ
ma u)ỡ
Ma u ch ợ hayỡ ổ
ma u n nỡ óử
en 0 Ca haiớ
Xanh da
tr iồỡ
1 Ca haiớ
Xanh laù
c yỏ
2 Ca haiớ
Xanh lồ 3 Ca haiớ
o ớ 4 Ca haiớ
Tờm 5 Ca haiớ
N uỏ 6 Ca haiớ
Xaùm
nhaỷt
7 Ca haiớ
Xaùm
s ựmỏ
8 Ma u ch ợỡ ổ
Xanh
nhaỷt
9 Ma u ch ợỡ ổ
Xanh
nhaỷt
10 Ma u ch ợỡ ổ
Xanh 11 Ma u ch ợỡ ổ
KHOA C NG NGH TH NG TIN - I N T VI N TH NG ặ
VO NGO C LI Nẻ ĩ
Ng n Ng ợ L ỷp Trỗnh n Gia n: Thi t K & Ca i ỷtọ ổ ỏ ồ ớ óỳ óỳ ỡ Trang 19
nhaỷt
o nhaỷt ớ 12 Ma u ch ợỡ ổ
Tờm
nhaỷt
13 Ma u ch ợỡ ổ
Va ngỡ 14 Ma u ch ợỡ ổ
Tr ngừ 15 Ma u ch ợỡ ổ
Baớng 2.1 Ba ng ma uớ ỡ
KHOA C NG NGH TH NG TIN - I N T VI N TH NG ặ
VO NGO C LI Nẻ ĩ
Ng n Ng ỵ L ûp Trçnh n Gia n: Thi t K & Ca i àûtä ỉ á Âå í ãú ãú ì Â Trang 20
CH NG 3ỈÅ
ẠP DỦNG MÄÜT SÄÚ K THÛT BIÃN DËCH CÅ
BN
Ch ng na y s trçnh ba y cạc b ïc c ba n â x y d ûng m ütỉå ì ì ỉå å í ãø á ỉ ä
ch ng trçnh dëch nhà m la m c s l thi t â x y d ûng ch ngỉå ò ì å åí ãú ãø á ỉ ỉå
trçnh trong ch ng ti p theo.ỉå ãú
3.1 PHÁN TÊCH TỈÌ VỈÛNG
Ph n têch t v ûng la giai âoản â u cu a quạ trçnh bi n dëch.á ỉì ỉ ì áư í ã
Nhi ûm vủ chu y u cu a nọ la âc cạc k t û nh ûp r i tảo rẫ í ãú í ì ỉ á äư
m üt chu ùi the t cho b ü ph n têch cụ phạp s dủng trong giaiä ä í ỉì ä á ỉí
âoản ph n têch cụ phạp. T ng tạc gi ỵa b ü ph n têch t v ûngá ỉå ỉ ä á ỉì ỉ
va b ü ph n têch cụ phạp minh ha (hçnh 3.1), â üc ca i âàûtì ä á ỉå ì
bà ng cạch cho b ü ph n têch t v ûng la m m üt thu tủc conò ä á ỉì ỉ ì ä í
hồûc m üt â ng thu tủc v ïi b ü ph n têch cụ phạp. ä äư í å ä á
Khi nh ûn â üc y u c u l y the t ti p theo t b ü ph n têchá ỉå ã áư áú í ỉì ãú ỉì ä á
cụ phạp, b ü ph n têch t v ûng s âc cạc k t û cho â n khiä á ỉì ỉ ỉ ãú
nọ nh ûn di ûn ra â üc m üt the t . B ü ph n têch t v ûng lấ ã ỉå ä í ỉì ä á ỉì ỉ ì
tha nh ph n âc ch ng trçnh ngu n cu a trçnh bi n dëch, nọì áư ỉå äư í ã
th ng th ûc hi ûn th m m üt s tạc vủ khạc m ïc giao di ûnỉåì ỉ ã ã ä äú åí ỉ ã
ng i s dủng nh sau:ỉåì ỉí ỉ
KHOA C NG NGH TH NG TIN - I N T VI N TH NG Ä ÃÛ Ä Â ÃÛ ỈÍ ÃÙ Ä
VO NGO C LI NỴ Ü ÃÙ
ch ng ỉå
trçnh
ngu näư
b ü ph n têch ä á
t v ûngỉì ỉ
ba ng k í
hi û
the í
tỉì
l y the táú í ỉì
k ti pãú ãú
Hçnh 3.1 T ng tạc cu a b ü ph n têch t v ûng va b ü ỉå í ä á ỉì ỉ ì ä
ph n têch cụ phạp á
b ü ph n têch ä á
cụ phạp
Ng n Ng ỵ L ûp Trçnh n Gia n: Thi t K & Ca i àûtä ỉ á Âå í ãú ãú ì Â Trang 21
3.1.1 Loải b khong tràõng v cạc dng chụ thêch
Ch ng trçnh dëch s xẹt cạc k t û trong nguy n li ûu, vç thỉå ỉ ã ã ãú
cạc k t û ngoa i d û ki n nh cạc k t û tr ng s khi n nọỉ ì ỉ ãú ỉ ỉ äú ãú
th t bải. Ng n ng ỵ l ûp trçnh th ng cho phẹp cạc khoa ngáú ä ỉ á ỉåì í
trà ng (k t û tr ng, k t û tab, k t û xu ng do ng) xu t hi ûnõ ỉ äú ỉ ỉ äú ì áú ã
gi ỵa cạc the t . B ü ph n têch t v ûng cọ nhi ûm vủ loải b í ỉì ä á ỉì ỉ ã í
cạc khoa ng trà ng na y tr ïc khi â a qua b ü ph n têch cụ phạp.í õ ì ỉå ỉ ä á
Cạc do ng chụ thêch cng â üc b ü ph n têch cụ phạp v ỉå ä á ì
ch ng trçnh dëch bo qua, vç th chụng cng â üc x l nhỉå í ãú ỉå ỉí ỉ
khoa ng trà ng.í õ
3.1.2 Cạc hàòng
M ùi khi cọ m üt k s xu t hi ûn trong m üt bi u th ïc, cọ lä ä äú áú ã ä ãø ỉ
s h üp l h n khi cho phẹp âàût m üt hà ng s na o âọ vë trêå å ä ò äú ì åí
cu a nọ. B i vç m üt hà ng s la m üt dy cạc k s , nọ cọ thí åí ä ò äú ì ä äú ãø
du ng â üc bà ng cạch th m cạc lu ût sinh va o vàn phảm cho cạcì ỉå ò ã á ì
bi u th ïc hồûc bà ng cạch tảo ra m üt the t cho cạc hà ng nhãø ỉ ò ä í ỉì ò ỉ
th . C ng vi ûc gom cạc k s tha nh s , â üc th ûc hi ûn b iãú ä ã äú ì äú ỉå ỉ ã åí
b ü ph n têch t v ûng b i vç cạc s cọ th â üc x l nhä á ỉì ỉ åí äú ãø ỉå ỉí ỉ
nh ỵng â n vë ri ng bi ût trong quạ trçnh dëch.ỉ å ã ã
Chà ng hản ó num la the t bi u thë m üt s thç b ü ph n têchì í ỉì ãø ä äú ä á
t v ûng s chuy n ỉì ỉ ãø num cho b ü ph n têch cụ phạp. Giạ trë cu ậ á í
s s â üc chuy n theo d ïi dảng m üt thu üc tênh cu a the täú ỉå ãø ỉå ä ä í í ỉì
num, b ü ph n têch t v ûng s chuy n ca the t va thu üc tênhä á ỉì ỉ ãø í í ỉì ì ä
cu a nọ cho b ü ph n têch cụ phạp.í ä á
N u ta vi t m üt the t va thu üc tênh cu a nọ nh m üt b üãú ãú ä í ỉì ì ä í ỉ ä ä
d ỵ li ûu â üc bao gi ỵa hai d u < > thç nguy n li û ã ỉå ỉ áú ã ã
25.5 + 90 - 20
â üc bi n â i tha nh m üt dy cạc b üỉå ãú äø ì ä ä
<num, 25.5> <+, > <num, 90> <-, > <num, 20>
The t í ỉì +,- kh ng cọ thu üc tênh. Tha nh ph n th ï hai cu a cạcä ä ì áư ỉ í
b ü kh ng cọ vai tro gç trong khi ph n têch cụ phạp nh ng s c nä ä ì á ỉ áư
du ng â n khi dëch.ì ãú
KHOA C NG NGH TH NG TIN - I N T VI N TH NG Ä ÃÛ Ä Â ÃÛ ỈÍ ÃÙ Ä
VO NGO C LI NỴ Ü ÃÙ
Ng n Ng ỵ L ûp Trçnh n Gia n: Thi t K & Ca i àûtä ỉ á Âå í ãú ãú ì Â Trang 22
3.1.3 Nháûn diãûn âënh danh v tỉì dnh riãng
Ng n ng ỵ s dủng âënh danh la m t n cho cạc bi n. M üt vànä ỉ ỉí ì ã ãú ä
phảm cho m üt ng n th ng x l âënh danh nh m üt the t .ä ä ỉåì ỉí ỉ ä í ỉì
B ü ph n têch cụ phạp d ûa tr n m üt vàn phảm, nh th mu nä á ỉ ã ä ỉ ãú äú
nh ûn â üc cu ng m üt the t chà ng hản la á ỉå ì ä í ỉì ó ì id, m ùi khi cọ m ütä ä
âënh danh xu t hi ûn trong nguy n li ûu.áú ã ã ã
Vê dủ: a:= a+ b;
s â üc b ü ph n têch t v ûng bi n â i tha nh do ng the t ỉå ä á ỉì ỉ ãú äø ì ì í ỉì id
= id + id
Khi gàûp m üt t t tảo ra m üt âënh danh trong nguy n li ûu,ä ỉì äú ä ã ã
thç ta c n cọ m üt c ch xem t t na y â gàûp tr ïc âọ haư ä å ãú ỉì äú ì ỉå
ch a. Ta s du ng m üt ba ng k hi ûu cho c ng vi ûc na y. T tỉ ì ä í ã ä ã ì ỉì äú
l u trong ba ng k hi ûu va m üt con tro chè â n mủc ghi tr nỉ í ã ì ä í ãú ã
ba ng tr tha nh m üt thu üc tênh cu a the t í åí ì ä ä í í ỉì id.
Ngoa i âënh danh co n cọ cạc t khọa, cạc t n ha m la cạc tì ì ỉì ã ì ì ỉì
da nh ri ng, cạc âënh danh kh ng â üc tru ng t n v ïi cạc t na y.ì ã ä ỉå ì ã å ỉì ì
B ü ph n têch t v ûng xạc âënh âënh danh hay t da nh ri ngä á ỉì ỉ ỉì ì ã
bà ng cạch sau khi gom tha nh the t r i so sạnh v ïi cạc t da nhò ì í ỉì äư å ỉì ì
ri ng trong ba ng k hi ûu n u kh ng tru ng thç the t âọ la ã í ã ãú ä ì í ỉì ì id,
ng üc lải la t da nh ri ng.ỉå ì ỉì ì ã
3.1.4 Giao diãûn cho bäü phán têch tỉì vỉûng
Khi m üt b ü ph n têch t v ûng â üc âàût gi ỵa b ü ph n têch cụä ä á ỉì ỉ ỉå ỉ ä á
phạp va do ng nguy nì ì ã
li ûu, nọ t ng tạc v ïi ca hai ph n na y nh (hçnh 3.2). Nọ âcã ỉå å í áư ì ỉ
cạc k t û t nguy n li ûu, nhọm chụng lải tha nh cạc t t r iỉ ỉì ã ã ì ỉì äú äư
g i cạc the t â üc tảo b i cạc t t cu ng v ïi giạ trë thu ücỉí í ỉì ỉå åí ỉì äú ì å ä
tênh cu a chụng â n giai âoản sau cu a trçnh bi n dëch. Trongí ãú í ã
m üt s tçnh hu ng, b ü ph n têch t v ûng pha i âc tr ïc m ütä äú äú ä á ỉì ỉ í ỉå ä
k t û tr ïc khi cọ th quy t âënh s tra v the t na o cho b üỉ ỉå ãø ãú í ãư í ỉì ì ä
ph n têch cụ phạp.á
Vê dủ:
Khi gàûp k t û ỉ > thç b ü ph n têch t v ûng s âc ti p.ä á ỉì ỉ ãú
N u k t û k ti p la ãú ỉ ãú ãú ì = thç chu ùi k t û ä ỉ >= la t t tảo ra th ỉì äú í
t cho toạn t “l ïn h n hồûc bà ng”. Ng üc lải thç ỉì ỉí å å ò ỉå > la t tì ỉì äú
KHOA C NG NGH TH NG TIN - I N T VI N TH NG Ä ÃÛ Ä Â ÃÛ ỈÍ ÃÙ Ä
VO NGO C LI NỴ Ü ÃÙ
Ng n Ng ỵ L ûp Trçnh n Gia n: Thi t K & Ca i àûtä ỉ á Âå í ãú ãú ì Â Trang 23
tảo ra the t cho toạn t “l ïn h n”, va b ü ph n têch t v ûng âí ỉì ỉí å å ì ä á ỉì ỉ
âc m üt k t û nhi u l n. K t û “d ” ra na y pha i â üc â a trä ỉ ãư áư ỉ ỉ ì í ỉå ỉ åí
lải nguy n li ûu, b i vç nọ cọ th la k t â u ti n cu a t tã ã åí ãø ì ỉì áư ã í ỉì äú
k ti p trong nguy n li ûu.ãú ãú ã ã
B ü ph n têch t v ûng tảo ra cạc the t va b ü ph n têch cụä á ỉì ỉ í ỉì ì ä á
phạp s s dủng nọ. Cạc the t sinh ra â üc gi ỵ trong vu ngỉí í ỉì ỉå ỉ ì
â ûm cho â n khi chụng â üc s dủng. T ng tạc gi ỵa hai b üã ãú ỉå ỉí ỉå ỉ ä
ph n têch na y chè bë ra ng bu üc b i kiïch th ïc vu ng â ûm b i vçá ì ì ä åí ỉå ì ã åí
b ü ph n têch t v ûng s kh ng th ti n ha nh khi vu ng â ûmä á ỉì ỉ ä ãø ãú ì ì ã
â y co n b ü ph n têch cụ phạp s kh ng th ti n ha nh khi vu ngáư ì ä á ä ãø ãú ì ì
â ûm r ùng. Vç vu ng â ûm chè gi ỵ m üt the t n n t ng tạc â ücã ä ì ã ỉ ä í ỉì ã ỉå ỉå
ca i âàût â n gia n bà ng cạch â a b ü ph n têch t v ûng tha nhì å í ò ỉ ä á ỉì ỉ ì
m üt ha m â üc b ü ph n têch cụ phạp gi, tra v cạc the tä ì ỉå ä á í ãư í ỉì
theo nh y u c u.ỉ ã áư
3.2 ÂËNH NGHÉA CỤ PHẠP
Trong ph n na y s gi ïi thi ûu m üt h û k phạp cọ t n gi lấư ì å ã ä ã ã ì
vàn phảm phi ng ỵ ca nh â üc du ng â xạc âënh cụ phạp cu í ỉå ì ãø í
m üt ng n ng ỵ.ä ä ỉ
M üt vàn phảm th ng m ta c u trục ph n c p cu a nhi ỉåì ä í áú á áú í ãư
k t c u cu a cạc ng n ng ỵ l ûp trçnh.ãú áú í ä ỉ á
Vê dủ:
M üt c u l ûnh trong C cọ dảng: ä á ã
if (biãøu_thỉïc) lãûnh else lãûnh
Cọ nghéa la m üt phẹp n i cu a t khọa ì ä äú í ỉì if, m üt d u ngồûc m ,ä áú åí
m üt ä
biãøu thỉïc
, m üt d u ngồûc âọng, c u ä áú á
lãûnh
, t khọa ỉì else va c u ì á
lãûnh
khạc.
C u l ûnh cọ th bi u di ùn theo quy tà c sau:á ã ãø ãø ã õ
lãûnh → if (biãøu_thỉïc) lãûnh else lãûnh
KHOA C NG NGH TH NG TIN - I N T VI N TH NG Ä ÃÛ Ä Â ÃÛ ỈÍ ÃÙ Ä
VO NGO C LI NỴ Ü ÃÙ
nguy n ã
li û
truy n the ãư í
t vì ì
âc kê
t ûỉ
â y kê t û tr áø ỉ åí
vãư
b ü ph n têchä á
t v ûngỉì ỉ
Hçnh 3.2 àût b ü ph n têch t v ûng va o gi ỵa nguy n li ûu va  ä á ỉì ỉ ì ỉ ã ã ì
b ü ph n têch cụ phạp ä á
b ü ph n têchä á
cụ phạp
Ng n Ng ỵ L ûp Trçnh n Gia n: Thi t K & Ca i àûtä ỉ á Âå í ãú ãú ì Â Trang 24
M üt qui tà c nh tr n â üc gi la lu ût sinh. Trong lu ût sinh,ä õ ỉ ã ỉå ì á á
m üt tha nh ph n t v ûngä ì áư ỉì ỉ
nh t khọa va cạc d u ngồûc â üc gi la cạc the t (token).ỉ ỉì ì áú ỉå ì í ỉì
Cạc bi n nhãú ỉ
biãøu_thỉïc
va ì
lãûnh
bi u thë chu ùi cạc the t va â üc gi la k hi ûu ch ẫø ä í ỉì ì ỉå ì ã ỉ
k t thục.ãú
M üt vàn phảm phi ng ỵ ca nh cọ b n tha nh ph n :ä ỉ í äú ì áư
1. M üt t ûp cạc the t , gi la cạc k hi ûu k t thục.ä á í ỉì ì ã ãú
2. M üt t ûp cạc k hi ûu ch a k t thục.ä á ã ỉ ãú
4. M üt k hi ûu kh i â u, âọ la m üt k hi ûu ch a k tä ã åí áư ì ä ã ỉ ãú
thục.
3. M üt t ûp lu ût sinh, trong âọ m ùi lu ût sinh g m m üt kä á á ä á äư ä
hi ûu ch a k t thục gi la v trại cu a lu ût sinh, m üt mi t n,ã ỉ ãú ì ãú í á ä ã
va m üt chu ùi cạc the t va /hồûc cạc k hi ûu ch a k t thụcì ä ä í ỉì ì ã ỉ ãú
la v pha i cu a lu ût sinh. Vê dủ: ãú í í á → α1α2. . .αn, v ïi å α1,
α2 ... la cạc k hi ûu k t thục hồûc ch a k t thục.ì ã ãú ỉ ãú
Vê dủ:
Cho vàn phảm G sinh ra cạc bi u th ïc g m cạc s , ngànãø ỉ äư äú
gi ỵa cạc s la d u ỉ äú ì áú + hồûc -
list → list + digit
| list - digit (3.1)
| digit
digit → 0|1|2| ... |9
3.2.1 Cáy phán têch cụ phạp
C y ph n têch cụ phạp cho th y bà ng hçnh a nh xem la m nhá á áú ò í ì ỉ
th na o d ùn xu t ra m üt chu ùi cu a ng n ng ỵ t k hi ûu kh iãú ì á áú ä ä í ä ỉ ỉì ã åí
â u cu a m üt vàn phảm. V hçnh th ïc cho tr ïc m üt vànáư í ä ãư ỉ ỉå ä
phảm phi ng ỵ ca nh, m üt c y ph n têch cụ phạp la m üt c y cọỉ í ä á á ì ä á
âàûc tênh sau:
- G c cọ nhn la k hi ûu kh i â ú ì ã åí áư
- M ùi nụt la cọ nhn la m üt the t hồûc ä ì ì ä í ỉì ε
- M ùi nụt kh ng pha i la nụt cu i cu a c y thç âọ la k hi û ä í ì äú í á ì ã
ch a k t thục.ỉ ãú
KHOA C NG NGH TH NG TIN - I N T VI N TH NG Ä ÃÛ Ä Â ÃÛ ỈÍ ÃÙ Ä
VO NGO C LI NỴ Ü ÃÙ
Ng n Ng ỵ L ûp Trçnh n Gia n: Thi t K & Ca i àûtä ỉ á Âå í ãú ãú ì Â Trang 25
- N u ãú A m üt k hi ûu ch a k t thục, la nhn cu a nụt kh ngä ã ỉ ãú ì í ä
pha i la nụt cu i, í ì äú X
1
, X
2
,...X
n
la nhn cạc con cu a nụt cọ nhn ì í A
t trại sang pha i thç ỉì í A → X
1
, X
2
,...X
n
la m üt lu ût sinh.ì ä á X
1
, X
2
,...X
n
la cạc k hi ûu k t thục hồûc ch a k t thục. N u ì ã ãú ỉ ãú ãú A→ ε thç
m üt nụt â üc gạn nhn ä ỉå A cọ th cọ m üt con duy nh t cọãø ä áú
nhn ε.
3.2.2 Tênh âa nghéa
M ùi c y ph n têch cụ phạp â u d ùn xu t chênh xạc chu ùiä á á ãư á áú ä
â üc âc t cạc nụt lạ nh ng m üt vàn phảm cọ th cọ nhi å ỉì ỉ ä ãø ãư
c y ph n têch cụ phạp sinh ra chu ùi the t â cho. M üt vàná á ä í ỉì ä
phảm nh th gi la âa nghéa. M üt chu ùi v ïi nhi u c y ph nỉ ãú ì ä ä å ãư á á
têch cụ phạp th ng cọ nhi u nghéa. bi n dëch cạc ch ngỉåì ãư Âãø ã ỉå
trçnh ïng dủng, chụng ta c n thi t k cạc vàn phảm â nỉ áư ãú ãú å
nghéa, hồûc s dủng cạc vàn phảm âa nghéa v ïi cạc qui tà c bỉí å õ äø
sung nhà m gia i quy t tênh âa nghéa.ò í ãú
3.2.3 Tênh kãút håüp ca toạn tỉí
Trong ph n l ïn cạc ng n ng ỵ l ûp trçnh b n toạn t s hcáư å ä ỉ á äú ỉí äú
c üng(+), tr (-), nh n(*) chia(/) â u cọ tênh k t h üp trại, toạn tä ỉì á ãư ãú å ỉí
l y ly th a, toạn t gạn cọ tênh k t h üp pha i.áú ỉì ỉí ãú å í
3.2.4 Tênh thỉï báûc ca toạn tỉí
Chụng ta nọi rà ng toạn t nh n cọ th ï b ûc cao h n toạn tò ỉí á ỉ á å ỉí
c üng n u * l y cạc toạn hảng cu a nọ tr ïc toạn t +. Trong sä ãú áú í ỉå ỉí äú
hỏc phẹp nh n va phẹp chia cọ th ï b ûc cao h n phẹp c üng vấ ì ỉ á å ä ì
phẹp tr .ỉì
a. Cụ phạp cho biãøu thỉïc
Vàn phảm cho cạc bi u th ïc s hc cọ th â üc x y d ûngãø ỉ äú ãø ỉå á ỉ
t m üt ba ng trçnh ba y tênh k t h üp va th ï b ûc cu a toạn t .ỉì ä í ì ãú å ì ỉ á í ỉí
Chụng ta bà t â u v ïi b n toạn t s hc th ng th ng va m ütõ áư å äú ỉí äú ä ỉåì ì ä
ba ng th ï b ûc, trçnh ba y cạc toạn t theo th ï b ûc nga y ca ngí ỉ á ì ỉí ỉ á ì ì
cao, cạc toạn t cọ cu ng th ï b ûc tr n m üt ha ng.ỉí ì ỉ á åí ã ä ì
k t h üp trại: + -ãú å
KHOA C NG NGH TH NG TIN - I N T VI N TH NG Ä ÃÛ Ä Â ÃÛ ỈÍ ÃÙ Ä
VO NGO C LI NỴ Ü ÃÙ