Bài 8. Lặp với số lần chưa biết trước
Chia sẻ bởi Lê Thanh Tùng |
Ngày 24/10/2018 |
92
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:
Trêng THCS B¾c NghÜa
Giáo viên: Lê Thanh Tùng
Kiểm tra bài củ
Viết thuật toán tính tổng 100 số tự nhiên đầu tiên 1,2,3,…,99,100
Bước 2. i = i + 1.
Bước 3. Nếu i ≤ 100, thì SUM = SUM + i và quay lại bước2.
Bước 4. Thông báo kết quả và kết thúc thuật toán.
Trả lời
Bước 1. SUM = 0; i = 0.
1. Các hoạt động lặp với số lần chưa biết trước
Ví dụ 1: Mét ngµy chñ nhËt, b¹n Long gäi ®iÖn cho Trang. Kh«ng cã ai nhÊc m¸y. Long quyÕt ®Þnh gäi thªm hai lÇn n÷a.NÕu vÉn kh«ng cã ai nhÊc m¸y lµ kh«ng cã ai ë nhµ. Nh vËy Long ®· biÕt tríc lµ m×nh sÏ lÆp l¹i ho¹t ®éng gäi ®iÖn thªm hai lÇn. Mét ngµy kh¸c,Long quyÕt ®Þnh cø 10 phót gäi ®iÖn mét lÇn cho Trang cho ®Õn khi nµo cã ngêi nhÊc m¸y. LÇn nµy Long sÏ lÆp l¹i ho¹t ®éng gäi ®iÖn mÊy lÇn? Cha thÓ biÕt tríc ®îc, cã thÓ mét lÇn, hai lÇn hoÆc nhiÒu lÇn. §iÒu kiÖn kÕt thóc lµ cã ngêi nhÊc m¸y.
Ví dụ 2: Nếu cộng lần lượt n số tự nhiên đầu tiên (n = 1, 2, 3,...), 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?
Giải :
Kí hiệu S là tổng cần tìm và ta có thuật toán như sau:
+ Bước 1. S = 0, n = 0.
+ Bước 2. Nếu S ≤ 1000, 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 > 1000. Kết thúc thuật toán.
* Ta có sơ đồ khối :
* Nhận xét : Để viết chương trình chỉ dẫn máy tính thực hiện các hoạt động lặp như trong các ví dụ trên, ta có thể sử dụng câu lệnh có dạ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
Trong Pascal câu lệnh lặp với số lần chưa biết trước có dạng:
while <đ iều kiện> do;
Trong đó:
+ §iều kiện: thường là một phép so sánh;
+Câu lệnh: có thể là câu lệnh đơn giản hay câu
lệnh ghép.
Câu lệnh lặp này được thực hiện như sau:
+Bước 1 : Kiểm tra điều kiện.
+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.
Ví dụ 3.
Chúng ta biết rằng, nếu n càng lớn thì càng nhỏ, nhưng luôn luôn lớn hơn 0. Với giá trị nào của n thì 1/n < 0.005 hoặc 1/n < 0.003 ?
uses crt;
var x: real;
n: integer;
const sai_so=0.003;
begin
clrscr;
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.
Giải:
Ví dụ 4. Chương trình Pascal dưới đây thể hiện thuật toán tính số n trong ví dụ 2:
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.
Giải:
1. Ngoài cấu trúc lặp với số lần biết trước,các ngôn ngữ
lập trình còn có các câu lệnh lặp với
số lần chưa biết trước
2. While...do là câu lệnh lặp với số lần chưa
biết trước trong pascal
Giáo viên: Lê Thanh Tùng
Giáo viên: Lê Thanh Tùng
Kiểm tra bài củ
Viết thuật toán tính tổng 100 số tự nhiên đầu tiên 1,2,3,…,99,100
Bước 2. i = i + 1.
Bước 3. Nếu i ≤ 100, thì SUM = SUM + i và quay lại bước2.
Bước 4. Thông báo kết quả và kết thúc thuật toán.
Trả lời
Bước 1. SUM = 0; i = 0.
1. Các hoạt động lặp với số lần chưa biết trước
Ví dụ 1: Mét ngµy chñ nhËt, b¹n Long gäi ®iÖn cho Trang. Kh«ng cã ai nhÊc m¸y. Long quyÕt ®Þnh gäi thªm hai lÇn n÷a.NÕu vÉn kh«ng cã ai nhÊc m¸y lµ kh«ng cã ai ë nhµ. Nh vËy Long ®· biÕt tríc lµ m×nh sÏ lÆp l¹i ho¹t ®éng gäi ®iÖn thªm hai lÇn. Mét ngµy kh¸c,Long quyÕt ®Þnh cø 10 phót gäi ®iÖn mét lÇn cho Trang cho ®Õn khi nµo cã ngêi nhÊc m¸y. LÇn nµy Long sÏ lÆp l¹i ho¹t ®éng gäi ®iÖn mÊy lÇn? Cha thÓ biÕt tríc ®îc, cã thÓ mét lÇn, hai lÇn hoÆc nhiÒu lÇn. §iÒu kiÖn kÕt thóc lµ cã ngêi nhÊc m¸y.
Ví dụ 2: Nếu cộng lần lượt n số tự nhiên đầu tiên (n = 1, 2, 3,...), 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?
Giải :
Kí hiệu S là tổng cần tìm và ta có thuật toán như sau:
+ Bước 1. S = 0, n = 0.
+ Bước 2. Nếu S ≤ 1000, 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 > 1000. Kết thúc thuật toán.
* Ta có sơ đồ khối :
* Nhận xét : Để viết chương trình chỉ dẫn máy tính thực hiện các hoạt động lặp như trong các ví dụ trên, ta có thể sử dụng câu lệnh có dạ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
Trong Pascal câu lệnh lặp với số lần chưa biết trước có dạng:
while <đ iều kiện> do
Trong đó:
+ §iều kiện: thường là một phép so sánh;
+Câu lệnh: có thể là câu lệnh đơn giản hay câu
lệnh ghép.
Câu lệnh lặp này được thực hiện như sau:
+Bước 1 : Kiểm tra điều kiện.
+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.
Ví dụ 3.
Chúng ta biết rằng, nếu n càng lớn thì càng nhỏ, nhưng luôn luôn lớn hơn 0. Với giá trị nào của n thì 1/n < 0.005 hoặc 1/n < 0.003 ?
uses crt;
var x: real;
n: integer;
const sai_so=0.003;
begin
clrscr;
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.
Giải:
Ví dụ 4. Chương trình Pascal dưới đây thể hiện thuật toán tính số n trong ví dụ 2:
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.
Giải:
1. Ngoài cấu trúc lặp với số lần biết trước,các ngôn ngữ
lập trình còn có các câu lệnh lặp với
số lần chưa biết trước
2. While...do là câu lệnh lặp với số lần chưa
biết trước trong pascal
Giáo viên: Lê Thanh Tùng
* 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ẻ: Lê Thanh Tùng
Dung lượng: |
Lượt tài: 1
Loại file:
Nguồn : Chưa rõ
(Tài liệu chưa được thẩm định)