Hãy chỉ ra lỗi trong các câu lệnh sau đây:
a) X:=10; while X:=10 do X:=X+5;
b) X:=10; while X=10 do X=X+5;
c) S:=0; n:=0; while S<=10 do n:=n+1; S:=S+n;
Hãy nhập câu hỏi của bạn vào đây, nếu là tài khoản VIP, bạn sẽ được ưu tiên trả lời.
a) Vòng lặp while thực hiện 5 vòng lặp:
Vòng thứ nhất s=0 => n=1, s=1;
Vòng thứ hai s=1 => n=2, s=3;
Vòng thứ ba s=3 => n=3, s=6;
Vòng thứ tư s=6 => n=4, s=10;
Vòng thứ năm s=10 => n=5, s=15 kết thúc vòng lặp.
=> Vòng while sẽ kết thúc khi giá trị của s thay đổi không đáp ứng điều kiện tiếp tục vòng.
b) Vòng lặp while thực hiện vô hạn lần.
=> Giá trị của s luôn thỏa mãn điều kiện tiếp tục vòng while vì trong vòng while không thấy sự thay đổi của biến s (s luôn bằng 0 bé hơn 10).
a)
- Máy thực hiện gồm 10 vòng lặp
- Khi kết thúc vòng lặp giá trị của S=5
- Chương trình :
Program hotrotinhoc;
var x,s:real;
begin
s:=10; x:=0.5;
while s>=5.2 do s:=s-x;
write(s:1:0);
readln
end.
b)
- Máy thực hiện gồm vô hạn vòng lặp
- Khi kết thúc vòng lặp giá trị của S không xác định
- Chương trình :
Program hotrotinhoc;
var n,s:byte;
begin
s:=10; n:=0;
while s<=10 do
begin
n:=n+3;
s:=s-n;
end;
write(s);
readln
end.
a)
- Máy thực hiện gồm 10 vòng lặp
- Khi kết thúc vòng lặp giá trị của S=5
- Chương trình :
Program hotrotinhoc;
var x,s:real;
begin
s:=10; x:=0.5;
while s>=5.2 do s:=s-x;
write(s:1:0);
readln
end.
b)
-không thực hiện lặp do điều kiện thoát lặp là s>=10 mà ban đầu s=10
-kết thúc,s=10
chương trình:
Program hotrotinhoc;
var n,s:byte;
begin
s:=10; n:=0;
while s<10 do
begin
n:=n+3;
s:=s-n;
end;
write(s);
readln
end.
Câu lệnh lặp với số lần biết trước :
– Chỉ thị cho máy tính thực hiện 1 lệnh hay 1 nhóm lệnh với số lần đã được xác định từ trước.
– Điều kiện là 1 giá trị của 1 biến đếm có giá trị nguyên
Câu lệnh lặp với số lần chưa biết trước :
– Chỉ thị cho máy tính thực hiện 1 lệnh hay 1 nhóm lệnh với số lần lặp chưa biết trước.
– Điều kiện tổng quát hơn, có thể là kiểm tra của 1 giá trị có thực, cũng có thể là 1 điều kiện tổng quát khác.
Lời giải :
Câu lệnh lặp với số lần biết trước :
– Chỉ thị cho máy tính thực hiện 1 lệnh hay 1 nhóm lệnh với số lần đã được xác định từ trước.
– Điều kiện là 1 giá trị của 1 biến đếm có giá trị nguyên
Câu lệnh lặp với số lần chưa biết trước :
– Chỉ thị cho máy tính thực hiện 1 lệnh hay 1 nhóm lệnh với số lần lặp chưa biết trước.
– Điều kiện tổng quát hơn, có thể là kiểm tra của 1 giá trị có thực, cũng có thể là 1 điều kiện tổng quát khác.
- Tập đi cho đến khi biết đi.
- Tập nấu cho đến khi nấu ăn giỏi.
- Tập lái xe đến khi biết lái.
- Học thuộc lòng một bài thơ cho tới khi bố mẹ kiểm tra là đã thuộc thì mới kết thúc, nếu không thì phải học lại…
Tìm số n sao cho tổng các chữ số của n lớn hơn hoặc bằng k
Bước 1:Nhập n.Gán i=1,A:=0;
Bước 2:A=1
i(i+2)
Bước 3:i:=i+1
Bước 4:In ra A
Bước 5:Kết thúc vòng lặp.
Bài Làm:
Bước 1:Nhập n.Gán i=1,A:=0;
Bước 2:A=1 và i(i+2)
Bước 3:i:=i+1
Bước 4:In ra A
Bước 5:Kết thúc vòng lặp.
c) Không hợp lệ vì lệnh gán phải kí hiệu là := chứ không phải =
d) Không hợp lệ vì sau từ khóa do không được phép có dấu chấm phấy ;
e) Không hợp lệ, vì không x phải khai báo số nguyên !
a) ko. vì giá trị đầu lớn hơn giá trị cuối
b) ko. vì giá trị đầu và giá trị cuối ko phải là giá trị nguyên
c) ko. vì sau biến đếm i thiếu dấu (:)
d) ko. vì sau DO có dấu (;)
e) ko. vì x ko khai báo số nguyên
- Biến đếm, giá trị đầu, giá trị cuối là kiểu số nguyên
- Giá trị cuối lớn hơn hoặc bằng giá trị đầu
Khi thực hiện, ban đầu biến đếm sẽ nhận giá trị đầu, sau mỗi vòng lặp, biến đếm sẽ tự động tăng thêm một đơn vị cho đến khi bằng giá trị cuối.
a) Thừa dấu hai chấm trong điều kiện;
b) Thiếu dấu hai chấm trong câu lệnh gán;
c) Thiếu các từ khóa begin và end trước và sau các lệnh n:=n+1; S:=S+n, do đó vòng lặp trở thành vô tận.