MÔT SỐ LỖI THƯỜNG GẶP TRONG PASCAL
Chia sẻ bởi Phan Thị Thùy Linh |
Ngày 25/04/2019 |
108
Chia sẻ tài liệu: MÔT SỐ LỖI THƯỜNG GẶP TRONG PASCAL thuộc Tin học 11
Nội dung tài liệu:
Các lỗi trong Pascal
COMPILE ERROR
Lỗi 1. Out of memory: vượt ra ngoài miền nhớ. Chương trình dịch thiếu miền nhớ.
Vài gợi ý khắc phục:
a. Nếu mục Compile/Destination (nơi đặt chương trình đích, tức là chương trình đã được dịch ghi trong tệp cùng tên với chương trình nguồn nhưng có phần mở rộng là .EXE) đang đặt là Memory hãy đổi thành Disk bằng cách bấm phím Enter.
b. Nếu mục Options/Compiler/Link đang đặt là Memory hãy đổi thành Disk bằng cách bấm phím Enter.
c. Bỏ bớt các chương trình thường trú.
d. Thử ra khỏi TURBO.EXE, dịch lại chương trình của bạn với lệnh TCP như sau:
TCP
Chương trình dịch TCP này chiếm ít miền nhớ hơn.
Nếu cả 4 biện pháp nói trên đều không mang lại kết quả, tức là chương trình của bạn quá lớn. Hãy chia nó thành các đơn thể nhỏ hơn.
Lỗi 2. Identifier expected: mong gặp định danh.
Lỗi 3. Unknown identifier: định danh chưa được khai báo.
Hãy khai báo định danh này ở đầu thủ tục hoặc chương trình.
Lỗi 4. Duplicate identifier: định danh được khai báo 2 lần trở lên.
Lỗi 5. Syntax error: Lỗi cú pháp. Gặp một ký tự sai hoặc viết sai một hằng.
Lỗi 6. Error in real constant: Viết sai hằng thực.
Lỗi 7. Error in integer constant: Viết sai hằng nguyên.
Chú ý rằng khai báo CONST c = 1234 sẽ cho ta một hằng c kiểu nguyên. Muốn có một hằng kiểu thực, ta viết CONST c = 1234.0. Những hằng có giá trị nằm ngoài khoảng -2147483648..2147483647 cần được khai báo theo kiểu thực, thí dụ: CONST c = 12345678912.0;
Lỗi 8. String constant exceeds line: giá trị của xâu ký tự quá dài.
Xem lại có thiếu dấu đóng/mở (dấu nháy đơn) hằng văn bản không?
Lỗi 9. Too many nested files: quá nhiều tệp lồng nhau.
Chương trình dịch cho phép lồng nhau không quá 5 tệp.
Lỗi 10. Unexpected end of file: Cần gặp dấu kết tệp.
Lỗi 10 có thể xuất hiện trong các trường hợp sau:
- Trong chương trình các cặp BEGIN và END không cân đối.
- Tệp khác được gọi lồng tại một vị trí không hợp lệ.
- Chú thích chưa được đóng bằng dấu } hoặc * ).
Lỗi 11. Line too long: Dòng quá dài.
Bộ soạn thảo cho phép phát sinh các dòng dài tối đa 249 ký tự, trong khi chương trình dịch chỉ làm việc với các dòng dài tối đa 126 ký tự.
Lời khuyên: Không nên viết các dòng dài quá 60 ký tự.
Lỗi 12. Type identifier expected: Cần có định danh kiểu.
Lỗi 13. Too many open files: quá nhiều file được mở.
Có thể mở tối đa 20 tệp. Muốn vậy trong tệp CONFIG. SYS cần có dòng khai báo FILES = 20.
Lời khuyên: Nên mở chừng 15 tệp là vừa nếu có nhu cầu. Hãy đưa dòng sau đây: FILES = 15 vào tệp CONFIG.SYS. Khởi động lại máy rồi gọi lại TP.
Lỗi 14. Invalid file name: Sai tên tệp. Tên tệp được đặt theo quy định của DOS.
Lỗi 15. File not found: Không tìm thấy tệp.
Trong một số trường hợp TP cần có các tệp phụ trợ, thí dụ EGAVGA.BGI cho màn hình trong chế độ đồ hoạ. Bạn cần đặt những tệp này vào thư mục hiện hành hoặc chỉ rõ đường dẫn để truy nhập tới chúng.
Lỗi 16. Disk full: đĩa đầy, hết chỗ ghi.
Hãy xoá đi một số tệp không cần dùng nữa hoặc dùng đĩa mềm mới.
Lỗi 17. Invalid compiler directive: Đặt sai chế độ dịch.
Lời khuyên: Không nên lạm dụng chế độ dịch. Các chế độ ngầm định là đủ cho bạn. Hãn hữu hãy đặt tạm thời một chế độ dịch, sau đó hãy trả lại trạng thái cũ cho nó. Thí dụ, mẫu sau đây thường dùng để kiểm tra sự tồn tại của một tệp:
assign (f, filename);
{$I-}
reset (f);
{$I+)
IF IOResult = 0 THEN
{tệp tồn tại}...
ELSE
{tệp không tồn tại}...
Trong đó f là biến tệp, filename là xâu chứa tên tệp.
Lỗi 18. Too many files: Quá nhiều tệp.
Chương trình đòi hỏi quá nhiều tệp. Sự đòi hỏi thái quá này có thể phát sinh ra các nguyên nhân sau:
- Đặt nhiều chế độ khiến chương trình dịch phải mở nhiều tệp.
- Các module gọi móc nối, liên hoàn, mỗi module lại đòi hỏi một số tệp.
Lời khuyên: Ngay từ đầu hãy chọn cấu hình tối thiểu cho chương
COMPILE ERROR
Lỗi 1. Out of memory: vượt ra ngoài miền nhớ. Chương trình dịch thiếu miền nhớ.
Vài gợi ý khắc phục:
a. Nếu mục Compile/Destination (nơi đặt chương trình đích, tức là chương trình đã được dịch ghi trong tệp cùng tên với chương trình nguồn nhưng có phần mở rộng là .EXE) đang đặt là Memory hãy đổi thành Disk bằng cách bấm phím Enter.
b. Nếu mục Options/Compiler/Link đang đặt là Memory hãy đổi thành Disk bằng cách bấm phím Enter.
c. Bỏ bớt các chương trình thường trú.
d. Thử ra khỏi TURBO.EXE, dịch lại chương trình của bạn với lệnh TCP như sau:
TCP
Chương trình dịch TCP này chiếm ít miền nhớ hơn.
Nếu cả 4 biện pháp nói trên đều không mang lại kết quả, tức là chương trình của bạn quá lớn. Hãy chia nó thành các đơn thể nhỏ hơn.
Lỗi 2. Identifier expected: mong gặp định danh.
Lỗi 3. Unknown identifier: định danh chưa được khai báo.
Hãy khai báo định danh này ở đầu thủ tục hoặc chương trình.
Lỗi 4. Duplicate identifier: định danh được khai báo 2 lần trở lên.
Lỗi 5. Syntax error: Lỗi cú pháp. Gặp một ký tự sai hoặc viết sai một hằng.
Lỗi 6. Error in real constant: Viết sai hằng thực.
Lỗi 7. Error in integer constant: Viết sai hằng nguyên.
Chú ý rằng khai báo CONST c = 1234 sẽ cho ta một hằng c kiểu nguyên. Muốn có một hằng kiểu thực, ta viết CONST c = 1234.0. Những hằng có giá trị nằm ngoài khoảng -2147483648..2147483647 cần được khai báo theo kiểu thực, thí dụ: CONST c = 12345678912.0;
Lỗi 8. String constant exceeds line: giá trị của xâu ký tự quá dài.
Xem lại có thiếu dấu đóng/mở (dấu nháy đơn) hằng văn bản không?
Lỗi 9. Too many nested files: quá nhiều tệp lồng nhau.
Chương trình dịch cho phép lồng nhau không quá 5 tệp.
Lỗi 10. Unexpected end of file: Cần gặp dấu kết tệp.
Lỗi 10 có thể xuất hiện trong các trường hợp sau:
- Trong chương trình các cặp BEGIN và END không cân đối.
- Tệp khác được gọi lồng tại một vị trí không hợp lệ.
- Chú thích chưa được đóng bằng dấu } hoặc * ).
Lỗi 11. Line too long: Dòng quá dài.
Bộ soạn thảo cho phép phát sinh các dòng dài tối đa 249 ký tự, trong khi chương trình dịch chỉ làm việc với các dòng dài tối đa 126 ký tự.
Lời khuyên: Không nên viết các dòng dài quá 60 ký tự.
Lỗi 12. Type identifier expected: Cần có định danh kiểu.
Lỗi 13. Too many open files: quá nhiều file được mở.
Có thể mở tối đa 20 tệp. Muốn vậy trong tệp CONFIG. SYS cần có dòng khai báo FILES = 20.
Lời khuyên: Nên mở chừng 15 tệp là vừa nếu có nhu cầu. Hãy đưa dòng sau đây: FILES = 15 vào tệp CONFIG.SYS. Khởi động lại máy rồi gọi lại TP.
Lỗi 14. Invalid file name: Sai tên tệp. Tên tệp được đặt theo quy định của DOS.
Lỗi 15. File not found: Không tìm thấy tệp.
Trong một số trường hợp TP cần có các tệp phụ trợ, thí dụ EGAVGA.BGI cho màn hình trong chế độ đồ hoạ. Bạn cần đặt những tệp này vào thư mục hiện hành hoặc chỉ rõ đường dẫn để truy nhập tới chúng.
Lỗi 16. Disk full: đĩa đầy, hết chỗ ghi.
Hãy xoá đi một số tệp không cần dùng nữa hoặc dùng đĩa mềm mới.
Lỗi 17. Invalid compiler directive: Đặt sai chế độ dịch.
Lời khuyên: Không nên lạm dụng chế độ dịch. Các chế độ ngầm định là đủ cho bạn. Hãn hữu hãy đặt tạm thời một chế độ dịch, sau đó hãy trả lại trạng thái cũ cho nó. Thí dụ, mẫu sau đây thường dùng để kiểm tra sự tồn tại của một tệp:
assign (f, filename);
{$I-}
reset (f);
{$I+)
IF IOResult = 0 THEN
{tệp tồn tại}...
ELSE
{tệp không tồn tại}...
Trong đó f là biến tệp, filename là xâu chứa tên tệp.
Lỗi 18. Too many files: Quá nhiều tệp.
Chương trình đòi hỏi quá nhiều tệp. Sự đòi hỏi thái quá này có thể phát sinh ra các nguyên nhân sau:
- Đặt nhiều chế độ khiến chương trình dịch phải mở nhiều tệp.
- Các module gọi móc nối, liên hoàn, mỗi module lại đòi hỏi một số tệp.
Lời khuyên: Ngay từ đầu hãy chọn cấu hình tối thiểu cho chương
* Một số tài liệu cũ có thể bị lỗi font khi hiển thị do dùng bộ mã không phải Unikey ...
Người chia sẻ: Phan Thị Thùy Linh
Dung lượng: |
Lượt tài: 0
Loại file:
Nguồn : Chưa rõ
(Tài liệu chưa được thẩm định)