Bài 8. Lặp với số lần chưa biết trước
Chia sẻ bởi Phan Thanh Vinh |
Ngày 24/10/2018 |
46
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:
KIỂM TRA BÀI CŨ
Câu 1: Hãy ghi cú pháp của câu lệnh lặp For…do ?
Câu 2: Hãy viết chương tình tính tổng của 5 số đầu tiên ?
For:= to do ;
Var i, Tong:integr;
Begin
Tong:=0;
For i:=1 to 5 do
Tong:=Tong+1;
Writeln(‘Tong=‘,Tong);
Readln;
End.
Baøi 8:
LAËP VÔÙI SOÁ LAÀN CHÖA BIEÁT TRÖÔÙC
Nam làm bài tập cho đến khi làm xong.
Cô ấy phải đi bộ như vậy cho đến khi về tới nhà.
Các em hãy cho biết thêm những ví dụ về hoạt động lặp với số lần chưa biết trước?
Tôi phải nhập dữ liệu vào máy tính cho đến khi nhập xong.
1. CÁC HOẠT ĐỘNG LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC
Baøi 8:
LAËP VÔÙI SOÁ LAÀN CHÖA BIEÁT TRÖÔÙC
VD1(Sgk):
Long sẽ lặp lại hoạt động gọi điện mấy lần?
1. CÁC HOẠT ĐỘNG LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC
Chưa biết trước được. Điều kiện để kết thúc hoạt động lặp đó là có người nhấc máy.
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.
Baøi 8:
LAËP VÔÙI SOÁ LAÀN CHÖA BIEÁT TRÖÔÙC
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?
VD2(Sgk):
Điều kiện như thế nào thì kết thúc hoạt động lặp?
Điều kiện: Khi tổng Tn nhỏ nhất lớn hơn 1000 thì kết thúc hoạt động lặp
tăng dần
1. CÁC HOẠT ĐỘNG LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC
Baøi 8:
LAËP VÔÙI SOÁ LAÀN CHÖA BIEÁT TRÖÔÙC
1
T1 = 1
Đúng
2
T2 = 1 + 2
Đúng
Đúng
…
…
…
?
Tn = 1 + 2 + 3 + … +? (Sao cho Tn nhỏ nhất lớn hơn 1000)
Sai, kết thúc việc tính tổng
3
T3 = 1 + 2 + 3
Phân tích bài toán:
1. CÁC HOẠT ĐỘNG LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC
Baøi 8:
LAËP VÔÙI SOÁ LAÀN CHÖA BIEÁT TRÖÔÙC
Bước 1:
Bước 2:
Bước 3:
Bước 4:
S 0, n 0.
Nếu S≤1000, n n+1; Ngược lại, chuyển tới bước 4.
S S + n và quay lại bước 2.
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.
Kí hiệu S là tổng cần tìm và ta có thuật toán như sau:
Các hoạt động lặp với số lần chưa biết trước phụ thuộc vào cái gì và chỉ dừng lại khi nào?
* Có thể diễn tả bài toán trên bằng sơ đồ như sau:
1. CÁC HOẠT ĐỘNG LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC
Baøi 8:
LAËP VÔÙI SOÁ LAÀN CHÖA BIEÁT TRÖÔÙC
2. Ví dụ về lặp với số lần chưa biết trước
VD1: While a<=b do a:=a+1;
VD2: While a>b do
Begin write(‘a>b’); a:=a-1; End;
Trong đó : While, do là các từ khóa.
Điều kiện là a<=b (chứa phép so sánh).
Câu lệnh là a:=a+1 (câu lệnh đơn).
Trong đó : While, do là các từ khóa.
Điều kiện là a>b (chứa phép so sánh).
Câu lệnh là Write(‘a>b’) và a:=a-1 (câu lệnh ghép).
2. Ví dụ về lệnh lặp với số lần chưa biết trước:
Ví dụ 3: Với giá trị nào của n để 1/n < 0.003 ?. Viết chương
Trình tính số n nhỏ nhất để 1/n nhỏ hơn một sai số cho 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:6:4, ‘ la ‘,n);
Readln;
End.
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
VD: Dùng câu lệnh lặp While … Do để viết chương trình thể hiện thuật toán trong Ví dụ 2 (Sgk)
var S,n: integer;
Begin
S:=0; n:=0;
while S<=1000 do
begin
n:=n+1; S:=S+n ;
end;
write(‘Tong S= ’,S,‘ va ’,n,’ la so tu nhien nho nhat sao cho S>1000’);
Readln;
End.
Hãy nêu Cú Pháp câu lệnh lặp với số lần chưa biết trước?
Tong S= 1035 va 45 la so tu nhien nho nhat sao cho S>1000
LUYỆN TẬP – CŨNG CỐ:
Câu 1: Trong các hoạt động dưới đây hoạt động nào là hoạt động lặp với số lần chưa biết trước?
a) X:= 10; while X:= 10 do X:= X + 5;
b) X:= 10; while X = 10 do X = X + 5;
c) S:= 0; n:=0; while S <= 10 do n:= n + 1; S:= S + n ;
Cu 2:Hy ch? ra l?i trong cc l?nh sau dy?
Baøi 8:
LAËP VÔÙI SOÁ LAÀN CHÖA BIEÁT TRÖÔÙC
- Các hoạt động lặp với số lần chưa biết trước phụ thuộc vào một điều kiện cụ thể và chỉ dừng lại khi điều kiện đó sai.
Ghi nhớ
- 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;
Baøi 8:
LAËP VÔÙI SOÁ LAÀN CHÖA BIEÁT TRÖÔÙC
* Xem trước VD4; VD5; Lặp vô hạn – lỗi lập trình cần tránh.
Bài tập về nhà
* Tìm thm m?t vi ví d? v? ho?t d?ng l?p v?i s? l?n chua bi?t tru?c.
* V? nh h?c bi lm bi t?p 2 Sgk tr71.
Câu 1: Hãy ghi cú pháp của câu lệnh lặp For…do ?
Câu 2: Hãy viết chương tình tính tổng của 5 số đầu tiên ?
For
Var i, Tong:integr;
Begin
Tong:=0;
For i:=1 to 5 do
Tong:=Tong+1;
Writeln(‘Tong=‘,Tong);
Readln;
End.
Baøi 8:
LAËP VÔÙI SOÁ LAÀN CHÖA BIEÁT TRÖÔÙC
Nam làm bài tập cho đến khi làm xong.
Cô ấy phải đi bộ như vậy cho đến khi về tới nhà.
Các em hãy cho biết thêm những ví dụ về hoạt động lặp với số lần chưa biết trước?
Tôi phải nhập dữ liệu vào máy tính cho đến khi nhập xong.
1. CÁC HOẠT ĐỘNG LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC
Baøi 8:
LAËP VÔÙI SOÁ LAÀN CHÖA BIEÁT TRÖÔÙC
VD1(Sgk):
Long sẽ lặp lại hoạt động gọi điện mấy lần?
1. CÁC HOẠT ĐỘNG LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC
Chưa biết trước được. Điều kiện để kết thúc hoạt động lặp đó là có người nhấc máy.
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.
Baøi 8:
LAËP VÔÙI SOÁ LAÀN CHÖA BIEÁT TRÖÔÙC
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?
VD2(Sgk):
Điều kiện như thế nào thì kết thúc hoạt động lặp?
Điều kiện: Khi tổng Tn nhỏ nhất lớn hơn 1000 thì kết thúc hoạt động lặp
tăng dần
1. CÁC HOẠT ĐỘNG LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC
Baøi 8:
LAËP VÔÙI SOÁ LAÀN CHÖA BIEÁT TRÖÔÙC
1
T1 = 1
Đúng
2
T2 = 1 + 2
Đúng
Đúng
…
…
…
?
Tn = 1 + 2 + 3 + … +? (Sao cho Tn nhỏ nhất lớn hơn 1000)
Sai, kết thúc việc tính tổng
3
T3 = 1 + 2 + 3
Phân tích bài toán:
1. CÁC HOẠT ĐỘNG LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC
Baøi 8:
LAËP VÔÙI SOÁ LAÀN CHÖA BIEÁT TRÖÔÙC
Bước 1:
Bước 2:
Bước 3:
Bước 4:
S 0, n 0.
Nếu S≤1000, n n+1; Ngược lại, chuyển tới bước 4.
S S + n và quay lại bước 2.
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.
Kí hiệu S là tổng cần tìm và ta có thuật toán như sau:
Các hoạt động lặp với số lần chưa biết trước phụ thuộc vào cái gì và chỉ dừng lại khi nào?
* Có thể diễn tả bài toán trên bằng sơ đồ như sau:
1. CÁC HOẠT ĐỘNG LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC
Baøi 8:
LAËP VÔÙI SOÁ LAÀN CHÖA BIEÁT TRÖÔÙC
2. Ví dụ về lặp với số lần chưa biết trước
VD1: While a<=b do a:=a+1;
VD2: While a>b do
Begin write(‘a>b’); a:=a-1; End;
Trong đó : While, do là các từ khóa.
Điều kiện là a<=b (chứa phép so sánh).
Câu lệnh là a:=a+1 (câu lệnh đơn).
Trong đó : While, do là các từ khóa.
Điều kiện là a>b (chứa phép so sánh).
Câu lệnh là Write(‘a>b’) và a:=a-1 (câu lệnh ghép).
2. Ví dụ về lệnh lặp với số lần chưa biết trước:
Ví dụ 3: Với giá trị nào của n để 1/n < 0.003 ?. Viết chương
Trình tính số n nhỏ nhất để 1/n nhỏ hơn một sai số cho 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:6:4, ‘ la ‘,n);
Readln;
End.
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
VD: Dùng câu lệnh lặp While … Do để viết chương trình thể hiện thuật toán trong Ví dụ 2 (Sgk)
var S,n: integer;
Begin
S:=0; n:=0;
while S<=1000 do
begin
n:=n+1; S:=S+n ;
end;
write(‘Tong S= ’,S,‘ va ’,n,’ la so tu nhien nho nhat sao cho S>1000’);
Readln;
End.
Hãy nêu Cú Pháp câu lệnh lặp với số lần chưa biết trước?
Tong S= 1035 va 45 la so tu nhien nho nhat sao cho S>1000
LUYỆN TẬP – CŨNG CỐ:
Câu 1: Trong các hoạt động dưới đây hoạt động nào là hoạt động lặp với số lần chưa biết trước?
a) X:= 10; while X:= 10 do X:= X + 5;
b) X:= 10; while X = 10 do X = X + 5;
c) S:= 0; n:=0; while S <= 10 do n:= n + 1; S:= S + n ;
Cu 2:Hy ch? ra l?i trong cc l?nh sau dy?
Baøi 8:
LAËP VÔÙI SOÁ LAÀN CHÖA BIEÁT TRÖÔÙC
- Các hoạt động lặp với số lần chưa biết trước phụ thuộc vào một điều kiện cụ thể và chỉ dừng lại khi điều kiện đó sai.
Ghi nhớ
- 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
Baøi 8:
LAËP VÔÙI SOÁ LAÀN CHÖA BIEÁT TRÖÔÙC
* Xem trước VD4; VD5; Lặp vô hạn – lỗi lập trình cần tránh.
Bài tập về nhà
* Tìm thm m?t vi ví d? v? ho?t d?ng l?p v?i s? l?n chua bi?t tru?c.
* V? nh h?c bi lm bi t?p 2 Sgk tr71.
* 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ẻ: Phan Thanh Vinh
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)