Bước 2 : Nếu điều kiện SAI , câu lệnh sẽ bị bỏ qua và việc thực hiện lệnh lặp kết thúc. Nếu điều kiện[r]
(1)(2)Tớ phải bị phạt đi tới lui thế bao ?
Còn tớ phải bị phạt tập thể dục
như cho tới ?
Mỗi tình mơ tả điều lặp lại? Và lặp lần?
Cậu phải cho đến trời mưa. Cậu phải làm 50 lần
(3)Câu lệnh lặp
Cú pháp:
for <biến đếm> := <giá trị đầu> to <giá trị cuối> do <câu lệnh>;
(4)Bài 8: L p v i s l n ch a ặ ớ ố ầ ư bi t trế ước
(5)Bài 8: L p v i s l n ch a bi t trặ ớ ố ầ ư ế ước Bài 8: L p v i s l n ch a bi t trặ ớ ố ầ ư ế ước
Nội dung chính:
1/ Các hoạt động lặp với số lần chưa biết trước 2/ Ví dụ lệnh lặp với số lần chưa biết trước
• Cú pháp câu lệnh • Ví dụ
(6)(7)(8)1/ Các hoạt động lặp với số lần chưa biết trước
• VD 2: Nếu cộng n số tự nhiên đầu
tiên (n = 1, 2, 3, ), ta kết :
T1 =1
T2 =1 + 2
T3 =1 + + 3
…
Tn = + + + + ….+ n
(9)1/ Các hoạt động lặp với số lần chưa biết trước
Thuật tốn
• Bước 1. S := 0, n := 0.
• Bước 2. Nếu S ≤ 10, n n + 1; ngược lại chuyển
tới bước
• Bước 3. S S + n và quay lại bước 2.
• Bước 4. In kết quả: S n số tự nhiên nhỏ
(10)1/ Các hoạt động lặp với số lần chưa biết trước
Thuật tốn
• Bước 1. S := 0, n := 1.
• Bước 2. Nếu S ≤ 10, S S + n; ngược lại chuyển
tới bước
• Bước 3. n n + quay lại bước 2.
• Bước 4. In kết quả: S n số tự nhiên nhỏ
(11)1/ Các hoạt động lặp với số lần chưa biết trước
Câu lệnh
Đúng
Sai
(12)1/ Các hoạt động lặp với số lần chưa biết trước
N:=N+1; T:=T+N;
Đúng
Sai
(13)(14)2/ Ví dụ lệnh lặp với số lần chưa biết trước
Cú pháp:
While <điều kiện> do <câu lệnh>;
Trong điều kiện thực câu lệnh Trong đó:
• While, do: từ khố.
(15)2/ Ví dụ lệnh lặp với số lần chưa biết trước
Câu lệnh lặp thực sau:
Bước : Nếu điều kiện SAI, câu lệnh bị bỏ qua việc thực lệnh lặp kết thúc Nếu điều kiện
(16)2/ Ví dụ lệnh lặp với số lần chưa biết trước
Câu lệnh
Đúng
Sai
(17)(18)Trở lại Ví dụ 2: Nếu cộng n số tự nhiên (n = 1, 2, 3, ), ta các kết T1 =1, T2 =1 + 2, T3 =1 + + 3, tăng dần Cần cộng số tự nhiên đầu tiên để ta nhận tổng Tn nhỏ lớn hơn 1000?
(19)Chương trình Pascal sau thể thuật tốn tính số n ví dụ 2:
2/ Ví dụ lệnh lặp với số lần chưa biết trước
var S,n: integer;
begin
S:=0; n:=1;
while S<=1000 do begin
n:=n+1; S:=S+n
end;
writeln('So n nho nhat de tong > 1000 la ',n); writeln('Tong dau tien > 1000 la ',S);
(20)S:=S+n; N:=N+1;
Đúng
Sai
S<=1000
VD4:
Xuất S N
(21)(22)(23)Chúng ta biết rằng, n càng lớn 1/n nhỏ, luôn lớn Vậy với giá trị n thì 1/n < 0.005 1/n < 0.003?
var x: real; n: integer; const sai_so=0.003;
Begin
x:=1; n:=1;
while x>=sai_so begin
n:=n+1; x:=1/n ;
end;
writeln('So n nho nhat de 1/n <‘,sai_so:5:4, 'la ',n);
Readln; End
Chương trình tính số n nhỏ để 1/n nhỏ sai số cho trước
Chương trình tính số n nhỏ để 1/n nhỏ sai số cho trước
(24)2/ Ví dụ lệnh lặp với số lần chưa biết trước
N := N+1; X := 1/N;
Đúng
Sai
X >= sai_so
VD3:
(25)var i: integer; T: real;
begin
T:=0;
for i:=1 to 100 T:=T+1/i; writeln(T);
end.
Hãy sử dụng lệnh lặp với số lần lặp biết trước for…do để viết chương trình tính tổng
Viết chương trình tính tổng
(26)Nếu sử dụng lệnh lặp while…do, đoạn chương trình cho kết quả:
Viết chương trình tính tổng
var i: integer; T: real;
begin
T:=0; i:=1;
while i<=100
begin T:=T+1/i; i:=i+1; end; writeln(T); end.
Nhận xét : Qua ví dụ cho thấy sử dụng câu lệnh while…do thay cho câu lệnh for…do
(27)3/ Lặp vơ hạn – Lỗi lập trình cần tránh
var a:integer; begin
a:=5;
while a<6 writeln('A'); end
Xét đoạn chương trình sau
Cần ý đặt điều kiện cho phù hợp
(28)(29)Bài tập
Nếu S=10, i=0 Sau thực câu lệnh
while S>5 do
begin
i:=i+1; S:=S-i
end;
writeln(S);
(30)Nếu S=0,i=1 Sau thực câu lệnh
while i<=5 Do
Begin i:=i+1; S:=S+i;
End;
writeln('Ket qua la :',S);
Thì giá trị S là: