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

Chia sẻ bởi Nguyễn Thanh Hùng | Ngày 24/10/2018 | 50

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:

CHÀO MỪNG
QUÝ THẦY CÔ GIÁO ĐẾN DỰ GIỜ THĂM LỚP
LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC
HỌC, HỌC NỮA
HỌC MÃI
bài giảng
BÀI 8 (T1)
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:
Các hoạt động lặp với số lần chưa biết trước như:
- Nhặt rau cho đến khi nào xong.
- Chải răng cho đến khi nào sạch.
- Trong xưởng may, mỗi cô công nhân may cùng một chi tiết của chiếc áo, quần. May xong một sản phẩm, cô công nhân sẽ may sản phẩm tiếp theo cho đến khi hết giờ làm việc.
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ụ 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 thì chắc 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? Chưa thể biết trước được, có thể một lần, có thể hai hoặc nhiều hơn nữa.
Mình sẽ gọi thêm
2 lần nữa !
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ụ 1:
Điều kiện kết thúc hoạt động đó là gì?
 Có người nhấc máy
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:
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.
Ví dụ 2:
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:
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
Ví dụ 2:
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ậy hoạt động lặp lại với số lần chưa biết trước phụ thuộc vào một điều kiện cụ thể được thoả mãn không.
Điều kiện
Câu lệnh
Đúng
Sai
KT
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
Trong Pascal câu lệnh lặp với số lần chưa biết trước có dạng:
Cú pháp: WHILE <điều kiện> DO ;
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
Câu lệnh này được thực hiện như sau:
1. Kiểm tra điều kiện
2. Nếu điều kiện SAI, câu lệnh sẽ bị bỏ qua và 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.
Baøi 8:
LAËP VÔÙI SOÁ LAÀN CHÖA BIEÁT TRÖÔÙC
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
Ví dụ 3: Chúng ta biết rằng, nếu n(n>0) càng lớn thì 1/n 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,003?
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 s_so=0.003;
Begin
Clrscr;
x:=1; n:=1;
While x>=s_so do
begin n:=n+1; x:=1/n end;
Writeln(‘So n nho nhat de 1/n<’, s_so:6:4, ‘la’,n);
Readln
End.
VD4
CỦNG CỐ
Câu 1: Hãy tìm hiểu đoạn chương trình sau:
x:=0; tong:=0;
While tong<=20 do
Begin
writeln(tong); tong:=tong+1;
End;
x:=tong;
Chạy chương trình giá trị của x bằng bao nhiêu?
21
Không xđ được
0
20
21
Câu 2: Đoạn lệnh sau cho kết quả là gì?
so:=1;
While so<10 do writeln(so);
so:=so+1;
Bài giảng đến đây kết thúc
Xin chân thành cảm ơn !
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
Var s, n: integer;
Begin
Clrscr;
s:=0; n:=0;
While s<=1000 do
begin s:=s+n; n:=n+1 end;
Writeln(‘So n nho nhat de tong lon hon 1000 la’, n);
Writeln(‘Tong dau tien lon hon 1000 la’, s);
Readln
End.
CC
Ví dụ 4: Chương trình Pascal thể hiện thuật toán trong ví dụ 2
* 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 Thanh Hù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)