Hãy chỉ ra lỗi và sau đó sửa lỗi trong các câu lệnh sau đây: a) A:=5While A:=5 do A:=A+3; b) S:=O; For i:=1 to 5.5 do s:=s+i; c) m:=O; T:=O; While T<=5 do m:=m+1; T:=T+m; d) T:=O; For i:=6 to 1 do T:=T*i;

2 câu trả lời

a) Chưa có dấu chấm phẩy sau A:=5.

Sửa lỗi: A:=5; while A:=5 do A:=A+3;

b) Giá trị cuối trong for không được là số thực

Sửa lỗi: S:=0; For i:=1 to 5 do s:=s+i;

c) Hai câu lệnh m:=m+1; T:=T+m; phải đặt trong chữ begin và end. Nếu không sẽ cho ra vòng lặp vô hạn.

Sữa lỗi:  m:=0; T:=0; While T<=5 do begin m:=m+1; T:=T+m; end;

d) Giá trị cuối trong for phải to hơn giá trị đầu.

Sửa lỗi: T:=0; For i:=1 to 6 do T:=T*i;

Một lỗi nhỏ là bạn khi đánh bài bạn đánh lộn số 0 với chữ O. Nếu bạn đi hỏi thì không sao, nhưng nếu như bạn đi thi mà bạn lại đánh lộn như thế này thì chương trình sẽ chạy lỗi. Nhớ nhé!

a) A := 5 While A := 5 do A := A + 3;

- Thiếu dấu ngăn cách giữa các lệnh

- A := 5; While A := 5 do A := A + 3;

b) S := 0; For i := 1 to 5.5 do s := s + i;

- Sai kiểu dữ liệu giá trị cuố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;

- Lỗi vòng lặp vô hạn

- Giá trị T không đổi qua mỗi vòng lặp

- m := 0; T := 0; While T <= 5 do beign m := m + 1; T := T + m; end;

d) T := 0; For i := 6 to 1 do T := T * i;

- Giá trị đầu > Giá trị cuối

- T := 0; For i := 1 to 6 do T := T * i;