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?. CÁC HOẠT ĐỘNG LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC... CÁC HOẠT ĐỘNG LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC Chưa biết
Trang 1KIỂ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 < biến đếm >:= <giá trị đầu> to <giá trị cuối> do < câu lệnh >;
Var i, Tong:integr;
Begin
Tong:=0;
For i:=1 to 5 do Tong:=Tong+1;
Writeln(‘Tong=‘,Tong);
Readln;
End
Trang 2 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
Trang 3VD1(Sgk): VD1
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
Trang 4VD2(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
Trang 5n Tổng Tn Điều kiện Tn ≤ 1000
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
Trang 6S ← 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:
S≤1000? Sai
n ← n+1;
S ← S+n;
Đúng
1 CÁC HOẠT ĐỘNG LẶP VỚI SỐ LẦN CHƯA BIẾT
TRƯỚC
Trang 72 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.
Trong đó : While , do là các từ khóa.
Câu lệnh là Write(‘a>b’) và a:=a-1 (câu lệnh ghép)
Trang 82 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.
Trang 9VD: 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Ố:
Trang 10A Tính tổng các số tự nhiên từ 1 đến 20.
B Nhập các số nguyên từ bàn phím cho đến khi đủ 50 số
D Nhập vào 1 số cho đến khi số nhập vào là số chẵn thì dừng
C Mỗi ngày học bài 2 lần
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?
Trang 11a) 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 ;
Thừa dấu :
Thiếu dấu :
Thiếu Begin
Thiếu End.
Trang 12- 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
- Trong Pascal câu lệnh lặp với số lần chưa biết trước có dạng:
Trang 13* Xem trước VD4; VD5; Lặp vô hạn – lỗi lập trình cần tránh.
* Tìm thêm một vài ví dụ về hoạt động lặp với
số lần chưa biết trước.
* Về nhà học bài làm bài tập 2 Sgk tr71.