Turbo Pascal:
1. Nguồn gốc
Pascal là một trong các ngôn ngữ lập trình cấp cao được giáo sư Niklaus Wirth ở trường kĩ thuật Zurich (Thụy Sĩ ) thiết kế và công bố vào năm 1971. Ông đặt tên cho ngôn ngữ này là Pascal để tưởng nhớ đến Blaise Pascal, nhà toán học, triết học nổi tiếng của Pháp ở thế kỉ XVII, người đã sáng chế ra máy tính cơ khí đầu tiên cho nhân loại.
Ngày nay, Pascal là một trong những ngôn ngữ lập trình bậc cao ưu việt nhất trong lĩnh vực giảng dạy và lập trình chuyên nghiệp.
2. Tính chất cơ bản:
144 trang |
Chia sẻ: vivian | Lượt xem: 1171 | Lượt tải: 0
Bạn đang xem trước 20 trang tài liệu Bài giảng Bài 1: Khái quát về ngôn ngữ lập trình pascal, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
coù taùc duïng, chöông trình hay unit cuûa baïn coù theå quaù to ñeå dòch trong soá löôïng boä nhôù hieän coù. Baïn phaûi chia nhoû thaønh hai hay nhieàu caùc khoái nhoû hôn.
142
Overflow in arithmetic operation
Keát quaû cuûa caùc pheùp toaùn soá hoïc tröôùc khoâng naèm trong phaïm vi soá nguyeân daøi (-21474836482147483647). Hieäu chænh pheùp toaùn hoaëc duøng giaù trò kieåu soá thöïc thay theá cho giaù trò kieåu nguyeân
143
Path not found
- Do caùc thuû tuïc Reset, Append, Rename, Rewrite, hoaëc Erase baùo laïi neáu teân gaùn cho bieán file khoâng hôïp leä hoaëc xaùc ñònh moät thö muïc con khoâng toàn taïi.
- Do caùc thuû tuïc ChDir, MkDir, hoaëc RmDir baùo laïi neáu ñöôøng daãn khoâng hôïp leä hoaëc chæ ra moät thö muïc con khoâng toàn taïi
144
Pointer expression expected
Bieåu thöùc phía tröôùc phaûi laø kieåu con troû
145
Pointer or procedural variable expected
Haøm chuaån Assigned yeâu caàu ñoái soá laø moät bieán con troû hoaëc kieåu thuû tuïc
146
Pointer type identifier expected
Ñònh danh (teân) khoâng theå hieän moät kieåu con troû maø ñaùng ra noù coù
147
Pointer variable expected
Bieán phía tröôùc phaûi laø kieåu con troû
148
Procedure or function identifier expected
Meänh ñeà exports chæ duøng ñeå xuaát caùc thuû tuïc vaø haøm
149
Range check error
Loãi naøy do caùc leänh ñöôïc dòch trong traïng thaùi {$R+} baùo laïi khi moät trong caùc tình huoáng sau xaûy ra:
Bieåu thöùc chæ soá cuûa moät maûng vöôït ra ngoaøi phaïm vi.
Baïn ñang coá gaéng gaùn moät giaù trò vöôït ra ngoaøi phaïm vi cho moät bieán.
Baïn ñang coá gaéng gaùn moät giaù trò vöôït ra ngoaøi phaïm vi cho tham soá cuûa moät haøm hay moät bieán
150
Record or object variable expected
Bieán phía tröôùc phaûi laø kieåu baûn ghi hay kieåu object
151
Set base type out of range
Kieåu cô baûn cuûa taäp hôïp phaûi laø moät taäp con 0..255 hoaëc laø kieåu lieät keâ coù khoâng nhieàu hôn 256 giaù trò
152
Stack overflow error
- Loãi naøy ñöôïc baùo caùo treân ñöôøng vaøo cuûa moät haøm hay thuû tuïc ñöôïc bieân dòch trong traïng thaùi {$S+} khi khoâng coù ñuû choã treân stack ñeå boá trí boä nhôù cuïc boä cuûa caùc chöông trình con. Taêng soá löôïng cuûa stack baèng caùch duøng ñònh höôùng bieân dòch $M
- Loãi naøy cuõng coù theå do voøng laëp voâ taän gaây ra, hoaëc do moät thuû tuïc vieát trong ngoân ngöõ assembler khoâng duy trì tình traïng stack
153
Statement part too large
Turbo Pascal giôùi haïn côõ cuûa phaàn leänh khoaûng 24K. Neáu baïn gaëp loãi naøy, haõy chuyeån caùc ñoaïn caét ra vaøo moät hay nhieàu thuû tuïc hôn. Duø sao thì vôùi moät phaàn leänh coù kích thöôùc naøy, noù laøm cho caáu truùc chöông trình cuûa baïn saùng suûa hôn
154
Stream registration error
Loãi naøy do thuû tuïc RegisterType taïo ra trong object unit, noù chæ ra raèng moät trong caùc loãi sau ñaõ xaõy ra:
+ Baûn ghi ñaêng kí doøng khoâng ôû trong segment döõ lieäu (data segment).
+ Tröôøng ObjType cuûa baûn ghi ñaêng kí doøng laø zero.
+ Kieåu ñaõ thöïc söï ñaêng kí.
+ Moät kieåu khaùc vôùi cuøng giaù trò ObjType ñaõ toàn taïi
155
String constant exceeds line
Haàu heát caùc tröôøng hôïp laø baïn queân ñaùnh daáu keát thuùc moät haèng xaâu kí töï, kí töï nhaùy treân '
156
String constant expected
Chuoãi haèng khoâng xuaát hieän ôû nôi caàn coù
157
String expression expected
Bieåu thöùc phía tröôùc phaûi laø kieåu chuoãi
158
String length mismatch
Ñoä daøi cuûa moät haèng xaâu kí töï khoâng phuø hôïp vôùi soá thaønh phaàn trong maûng kí töï
159
String variable expected
Bieán phía tröôùc phaûi laø kieåu chuoãi
160
Structure too large
Côõ lôùn nhaát cho pheùp cuûa moät kieåu caáu truùc laø 65535 byte
161
Structured variables are not allowed here
Baïn ñang coá gaéng hoaøn thaønh moät thao taùc khoâng ñöôïc cung caáp treân moät bieán coù caáu truùc. Ví duï, baïn ñang coá gaéng laøm pheùp nhaân hai baûn ghi
162
Syntax error
Moät kyù töï traùi luaät vöøa tìm thaáy ôû trong vaên baûn nguoàn, baïn coù leõ ñaõ boû queân daáu baét ñaàu moät chuoãi haèng, daáu nhaùy treân 'abcde'
163
Target address not found
Leänh Search\ Find Error trong IDE hoaëc löïa choïn /F trong phieân baûn dòch doøng leänh khoâng phaùt hieän vò trí caâu leänh töông öùng vôùi ñòa chæ ñöôïc chæ ra
164
THEN expected
Thieáu töø THEN. Töø daønh rieâng THEN khoâng xuaát hieän ôû nôi caàn coù
165
TO or DOWNTO expected
Töø daønh rieâng TO hoaëc DOWNTO khoâng xuaát hieän ôû nôi caàn coù
166
Too many conditional symbols
Khoâng ñuû choã ñeå khai baùo kí hieäu ñieàu kieän theâm nöõa. Coá gaéng boû ñi vaøi kí hieäu hoaëc ruùt ngaén vaøi teân töôïng tröng
167
Too many EXTRN definitions
Turbo Pascal khoâng theå quaûn lyù file .OBJ vôùi nhieàu hôn 256 khai baùo EXTRN
168
Too many files
Coù quaù nhieàu file ñöôïc ñöa vaøo dòch cuûa chöông trình hay unit.Coá gaéng duøng ít file hôn. Ví duï, baïn hôïp nhaát caùc file include. Baïn cuõng coù theå thu ngaén teân file hoaëc di chuyeån caùc file tôùi moät thö muïcvaø ñaët thaønh thö muïc hieän thôøi taïi thôøi ñieåm bieân dòch
169
Too many nested scopes in .TXT
Chöông trình cuûa baïn coù quaù nhieàu khoái loàng nhau.
Moãi döï aùn chæ coù theå coù khoâng hôn 512 khoái loàng nhau, vaø khoâng vöôït quaù 128 khoái loàng trong moãi modun
170
Too many open files
Neáu loãi naøy xaûy ra, teäp CONFIG.SYS (trong oå C:) cuûa baïn khoâng coù chuoãi FILES=xx, hoaëc chuoãi naøy chæ ñinh quaù ít file. Taêng giaù trò naøy leân moät giaù trò thích hôïp, ví duï 20.
171
Too many relocation items
Kích thöôùc cuûa phaàn baûng taùi ñònh vò cuûa file .EXE vöôït hon 64K, ñoù laø giôùi haïn treân cuûa Turbo Pascal. Neáu baïn baét gaëp loãi naøy, chöông trình cuûa baïn thöôøng laø quaù to ñeå chöông trình linker cuûa Turbo Pascal coù theå quaûn lyù ñöôïc. Noù cuõng coù theå quaù to ñeå DOS thi haønh. Baïn phaûi taùch chöông trình thaønh moät phaàn chính trong ñoù noù seõ thi haønh hai hoaëc nhieàu hôn caùc phaàn chöông trình con baèng caùch duøng thuû tuïc Exec trong Unit Dos
172
Too many segments
- File thi haønh do maùy phaùt sinh (khi dòch), chöùa hôn 254 segment. Ñaáy chính laø giôùi haïn treân cuûa taát caû caùc chöông trình chaïy trong cheá ñoä DOS protected hoaëc treân Windows.
- Coù leõ, do kích thöôùc cuûa caùc segment chöùa trong file thi haønh quaù nhoû
173
Too many symbols
Chöông trình hoaëc unit khai baùo nhieàu hôn 64K kí hieäu. Neáu baïn ñang dòch vôùi {$D+}, haõy thöû ñaët noù off, nghóa laø {$D-}. Tuy nhieân noù ngaên trôû baïn tìm loãi runtime trong khoái naøy. Neáu khoâng, baïn coá chuyeån vaøi khai baùo tôùi moät unit rieâng reõ
174
Too many variables
-Soá löôïng toång coäng cuûa caùc bieán toaøn theå khi khai baùo trong chöông trình hay unit khoâng ñöôïc vöôït hôn 64K.
- Soá löôïng toång coäng cuûa caùc bieán ñòa phöông khi khai baùo trong chöông trình hay unit khoâng ñöôïc vöôït hôn 64K.
175
Type identifier expected
Ñònh danh (teân) khoâng theå hieän moät kieåu maø ñang ra noù phaûi coù
176
Type mismatch
Loãi naøy xaûy ra trong caùc tröôøng hôïp sau:
+ Kieåu cuûa bieán vaø bieåu thuùc khoâng töông thích trong leänh gaùn.
+ Kieåu khoâng töông thích giöõa tham soá thöïc vaø tham soá hình thöùc.
+ Kieåu cuûa bieåu thöùc khoâng töông thích vôùi kieåu chæ soá khi laøm chæ soá maûng.
+ Khoâng töông thích giöõa caùc kieåu cuûa caùc toaùn haïng trong moät bieåu thöùc.
177
Undefined external
Thuû tuïc hoaëc haøm External khoâng ñaët ñònh nghóa PUBLIC trong file object. Chaéc chaén raèng baïn ñaõ chæ ra taát caû caùc file object trong daãn höôùng bieân dòch {$L filename}, vaø kieåm tra chính taû trong teân thuû tuïc hay haøm trong file .ASM
178
Undefined forward
- Thuû tuïc hoaëc haøm ñöôïc khai baùo trong phaàn interface cuûa moät unit, nhöng ñònh nghóa cuûa noù khoâng heà xuaát hieän trong phaàn implementation.
- Thuû tuïc hoaëc haøm ñöôïc khai baùo vôùi töø khoaù forward nhöng ñònh nghóa cuûa noù khoâng coù.
179
Undefined label in preceding statement part
Nhaõn ñöôïc khai baùo vaø chæ daãn trong phaàn leänh tröôùc nhöng chöa ñöôïc ñònh nghóa.
180
Undefined type in pointer definition
Moät kieåu ñöôïc xem nhö laø con troû troû ñeán kieåu ñaõ ñöôïc khai baùo tröôùc, song noù chöa heà ñöôïc khai baùo
181
Unexpected end of file
Baïn coù theå gaëp thoâng baùo loãi naøy do moät trong nhöõng lyù do sau:
- Teäp nguoàn keát thuùc tröôùc phaàn leänh end cuûa phaàn leänh chính, haàu nhö laø leänh end vaø leänh begin khoâng ñi caëp vôùi nhau.
- Moät teäp include keát thuùc ôû giöõa phaàn leänh, moïi phaàn leänh phaûi chöùa ñöïng trong moät teäp.
- Baïn chöa ñoùng chuù thích
182
UNIT expected
Töø khoaù UNIT khoâng xuaát hieän ôû nôi caàn coù
183
Unit file format error
Teäp .TPU vì lyù do naøo ñoù neân khoâng hieäu löïc. Haõy chaéc chaén ñaây laø moät teäp .TPU. Teäp .TPU coù leõ taïo neân bôûi moät version cuõ hôn cuûa Turbo Pascal hoaëc gaëp loãi trong quaù trình sao cheùp. Trong tröôøng hôïp naøy caàn taïo môùi laïi teäp .TPU baèng caùch dòch laïi teäp nguoàn
184
Unit name mismatch
Teân cuûa Unit tìm thaáy trong file .TPU khoâng phuø hôïp vôùi teân chæ ra trong meänh ñeà uses
185
Unit version mismatch
Moät hoaëc nhieàu unit ñöôïc duøng bôûi unit naøy ñaõ ñöôïc thay ñoåi töø khi unit ñöôïc dòch. Duøng Compile\ Make hoaëc Compile\ Built trong IDE vaø löïa choïn /M hoaëc /B trong trình bieân dòch theo doøng leänh ñeå töï ñoäng dòch laïi caùc unit caàn thieát
186
Unknown identifier
Ñònh danh (teân) naøy chöa ñöôïc khai baùo. Hoaëc khoâng ñöôïc bieát ñeán ôû trong modun hieän thôøi. Coù theå ñoù laø moät teân thieáu, hoaëc nhaàm moät vaøi kí töï so vôùi teân ñaõ ñöôïc khai baùo
187
Variable identifier expected
Ñònh danh (teân) khoâng theå hieän moät bieán maø ñaùng ra noù phaûi coù
188
Virtual constructors are not allowed
Haønh vi constructor phaûi laø tónh
189
VIRTUAL expected
Töø daønh rieâng VIRTUAL bò thieáu
190
(Sẽ bổ sung trong lần in sau)
PHỤ LỤC IV: BẢNG MÃ CSII CHO 128 KÍ TỰ ĐẦU:
Bảng mã ASCII với 128 kí tự đầu
MỤC LỤC
File đính kèm:
- PASCAL tu A den Z.doc