1. Trang chủ
  2. » Công Nghệ Thông Tin

Pascal Errors

16 554 3
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 16
Dung lượng 382,5 KB

Nội dung

Pascal Errors

TURBO PASCAL ERRORS CODES(CÁC Mà LỖI CỦA TURBO PASCAL)Dịch và chú giải từ “Turbo Pascal 6: The Complete Reference”Vương Đức BìnhLời người dịch:Đối với người mới học lập trình, viết chương trình bị lỗi là chuyện “thường ngày ở huyện”. Mỗi ngôn ngữ đều dự trù hằng trăm, nếu không nói là hàng ngàn, thông báo lỗi khác nhau như một sự trợ giúp để chúng ta khắc phục lỗi đó. Một số thông báo lỗi thì đơn giản, rõ ràng nhưng một số thông báo lỗi có thể dẫn những lập trình viên “mới chập chửng” vào một trò chơi trốn tìm rất đau đầu đến nỗi có khi chính sự trợ giúp này lại gây ra vấn đề còn lớn hơn cả bản thân lỗi. Vì lẽ đó đọc hiểu được các thông báo lỗi và từ đó suy ra cách khắc phục lỗi cũng là một yêu cầu quan trọng trong quá trình học lập trình. Mặt khác, thực tế đa số sinh viên CNTT trong năm đầu thường không đủ vốn từ vựng về thuật ngữ tin học, cộng với sự yếu kém về giảng dạy ngoại ngữ thâm căn cố đế do các trường PTTH gây ra làm cho sinh viên không đủ năng lực đọc hiểu các thông báo lỗi trực tiếp bằng tiếng Anh. Tài liệu này chỉ mong làm được có một việc: giúp các bạn sinh viên đó tiếp cận dễ hơn với việc đọc hiểu thông báo lỗi. Nhưng các bạn cũng đừng ỷ lại vào tài liệu này. Tốt hơn hết các bạn nên tập làm quen dần với việc đọc trực tiếp, suy nghĩ trực tiếp bằng tiếng Anh. Tiếng Việt thì đẹp đẻ và là ngôn ngữ của cha ông mà chúng ta cần trân quí và làm cho nó phát triển. Nhưng ở đây là khoa học kỹ thuật, bạn cần xây dựng khả năng tiếp cận thật nhanh thông tin khoa học kỹ thuật. Để các bạn dễ tham khảo/so sánh tôi sẽ trình bày bản dịch này dưới dạng song ngữ. Tôi không hoàn toàn giữ nguyên gốc so với nguyên bản mà có thêm ít nhiều chú thích và thêm phần nguyên nhân phát sinh ra lỗi và cách khắc phục. Một số lỗi sẽ không có phần này (cách khắc phục) vì có thể tôi chưa gặp lỗi đó bao giờ … cho nên tôi không có kinh nghiệm khắc phục. Nếu bạn biết, xin thông báo cho tôi trên forum của Tổ bộ môn CNTT http://tobomoncntt.freeforums.org/, tôi sẽ rất cảm ơn và tôi sẽ bổ sung vào đây khi có thể.I. Compiler Error Messages(Các thông báo lỗi trong quá trình biên dịch) Compiler error messages refer to problems in your code or programming environment that prevent Turbo Pascal from produccing an executable file. In the integrated development environment, Turbo Pascal will attempt to locate the source-code location of the error.Các thông báo lỗi trong quá trình biên dịch liên quan đến những vấn đề trong mã chương trình hoặc môi trường lập trình gây cản ngại cho Turbo Pascal khi tạo ra file thực thi. Trong môi trường phát triển tích hợp, Turbo Pascal sẽ cố gắng định vị trí lỗi trong mã nguồn.Lưu ý của người dịch: a) Nếu bạn sử dụng IDE (integrated development environment) thông thường vị trí phát sinh ra lỗi trong mã nguồn nằm ngay trước vị trí con trỏ văn bản. Còn nếu bạn dịch mã nguồn FILENAME.PAS bằng TPC.EXE (Turbo Pascal Compiler) theo cú pháp[drive:][path]TPC.EXE FILENAME.PAS ↵ 1 thì một thông báo lỗi dạng:Error nnn: Error messageVới nnn là mã lỗi và dòng lệnh bị lỗi sẽ được hiển thị sau dấu nhắc hệ thống cùng với một dấu “^” chỉ vị trí phát sinh lỗi. b) Tiếng Anh và tiếng Việt không hoàn toàn tương đồng cho nên với cùng một thuật ngữ tiếng Anh tôi có thể sử dụng khá nhiều cách nói tiếng Việt khác nhau để dịch. Ví dụ rõ nhất là đối với từ “expected”, tôi có thể dịch là “chờ, đợi, chưa thấy, không thấy, yêu cầu, …tùy vào ngữ cảnh mà thuật ngữ đó được sử dụng … và đôi khi còn tùy vào tình huống lỗi. Trong trường hợp này - rất tiếc – đôi khi suy nghĩ trực tiếp bằng tiếng Anh là dễ dàng hơn. Mã lỗi và thông báo lỗi Ý nghĩa Các nguyên nhân có thể Hướng khắc phục1 Out of memory Không đủ vùng nhớ1. Mã chương trình quá lớn.2. Mã dữ liệu quá lớn.3. Bị virus.4. Các chương trình thường trú chiếm bớt vùng nhớ qui ước (conventional memory).Hoặc phải gở bỏ các chương trình đang chạy trong chế độ thường trú (SIDEKICK, v.v.) hoặc xem xét liệu virus có đang chiếm mất vùng nhớ hoặc phải sử dụng biện pháp overlay. Thông thường điều này chỉ xảy ra trong môi trường thực (Real mode). Nếu bạn chạy Borland Pascal trong môi trường giả lập được bảo vệ (protected mode) của Windows thì không xảy ra trường hợp này được (Windows cho phép sử dụng bộ nhớ ảo)2 Identifier expected Chờ một danh biểu3 Unknown identifier Không biết danh biểu này1. Quên khai báo biến. 2. Gõ sai tên biến trong chương trình.3. Gọi tới biến, danh biểu này ở ngoài tầm vực của nó.1. Khai báo danh biểu này.2. Sửa chữa lỗi gõ sai.3. Xem xét lại tầm vực của danh biểu.2 Mã lỗi và thông báo lỗi Ý nghĩa Các nguyên nhân có thể Hướng khắc phục4 Duplicate identifier Danh biểu bị trùng lặp1. Tên biến trùng với tên chương trình.2. Khai báo lại tên biến với kiểu dữ liệu khác trong cùng một khối.1. Đặt lại tên biến hoặc tên chương trình.5 Syntax error Lỗi cú pháp Sửa lỗi cú pháp6 Error in real constant Lối về hằng số thực7 Error in integer constant Lỗi về hằng số nguyên8 String constant exceeds line Chuỗi dài quá một dòngQuên dấu nháy “’” kết thúc chuỗi.Thông thường là do lập trình viên quên dấu nháy kết thúc chuỗi trong câu lệnh WRITE hoặc WRITELN.Bổ sung dấu nháy đằng sau chuỗi.9 Too many nested files Quá nhiều file lồng nhau10Unexpected end of file Không tìm thấy kết thúc file Quên từ khóa “END.”Thông thường do lập trình viên quên hoặc dùng “END;” ở cuối chương trình chính. 11Line too long Dòng quá dàiCâu lệnh viết dài quá cột 128.Ngắt câu lệnh thành nhiều dòng.12Type identifier expectedKhông thấy kiểu của danh biểuQuên khai báo kiểu của biến.13Too many open files Mở quá nhiều file cùng lúcMở file C:\CONFIG.SYS sửa lại dòng lệnh Files=<số>. Hệ điều hành DOS dùng con số này để quyết định cho phép mở bao nhiêu file cùng một lúc. Tăng <số> cho thích hợp với chương trình đang viết. Mặc định <số> là 15 nếu không được khai báo trong CONFIG.SYS. Không gặp lỗi này nếu chạy trong môi trường giả lập của Windows.3 Mã lỗi và thông báo lỗi Ý nghĩa Các nguyên nhân có thể Hướng khắc phục14Invalid filename Tên file không hợp lệ.Không tìm thấy thư mục đã định nghĩa trong [Options >Directories ] để lưu file nàyThư mục để lưu file này bị xác lập thuộc tính Hidden hoặc Read OnlyKhai báo lại thư mục hoặc xác định thư mục có thuộc tính Archive, bỏ thuộc tính hidden, bỏ thuộc tính read only.15File not found Không tìm thấy fileXem lại đường dẫn tới tên file16Disk full Đĩa bị đầyXóa bớt các file không cần thiết trên đĩa để lấy thêm chổ trống cho thao tác trên đĩa.17Invalid compiler directiveDẫn hướng biên dịch không hợp lệDùng một dẫn hướng biên dịch không có trong qui địnhXem lại khai báo dẫn hướng biên dịch. Gõ CTRL-O-O để xem các dẫn hướng biên dịch được Pascal hỗ trợ mặc định.18Too many files Có quá nhiều file19Undefined type in pointer definitionĐịnh nghĩa con trỏ trỏ tới một kiểu chưa được định nghĩaXem lại định nghĩa kiểu sau từ khóa TYPE / Xem lại tên kiểu coi có gõ nhầm không.20Variable identifier expected Yêu cầu danh biểu là biếnThông thường là do truyền trị cho tham biếnChỉ được phép truyền biến cho tham biến mà thôi.21Error in type Lỗi về kiểu dữ liệuXem lại kiểu dữ liệu qui định ở vị trí này.22Structure too large Cấu trúc quá lớn23Set base type out of rangeKiểu cơ sở bị vượt quá phạm vi dữ liệu24File components may not be files or objectsKhông cho phép thành phần của file là file hoặc đối tượng25Invalid string length Chiều dài chuỗi không hợp lệ26Type mismatch Không khớp kiểu dữ liệuHai vế của phép gán không thuộc về cùng một kiểu dữ liệuHoặc khai báo lại kiểu dữ liệu cho phù hợp hoặc phải dùng biện pháp ép kiểu (type casting).27Invalid subrange base typePhạm vi không khớp với phạm vi của kiểu cơ sở 4 Mã lỗi và thông báo lỗi Ý nghĩa Các nguyên nhân có thể Hướng khắc phục28Lower bound greater than upper boundCận dưới lớn hơn cận trên Khai báo lại29Ordinal type expectedYêu cầu kiểu dữ liệu có thứ tựSử dụng kiểu dữ liệu có thứ tự (kiểu đếm được)30Integer constant expected. Yêu cầu hằng số nguyên31Constant expected Yêu cầu hằng số32Integer or real constant expected.Yêu cầu hằng số nguyên hoặc hằng số thực33Type identifier expected Không thấy định nghĩa kiểu Khai báo kiểu34Invalid function result typeKiểu dữ liệu trả về của hàm không hợp lệKiểu dữ liệu trả về của hàm không phải là kiểu đơn giản, chuẩnKhai báo lại kiểu dữ liệu trả về.35Label identifier expectedYêu cầu danh biểu là một nhãnQuên khai báo LABEL trước khi dùng câu lệnh GOTO36Begin expected Không thấy BEGINThông thường lỗi này là do lập trình viên gõ sai các từ khóa trước BEGIN của chương trình chính nên trình biên dịch hiểu nhầm đã bắt đầu câu lệnh mà không có BEGIN.Kiểm tra lỗi gõ sai các từ khóa, các khai báo trước BEGIN của chương trình chính.37End expected Không thấy ENDThiếu từ khóa END tương ứng của BEGIN hoặc của khai báo RECORD hoặc của cấu trúc CASE38Integer expression expected Chờ một biểu thức nguyên39Ordinal expression expected Chờ một biểu thức thứ tự40Boolean expression expected Chờ một biểu thức logic41Operand types do not match operatorToán hạng không phù hợp với toán tửXem xét lại biểu thức xảy ra lỗi.42Error in expression Có lỗi trong biểu thức43Illegal assignment Phép gán bất hợp lệ44Field identifier expected Chờ một danh biểu trường45Object file too large File đối tượng quá lớn5 Mã lỗi và thông báo lỗi Ý nghĩa Các nguyên nhân có thể Hướng khắc phục46Undefined external Chưa định nghĩa ExternalSử dụng/gọi một thủ tục biên dịch sẳn dạng thức .BIN nhưng chưa khai báo thủ tục này là EXTERNALKhai báo thủ tục hoặc hàm EXTERNAL.47Invalid object-file recordBản ghi của đối tượng file không đúng48Code segment too largeĐoạn mã chương trình quá lớn49Data segment too large Đoạn mã dữ liệu quá lớn50Do expected Chờ DOViết thiếu từ khóa DO sau câu lệnh FOR hoặc WHILE51Invalid public definitionĐịnh nghĩa public không đúng52Invalid Extern definitionĐịnh nghĩa External không đúng53Too many Extern definitionsQuá nhiều định nghĩa External54Of expected Chờ OFViết thiếu từ khóa OF trong câu lệnh CASE55Interface expected Chờ INTERFACEViết thiếu từ khóa INTERFACE trong cấu trúc của UNIT.56Invalid relocatable referenceLiên hệ tái định vị không đúng.57Then expected Chờ THENViết thiếu từ khóa THEN trong câu lệnh IF58To or Downto expected Chờ TO hoặc DOWNTOViết thiếu từ khóa TO/DOWNTO trong câu lệnh FOR59Undefined forward Chưa định nghĩa FORWARDCác thủ tục gọi lẫn nhau nhưng quên khai báo FORWARD. Thường xảy ra trong trường hợp đệ qui hỗ tương.Phải khai báo FORWARD cho tất cả thủ tục, hàm có gọi lẫn nhau.6 Mã lỗi và thông báo lỗi Ý nghĩa Các nguyên nhân có thể Hướng khắc phục60Too many procedures Quá nhiều PROCEDURE61Invalid typecast Ép kiểu không đúng62Division by zero Chia cho số 01. Thực hiện một phép chia cho 0 trong biểu thức.2. Unit CRT bị lỗi do tốc độ bộ xử lí lớn hơn 300 MHz. (Từ các đời máy 80846 trở đi)1. Xem lại biểu thức.2. Cập nhật file TURBO.TPL (Trong hướng dẫn sửa lỗi khi cài đặt TURBO PASSCAL)63Invalid file type Kiểu file không đúng64Cannot read or write variables of this typeKhông thể đọc hoặc ghi biến thuộc kiểu dữ liệu nàyThông thường là do muốn đọc hoặc ghi trực tiếp dữ liệu kiểu BooleanĐọc/Ghi gián tiếp cho kiểu dữ liệu này.65Pointer variable expected Chờ biến kiểu con trỏ66String variable expected Chờ biến kiểu chuỗi67String expression expected Chờ biểu thức chuỗi68Circular unit reference Liên hệ Unit lòng vòng Các Unit gọi lẫn nhau.69Unit name mismatch Tên Unit không khớp70Unit version mismatch Phiên bản Unit không khớp71Duplicate unit name Trùng lặp tên Unit72Unit file format error Lỗi trong dạng thức file Unit73Implementation expected Chờ IMPLEMENTATIONViết thiếu từ khóa IMPLEMENTATION trong cấu trúc của UNIT.74Constant and case types do not matchHằng và kiểu giá trị hằng không khớp.75Record variable expected Chờ đợi biến kiểu bản ghi76Constant out of range Hằng vượt quá phạm vi77File variable expected Chờ biến kiểu File78Pointer expression expected Chờ biểu thức kiểu con trỏ79Integer or real expression expectedChờ biểu thức nguyên hoặc thực80Label not within current blockNhãn không thuộc về block hiện tạiXem lại vị trí định nghĩa nhãn hoặc xem lại tầm vực của nhãn.7 Mã lỗi và thông báo lỗi Ý nghĩa Các nguyên nhân có thể Hướng khắc phục81Label already definedNhãn này đã được định nghĩa rồi82Undefined label in preceding statement partNhãn chưa được định nghĩa trong phần phát biểu trước83Invalid @ argument Sử dụng sai đối số @84Unit expected Chờ đợi Unit85“;” expected Chờ đợi “;”86“:” expected Chờ đợi “:”87“,” expected Chờ đợi “,”88“(“ expected Chờ đợi “(“89“)” expected Chờ đợi “)”90“=” expected Chờ đợi “=”91“:=” expected Chờ đợi “:=”92“[“ or “(.” expected Chờ đợi “[“ hoặc “(.”93“]” or “.)” expected Chờ đợi “]” hoặc “.)”94“.” expected Chờ đợi “.”95“ ” expected Chờ đợi “ ”Đây là những lỗi khá phổ biến. Thông thường là do gõ sai hoặc gõ sót các token “;”,….Thêm “;”Thêm “:”Thêm “,”Thêm “(“Thêm “)”Thêm “=”Thêm “:=”Thêm “[“ hoặc “(.”Thêm “]” hoặc “.)”Thêm “.”Thêm “ ”96Too many variables Quá nhiều biếnGiảm bớt số biến đã khai báo. Thông thường nên tăng cường sử dụng biến cục bộ thay cho biến toàn cục97Invalid For control variableBiến điều khiển vòng lặp FOR không thích hợpĐã dùng biến điều khiển vòng lặp thuộc kiểu không có thứ tựThay đổi kiểu của biến điều khiển vòng lặp FOR.98Integer variable expected Chờ một biến kiểu số nguyên99Files are not allowed hereKhông cho phép dùng File ở đây100String length mismatchChiều dài của chuỗi không khớp101Invalid ordering of fields Thứ tự các field không đúng102String constant expected Chờ đợi một hằng chuỗi103Integer or real variable expectedChờ đợi biến nguyên hoặc thực104Ordinal variable expected Chờ đợi biến thứ tự8 Mã lỗi và thông báo lỗi Ý nghĩa Các nguyên nhân có thể Hướng khắc phục105Inline error Lỗi INLINEChèn mã assembly trực tiếp vào chương trình nguồn gây ra lỗi.Xem lại các đoạn mã assembly. Đảm bảo đúng cú pháp của Microsoft Assembly.106Character expression expected Chờ đợi biểu thức kí tự107Too many relocation items Quá nhiều mục tái định vị108109110111112Case constant out of rangeHằng trị trong câu lệnh CASE vượt quá phạm vi113Error in statement Sai lầm trong câu lệnh114Cannot call an interrupt procedure Không gọi được thủ tục ngắt115116Must be in 8087 mode to compile thisCần bộ xử lí dấu chấm động 8087 để biên dịch phần này- Lỗi này không xảy ra nữa kể từ thế hệ máy 80386 DX.- Trong menu [Options > Compiler] đánh dấu kiểm vào ô 8087/80287.117Target address not foundKhông tìm thấy địa chỉ mục tiêu118Include files are not allowed hereKhông được phép INCLUDE file ở vị trí này119120Nil expected Chờ đợi con trỏ NIL121Invalid qualifier Danh biểu không đúng122Invalid variable reference Liên hệ biến không đúng123Too many symbols Có quá nhiều kí hiệu124Statement part too long Câu lệnh quá dài125126Files must be Var parametersPhải sử dụng tham biến cho kiểu dữ liệu FileĐã khai báo biến kiểu file như là một tham trị trong headerPhải khai báo tham biến cho mọi tham số kiểu File trong header của Procedure hoặc Function.127Too many conditional symbols Quá nhiều kí hiệu điều kiện9 Mã lỗi và thông báo lỗi Ý nghĩa Các nguyên nhân có thể Hướng khắc phục128Misplaced conditional directiveĐặt dẫn hướng điều kiện không đúng chỗ129ENDIF directive missing Sai lầm ở dẫn hướng ENDIF130Error in initial conditional definesSai lầm ở khởi tạo định nghĩa điều kiện131Header does not match previous definitionHEADER không khớp với định nghĩa trước đó.Khai báo các header trong phần INTERFACE và trong IMPLEMENTATION của Unit phải khớp nhau.132Critical disk error Đĩa có lỗi nghiêm trọngĐây là lỗi khá khó chịu! Có thể đĩa bị hỏng, bị lỗi CRC, quên bẻ chốt khóa (đối với ổ đĩa mềm),…Xem xét lại ổ đĩa và đĩa133Cannot evaluate this expressionKhông lượng giá biểu thức này đượcXem xét lại cú pháp của biểu thức.134Expression incorrectly terminated Biểu thức kết thúc saiThông thường là do thiếu toán hạng, thiếu dấu “)” 135Invalid format specifier Sai ở bộ xác định dạng thức136Invalid indirect reference Liên hệ gián tiếp sai137Structured variables are not allowed here.Không cho phép biến có cấu trúc ở đây.Sử dụng biến kiểu đơn giản.138Cannot evaluate without SYSTEM unitKhông thể lượng giá mà không có unit SYSTEMThông thường Unit SYSTEM được tải lên mặc định khi gọi Pascal mà không cần khai báo qua câu lệnh USES. Có thể là do Unit SYSTEM đã bị gỡ bỏ khỏi TURBO.TPL. Dùng TPUMOVER.EXE để xem lại các Unit còn đang được tích hợp trong TURBO.TPL- Tích hợp SYSTEM.TPU vào TURBO.TPL trở lại.- Khai báo USES SYSTEM;10 [...]... When such an error occurs, Turbo Pascal display this message: Run-time error nnn at xxxx:yyyy Where nnnn is the numeric code for the run-time error, xxxx is the program segment in which the error occurred, and yyyy is the offset of the location of the error Lỗi trong thời gian chạy là lỗi xảy ra khi bạn đang cho chương trình hoạt động Khi loại lỗi này xảy ra, Turbo Pascal cho hiện thông báo này: Run-time... Turbo Pascal 12 16 Cannot remove current directory Không gỡ bỏ thư mục này được 17 Cannot rename across drives 1 Thư mục đang được gán thuộc tính Read only 2 Thư mục đang còn chứa File Không thể đặt lại tên File từ đĩa này qua đĩa kia 1 Set lại thuộc tính thư mục 2 Xóa hết các File đang còn tồn tại trong thư mục, kể cả các file ẩn File cũ và File đó mới được đặt tên lại phải nằm trong cùng thư mục I/O Errors. .. Close(File) Thủ tục Read hoặc Readln của Pascal được quá tải cho nhiều kiểu dữ liệu khác nhau nên gây ra lỗi này khi người dùng nhập dữ liệu kiểu chữ thay vì nhập dữ liệu kiểu số cho một biến kiểu số Xem lại chương trình Đừng sử dụng các thủ tục Read hoặc Readln được cung cấp sẳn Lập trình viên nên viết riêng cho mình các thủ tục nhập có kiểm tra dữ liệu nhập Critical Errors Các lỗi nghiêm trọng Mã lỗi và... allocation table) hoặc bảng DIR bị hỏng Đĩa được Format bởi một hệ điều hành khác hoặc một ổ đĩa chưa được hỗ trợ bởi Turbo Pascal 1 Đĩa bị hỏng 2 Lỗi cross-link file Xem lại đĩa Sử dụng đĩa đúng format Sử dụng đĩa khác để ghi/đọc dữ liệu Kiểm tra lại các thiết bị liên quan Fatal Errors Các lỗi chí tử Mã lỗi và thông báo lỗi Ý nghĩa Hướng khắc phục Ghi chú 14 200 Division by zero Thực hiện phép chia... ra, Turbo Pascal cho hiện thông báo này: Run-time error nnn at xxxx:yyyy Trong đó nnn là mã lỗi, xxxx là phân đoạn của chương trình và yyyy là độ dời trong phân đoạn tại vị trí mã lệnh gây ra lỗi Dos Errors Lỗi thuộc hệ điều hành đĩa Mã lỗi và thông báo lỗi 2 File not found 3 Path not found Ý nghĩa Không tìm thấy File Không tìm thấy đường dẫn 4 Mở quá nhiều File cùng lúc Too many open files 5 File . TURBO PASCAL ERRORS CODES(CÁC Mà LỖI CỦA TURBO PASCAL) Dịch và chú giải từ “Turbo Pascal 6: The Complete Reference”Vương. environment that prevent Turbo Pascal from produccing an executable file. In the integrated development environment, Turbo Pascal will attempt to locate

Ngày đăng: 13/11/2012, 12:03

Xem thêm

w