* Em hãy cho một số ví dụ về hoạt động lặp với số lần chưa biết trước?.?. Lệnh lặp với số lần chưa biết trước..[r]
(1)(2)Nội dung
1 Lệnh lặp với số lần chưa biết trước 1 Lệnh lặp với số lần chưa biết trước
(3) Bảo làm tập làm xong
Cô phải tới nhà
Tôi phải nhập liệu vào máy tính nhập xong
Hoạt động lặp lại?
Hoạt động kết thúc nào?
(4)VD 1: Viết chương trình tính tổng số tự nhiên từ đến 100
S = + + + +100
Lặp 100 lần
VD 2: Viết chương trình tính tổng số tự nhiên
S = + + + … Cho đến S>100
Chưa biết số vòng lặp bao nhiêu
Lặp với số lần biết trước, sử dụng câu lệnh lặp For…Do
để viết chương trình
Ví dụ thực bao
nhiêu vịng lặp? Ví dụ thực vòng lặp?
(5)1 Lệnh lặp với số lần chưa biết trước: Ví dụ 1Ví dụ 1:
Nếu cộng n số tự nhiên (n=1,2,3,…) Ta kết quả:
… tăng dần
Điều kiện kết thúc hoạt động lặp?
Điều kiện: Khi tổng Tn nhỏ nhất lớn 1000 kết
thúc hoạt động lặp
(6)1 Lệnh lặp với số lần chưa biết trước
Phân tích tốn:
n Tổng Tn Điều kiện Tn≤1000
1
… … …
T1=1 T2=1+2 T3=1+2+3
Đúng Đúng
Đúng Tn =1+2+3+…+?
(Sao cho Tn nhỏ lớn 1000)
Sai, kết thúc việc tính tổng
(7)S 0, n 0.
Nếu S≤1000 chuyển tới bước 3; Ngược lại (s>1000) chuyển tới bước 4.
N n+1; S S + n; quay lại bước 2.
In kết quả: S n số tự nhiên nhỏ sao cho S>1000 Kết thúc thuật tốn.
Kí hiệu S tổng cần tìm ta có thuật toán sau:
(8)8
Để viết chương trình dẫn máy tính thực hoạt động lặp mà chưa xác định trước số lần lặp, ta sử dụng câu lệnh có dạng lặp với số lần chưa xác định.
(9)While <điều kiện> <câu lệnh >;
Trong đó:
While, do: từ khóa
Điều kiện: thường phép so sánh
Câu lệnh: câu lệnh đơn giản hay câu lệnh ghép
Chú ý : Trong trường hợp câu lệnh ghép: While <điều kiện>
Begin
câu lệnh 1; câu lệnh 2; …
End;
1 Lệnh lặp với số lần chưa biết trước
(10)Kết thúc
* Hoạt động:
Quan sát sơ đồ khối, cho
biết câu lệnh while Do
hoạt động thế nào?
Bước : Kiểm tra điều kiện.
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 đúng, thực câu lệnh quay lại bước
1 Lệnh lặp với số lần chưa biết trước
(11)Ví dụ 2: Chúng ta biết rằng, n(n>0) lớn 1/n nhỏ, ln lớn
Với giá trị n 1/n < 0.005
1/n<0.003? Chương trình tìm số n nhỏ
(12)1 Lệnh lặp với số lần chưa biết trước
Phân tích tốn ví dụ 2:
n
X=1/n Điều kiện x>0.003
1
… … …
x1=1/1 x2=1/2 x3=1/3
Đúng Đúng
Đúng xn =1/n
(Điều kiện 1/n<0.003) Sai, kết thúc trình lặp
(13)Uses crt;
Var x: Real; n: Integer; Const Sai_So=0.003;
Begin Clrscr;
x:=1; n:=1;
While x >= Sai_So
Begin
x:=1/n;
n:=n+1;
End;
Writeln(‘So n nho nhat de 1/n < ‘,Sai_So:6:4, ‘ la ‘,n-1); Readln;
End.
Uses crt;
Var x: Real; n: Integer;
Const Sai_So=0.003; Begin
Clrscr;
x:=1; n:=1;
While x >= Sai_So
Begin
x:=1/n; n:=n+1;
End;
Writeln(‘So n nho nhat de 1/n < ‘,Sai_So:6:4, ‘ la ‘,n-1); Readln;
End.
Chương trình tính số n nhỏ để 1/n nhỏ sai số cho trước:
(14)VD 3: Dùng câu lệnh lặp While … Do để viết chương trình thể thuật tốn Ví dụ
var S,n: integer; Begin
S:=0; n:=0;
while S<=1000 do begin
n:=n+1; S:=S+n ; end;
write(‘Tong dau tien >1000 la ’, s); Readln;
End.
Ta nhận kết n=45 tổng lớn 1000 1035
1 Lệnh lặp với số lần chưa biết trước
(15)T:=0;
For i:=1 to 100 T:=T + 1/i; Writeln(‘ T= ’, T:7:2);
Dùng lệnh FOR DO Dùng lệnh While Do
T:=0; i:=1;
While i<=100 begin T:=T + 1/i; i:=i+1;
end;
Writeln(‘ S = ’, S:7:2); Có thể sử dụng lệnh While do thay
cho lệnh For Do Ví dụ
(16)+ Xem trước thực hành Sử dụng lệnh lặp While…do
- Học
- Chuẩn bị: 8: “Lặp với số lần
chưa biết
trước”(mục 2) em tự học (SGK)
(17)