LËp tr×nh b»ng Turbo Pascal
L¬I NOI ®ÇU
Lμ mét ng«n ng÷ lËp tr×nh cã có ph¸p chÆt chÏ, ®¬n gi¶n vμ
dÔ hiÓu, Pascal ®−îc gi¶ng d¹y cho sinh viªn tin häc ngay n¨m häc
®Çu tiªn. Nã lμ ng«n ng÷ c¬ së ®Ó giíi thiÖu cho sinh viªn lμm quen
víi kÜ thuËt x©y dùng ch−¬ng tr×nh. Ngoμi ra, nã cßn ®−îc dïng ®Ó
tr×nh bμy nhiÒu chuyªn ®Ò kh¸c n÷a cña tin häc trong nh÷ng n¨m
häc tiÕp theo.
N¾m v÷ng c¸c thμnh phÇn c¬ b¶n, hiÓu râ c¸c yÕu tè có
ph¸p cña ng«n ng÷ lËp tr×nh Pascal, lμ rÊt quan träng. Nh−ng vËn
dông nã ®Ó x©y dùng ®−îc c¸c ch−¬ng tr×nh míi lμ ®iÒu quan träng
nhÊt.
Qua kinh nghiÖm nhiÒu lÇn gi¶ng d¹y ng«n ng÷ Pascal cho
c¸c ®èi t−îng sinh viªn kh¸c nhau, cã thÓ nhËn thÊy r»ng sinh viªn
lóng tóng nhÊt ë kh©u vËn dông x©y dùng ch−¬ng tr×nh cô thÓ,
kh«ng biÕt lμm thÕ nμo, b¾t ®Çu tõ ®©u.
Gi¸o tr×nh nμy ®Æt träng t©m vμo tr×nh bμy kÜ thuËt x©y dùng
ch−¬ng tr×nh song song víi viÖc giíi thiÖu ng«n ng÷ lËp tr×nh
Pascal. C¸c vÝ dô øng dông tæng hîp ë cuèi ch−¬ng ®−îc chän läc
®Ó minh ho¹ nh÷ng vÊn ®Ò lÝ thuyÕt tr×nh bμy trong ch−¬ng ®ã.
Nh÷ng vÝ dô øng dông nμy cã liªn quan chÆt chÏ víi nhau, ®−îc
ph¸t triÓn hoμn thiÖn dÇn mét c¸ch cã hÖ thèng ®Ó sinh viªn hiÓu
râ c¸c b−íc x©y dùng ch−¬ng tr×nh, tõ th« s¬, ®¬n gi¶n ®Õn hoμn
thiÖn, hiÖu qña h¬n.
V× ®©y lμ hÖ thèng l¹i c¸c bμi gi¶ng lÇn ®Çu tiªn nªn ch¾c
ch¾n cßn nhiÒu thiÕu sãt. RÊt mong sù ®ãng gãp ý kiÕn cña c¸c
thÇy, c« ®ång nghiÖp còng nh− cña c¸c b¹n sinh viªn lμ ®èi t−îng
phôc vô cña gi¸o tr×nh nμy.
T¸c gi¶
NguyÔn §×nh Ho¸, ViÖn CNTT - §HQG Hμ néi
i
LËp tr×nh b»ng Turbo Pascal
N¤I DUNG
L¬I NOI ®ÇU
i
Ch−¬ng 1 - Giíi thiÖu chung
1
1. C¸c kh¸i niÖm c¬ b¶n
1.1 Më ®Çu.
1.2 C¸c kÝ tù.
1.3 C¸c tõ kho¸.
1.4 Tªn - Identifier
1.5 Tªn chuÈn
1.6 C©u lÖnh
2. Ph¸t triÓn mét ch−¬ng tr×nh Pascal
2.1 CÊu tróc mét ch−¬ng tr×nh Turbo Pascal.
2.2 C¸c b−íc x©y dùng ch−¬ng tr×nh.
3. M«i tr−êng ph¸t triÓn tÝch hîp Turbo Pascal.
3.1 C¸c c«ng cô ph¸t triÓn.
3.2 C¸c chøc n¨ng vμ c¸ch dïng.
3.3 C¸c b−íc x©y dùng mét ch−¬ng tr×nh trong m«i tr−êng Turbo Pascal
1
1
2
3
3
4
4
5
5
6
7
7
8
11
C©u hái vμ bμI tËp
12
Ch−¬ng 2 - C¸c kiÓu d÷ liÖu chuÈn, c¸c hμm chuÈn
14
1. C¸c kiÓu d÷ liÖu chuÈn.
1.1 Kh¸i niÖm kiÓu d÷ liÖu
1.2 Ph©n lo¹i c¸c kiÓu d÷ liÖu trong TurboPascal.
1.3 C¸c kiÓu ®¬n gi¶n chuÈn
2. C¸c hμm chuÈn.
2.1 B¶ng c¸c hμm chuÈn.
2.2 Sö dông.
14
14
14
16
18
19
20
C©u hái vμ bμi tËp
20
Ch−¬ng 3 - C¸c khai b¸o vμ c©u lÖnh ®¬n gi¶n
21
1. Khai b¸o h»ng vμ biÕn
1.1 Khai b¸o h»ng
1.2 Khai b¸o biÕn
2. BiÓu thøc trong ng«n ng÷ Pascal.
2.1 Biªñ thøc lμ g×.
2.2 B¶ng thø tù −u tiªn
2.3 ViÕt ®óng biÓu thøc
3. C¸c c©u lÖnh ®¬n gi¶n
3.1 LÖnh g¸n
3.2 LÖnh in ra mμn h×nh kh«ng kÌm ®Þnh d¹ng.
3.3 Quy c¸ch mÆc ®Þnh in ra c¸c kiÓu d÷ liÖu.
3.4 LÖnh in ra cã kÌm quy c¸ch
21
21
22
23
23
24
25
25
26
26
27
28
NguyÔn §×nh Ho¸, ViÖn CNTT - §HQG Hμ néi
ii
LËp tr×nh b»ng Turbo Pascal
3.5 LÖnh in ra m¸y in
3.6 LÖnh nhËp d÷ liÖu tõ bμn phÝm.
4. Mét sè hμm, thñ tôc tr×nh bμy mμn h×nh.
29
30
32
C©u hái vμ bμi tËp
32
Ch−¬ng 4- C¸c cÊu tróc ®iÒu khiÓn
35
1. C©u lÖnh ghÐp
2. C©u lÖnh IF.
2.1 Có ph¸p vμ c«ng dông.
2.2 C¸c vÝ dô minh ho¹.
2.3 If lång nhau hay d·y if
2.4 AND hay IF lång nhau
3. C©u lÖnh CASE.
3.1 Có ph¸p vμ t¸c dông.
3.2 VÝ dô minh ho¹
3.3 Chó ý
3.4 C¸c lçi th−êng gÆp.
4. C©u lÖnh FOR.
4.1 Có ph¸p vμ t¸c dông
4.2 VÝ dô minh ho¹
5. C©u lÖnh Repeat.
5.1 Có ph¸p vμ t¸c dông
5.2 VÝ dô minh ho¹
6. C©u lÖnh While.
6.1 Có ph¸p vμ c«ng dông.
6.2 VÝ dô minh ho¹
7. X©y dùng cÊu tróc lÆp.
7.1 §iÒu khiÓn vßng lÆp b»ng gi¸ trÞ canh chõng.
7.2 §iÒu khiÓn vßng lÆp b»ng cê b¸o
8. C¸c lÖnh kÕt thóc sím vßng lÆp hoÆc ch−¬ng tr×nh.
8.1 LÖnh nh¶y kh«ng ®iÒu kiÖn - goto
8.2 LÖnh chÊm døt sím vßng lÆp.
8.3 LÖnh tho¸t khái ch−¬ng tr×nh con.
8.4 LÖnh dõng ch−¬ng tr×nh bÊt th−êng.
35
35
36
37
38
39
40
40
41
42
42
43
43
44
45
45
46
48
48
49
50
50
51
51
51
52
53
53
C©u hái vμ bμi tËp
53
Ch−¬ng 5 - §Þnh nghÜa C¸c kiÓu d÷ liÖu ®¬n gi¶n
56
1. Khai b¸o kiÓu d÷ liÖu míi.
1.1 Có ph¸p chung.
1.2 VÝ dô
2. KiÓu liÖt kª.
2.1 §Þnh nghÜa vμ có ph¸p
2.2 TÝnh chÊt vμ c¸c phÐp to¸n.
2.3 VÝ dô minh ho¹
3. KiÓu ®o¹n con.
3.1 §Þnh nghÜa vμ có ph¸p.
3.2 VÝ dô minh ho¹.
4. KiÓu tËp hîp.
56
56
56
57
57
58
60
60
60
62
62
NguyÔn §×nh Ho¸, ViÖn CNTT - §HQG Hμ néi
iii
LËp tr×nh b»ng Turbo Pascal
4.1 §Þnh nghÜa vμ có ph¸p.
4.2 C¸c phÐp to¸n trªn tËp hîp
4.3 VÝ dô minh ho¹
62
63
64
Ch−¬ng 6 - KiÓu m¶ng
66
1. M¶ng mét chiÒu
1.1 §Þnh nghÜa vμ có ph¸p.
1.2 C¸c tÝnh chÊt.
1.3 T¹i sao nªn khai b¸o kiÓu.
1.4 VÝ dô minh ho¹.
2. M¶ng nhiÒu chiÒu.
2.1 §Þnh nghÜa có ph¸p vμ cÊu tróc
2.2 VÝ dô minh ho¹.
3. T×m kiÕm trªn m¶ng.
3.1 T×m kiÕm tuÇn tù.
3.2 T×m kiÕm nhÞ ph©n.
4. Mét vμi c¸ch s¾p xÕp m¶ng.
4.1 Ph−¬ng ph¸p ®æi chç trùc tiÕp.
4.2 Ph−¬ng ph¸p chÌn trùc tiÕp.
4.3 Ph−¬ng ph¸p chän trùc tiÕp.
66
66
67
68
68
69
69
70
71
71
72
73
73
75
77
C©u hái vμ bμi tËp
79
Ch−¬ng 7 - KiÓu x©u kÝ tù
81
1. Có ph¸p vμ cÊu tróc.
1.1 Có ph¸p.
1.2 CÊu tróc kiÓu x©u kÝ tù - Truy cËp trùc tiÕp tõng thμnh phÇn.
2. Thao t¸c víi x©u kÝ tù
2.1 C¸c phÐp to¸n.
2.2 C¸c thñ tôc vμ hμm trªn x©u kÝ tù.
81
81
82
84
84
84
C©u hái vμ bμi tËp
86
Ch−¬ng 8 - KiÓu b¶n ghi
88
1. §Þnh nghÜa vμ khai b¸o
1.1 §Þnh nghÜa.
1.2 Khai b¸o kiÓu b¶n ghi.
2. Sö dông.
2.1 Truy cËp tõng thμnh phÇn.
2.2 C¸c phÐp to¸n víi toμn bé b¶n ghi.
2.3 §äc vμo, viÕt ra víi mét biÕn kiÓu b¶n ghi.
2.4 C©u lÖnh With.
3. B¶n ghi cã cÊu tróc thay ®æi
3.1 §Þnh nghÜa vμ có ph¸p
3.2 Sö dông b¶n ghi cã cÊu tróc thay ®æi.
88
88
88
90
90
90
91
92
93
93
94
Ch−¬ng 9 - KiÓu tÖp
98
1. C¸c kh¸i niÖm vμ ®Þnh nghÜa
1.1 Môc ®Ých sö dông tÖp.
1.2 TÖp ®Þnh kiÓu.
98
98
98
NguyÔn §×nh Ho¸, ViÖn CNTT - §HQG Hμ néi
iv
LËp tr×nh b»ng Turbo Pascal
1.3 TÖp truy cËp tuÇn tù.
2. ViÕt ra tÖp, ®äc vμo tõ tÖp
2.1 Më tÖp ®Ó viÕt ra.
2.2 ViÕt d÷ liÖu ra tÖp.
2.3 Më tÖp ®Ó ®äc vμo.
2.4 §äc d÷ liÖu vμo tõ tÖp.
2.5 TÖp truy cËp trùc tiÕp.
3. C¸c thao t¸c kh¸c
3.1 Mét sè hμm vμ thñ tôc víi tÖp.
3.2 BÉy lçi khi më tÖp.
4. TÖp v¨n b¶n.
4.1 §Þnh nghÜa vμ cÊu tróc.
4.2 ViÕt ra tÖp v¨n b¶n
4.3 §äc vμo tõ mét tÖp v¨n b¶n.
4.4 C¸c hμm, thñ tôc chuÈn kh¸c cho tÖp v¨n b¶n
4.5 C¸c thiÕt bÞ vμo ra chuÈn
5. TÖp kh«ng ®Þnh kiÓu.
5.1 §Þnh nghÜa vμ cÊu tróc.
5.2 C¸c hμm, thñ tôc kh¸c.
99
100
100
101
102
102
103
104
104
105
107
107
108
108
109
111
112
112
112
C©u hái vμ bμi tËp
114
Ch−¬ng 10 - Ch−¬ng tr×nh con
115
1. Ch−¬ng tr×nh con - Hμm vμ thñ tôc
1.1 T¹i sao cÇn sö dông ch−¬ng tr×nh con.
1.2 Khai b¸o ch−¬ng tr×nh con.
1.3 X©y dùng ch−¬ng tr×nh con
1.4 Lêi gäi ch−¬ng tr×nh con.
1.5 VÝ dô minh ho¹.
2. Hμm hay thñ tôc, tham biÕn hay tham trÞ.
2.1 Ph©n biÖt hμm víi thñ tôc.
2.2 Ph©n biÖt tham biÕn vμ tham trÞ.
2.3 Mét vμi l−u ý khi x©y dùng ch−¬ng tr×nh con
2.4 Khai b¸o tr−íc - Forward.
3. Ch−¬ng tr×nh con lång nhau.
3.1 BiÕn toμn côc, biÕn côc bé, tÇm t¸c dông
3.2 Minh ho¹
115
115
115
117
117
118
120
120
121
122
124
125
125
126
C©u hái vμ bμi tËp
128
Ch−ong 11 - ThiÕt kÕ ch−¬ng tr×nh
129
1. Ph−¬ng ph¸p x©y dùng ch−¬ng tr×nh
1.1 Kh¸i niÖm C«ng nghÖ phÇn mÒm.
1.2 Chu k× ph¸t triÓn phÇn mÒm.
1.3 VÝ dô minh ho¹
1.4 LËp tr×nh m« ®un - Modula programming
1.5 Thñ tôc ho¸ - Procedural abstraction
2. ThiÕt kÕ chi tiÕt dÇn tõng b−íc.
2.1 S¬ ®å cÊu tróc ch−¬ng tr×nh - structure chart
2.2 VÝ dô.
129
129
129
130
131
133
133
133
134
NguyÔn §×nh Ho¸, ViÖn CNTT - §HQG Hμ néi
v
LËp tr×nh b»ng Turbo Pascal
3. TÝnh ®Ö quy vμ thuËt gi¶i ®Ö quy.
3.1 TÝnh ®Ö quy
3.2 ThuËt gi¶i ®Ö quy.
3.3 ThiÕt kÕ gi¶i thuËt ®Ö quy.
4. Mét sè vÝ dô vÒ thuËt gi¶i ®Ö quy.
4.1 Bμi to¸n th¸p Hμ néi.
4.2 Bμi to¸n vÕt mùc.
4.3 T×m kiÕm nhÞ ph©n
4.4 S¾p xÕp kiÓu ph©n ®o¹n hay s¾p xÕp nhanh - Quick Sort.
5. Tù x©y dùng th− viÖn ch−¬ng tr×nh con - Units
5.1 Sö dông l¹i c¸c ch−¬ng tr×nh con
5.2 CÊu tróc cña mét unit.
5.3 Biªn dÞch vμ sö dông.
5.4 VÝ dô minh ho¹.
5.5 So s¸nh viÖc dïng Unit víi chÌn trùc tiÕp tÖp m· nguån
5.6 C¸c unit chuÈn cña Turbo Pascal
6. Giíi thiÖu Unit CRT.
6.1 C¸c biÕn
6.2 C¸c hμm, thñ tôc
6.3 Mμu s¾c vμ chÕ ®é mμn h×nh v¨n b¶n.
6.4 Xö lÝ gâ phÝm.
6.5 C¸c thñ tôc kh¸c
7. VÝ dô øng dông - Lμm b¶ng chän.
7.1 C¸c b−íc x©y dùng b¶ng chän.
7.2 Ph©n tÝch thiÕt kÕ chi tiÕt dÇn tõng b−íc.
7.3 Ch−¬ng tr×nh chi tiÕt.
7.4 ChuyÓn thμnh Unit b¶ng chän.
8. Mét ch−¬ng tr×nh øng dông.
8.1 Ph©n tÝch thiÕt kÕ
8.2 TriÓn khai chi tiÕt ch−¬ng tr×nh.
138
138
139
140
141
141
142
144
145
147
147
147
149
149
150
150
151
151
152
153
156
156
157
157
158
162
165
167
167
170
C©u hái vμ bμi tËp
174
Ch−¬ng 12 - Con trá vμ cÊu tróc d÷ liÖu ®éng
176
1. Con trá
1.1 BiÕn tÜnh vμ biÕn ®éng.
1.2 §Þnh nghÜa vμ khai b¸o.
1.3 C¸c phÐp to¸n ®èi víi con trá.
2. BiÕn ®éng.
2.1 CÊp ph¸t vïng nhí vμ truy cËp biÕn ®éng.
2.2 Gi¶i phãng biÕn ®éng, thu håi vïng nhí
3. Con trá kh«ng ®Þnh kiÓu - Pointer
3.1 §Þnh nghÜa
176
176
177
178
179
179
180
180
180
3.2 øng dông
4. Vïng ng¨n xÕp vμ vïng Heap.
4.1 Kh¸i niÖm
4.2 Gi¶i to¶ heap
4.3 VÝ dô minh ho¹ - m¶ng cì lín.
181
182
182
183
183
NguyÔn §×nh Ho¸, ViÖn CNTT - §HQG Hμ néi
vi
LËp tr×nh b»ng Turbo Pascal
C©u hái vμ bμi tËp
184
Ch−¬ng 13
s¸ch & danh s¸ch mãc nèi
Danh
187
1. Danh s¸ch b»ng m¶ng.
1.1 M« h×nh danh s¸ch.
1.2 Danh s¸ch biÓu diÔn b»ng cÊu tróc m¶ng.
1.3 C¸c phÐp to¸n ®èi víi danh s¸ch m¶ng.
1.4 C¸c −u, nh−îc ®iÓm.
1.5 VÝ dô minh ho¹
2. Danh s¸ch kiÓu ng¨n xÕp - Stack.
2.1 §Þnh nghÝa danh s¸ch kiÓu ng¨n xÕp.
2.2 BiÓu diÔn danh s¸ch kiÓu ng¨n xÕp.
2.3 C¸c phÐp to¸n ®èi víi kiÓu ng¨n xÕp.
3. Danh s¸ch kiÓu hμng ®îi - Queue.
3.1 §Þnh nghÜa danh s¸ch kiÓu hμng ®îi.
3.2 BiÓu diÔn danh s¸ch kiÓu hμng ®îi b»ng m¶ng.
3.2 C¸c phÐp to¸n.
4. Danh s¸ch nèi ®¬n.
4.1 M« t¶.
4.2 CÊu tróc mãc nèi.
4.3 C¸c phÐp to¸n.
5. Danh s¸ch nèi kÐp
5.1 CÊu tróc danh s¸ch nèi kÐp.
5.2 C¸c phÐp to¸n víi danh s¸ch nèi kÐp.
6. VÝ dô øng dông cña danh s¸ch mãc nèi.
6.1 C¶i tiÕn ch−¬ng tr×nh qu¶n lÝ hå s¬.
6.2 Ph©n tÝch thiÕt kÕ.
6.3 TriÓn khai chi tiÕt.
187
187
188
188
189
190
193
193
194
194
195
195
196
196
198
198
198
200
202
202
203
205
205
205
207
C©u hái vμ bμi tËp
213
Ch−¬ng 14 - Då ho¹
215
1. C¸c kh¸i niÖm c¬ b¶n
1.1 Hai chÕ ®é hiÓn thÞ mμn h×nh
1.2 Khëi t¹o vμ ®ãng chÕ ®é ®å ho¹
1.3 Mét ch−¬ng tr×nh ®å ho¹ ®¬n gi¶n
1.4 Mμu s¾c, kiÓu nÐt vÏ, kiÓu t« nÒn.
2. C¸c thñ tôc ®å ho¹ th−êng dïng.
2.1 Di chuyÓn, vÏ mét ®iÓm, mét ®o¹n th¼ng.
2.2 C¸c thñ tôc vÏ h×nh.
2.3 Tû lÖ biÓu kiÕn.
2.4 ViÕt ch÷ ra mμn h×nh ®å ho¹
3. C¸c thñ tôc vÒ m«i tr−êng ®å ho¹
3.1 C¸c thñ tôc thiÕt lËp mμu.
3.2 C¸c thñ tôc vÒ mÉu t«, mÉu nÐt vÏ
3.3 ViewPort.
4. VÏ ®å thÞ mét hμm sè
4.1 Ph©n tÝch thiÕt kÕ.
215
215
216
218
218
219
219
220
221
222
224
224
225
229
230
231
NguyÔn §×nh Ho¸, ViÖn CNTT - §HQG Hμ néi
vii
LËp tr×nh b»ng Turbo Pascal
4.2 Ch−¬ng tr×nh chi tiÕt.
4.3 ChuyÓn thμnh ch−¬ng tr×nh con.
5. Lμm ho¹t h×nh.
5.1 Di chuyÓn h×nh vÏ trªn nÒn tr¬n
5.2 Di chuyÓn h×nh vÏ trªn nÒn h×nh ¶nh tÜnh.
5.3 Sö dông phÐp lËt trang mμn h×nh.
232
234
235
235
236
240
C©u hái vμ bμi tËp
242
Ch−¬ng 15 - Th©m nhËp hÖ thèng vμ HÖ ®iÒu hμnh DOS
244
1. Gäi thùc hiÖn c¸c chøc n¨ng ROM-BIOS vμ DOS.
1.1 C¸c thanh ghi cña 8086 vμ ®Þa chØ trong bé nhí
1.2 C¸c ng¾t - interrupt
1.3 Th©m nhËp trùc tiÕp qua thanh ghi vμ ng¾t
1.4 C¸c vÝ dô minh ho¹.
1.5 Sö dông c¸c hμm, thñ tôc cña unit DOS
2. §iÒu khiÓn chuét
2.1 To¹ ®é chuét
2.2 Ng¾t ®iÒu khiÓn chuét $33
2.3 VÝ dô minh ho¹.
2.4 Th− viÖn c¸c thñ tôc thao t¸c chuét.
244
244
245
246
247
250
251
251
252
253
255
2.5 øng dông vμo b¶ng chän.
3. Th©m nhËp trùc tiÕp vμo bé nhí vμ cæng
3.1 Th©m nhËp trùc tiÕp bé nhí.
3.2 Th©m nhËp cæng.
4. Ch−¬ng tr×nh th−êng tró
4.1 Kh¸i niÖm
4.2 C¸ch x©y dùng mét ch−¬ng tr×nh th−êng tró
4.3 VÝ dô minh ho¹.
256
257
257
259
260
260
261
261
C©u hái vμ bμi tËp
265
NguyÔn §×nh Ho¸, ViÖn CNTT - §HQG Hμ néi
viii
LËp tr×nh b»ng Turbo Pascal
Ch−¬ng 1
Giíi thiÖu chung
Pascal lμ mét ng«n ng÷ lËp tr×nh cho m¸y tÝnh, do Niklaus Wirth,
gi¶ng viªn tr−êng §¹i häc KÜ thuËt Zurich, Thuþ sÜ x©y dùng nªn vμo n¨m
1970 víi môc ®Ých ®Ó gi¶ng d¹y.
Lμ ng«n ng÷ lËp tr×nh cÊu tróc, trong s¸ng, dÔ hiÓu, Pascal ®· v−ît ra
khái nhμ tr−êng, ph¸t triÓn thμnh mét ng«n ng÷ m¹nh, cã thÓ dïng ®Ó ph¸t
triÓn ch−¬ng tr×nh chuyªn nghiÖp.
N. Wirth ®· ®−îc gi¶i Turing do c«ng lao s¸ng t¹o vμ phæ biÕn ng«n
ng÷ Pascal.
HiÖn nay ng«n ng÷ lËp tr×nh Pascal cã nhiÒu biÕn thÓ do c¸c c«ng ty
kh¸c nhau bæ xung hoμn thiÖn thªm: TURBO PASCAL cña Borland,
QUICK PASCAL cña Microsoft, ANSI PASCAL ...
Nãi riªng Turbo Pascal còng ®· ®−îc c¶i tiÕn hoμn thiÖn qua nhiÒu
phiªn b¶n, tõ b¶n 1.0 ban ®Çu cho ®Õn b¶n 5.5 n¨m 1989, b¶n 6.0 n¨m 1990,
b¶n 7.0 n¨m 1992.
1. C¸c kh¸i niÖm c¬ b¶n
1.1
Më ®Çu.
Pascal lμ mét ng«n ng÷ lËp tr×nh cÊp cao, nghÜa lμ gÇn víi ng«n ng÷
cña con ng−êi. Kh¸i niÖm cÊp cao, cÊp thÊp cña mét ng«n ng÷ lËp tr×nh m¸y
tÝnh ®Ó nãi nã gÇn h¬n víi ng«n ng÷ con ng−êi hay víi ng«n ng÷ cña m¸y
tÝnh chø kh«ng ph¶i ®Ó nãi vÒ kh¶ n¨ng.
T−¬ng tù nh− ng«n ng÷ th«ng th−êng, Pascal còng sö dông c¸c kÝ tù ®Ó
t¹o nªn c¸c tõ, dïng c¸c "tõ" vμ c¸c yÕu tè c¬ b¶n kh¸c ®Ó t¹o thμnh c¸c
"c©u" cã ý nghÜa x¸c ®Þnh. C¸c "c©u" ®−îc phèi hîp thμnh mét "v¨n b¶n"
hoμn chØnh gäi lμ v¨n b¶n ch−¬ng tr×nh nh»m ra lÖnh cho m¸y tÝnh thùc hiÖn
mét sè c«ng viÖc xö lÝ th«ng tin nμo ®ã.
§Ó minh ho¹ ta xÐt mét v¨n b¶n ch−¬ng tr×nh Pascal sau ®©y
Program HinhTron;
Var BanKinh,ChuVi,DienTich: real;
NguyÔn §×nh Ho¸, ViÖn CNTT - §HQG Hμ néi
1
LËp tr×nh b»ng Turbo Pascal
Begin
Write(' Cho ban kinh = ');
Read(BanKinh);
If BanKinh > 0 then
begin
ChuVi:= 2* pi * BanKinh ;
DienTich:= pi * BanKinh * BanKinh ;
Write(' Chu vi la = ' , ChuVi );
Write(' Dien tich la = ' , DienTich);
End
Else
Write(' Ban kinh am, khong hop le !');
End.
Cã thÓ "dÞch" v¨n b¶n ch−¬ng tr×nh cho m¸y tÝnh trªn thμnh ng«n ng÷
th«ng th−êng nh− sau.
Ch−¬ng tr×nh H×nh Trßn;
C¸c biÕn: B¸n KÝnh, Chu Vi, DiÖn TÝch: lμ sè thùc;
B¾t ®Çu
ViÕt ra mμn h×nh: Cho B¸n KÝnh =
§äc tõ bμn phÝm: B¸n KÝnh.
NÕu B¸n KÝnh > 0 Th×
B¾t ®Çu
ChuVi = 2 x π x B¸n KÝnh.
DiÖnTÝch = π x B¸n KÝnh x B¸n KÝnh.
ViÕt ra: Chu vi lμ = gi¸ trÞ ChuVi (tÝnh ®−îc ë trªn).
ViÕt ra: DiÖn tÝch lμ = gi¸ trÞ DiÖnTÝch (tÝnh ®−îc ë trªn).
KÕt thóc.
Tr¸i l¹i
ViÕt: B¸n KÝnh ©m, Kh«ng hîp lÖ !
KÕt thóc.
1.2
C¸c kÝ tù.
Turbo Pascal sö dông c¸c kÝ tù sau ®©y trong b¶ng m· ASCII:
- C¸c ch÷ c¸i th−êng vμ hoa: a .. z, A .. Z.
- 10 ch÷ sè: 0 .. 9.
- DÊu nèi d−íi: _
- C¸c dÊu phÐp to¸n: + - * / = <>
- Mét sè kÝ hiÖu ®Æc biÖt: . , ; ! ? : ' " ( ) { } [ ] % @ & # $ ^. ý
nghÜa cña nh÷ng kÝ hiÖu nμy ®−îc quy ®Þnh riªng, kh¸c víi c¸ch dïng th«ng
th−êng.
NguyÔn §×nh Ho¸, ViÖn CNTT - §HQG Hμ néi
2
LËp tr×nh b»ng Turbo Pascal
1.3
C¸c tõ kho¸.
Nh×n l¹i ch−¬ng tr×nh vμ b¶n "dÞch" trong vÝ dô trªn ta thÊy c¸c tõ
Program, Var, Real, Begin, If, Then, Else, End lμ nh÷ng thμnh phÇn hÕt søc
quan träng. Chóng phèi hîp víi nhau ®Ó t¹o nªn phÇn khung cña c¸c c©u
lÖnh. §ã lμ c¸c tõ kho¸. C¸c tõ khãa lμ c¸c ®¬n vÞ tõ vùng c¬ së cña mét
ng«n ng÷ lËp tr×nh nãi chung.
Kh¸c víi ng«n ng÷ th«ng th−êng, mét tõ cã thÓ nhiÒu nghÜa, mét ý cã
thÓ viÕt theo nhiÒu c¸ch, mçi tõ kho¸ trong mét ng«n ng÷ lËp tr×nh cã mét ý
nghÜa x¸c ®Þnh chÝnh x¸c, nh÷ng c©u lÖnh ®−îc x©y dùng theo nh÷ng quy t¾c
hÕt søc chÆt chÏ.
D−íi d©y liÖt kª nh÷ng tõ kho¸ cña Turbo Pascal. Y nghÜa vμ c¸ch sö
dông chóng ta sÏ lμm quen dÇn sau nμy.
And
Asm
Array
Begin
Case
Const
Constructor
Destructor
Div
Do
Downto
Else
End
File
For
Function
Goto
If
Implementation
In
Inline
Interface
Label
Mod
Nil
Not
Object
Of
Or
Packed
Procedure
Program
Record
Repeat
Set
Shl
Shr
String
Then
To
Type
Unit
Until
Uses
Var
While
With
Xor
Víi c¸c tõ khãa, Pascal kh«ng ph©n biÖt ch÷ in hoa hay ch÷ th−êng.
Trong v¨n b¶n ch−¬ng tr×nh Pascal ta cã thÓ tuú ý viÕt mét tõ khãa b»ng c¸c
ch÷ c¸i d¹ng in th−êng hay in hoa hoÆc xen kÏ c¶ hai d¹ng.
1.4
Tªn - Identifier
Nh×n l¹i ch−¬ng tr×nh trong vÝ dô ë trªn, ngoμi c¸c tõ kho¸ ta thÊy cßn
cã c¸c thμnh phÇn kh¸c nh− BanKinh, ChuVi, DienTich. Chóng lμ tªn cña
c¸c ®èi t−îng mμ ta xö lÝ trong ch−¬ng tr×nh.
Quy ®Þnh ®Æt tªn trong Pascal nh− sau:
- Tªn lμ x©u kÝ tù gåm ch÷ c¸i , ch÷ sè, dÊu nèi d−íi ( _ ).
- Tªn kh«ng ®−îc chøa dÊu c¸ch;
- Tªn kh«ng ®−îc b¾t ®Çu b»ng sè;
- Tªn cã thÓ dμi tuú ý nh−ng chØ cã 63 kÝ tù ®Çu tiªn lμ cã ý nghÜa;
- Tªn kh«ng ®−îc trïng víi tõ kho¸;
Nªn ®Æt tªn ph¶n ¸nh ®óng néi dung cña ®èi t−îng, gîi nhí. Tr¸nh
kiÓu ®Æt tªn kh«ng mang l¹i th«ng tin g× bæ Ých, vÝ dô: prog01, baitap02 ...
NguyÔn §×nh Ho¸, ViÖn CNTT - §HQG Hμ néi
3
LËp tr×nh b»ng Turbo Pascal
Gièng nh− ®èi víi c¸c tõ khãa, trong v¨n b¶n ch−¬ng tr×nh Pascal, c¸c
tªn còng ®−îc viÕt b»ng c¸c ch÷ c¸i d¹ng in th−êng hay in hoa, kh«ng ph©n
biÖt. BanKinh hay bankinh ®Òu chØ lμ mét tªn. Ta cã thÓ chän mét phong
c¸ch viÕt thÝch hîp.
§Ó t¸ch c¸c ©m tiÕt cho dÔ ®äc cã thÓ dïng dÊu nèi d−íi ( _ ) hoÆc
viÕt hoa ch÷ c¸i ®Çu tiªn cña mçi ©m tiÕt, vÝ dô: giai_pt_bac_hai, dinh_thuc,
HeSo, BanKinh , DienTich... Trong tμi liÖu nμy sÏ dïng c¸ch viÕt hoa ch÷ c¸i
®Çu cña mçi ©m tiÕt.
Kh¸i niÖn tªn (identifier - ID) ë ®©y chÝnh x¸c vμ chÆt chÏ h¬n kh¸i
niÖm tªn gäi th«ng th−êng (name). Tªn ph¶i ®¶m b¶o ®óng quy ®Þnh, kh«ng
trïng lÆp, t−¬ng øng mét-mét gi÷a tªn vμ ®èi t−îng g¾n víi nã.
1.5
Tªn chuÈn
Tªn chuÈn lμ tªn mμ Pascal ®· sö dông, cã mét ý nghÜa hoμn toμn x¸c
®Þnh trong m«i tr−êng Pascal. Trong vÝ dô trªn c¸c thμnh phÇn Read, Write
lμ c¸c tªn chuÈn. §ã lμ tªn cña hai thñ tôc cã s½n trong Turbo Pascal.
Tªn chuÈn kh¸c tõ kho¸ ë chç, cã thÓ dïng l¹i tªn nμy vμo viÖc kh¸c, ®Þnh
nghÜa l¹i víi nghÜa míi kh¸c ®i, do ng−êi dïng quy ®Þnh. Tuy nhiªn kh«ng
nªn lμm thÕ v× mäi thay ®æi kh¸c lÖ th−êng, ®Òu dÔ ®−a ®Õn nhÇm lÉn.
C¸c tªn chuÈn bao gåm
- C¸c kiÓu d÷ liÖu: boolean, char, integer, real, byte, text...;
- C¸c h»ng kiÓu l« gic: false, true ;
- C¸c hμm, thñ tôc chuÈn ®· lμm s½n:
chr, odd, abs, sqr, sqrt, exp, ln ..
arctan, cos, sin, ..
eof, eoln, read, readln, write, writeln..
1.6 C©u lÖnh
Sö dông c¸c tõ kho¸ cña ng«n ng÷ Pascal, c¸c tªn ®èi t−îng, c¸c dÊu
phÐp to¸n vμ c¸c kÝ hiÖu ®Æc biÖt kh¸c, ng−êi lËp tr×nh viÕt c¸c c©u lÖnh. C©u
lÖnh lμ mét chØ thÞ cho m¸y tÝnh thùc hiÖn mét thao t¸c tÝnh to¸n, xö lÝ nμo ®ã.
VÝ dô,
DienTich:= pi * BanKinh * BanKinh ;
lμ mét c©u lÖnh yªu cÇu m¸y tÝnh b×nh ph−¬ng b¸n kÝnh nh©n víi sè π råi
g¸n cho diÖn tÝch h×nh trßn.
Cã thÓ viÕt nhiÒu c©u lÖnh trªn mét dßng. Ph¶i dïng dÊu chÊm phÈy
“ ; ” ®Ó ng¨n c¸ch hai c©u lÖnh dï lμ trªn cïng mét dßng hay trªn hai dßng
kh¸c nhau.
Mét v¨n b¶n ch−¬ng tr×nh lμ mét tËp hîp c¸c c©u lÖnh, ®iÒu khiÓn m¸y
tÝnh hoμn thμnh mét c«ng viÖc nhÊt ®Þnh nμo ®ã. C¸c c©u lÖnh nμy ®−îc viÕt
tu©n theo mét quy ®Þnh hÕt søc chÆt chÏ vμ chÝnh x¸c. Mçi ng«n ng÷ lËp tr×nh
NguyÔn §×nh Ho¸, ViÖn CNTT - §HQG Hμ néi
4
LËp tr×nh b»ng Turbo Pascal
2. Ph¸t triÓn mét ch−¬ng tr×nh Pascal
2.1
CÊu tróc mét ch−¬ng tr×nh Turbo Pascal.
§Ó cho dÔ hiÓu tõ ®©y ta quy −íc khi tr×nh bμy c¸c thμnh phÇn có ph¸p
cña Pascal ta sÏ dïng c¸ch nhÊn m¹nh b»ng ch÷ in nghiªng ®Ó chØ nh÷ng
phÇn mμ ng−êi lËp tr×nh cÇn ®iÒn vμo tuú theo tõng tr−êng hîp cô thÓ. Nh÷ng
tõ kho¸, tªn chuÈn... cña ng«n ng÷ Pascal lμ phÇn khung ph¶i gi÷ nguyªn
kh«ng ®−îc thay ®æi sÏ ®−îc thÓ hiÖn b»ng kiÓu ch÷ ®øng ®Ëm h¬n.
2.1.1 C¸c thμnh phÇn
VÒ cÊu tróc, mét ch−¬ng tr×nh Pascal gåm 3 phÇn: phÇn tªn, phÇn khai
b¸o, phÇn th©n.
Program tªn ch−¬ng tr×nh ;
Uses danh s¸ch c¸c unit ;
Const c¸c khai b¸o h»ng ;
Type c¸c khai b¸o kiÓu ;
Var c¸c khai b¸o biÕn ;
Procedure .... ;
Function .... ;
PhÇn tªn
PhÇn khai b¸o
PhÇn c¸c ch−¬ng tr×nh con.
BEGIN
c¸c c©u lÖnh cña ch−¬ng tr×nh;
PhÇn th©n
END .
PhÇn tªn cã thÓ kh«ng cã.
PhÇn khai b¸o ph¶i theo ®óng tr×nh tù c¸c môc: uses, const, type,
var,v.v. Cã thÓ lÆp l¹i c¸c tõ kho¸ ë trªn nhiÒu lÇn, trªn nhiÒu dßng nÕu nh−
cã nhiÒu néi dung. PhÇn khai b¸o cã thÓ kh«ng cã.
PhÇn th©n ch−¬ng tr×nh b¾t buéc ph¶i cã ! L−u ý r»ng v¨n b¶n ch−¬ng
tr×nh kÕt thóc víi tõ kho¸ END kÌm dÊu chÊm “.”
PhÇn khai b¸o cã thÓ ph©n chia chi tiÕt h¬n. Víi c¸c ch−¬ng tr×nh lín,
sau khai b¸o danh s¸ch c¸c th− viÖn hμm, thñ tôc lμm s½n (c¸c unit), khai b¸o
c¸c h»ng, c¸c kiÓu d÷ liÖu, c¸c biÕn sÏ lμ phÇn dμnh cho c¸c ch−¬ng tr×nh con.
NguyÔn §×nh Ho¸, ViÖn CNTT - §HQG Hμ néi
5
LËp tr×nh b»ng Turbo Pascal
ë ®©y cã khai b¸o nguyªn mÉu (tøc lμ tªn, danh s¸ch tham sè, kiÓu kÕt qu¶
tr¶ vÒ) cña mçi ch−¬ng tr×nh con kÌm triÓn khai chi tiÕt cña chóng. Ta sÏ t×m
hiÓu kÜ h¬n sau nμy trong ch−¬ng "Ch−¬ng tr×nh con".
2.1.2 Chó thÝch trong ch−¬ng tr×nh Pascal.
Trong v¨n b¶n ch−¬ng tr×nh th−êng xen lÉn c¸c lêi chó thÝch nh»m
môc ®Ých cung cÊp c¸c th«ng tin bæ xung hoÆc gi¶i thÝch ý nghÜa, néi dung
c©u lÖnh cho ng−êi ®äc dÔ hiÓu h¬n. Tr×nh biªn dÞch hoμn toμn bá qua c¸c
chó thÝch. Có ph¸p ng«n ng÷ Pascal quy ®Þnh ®o¹n lêi chó thÝch ph¶i ®Æt gi÷a
cÆp dÊu ngoÆc nhän “{ , }” hoÆc cÆp dÊu ngoÆc ®¬n kÌm dÊu sao “(* , *)”.
§o¹n chó thÝch cã thÓ trªn mét dßng hay nhiÒu dßng.
VÝ dô:
.. ..
{ nghiÖm thø nhÊt }
x1:= ( -b + sqrt (b*b – 4*a*c)) / (2*a);
.. ..
hoÆc
.. ..
(* nghiÖm thø nhÊt *)
x1:= ( -b + sqrt (b*b – 4*a*c)) / (2*a);
2.1.3 VÝ dô mét ch−¬ng tr×nh Pascal
Ch−¬ng tr×nh Pascal ®¬n gi¶n sau ®©y sÏ lμm s¹ch mμn h×nh vμ in ra dßng
ch÷ "Xin Chμo B¹n !" t¹i gãc trªn tr¸i cña mμn h×nh.
program ChaoMung;
uses crt;
Begin
Clrscr;
Write(' Xin Chao Ban ! ');
Readln;
End.
2.2
C¸c b−íc x©y dùng ch−¬ng tr×nh.
X©y dùng ch−¬ng tr×nh gi¶i quyÕt mét bμi to¸n cô thÓ cÇn tr¶i qua c¸c
b−íc nh− sau: x¸c ®Þnh râ yªu cÇu cña bμi to¸n cÇn ph¶i lμm g×; ph©n tÝch néi
dung; thiÕt kÕ thuËt gi¶i; triÓn khai viÕt ch−¬ng tr×nh vμ ch¹y thö kiÓm tra. ë
®©y ta chØ tr×nh bμy nh÷ng c«ng viÖc c¬ b¶n nhÊt cña hai b−íc cuèi cïng lμ
viÕt ch−¬ng tr×nh vμ ch¹y thö.
2.2.1 ViÕt v¨n b¶n ch−¬ng tr×nh.
Sau khi ®· cã thuËt gi¶i, cã thÓ triÓn khai viÕt v¨n b¶n ch−¬ng tr×nh.
V¨n b¶n ch−¬ng tr×nh lμ mét tÖp v¨n b¶n, nghÜa lμ gåm c¸c kÝ tù trong b¶ng
NguyÔn §×nh Ho¸, ViÖn CNTT - §HQG Hμ néi
6
LËp tr×nh b»ng Turbo Pascal
2.2.2 Biªn dÞch vμ liªn kÕt.
TÖp v¨n b¶n ch−¬ng tr×nh gåm c¸c c©u lÖnh gÇn víi ng«n ng÷ th«ng
th−êng, dÔ hiÓu víi con ng−êi, nh−ng kh«ng ph¶i lμ ng«n ng÷ cña m¸y tÝnh.
§Ó m¸y tÝnh hiÓu vμ thùc thi ®−îc c¸c c©u lÖnh cÇn ph¶i biªn dÞch ch−¬ng
tr×nh tõ tÖp m· nguån Pascal thμnh tÖp m· m¸y.
Trong qu¸ tr×nh biªn dÞch cã thÓ m¸y sÏ ph¸t hiÖn ra c¸c lçi có ph¸p syntax error. Ta cÇn söa ch÷a ®Ó ®¶m b¶o ch−¬ng tr×nh hÕt lçi có ph¸p, ®−îc
biªn dÞch thμnh c«ng vμ liªn kÕt thμnh tÖp thi hμnh ®−îc.
2.2.3 Ch¹y thö vμ söa lçi
Gièng nh− mét bμi v¨n gåm toμn nh÷ng c©u ®óng ng÷ ph¸p nh−ng v«
lý, kh«ng thÓ hiÓu ®−îc, mét ch−¬ng tr×nh ®· ®óng có ph¸p cã thÓ vÉn ch−a
ch¹y th«ng ®−îc. M¸y dõng khi ch−¬ng tr×nh thùc hiÖn nöa chõng. Lóc nμy
lμ lçi khi ch¹y ch−¬ng tr×nh - run time error.
Ngay khi ch−¬ng tr×nh ®· ch¹y th«ng còng vÉn cã thÓ cho kÕt qu¶ sai.
§©y lμ lçi néi dung thuËt gi¶i. CÇn ph¶i söa l¹i thuËt gi¶i ®Ó ®¶m b¶o ch−¬ng
tr×nh cho kÕt qu¶ ®óng nh− mong muèn.
Mét bμi to¸n th−êng cã nhiÒu tr−êng hîp kh¸c nhau. VÝ dô, ch−¬ng
tr×nh gi¶i ph−¬ng tr×nh bËc hai sÏ cã ba tr−êng hîp kh¸c nhau øng víi gi¸ trÞ
cña biÖt thøc (Delta) lμ ©m, d−¬ng hay b»ng kh«ng. Ch−¬ng tr×nh ®· ch¹y
®óng víi tr−êng hîp nμy cã thÓ vÉn ch−a ®óng hoÆc thËm chÝ kh«ng ch¹y
th«ng ®−îc cho tr−êng hîp kh¸c. CÇn ch¹y thö ch−¬ng tr×nh víi nhiÒu bé d÷
liÖu ®Çu vμo kh¸c nhau ®Ó kiÓm tra tÝnh ®óng ®¾n cña ch−¬ng tr×nh trong mäi
tr−êng hîp cã thÓ x¶y ra.
3. M«i tr−êng ph¸t triÓn tÝch hîp Turbo Pascal.
3.1
C¸c c«ng cô ph¸t triÓn.
Nh− ®· tr×nh bμy ë trªn, viÖc triÓn khai mét ch−¬ng tr×nh Pascal cÇn
tiÕn hμnh nhiÒu b−íc, tõ so¹n th¶o v¨n b¶n ch−¬ng tr×nh cho ®Õn biªn dÞch,
liªn kÕt, ch¹y thö vμ söa lçi. Mçi b−íc nh− vËy ®Òu cÇn cã mét c«ng cô hç
trî t−¬ng øng. §Ó so¹n th¶o v¨n b¶n ch−¬ng tr×nh cÇn dïng mét bé so¹n th¶o
– Editor. §Ó biªn dÞch ch−¬ng tr×nh cÇn cã tr×nh biªn dÞch – Compiler. §Ó
liªn kÕt c¸c ®o¹n m· sau biªn dÞch thμnh ch−¬ng tr×nh cÇn dïng tr×nh liªn kÕt
– Linker. Tr×nh hç trî ph¸t hiÖn vμ söa lçi gäi lμ Debuger. Turbo Pascal ®·
kÕt hîp tÊt c¶ c¸c c«ng cô cÇn thiÕt thμnh mét tæng thÓ hoμn chØnh, cho phÐp
dÔ dμng thùc hiÖn mçi b−íc vμ chuyÓn tiÕp gi÷a c¸c b−íc. §ã lμ m«i tr−êng
NguyÔn §×nh Ho¸, ViÖn CNTT - §HQG Hμ néi
7
LËp tr×nh b»ng Turbo Pascal
ph¸t triÓn tÝch hîp (IDE - Integrated Development Environment) cña Turbo
Pascal.
Bé phÇn mÒm Turbo Pascal gåm nhiÒu tÖp. D−íi ®©y lμ mét sè tÖp
chÝnh.
- Turbo.exe: so¹n th¶o, biªn dÞch, liªn kÕt, söa lçi, trî gióp.v.v. §©y lμ
tÖp chÝnh t¹o nªn m«i tr−êng ph¸t triÓn tÝch hîp cña Turbo Pascal.
- Turbo.tpl : (Turbo Pascal Library) th− viÖn chuÈn phôc vô cho
turbo.exe.
- Graph.tpu: (Turbo Pascal Units) th− viÖn ch−¬ng tr×nh vÒ ®å ho¹
- *.CHR
: c¸c ph«ng ch÷ trong chÕ ®é ®å ho¹
- *.BGI
: (Borland Graphics Interfaces) c¸c tr×nh ®iÒu khiÓn mμn
h×nh ®å ho¹ cña Borland.
3.2
C¸c chøc n¨ng vµ c¸ch dïng.
§Ó më m«i tr−êng ph¸t triÓn Turbo Pascal cÇn ph¶i cho ch¹y tÖp
Turbo.exe. Sau nhiÒu lÇn c¶i tiÕn, phiªn b¶n phæ biÕn hiÖn nay lμ Turbo
Pascal 7.0. PhÇn tr×nh bμy d−íi ®©y lμ c¨n cø trªn phiªn b¶n nμy.
3.2.1 Mμn h×nh lμm viÖc
Sau khi khëi ®éng sÏ hiÖn ra mμn h×nh ®Ó b¾t ®Çu viÖc so¹n th¶o, biªn
dÞch, ch¹y thö vμ söa lçi ch−¬ng tr×nh. Trªn ®Ønh mμn h×nh lμ thanh chän
chÝnh. D−íi ®¸y mμn h×nh lμ dßng nh¾c lÖnh. ë gi÷a lμ vïng lμm viÖc.
Thanh chän chÝnh
File Edit Search Run Compile Debug Tools Options Window Help
Vïng lμm viÖc
F1 Help F2 Save F3 Open Alt+F9 Compile F9 Make Alt+F10 ...
Dßng nh¾c lÖnh
Mçi môc tªn trªn thanh chän chÝnh cho phÐp më ra mét b¶ng chän
bu«ng xuèng. Mçi b¶ng chän bu«ng xuèng chøa nhiÒu môc chän thùc hiÖn
c¸c c«ng viÖc kh¸c nhau. Tªn c¸c b¶ng chän, môc chän ph¶n ¸nh kh¸ chÝnh
x¸c néi dung c«ng viÖc mμ nã thùc hiÖn.
NguyÔn §×nh Ho¸, ViÖn CNTT - §HQG Hμ néi
8
LËp tr×nh b»ng Turbo Pascal
Gâ Alt + ch÷ c¸i ®−îc lμm næi bËt ®Ó më c¸c b¶ng chän bu«ng
xuèng t−¬ng øng. VÝ dô, gâ Alt + F ®Ó më b¶ng chän File, gâ Alt + E ®Ó më
b¶ng chän Edit, gâ Alt + S ®Ó më b¶ng chän Search, v.v. Còng cã thÓ dïng
c¸c phÝm mòi tªn sang ph¶i, sang tr¸i ®Ó di chuyÓn trªn thanh chän chÝnh vμ
gâ Enter ®Ó më b¶ng chän bu«ng xuèng t¹i vÞ trÝ ®ã.
Dßng nh¾c lÖnh gåm nhiÒu cÆp phÝm gâ t¾t - tªn lÖnh cho biÕt c¸ch
thùc hiÖn nhanh c¸c lÖnh hay dïng. CÆp F1 Help nghÜa lμ gâ phÝm F1 ®Ó më
phÇn trî gióp, cÆp Alt+F9 Compile nghÜa lμ gâ tæ hîp phÝm Alt - F9 ®Ó
thùc hiÖn biªn dÞch,v.v..
3.2.2 C¸c b¶ng chän
Sau ®©y lμ néi dung cña c¸c b¶ng chän vμ chøc n¨ng cña c¸c môc chän
chøa trong ®ã. Y nghÜa cña c¸c môc chän sÏ ®−îc t×m hiÓu kÜ h¬n khi gÆp
vÊn ®Ò cã liªn quan.
- B¶ng chän File.
B¶ng chän File tËp hîp c¸c thao t¸c víi tÖp v¨n b¶n ch−ong tr×nh.
New
Open ...
Save
F3
F2
Save as ...
Save all
____________
Change dir ...
Print
Printer setup...
DOS shell
Exit
Alt+X
____________
....
Më cöa sæ so¹n th¶o míi
Më tÖp ®· cã trªn ®Üa ®Ó söa ch÷a, viÕt tiÕp
Ghi l−u tÖp ch−¬ng tr×nh ®ang so¹n th¶o lªn ®Üa víi
tªn cò
Ghi l−u tÖp ch−¬ng tr×nh ®ang so¹n th¶o lªn ®Üa víi
tªn kh¸c
Ghi l−u tÊt c¶ c¸c tÖp ®ang më trong c¸c cöa sæ
so¹n th¶o
ChuyÓn sang lμm viÖc ë th− môc kh¸c.
In v¨n b¶n ch−¬ng tr×nh ra m¸y in
ThiÕt ®Æt c¸c tham sè cho thao t¸c in
T¹m vÒ DOS,
Tho¸t h¼n khái m«i tr−êng Turbo Pascal trë vÒ DOS.
L−u ý r»ng ë bªn ph¶i, c¹nh mét sè tªn môc chän hay dïng cã ghi
kÌm c¸c phÝm gâ t¾t øng víi môc chän ®ã.
- B¶ng chän Edit.
B¶ng chän nμy cã nhiÒu chøc n¨ng hç trî cho viÖc so¹n th¶o v¨n b¶n
ch−¬ng tr×nh nh− sao chÐp, c¾t d¸n. Tr−íc khi thùc hiÖn sao chÐp, c¾t d¸n,
v.v. cÇn ®¸nh dÊu khèi v¨n b¶n b»ng c¸ch nhÊn tæ hîp phÝm Shift + c¸c phÝm
mòi tªn lªn, xuèng, sang ph¶i, sang tr¸i.
NguyÔn §×nh Ho¸, ViÖn CNTT - §HQG Hμ néi
9
LËp tr×nh b»ng Turbo Pascal
Undo Alt+ BkSp Ho·n viÖc võa nhì lμm.
Redo
LÆp l¹i viÖc võa lμm.
___________
Cut
Shift + Del C¾t bá vμ chÐp vμo vïng ®Öm
Copy Ctrl + Ins
Sao vμo vïng ®Öm
Paste Shift + ins
D¸n (tõ vïng ®Öm) vμo vÞ trÝ tõ chç con ch¹y
Clear Ctrl + Del Xo¸ ®o¹n ®· ®· ®¸nh dÊu.
____________
Show clipboard
HiÓn thÞ vïng ®Öm.
- B¶ng chän Run
B¶ng chän Run gåm nhiÒu chøc n¨ng ®Ó cho thùc hiÖn ch−¬ng tr×nh
trong c¸c chÕ ®é kh¸c nhau. Cã thÓ theo dâi ho¹t ®éng cña ch−¬ng tr×nh tõng
chÆng mét, thËm chÝ tõng b−íc mét, qua tõng c©u lÖnh. Gâ Enter ®Ó sang
b−íc tiÕp theo.
Run
Ctrl + F9
Step over
F8
Trace into
F7
Go to cursor
F4
Program reset
....
DÞch vμ ch¹y thö.
Thùc hiÖn tõng b−íc, tõng c©u lÖnh cña ch−¬ng
tr×nh. Lêi gäi ch−¬ng tr×nh con coi lμ mét b−íc.
Thùc hiÖn tõng b−íc, tõng c©u lÖnh, kÓ c¶ vμo trong
ch−¬ng tr×nh con
Thùc hiÖn ch−¬ng tr×nh cho ®Õn dßng lÖnh cã con
ch¹y
Trë l¹i chÕ ®é ch¹y b×nh th−êng.
- B¶ng chän Compile
B¶ng chän nμy cho phÐp thiÕt lËp c¸c lùa chän kh¸c nhau khi biªn dÞch
vμ liªn kÕt ch−¬ng tr×nh. Theo mÆc ®Þnh, sÏ biªn dÞch v¨n b¶n ch−¬ng tr×nh
trong cöa sæ so¹n th¶o ®ang lμm viÖc. §ã lμ tÖp m· nguån, cã ®u«i *.PAS .
TÖp kÕt qu¶ sau biªn dÞch vμ liªn kÕt lμ tÖp thi hμnh - executable, cã tªn trïng
víi tªn tÖp m· nguån nh−ng cã ®u«i *.EXE.
Víi ch−¬ng tr×nh lín, cã thÓ nhiÒu tÖp m· nguån. Trong ®ã chØ cã mét
tÖp lμ tÖp chÝnh – Primary File. C¸c tÖp kh¸c lμ tÖp phô kÌm theo, bæ xung
cho tÖp chÝnh. Lùa chän Primary File cho phÐp thiÕt lËp tªn tÖp m· nguån
chÝnh. Dï ta ®ang so¹n th¶o mét tÖp kh¸c, tÖp m· nguån chÝnh thËm chÝ cã
thÓ kh«ng ®−îc më, viÖc biªn dÞch vÉn b¾t ®Çu tõ Primary File.
Compile
Make
Build
Alt + F9
F9
DÞch tÖp v¨n b¶n ch−¬ng tr×nh ®ang cã.
DÞch vμ liªn kÕt
NguyÔn §×nh Ho¸, ViÖn CNTT - §HQG Hμ néi
10
LËp tr×nh b»ng Turbo Pascal
____________
Destination
Memory
Primary file ...
Clear primary file
____________
Infomation
Th− môc ®Ó ghi tÖp kÕt qu¶.
Ghi tÖp *.exe nhËn ®−îc vμo bé nhí hay vμo ®Üa
Memory / Disk
ThiÕt lËp tÖp m· nguån chÝnh.
Bá thiÕt lËp tÖp m· nguån chÝnh.
- B¶ng chän Windows
B¶ng chän Window ®Ó thao t¸c víi c¸c cöa sæ kh¸c nhau ®ang ®−îc
më. L−u ý r»ng, t¹i mét thêi ®iÓm cã thÓ ®ang më nhiÒu cöa sæ nh−ng chØ cã
mét cöa sæ ®ang lμm viÖc – Active Window. Cã thÓ lùa chän cho phÐp cöa
sæ ®ang lμm viÖc ®Ì lªn trªn, che khuÊt c¸c cöa sæ cßn l¹i – Cascade, hay
n»m bªn c¹nh c¸c cöa sæ kh¸c, kh«ng che khuÊt nhau, gièng nh− l¸t g¹ch
nÒn nhμ – Tile.
Cã thÓ h×nh dung c¸c cöa sæ ®· ®−îc më ra xÕp thμnh d·y cã tr×nh tù
tr−íc sau theo thêi ®iÓm ®−îc më. Di chuyÓn Next, Previous lμ ®èi víi d·y
theo tr×nh tù nãi trªn.
Tile
Cascade
Close all
Refresh display
_____________
Size/Move Ctrl + F5
Zoom
F5
Next
F6
Previous Shift + F6
Close
Alt + F3
_____________
List ...
3.3
XÕp c¸c cöa sæ c¹nh nhau
XÕp c¸c cöa sæ ®Ì lªn nhau
§ãng mäi cöa sæ ®ang më
Lμm t−¬i l¹i mμn h×nh
Co gi·n tõng chiÒu / Di chuyÓn
Phãng to, thu nhá
ChuyÓn sang lμm viÖc ë cöa sæ tiÕp theo
Lïi vÒ cöa sæ liÒn ngay tr−íc
§ãng cöa sæ hiÖn hμnh
HiÖn danh s¸ch tªn c¸c cöa sæ ®ang më (®Ó chän).
Chän c¸i nμo th× cöa sæ ®ã thμnh cöa sæ lμm viÖc.
C¸c b−íc x©y dùng mét ch−¬ng tr×nh trong m«i tr−êng Turbo Pascal
- Khëi ®éng Turbo Pascal.
- Më tÖp ®Ó so¹n th¶o v¨n b¶n ch−¬ng tr×nh: më b¶ng chän File ,
chän New ®Ó më tÖp míi, hoÆc Open (F3) ®Ó më tÖp ®· cã trªn ®Üa.
-So¹n th¶o v¨n b¶n ch−¬ng tr×nh. Theo mÆc ®Þnh mμn h×nh so¹n th¶o
cña Turbo Pascal sÏ cã ch÷ mμu vμng trªn nÒn xanh d−¬ng. Phiªn b¶n Turbo
NguyÔn §×nh Ho¸, ViÖn CNTT - §HQG Hμ néi
11
LËp tr×nh b»ng Turbo Pascal
Pascal 7.0 cßn hç trî cho ng−êi lËp tr×nh qua viÖc hiÓn thÞ c¸c tõ kho¸ b»ng
ch÷ mμu tr¾ng.
- Ghi l−u vμo ®Üa. LÇn ®Çu tÖp ch−a cã tªn, khung cöa sæ so¹n th¶o t¹m
®−îc ®Æt tªn lμ NoName00.pas. Ph¶i më b¶ng chän File, chän Save as ...
vμ ®Æt tªn cho tÖp ch−¬ng tr×nh. Tªp sÏ ®−îc ghi l¹i víi tªn ®· chän vμ
®u«i .pas theo mÆc ®Þnh.
- DÞch vμ söa lçi có ph¸p (Alt + F9 hoÆc F9). NÕu cã lçi có ph¸p sÏ
xuÊt hiÖn mét th«ng b¸o lçi mμu ®á. VÞ trÝ cã lçi th−êng ë ngay tr−íc con
ch¹y ®ang nhÊp nh¸y trªn mμn h×nh. NÕu dÞch thμnh c«ng, mét tÖp ch¹y ®−îc
(cã ®u«i .exe) cã tªn trïng víi tªn tÖp v¨n b¶n ch−¬ng tr×nh sÏ ®−îc t¹o ra.
DÞch vμ ch¹y ch−¬ng tr×nh (Ctrl + F9). NÕu ®· hÕt lçi có ph¸p, dÞch thμnh
c«ng, th× m¸y sÏ t¹m tho¸t khái m«i tr−êng tÝch hîp cña Turbo Pascal, trë vÒ
DOS vμ cho thùc hiÖn tÖp *.exe v−μ t¹o ra.
- Xem kÕt qu¶ (Alt + F5). NÕu ch−¬ng tr×nh ch¹y th«ng, nghÜa lμ
kh«ng bÞ dõng gi÷a chõng do lçi khi ch¹y ch−¬ng tr×nh - run time error, th×
khi kÕt thóc thùc hiÖn ch−¬ng tr×nh m¸y sÏ lËp tøc trë l¹i ngay m«i tr−êng
ph¸t triÓn cña Turbo Pascal. Ta kh«ng kÞp xem c¸c kÕt qu¶ mμ ch−¬ng tr×nh
®· hiÓn thÞ ra mμn h×nh DOS. Gâ Alt + F5 ®Ó cho hiÖn l¹i mμn h×nh nμy.
Còng v× lÝ do nμy mμ nhiÒu ng−êi thªm c©u lÖnh Readln vμo cuèi ch−¬ng
tr×nh ®Ó chê gâ phÝm Enter, cã thêi gian ®Ó xem kÕt qu¶.
B©y giê ®· cã thÓ sö dông m«i tr−êng ph¸t triÓn cña Turbo Pascal ®Ó
so¹n th¶o v¨n b¶n ch−¬ng tr×nh, dÞch vμ ch¹y thö ch−¬ng tr×nh ®¬n gi¶n ®·
nªu trong tiÕt tr−íc.
C©u hái vμ bμI tËp
1. Tõ kho¸ lμ g×, tõ kho¸ kh¸c tªn chuÈn ë chç nμo.
2. T×m trong c¸c tõ sau ®©y ®©u lμ tõ kho¸, tªn chuÈn, tªn ®óng vμ kh«ng
®óng quy ®Þnh cña Turbo Pascal:
End
XYZ123
123ABC
Tong So
Prog#2
Write
X=Y
Read
'MaxSize' Tyle
"Delta"
TimThay?
3. a) Nªu c¸ch chÌn thªm chó thÝch vμo mét ch−¬ng tr×nh Pascal.
b) C¸c chó thÝch dïng ®Ó lμm g×.
c) ViÕt ®o¹n chó thÝch nh− sau cã ®óng kh«ng ?
{ Ch−¬ng tr×nh gi¶i ph−¬ng tr×nh bËc hai {gi¶ thiÕt a <> 0}, t¸c gi¶
NguyÔn V¨n A}.
4. Khung cÊu tróc cña mét ch−¬ng tr×nh Pascal gåm cã mÊy phÇn. PhÇn nμo
b¾t buéc ph¶i cã. H·y viÕt mét ch−¬ng tr×nh Pascal ng¾n nhÊt cã thÓ.
NguyÔn §×nh Ho¸, ViÖn CNTT - §HQG Hμ néi
12
- Xem thêm -