Từ khoá của các lệnh : If, Then, Else, Case, For, To, Do, With, Downto, While, Repeat, Until, Goto, Break, Exit,…
Từ khoá toán tử: And, Or, Not, In, Div, Mod,Nul
• Không khai báo sử dụng thư viện CRT mà dùng các hàm clrscr, gotoxy …: Để tránh lỗi này tốt nhất dù không dùng hay dùng các hàm điểu khiển màn hình cũng viết thêm câu lệnh
Code:
Uses CRT;
• Chưa khai báo biến mà đã sử dụng trong chương trình chính. Lỗi này khó phát hiện khi viết chương trình trên giấy, tốt nhất là khi viết chương trình khi cần biến nào các bạn liệt kê lại rồi kiểm tra xem mình đã khai báo hay chưa. Khi viết phần khai báo biến nên để trống ra 1,2 dòng với trước BEGIN, tên biến và kiểu dữ liệu nên các ra một vài khoảng trống, để nếu có biến nào chưa khai báo ta có thể thêm vào mà không phải tẩy xóa
VÍ DỤ
Code:
Var x,y : integer; a,b : real;
BEGIN … END.
• Trong lệnh WRITE, hoặc WRITELN thì khi in ra dòng thông báo thường thiếu dấu nháy đơn mở, đóng lời thông báo, nếu in ra nhiều mục thì thiếu dấu ‘,’ ngăn cách các mục.
Code:
SAI : WRITE[‘Nhap so luong so N= ]; WRITE[Nhap ten cua ban : ]; WRITELN[‘Tong S tinh duoc la : ’ S] ;
ĐÚNG : WRITE[‘Nhap so luong so N=’ ]; WRITELN[‘Tong S tinh duoc la : ’, S];
• Viết lệnh ghép [lệnh có >1 lệnh] mà không có begin , end hoặc có begin mà không có end VÍ DỤ : Chương trình tính tổng của dãy số [N số ] nhập từ bàn phím, khi nhập ta sẽ vừa nhập vừa đếm số nhập vào và tính tổng các số luôn. Do đó tại mỗi bước lặp của vòng lặp ta thực hiện nhiều hơn 1 lệnh nên khối lệnh đó cần bắt đầu bằng Begin và kết thúc là End; [có dấu ‘;’]
Code:
S:=0; dem:=0; For i:=1 to N do Begin write[‘Nhap gia tri tiep theo : ’]; readln[x]; S:=S+x; dem:=dem+1; End;
• Kết thúc chương trình không có end. Hay có end nhưng không có dấu ‘.’ SAI : END; HOẶC END ĐÚNG : END. Chú ý : là đây là lệnh END kết thúc phần thân chương trình chính. Thân chương trình chính bắt đầu bằng BEGIN và kết thúc bằng END.
• Trong chương trình chính viết sai phép gán : kiểu dữ liệu của biến và biểu thức trong phép gán không tương thích : Gán 1 biểu thức có giá trị thực cho một biến nguyên.
Chào các bạn, nếu bạn là một người học lập trình lâu năm hoặc đã có kinh nghiệm trong lập trình thì các lỗi cú pháp sẽ không khó sửa đối với các bạn. Tuy nhiên với các bạn mới bắt đầu học ngôn ngữ lập trình Pascal thì có thể sẽ hơi lúng túng một chút trong việc sửa các lỗi cú pháp cơ bản như chưa khai báo biến, hằng hoặc khai báo sai kiểu,…
Để giúp các bạn có thể dễ dàng nhận biết và sửa các lỗi thì mình đã lập trình một tính năng gọi là “Auto Fix”, chức năng này sẽ giúp các bạn tự sửa một số lỗi cơ bản:
1. Khai báo biến
begin
aa := 2;
end.Nhận thấy rằng đoạn chương trình trên chưa khai báo biến, khi nhấn biên dịch, ứng dụng sẽ giúp bạn khai báo biến.
var
aa: integer;
beginaa := 2;
end.2. Khai báo hàm, thủ tục
3. Khai báo hằng
var
aa: integer;
beginaa := cc + 2;
end.Sau khi sửa sẽ trở thành
const
cc = |;
varaa: integer;
beginaa := cc + 2;
end.Con trỏ sẽ được đưa vào sau dấu =, các bạn điền giá trị của hằng vào.
4. Sửa lỗi khai báo sai kiểu [trình biên dịch sẽ tự sửa đúng với kiểu dữ liệu]
var
variable : integer;
beginvariable := 'string';
end.Đoạn chương trình trên khai báo sai kiểu của biến
var
aa: integer;
beginaa := 2;
end.0, chương trình sẽ sửa lại thành
var
variable : String;
beginvariable := 'string';
end.Tức là chuyển kiểu
var
aa: integer;
beginaa := 2;
end.1 sang kiểu
var
aa: integer;
beginaa := 2;
end.2
5. Chuyển một hằng thành biến
Giá trị của hằng thì không thể bị thay đổi, trong đoạn chương trình sau đang mắc lỗi đó:
const
constant = 3;
beginconstant := 4;
end.Khi biên dịch sẽ báo lỗi là giá trị của hằng
var
aa: integer;
beginaa := 2;
end.3
var
constant: Integer = 3;
beginconstant := 4;
end.6. Tự sửa khi thiếu chương trình chính
7. Tự sửa kiểu của hằng
8. Tự sửa kiểu của biến
var var1: string; var2: longint; begin var2 := 3; var1 := var2; end.
Đoạn chương trình trên khi biên dịch sẽ báo lỗi biến
var
aa: integer;
beginaa := 2;
end.4 không thể gán giá trị là biến
var
aa: integer;
beginaa := 2;
end.5 vì
var
aa: integer;
beginaa := 2;
end.4 có kiểu
var
aa: integer;
beginaa := 2;
end.2 còn
var
aa: integer;
beginaa := 2;
end.5 có kiểu
var
aa: integer;
beginaa := 2;
end.- Chương trình sẽ sửa lại thành
var var1: Longint; var2: longint; begin var2 := 3; var1 := var2; end.
9. Thêm vào dấu chấm cuối chương trình
10. Thêm end vào cuối chương trình
Và còn nhiểu tính năng khác mình sẽ phát triển tiếp trong tương lai
Các bạn có thể tải ứng dụng qua đường dẫn //play.google.com/store/apps/details?id=com.duy.pascal.compiler&hl=vi