Lặp với số lần biết trước, sử dụng câu lệnh lặp For… Do để viết chương trình.. VD2: Viết chương trình nhập vào các số cho đến khi gặp 0 thì dừng lại.[r]
Trang 1KIỂM TRA BÀI CŨ
- Hãy nêu cú pháp câu lệnh lặp For…Do
Cú pháp:
For <biến đếm>:=<giá trị đầu> to <giá trị cuối> do <câu lệnh>;
Trang 2VD1: Viết chương trình tính
tổng các số tự nhiên từ 1
đến 100
S = 1 + 2 + 3 + +100
Lặp 100 lần
Lặp với số lần biết trước,
sử dụng câu lệnh lặp For…
Do để viết chương trình
VD2: Viết chương trình nhập
vào các số cho đến khi gặp
0 thì dừng lại Tính tổng các số vừa nhập.
Chưa biết lặp mấy lần
Lặp với số lần chưa biết trước, sử dụng câu lệnh gì
để viết chương trình?
Trang 41 Các hoạt động lặp với số lần chưa biết trước
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
Chưa thể 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.
VD1(Sgk): VD1
Trang 51 Các hoạt động lặp với số lần chưa biết trước
VD2(Sgk): VD2
… tăng dần
Đ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
Trang 61 Các hoạt động lặp với số lần chưa biết trước
Phân tích bài toán:
? T (Sao cho Tn = 1 + 2 + 3 + … +?
n nhỏ nhất lớn hơn 1000)
Sai, kết thúc việc tính tổng
Trang 71 Các hoạt động lặp với số lần chưa biết trước
Kí hiệu S là tổng cần tìm và ta có thuật toán như sau:
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.
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:
Trang 82 Ví dụ về lệnh lặp với số lần chưa biết trước
Hãy nêu cú pháp với câu lệnh lặp
while - do?
Cú pháp:
Điều kiện: biểu thức quan hệ hoặc biểu thức logic
Câu lệnh: là môt câu lệnh trong Pascal (có thể là câu lệnh đơn giản hay câu lệnh ghép)
Trang 92 Ví dụ về lệnh lặp với số lần chưa biết trước
Quan sát sơ đồ
khối, hãy cho
biết sự thực
hiện của máy?
• Bước 1: tính giá trị của <điều kiện>.
• Bước 2: Nếu <điều kiện> có giá trị đúng
thì:
• thực hiện lệnh cần lặp.
• quay lại bước 1.
Chừng nào điều kiện còn đúng thì câu lệnh còn thực hiện.
Trang 102 Ví dụ về lệnh lặp với số lần chưa biết trước
VD1: While a<=b do a:=a+1;
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)
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à Write(‘a>b’) và a:=a-1 (câu lệnh ghép)
Trang 112 Ví dụ về lệnh lặp với số lần chưa biế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.
Tong S= 1035 va 45 la so tu nhien nho nha sao cho S>1000
Trang 12Trong 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 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ố.
C Mỗi ngày học bài 2 lần.
D Nhập vào 1 số cho đến khi số nhập vào là số chẵn thì
Trang 13Quan sát đoạn chương trình sau:
Vòng lặp vô tận
Yêu cầu:
* Hãy cho biết chương trình trên sẽ lặp lại như thế nào?
3 Lặp vô hạn lần – Lỗi lập trình cần tránh.
Trang 14Bµi 1:
ViÕt ®o¹n ch ¬ng tr×nh hiÓn thÞ ra mµn h×nh 5 ch÷ sè tù nhiªn ®Çu tiªn.
Gi¶i
n:=0;
While (n<5) Do
Begin
Write(n:2);
n:= n+1;
End;
M« t¶
Bµi tËp vËn dông
Trang 15Bài 2:
Viết chương trình tính giá trị của biểu thức sau (n là
1 số nguyên nhập từ bàn phím)
A = 1 + 1/2 + 1/3 + + 1/n
có phải là số nguyên tố hay không?
thuật toán
Trang 16ChươngưTrìnhưtínhưgiáưtrịưcủaưBiểuThức: ưư Aư=ư1ư+ư1/2ư+ư1/3ư+ư ư+ư1/n
Program Tinh_GTBT;
Uses CRT;
Var i,n: integer; A: Real;
BEGIN clrscr;
Writeln(‘ Chuong trinh tinh gia tri bieu thuc’); Write(‘ Nhap n = ‘); Readln(n);
A:=0 ; i:=1;
While (i <= n) Do
Begin
A:= A + 1/i;
i:= i + 1;
End;
Writeln(‘ Gia tri cua bieu thuc la A = ’,A:0:2); Readln;
Trang 17Bài tập về nhà
Bài 1:
Tìm ớc chung lớn nhất (UCLN) của 2 số nguyên d ơng a,b.
Bài 2:
Lãi suất hàng tháng gửi tiết kiệm không kì hạn là 1% Một
ng ời gửi vào một số tiền ban đầu là a Hỏi sau bao nhiêu tháng
ng ời đó đạt đ ợc số tiền lớn hơn b.
END
Kiến thức trọng tâm
Trang 18LệNh
SAI
Đúng
LưuưĐồưmiêuưtảưquáưtrìnhưhoạtưđộngưcủaưvòngưlặpưWHILE DO
Kiểm tra BTĐK
Trang 19B¾t ®Çu
n := 0
0 < 5?
ViÕt 0 ra mµn h×nh
n:= 1
1 < 5?
ViÕt 1 ra mµn h×nh
n:= 2
2 < 5?
ViÕt 2 ra mµn h×nh
n:= 3
3 < 5?
ViÕt 3 ra mµn h×nh
n:= 4
Sai
§óng
4 < 5?
ViÕt 4 ra mµn h×nh
n:= 5
5 < 5?
KÕt thóc KÕt qu¶