Hãy tìm hiểu các cụm câu lệnh sau đây và cho biết với các câu lệnh đó chương trình thực hiện bao nhiêu vòng lặp? Hãy rút ra nhận xét của em.
a)
S:=0; n:=0;
while S<=10 do
begin n:=n+1; S:=S+n end;
b)
S:=0; n:=0;
while S<=10 do
n:=n+1; S:=S+n;
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).
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;
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.
S:=2 ; i :=0;
While i<=10 do
Begin
S :=S + i; i :=i +2
câu 1. Câu lệnh nào đúng ?
A. While (x mod 3=0) do s:=s+1; B. While (x mod 3)do s:=s+1;
C. While (x mod 3=0) ;do s:=s+1; D. While (x:=x mod 3) do s:=s+1;
câu 2 . cho đoạn chương trình sau:
S:=20; n:=0;
While s>=10 do
Begin
n:=n+3;
S:=S-n;
End;
hãy cho biết giá trị của S sau đoạn chương trình trên:
A. 4 B. 1 C. 2 D.3
Cho đoạn chương trình sau: s := 0; i := 1 while s <= 10 do begin i := i + 1; s := s + i; end; Cho biết câu lệnh while dừng khi s bằng bao nhiêu?
cho các đoạn chương trình sau:
a) S:=1; For i:=1 to 8 do S:=S+5
Writeln (S'='=S);
b) i:=1; S:=0 ; While S<10 do
Begin S:=S+2; i:=i+1; End;
hãy cho biết chương trình sẽ lặp bao nhiêu vòng khi thực hiện : s :=0 ; n:= 0 ; while s<=10 do begin n:=n+1 ; s:=s+n ;
Vòng lập sẽ chạy 5 lần lúc đó s=15 vừa sai điều kiện \(s< =10\) nên vòng lập kết thúc
Em hãy xác định các câu lệnh sau đây đúng hay sai? Nếu sai hãy giải thích tại sao?
a) For i:=150 to 1 do writeln(‘A’);
b) For i:=1.5 to 30.5 do writeln(‘B’);
c) S:=0;n:=0; While S<=20 do begin n:=n+1;S:=S+n; end
d) Var X: array[10..1] of integer;
e) Var X: array[1,5...20,5] of integer;
f) Var X: array[1..30] of integer;
a: Sai bởi chỉ số đầu lớn hơn chỉ số cuối
b: Sai vì chỉ số đầu, chỉ số cuối là số thực
c: Sai vì chỗ end thiếu chấm phẩy
d: Sai vì chỉ số đầu lớn hơn chỉ số cuối
e: Sai vì chỉ số đầu và chỉ số cuối là số thực
d: Đúng
Cho biết đoạn chương trình Pascal sau đây, khi kết thúc giá trị của S bằng bao nhiêu?
S:=0; n:=0;
while S<10 do
begin
n:= n+1;
S:= s+n
end;
A. 15
B. 10
C. 6
D. 3