Bài 8. Lặp với số lần chưa biết trước

Chia sẻ bởi Nguyễn Hải Đảo | Ngày 24/10/2018 | 34

Chia sẻ tài liệu: Bài 8. Lặp với số lần chưa biết trước thuộc Tin học 8

Nội dung tài liệu:

Tớ phải bị phạt đi tới đi lui như thế này cho tới bao giờ ?
Còn tớ phải bị phạt tập thể dục như thế này cho tới bao giờ ?
Mỗi tình huống mô tả điều gì được lặp lại? Và lặp bao nhiêu lần?
Cậu phải đi cho đến khi trời mưa.
Cậu phải làm 50 lần như thế.
Câu lệnh lặp
Cú pháp:
for := to do ;

Số vòng lặp =
Giá trị cuối – giá trị đầu + 1
Bài 8: Lặp với số lần chưa biết trước
(2 tiết)
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ụ về lệnh lặp với số lần chưa biết trước
Cú pháp của câu lệnh
Ví dụ

3/ Lặp vô hạn – Lỗi lập trình cần tránh
1/ Các hoạt động lặp với số lần chưa biết trước
VD 1: (SGK )
TH1: Một ngày nọ, Long gọi điện thoại rủ bạn Linh đi chơi nhưng không có ai nhấc máy. Và Long quyết định gọi cho Linh thêm 3 lần nữa mà không có người bắt máy thì chắc không có ai ở nhà.

1/ Các hoạt động lặp với số lần chưa biết trước
VD 1: (SGK )
TH2: Sáng hôm sau, Long quyết định cứ 10 phút sẽ gọi điện thoại đến nhà Linh một lần cho đến khi nào có người nhấc máy.
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 lần lượt n số tự nhiên đầu tiên (n = 1, 2, 3,...), ta sẽ được các kết quả :
T1 =1
T2 =1 + 2
T3 =1 + 2 + 3

Tn = 1 + 2 + 3 + 4 + ….+ n
n = ? để Tn nhỏ nhất và lớn hơn 10
1/ Các hoạt động lặp với số lần chưa biết trước
Thuật toá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 4.
Bước 3. S  S + n và quay lại bước 2.
Bước 4. In kết quả: S và n là số tự nhiên nhỏ nhất sao cho S > 10. Kết thúc thuật toán.
1/ Các hoạt động lặp với số lần chưa biết trước
Thuật toá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 4.
Bước 3. n  n + 1 và quay lại bước 2.
Bước 4. In kết quả: S và n là số tự nhiên nhỏ nhất sao cho S > 10. Kết thúc thuật toán.
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
Điều Kiện
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
T<=10
2/ Ví dụ về lệnh lặp với số lần chưa biết trước
Cú pháp:

While <điều kiện> do ;

Trong khi điều kiện đúng thì thực hiện câu lệnh

Trong đó:
While, do: từ khoá.
: là câu lệnh đơn hoặc câu lệnh ghép.
< điều kiện>: là phép so sánh (<, >, =, <=, >=,<>)
2/ Ví dụ về lệnh lặp với số lần chưa biết trước
Câu lệnh lặp này được thực hiện như sau:
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 đúng, thực hiện câu lệnh và quay lại bước 1.
Bước 1 : Kiểm tra điều kiện.
2/ Ví dụ về lệnh lặp với số lần chưa biết trước
Câu lệnh
Đúng
Sai
Điều Kiện

Trở lại Ví dụ 2: Nếu cộng lần lượt n số tự nhiên đầu tiên (n = 1, 2, 3,...), ta sẽ được các kết quả T1 =1, T2 =1 + 2, T3 =1 + 2 + 3,... tăng dần. Cần cộng bao nhiêu số tự nhiên đầu tiên để ta nhận được tổng Tn nhỏ nhất lớn hơn 1000?
2/ Ví dụ về lệnh lặp với số lần chưa biết trước
Chương trình Pascal sau đây thể hiện thuật toán tính số n trong ví dụ 2:
2/ Ví dụ về 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);
end.
S:=S+n;
N:=N+1;
Đúng
Sai
S<=1000
VD4:
Xuất S và N
2/ Ví dụ về lệnh lặp với số lần chưa biết trước
Ví dụ 3
Chúng ta biết rằng, nếu n càng lớn thì 1/n càng nhỏ, nhưng luôn luôn lớn hơn 0. Vậy với giá trị nào của n thì 1/n < 0.005 hoặc 1/n < 0.003?
var x: real; n: integer;
const sai_so=0.003;
Begin
x:=1; n:=1;
while x>=sai_so do
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 dưới đây tính số n nhỏ nhất để 1/n nhỏ hơn một sai số cho trước
Chương trình tính số n nhỏ nhất để 1/n nhỏ hơn một sai số cho trước
2/ Ví dụ về lệnh lặp với số lần chưa biết trước
2/ Ví dụ về 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:
Xuất N
Ví dụ 5
var i: integer;
T: real;
begin
T:=0;
for i:=1 to 100 do 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
2/ Ví dụ về lệnh lặp với số lần chưa biết trước
Ví dụ 5
Nếu sử dụng lệnh lặp while…do, đoạn chương trình dưới đây cũng cho cùng một 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 do
begin
T:=T+1/i;
i:=i+1;
end;
writeln(T);
end.
Nhận xét : Qua ví dụ này cho thấy rằng chúng ta có thể sử dụng câu lệnh while…do thay cho câu lệnh for…do.
2/ Ví dụ về lệnh lặp với số lần chưa biết trước
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 do writeln(`a`);
end.
Xét đoạn chương trình sau
 Cần chú ý đặt điều kiện cho phù hợp
.

Bài tập
Nếu S=10, i=0 Sau khi thực hiện câu lệnh

while S>5 do
begin
i:=i+1;
S:=S-i
end;
writeln(S);

Thì giá trị của S là:
Nếu S=0,i=1 Sau khi thực hiện câu lệnh

while i<=5 Do
Begin i:=i+1; S:=S+i; End;
writeln(`Ket qua la :`,S);

Thì giá trị của S là:
Bài tập
* Một số tài liệu cũ có thể bị lỗi font khi hiển thị do dùng bộ mã không phải Unikey ...

Người chia sẻ: Nguyễn Hải Đảo
Dung lượng: | Lượt tài: 0
Loại file:
Nguồn : Chưa rõ
(Tài liệu chưa được thẩm định)