a) A:=5 While A:=5 do A:=A+3;
⇒ Sai cú pháp: Thiếu dấu ; trước While
⇒ Sửa lỗi: A:=5; While A:=5 do A:=A+3;
b) S:=0; For i:=1 to 5.5 do s:=s+i;
⇒ Sai cú pháp: Trong câu lệnh For..do, giá trị cuối (sau to) không là số nguyên
⇒ Sửa lỗi: S:=0; For i:=1 to 5 do s:=s+i;
c) m:=0; T:=0;
While T<=5 do m:=m+1; T:=T+m;
⇒ Sai logic: Sau do ở câu lệnh While..do, không có câu lệnh đổi các giá trị của các biến có ở điều kiện. Do đó, chương trình lặp vô tận.
⇒ Sửa lỗi: m:=0; T:=0;
While T<=5 do
begin
m:=m+1; T:=T+m;
end;
d) T:=0; For i:=6 to 1 do T:= T*i ;
⇒ Sai cú pháp: Trong câu lệnh For..do, giá trị cuối (sau to) bé hơn giá trị đầu
⇒ Sửa lỗi: T:=0; For i:=1 to 6 do T:= T*i;
hoặc: T:=0; For i:=6 downto 1 do T:= T*i;
(Ngoài ra, nếu đây là đoạn lệnh tính tích các STN từ 1 đến 6 thì:
⇒ Sai logic: Mọi số i nhân T=0 đều cho ra T=0. Do đó, chương trình gặp lỗi khi tính toán
⇒ Sửa lỗi: T:=1; For i:=1 to 6 do T:= T*i;
hoặc: T:=1; For i:=6 downto 1 do T:= T*i;)