Tuần 26 Ngày soạn: 23/02/09
Tiết 49
Ba
̀
i 8 : LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC
I - MỤC TIÊU
1. Kiến thức
• Biết nhu cầu cần có cấu trúc lặp với số lần chưa biết trước trong ngôn ngữ lập trình;
• Biết ngôn ngữ lập trình dùng cấu trúc lặp với số lần chưa biết trước để chỉ dẫn máy
tính thực hiện lặp đi lặp lại công việc đến khi một điều kiện nào đó được thoả mãn;
• Hiểu hoạt động của câu lệnh lặp với số lần chưa biết trước while...do… trong Pascal.
2. Kỹ năng
• Viết chương trình Pascal dùng câu lệnh lặp while...do… để thể hiện cấu trúc lặp với
số lần chưa biết trước.
• Vận dụng được: cấu trúc lặp với số lần chưa biết trước để mô tả thuật toán, câu lệnh
lặp với số lần chưa biết trước để viết chương trình trong Pascal.
• Vận dụng thành thạo: kiến thức, kỹ năng, tri thức, phương pháp được học vào giải bài
tập.
3. Tư duy và thái độ
• Cẩn thận, chính xác.
• Tập trung cao độ, nghiêm túc trong giờ học.
• Phát triển tư duy suy luận logic, trí tưởng tượng và tạo được hứng thú trong học tập.
II - PHƯƠNG PHÁP
• Gợi mở vấn đáp thông qua hoa
̣
t đô
̣
ng điê
̀
u khiê
̉
n.
III. CHUẨN BỊ
1. Giáo viên: Giáo trình, bảng phụ, máy tính, máy chiếu (nếu có).
2. Học sinh: Kiến thức cũ, sách, vở.
IV - TIẾN TRÌNH BÀI GIẢNG
1 - ỔN ĐỊNH
2 - KIỂM TRA BÀI CŨ:
HĐ CỦA GV HĐ CỦA HS GHI BẢNG
- Nêu câu hỏi. - Nghe, hiểu và
tìm câu trả lời
Câu hỏi : Nêu cú pháp câu lệnh lặp với số lần chưa
biết trước trong Pascal? Câu lệnh lặp này được thực
- Gọi một HS lên
bảng.
- Gọi HS nhận xét.
- Nhận xét cho
điểm.
- Lên bảng trả
lời câu hỏi
kiểm tra bài cũ
- Nhận xét câu
trả lời của bạn.
hiện như thế nào?
Trả lời:
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 <câu lệnh>;
Câu lệnh lặp này được thực hiện như sau:
- Bước 1 : Kiểm tra điều kiện.
- Bước 2 : Nếu điều kiện SAI, câu lệnh sẽ bị bỏ qua
và việc thực hiện lệnh lặp 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.
3 - BÀI MỚI
* Đặt vấn đề vào bài mới: Các em đã biết câu lệnh lặp với số lần chưa biết trước trong Pascal,
để hiểu thêm về câu lệnh này chúng ta cùng tìm hiểu thêm một số ví dụ
HĐ CỦA GV HĐ CỦA HS GHI BẢNG
1. Các hoạt động lặp với
số lần chưa biết
trước
- Y/c hs đọc ví dụ 1 sgk/67
- Phân tích ví dụ
- Y/c hs đọc ví dụ 2 sgk/67
- Phân tích ví dụ
- Hướng dẫn hs xây dựng thuật
toán
- Chạy tay cho học sinh xem (Chỉ
nên chạy tay thử từ 1 đến 10)
- Giới thiệu sơ đồ khối
- Nêu nhận xét
- Có thể sử dụng lệnh lặp với số
lần lặp chưa biết trước trong các
chương trình lập trình . Sau đây
- Đọc ví dụ sgk
- Chú ý lắng nghe
- Đọc ví dụ sgk
- Chú ý lắng nghe
- Nghe giáo viên
hướng dẫn, sau đó
tự xây dựng thuật
toán
- Chú ý nghe .
- Ghi vở ví dụ 2
- Quan sát
1. Các hoạt động lặp với
số lần chưa biết trước
a/ Ví dụ 1(sgk).
b/ Ví dụ 2 : Nếu cộng lần lượt n
số tự nhiên đầu tiên (n = 1, 2, 3,...),
Cần cộng bao nhiêu số tự nhiên đầu
tiên để ta nhận được tổng T
n
nhỏ
nhất lớn hơn 1000?
Giải :
Kí hiệu S là tổng cần tìm và 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ả : S và n là số
tự nhiên nhỏ nhất sao cho S >
1000. Kết thúc thuật toán.
* Ta có sơ đồ khối :
ta xét câu lệnh và ví dụ trong TP
* Nhận xét : Để viết chương trình
chỉ dẫn máy tính thực hiện các hoạt
động lặp như trong các ví dụ trên,
ta có thể sử dụng câu lệnh có dạng
lặp với số lần chưa biết trước
2. Ví dụ về lệnh lặp với số
lần chưa biết trước
- Giới thiệu cú pháp lệnh
while … do ….;
- Treo bảng phụ viết sẵn ví dụ 3
Chúng ta biết rằng, nếu n 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.005 hoặc
1
n
<
0.003 ?
- Treo bảng phụ giới thiệu
chương trình mẫu sgk,
- Chạy tay cho học sinh xem
- Chú ý nghe và
ghi chép
- Đọc ví dụ 3
(bảng phụ)
- Quan sát
- Chú ý nghe và tự
chạy tay lại
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:
while <điều kiện> do <câu lệnh>;
trong đó:
- điều kiện thường là một phép so
sánh;
- câu lệnh có thể là câu lệnh đơn
giản hay câu lệnh ghép.
Câu lệnh lặp này được thực hiện
như sau:
- Bước 1 : Kiểm tra điều kiện.
- Bước 2 : Nếu điều kiện SAI, câu
lệnh sẽ bị bỏ qua và việc thực hiện
lệnh lặp 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.
Ví dụ 3.
Với giá trị nào của n ( n>o ) thì
1
n
< 0.005 hoặc
1
n
< 0.003? Chương
trình dưới đây 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;
-Mở máy tính và mở chương
trình ví dụ 3 ( giáo viên chuẩn bị
chương trình mẫu và đưa lên
máy tính )
- Cho học sinh chạy chương trình
trên máy
- Yêu cầu hs thay điều kiện
sai_so = 0.003 thành 0.002 ;
0.001 ; 0.005 ; ...
-Thực hiện
- Thực hiện
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.
4 - CỦNG CỐ
HĐ CỦA GV HĐ CỦA HS GHI BẢNG
-Nêu câu hỏi
- Gọi HS đứng tại chỗ trả lời.
- Nhận xét và cho đáp án đúng.
- Nghe, hiểu
và tìm câu trả
lời
- Đứng tại chỗ
trả lời.
Nêu cú pháp câu lệnh lặp chưa biết trước
số lần lặp trong Pascal?
Trả lời:
while <điều kiện> do <câu lệnh>;
trong đó:
- điều kiện thường là một phép so sánh;
- câu lệnh có thể là câu lệnh đơn giản
hay câu lệnh ghép.
5 - HƯỚNG DẪN VỀ NHÀ
- Qua bài học HS cần:
• Biết nhu cầu cần có cấu trúc lặp với số lần chưa biết trước trong ngôn ngữ lập trình;
• Biết ngôn ngữ lập trình dùng cấu trúc lặp với số lần chưa biết trước để chỉ dẫn máy
tính thực hiện lặp đi lặp lại công việc đến khi một điều kiện nào đó được thoả mãn;
• Hiểu hoạt động của câu lệnh lặp với số lần chưa biết trước while...do… trong Pascal.
• Viết chương trình Pascal dùng câu lệnh lặp while...do… để thể hiện cấu trúc lặp với
số lần chưa biết trước.
• Vận dụng được: cấu trúc lặp với số lần chưa biết trước để mô tả thuật toán, câu lệnh
lặp với số lần chưa biết trước để viết chương trình trong Pascal.
• Vận dụng thành thạo: kiến thức, kỹ năng, tri thức, phương pháp được học vào giải bài
tập.
- Bài tập về nhà: bài 1,2 trang 71.
- Hướng dẫn bài tập về nhà: bài 1,2 trang 71.
- Ôn lại bài, chuẩn bị trước cho phần tiếp theo.
V - RÚT KINH NGHIỆM:
...........................................................................................................................................................
...........................................................................................................................................................
...........................................................................................................................................................
...........................................................................................................................................................
...........................................................................................................................................................
...........................................................................................................................................................