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

Chia sẻ bởi Nguyễn Thế Đạt | Ngày 24/10/2018 | 35

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:

Baøi 8:
LAËP VÔÙI SOÁ LAÀN
CHÖA BIEÁT TRÖÔÙC
tiết 43 + 44:
Mình đã gọi 2 lần rồi !
Mình sẽ gọi cho đến khi gặp Thanh?
Baøi 8:
LAËP VÔÙI SOÁ LAÀN CHÖA BIEÁT TRÖÔÙC
1. Các hoạt động lặp với số lần chưa biết:
Ví dụ:

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
....
Cần cộng bao nhiêu số tự nhiên để ta nhận được tổng Tn nhỏ nhất lớn hơn 1000?
Trong trường hợp này, để quyết định thự�c hiện phép cộng với số tiếp theo hay dừng, trong từng bước phải kiểm tra tổng đã lớn hơn 1000 hay chưa.
Baøi 8:
LAËP VÔÙI SOÁ LAÀN CHÖA BIEÁT TRÖÔÙC
1. Các hoạt động lặp với số lần chưa biết:
Ví dụ:

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
....
Kí hiệu S là tổng cần tìm 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ả
Kết thúc thuật toán
Bắt đầu thuật toán
Cú pháp: WHILE <ĐiỀU KiỆN> DO ;
Công dụng: lặp với số lần chưa xác định.
Trong đó:
<điều kiện> : Thường là một phép so sánh
: Có thể là câu lệnh đơn giản hay câu lệnh ghép.
Baøi 8:
LAËP VÔÙI SOÁ LAÀN CHÖA BIEÁT TRÖÔÙC
2. VÍ DỤ VỀ LỆNH LẶP VỚI SỐ LẦN CHƯA BiẾT TRƯỚC
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.
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.
Vớ d?4(sgk). Chương trình Pascal dưới đây thể hiện thuật toán tính số n trong ví dụ 2:
Vớ d?5(sgk). Để viết chương trình tính tổng ta có thể sử dụng lệnh lặp với số lần lặp biết trước for.do:
T:=0;
for i:=1 to 100 do T:=T+1/i;
writeln(T);
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ả:
T:=0;
i:=1;
while i<=100 do begin T:=T+1/i; i:=i+1 end;
writeln(T);
Baøi 8:
LAËP VÔÙI SOÁ LAÀN CHÖA BIEÁT TRÖÔÙC
3. Lặp vô hạn lần – lỗi lập trình cần tránh
Ví dụ(sgk)
Lưu ý: Khi thực hiện vòng lặp, While ….do cần xác định được điều kiện trong câu lệnh sau một số lần sẽ chuyển từ đúng sang sai để thoát khỏi vòng lặp. Không rơi vào những “Vòng lặp vô tận”
- Trong vòng lặp While...do điều kiện được kiểm tra trước khi thực hiện cậu lệnh
Khi viết chương trình sử dụng cấu trúc lặp cần chú ý tránh tạo nên vòng lặp không bao giờ kết thúc.
var a:integer;
begin
a:=5;
while a<6 do writeln(`a`);
end.
* 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 Thế Đạt
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)