Bài giảng Bài 1: Khái quát về ngôn ngữ lập trình pascal

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:

 

doc144 trang | Chia sẻ: vivian | Lượt xem: 1171 | Lượt tải: 0download
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:

  • docPASCAL tu A den Z.doc