Hãy chỉ ra lỗi trong các câu lệnh sau : a) for i : = 100 to 3 do writeln ('H'); b) for i : = 1,5 to 10,5 do writeln ('H'); c) x:=2; while x:=2 do x: x+1; d) x:=2; while S< =10 do n : = n+1; S:= S+n; BIẾT LÀM CÂU NÀO THÌ LÀM Ạ CẢM ƠN NHIỀU.

2 câu trả lời

a) giá trị đầu lớn hơn giá trị cuối.

sửa: for i:=1 to 3 do writeln('H');

b) giá trị đầu và giá trị cuối phải là kiểu số nguyên.

sửa: for i:=1 to 10 do writeln('H');

c) sau while là 1 điều kiện, không phải là 1 phép gán và sai cú pháp của câu lệnh gán sau do.

sửa: x:=2;

       while x=2 do x:=x+1;

d)câu lệnh lặp while-do này điều kiện luôn đúng nên sẽ lặp vô hạn lần.

sửa: x:=2;

       while s<=10 do

         begin

             n:=n+1;

             s:=s+n;

         end;

a) Sai cú pháp vì chỉ số đầu phải nhỏ hơn chỉ số cuối.

b) Sai giá trị biến đếm vị giá trị biến đếm là phải là số nguyên dương.

c) Sai công thức vì thiếu dấu = ở chỗ x:x+1;

d) Sai vì câu lệnh ghép phía sau do thì phải đặt vào cặp begin...end; Nếu không có cặp begin...end; thì sẽ rơi vào vòng lặp vô hạn.