Giáo án Dự
Trường THCS Thống Nhất
Ngy soạn:18-02-2009
Ngày dạy:
Lớp dạy:
Tiết dạy:
GVHD:
GSTT: Nguyễn Thanh Tùng
Bài dạy:
Bài 8: Lặp với số lần chưa biết trước
I/ Mục đích-Yêu cầu
Giúp HS biết được 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.
Giúp HS biết ngôn ngữ lập trình dùng cấy trúc lặp với số lần chưa biết trước
để chỉ dẫn cho máy tính thực hiện lặp đi lặp lại một công việc cho đề khi điều
hiện nào đó được thỏa mãn.
Hiểu được 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.
Biết cách vận dụng While do hoặc For do để giải bài tập một cách linh hoạt.
On lại một số kiến thức như khai báo biến, rèn luyện khả năng đọc-hiểu
chương trình.
II/ Chuẩn bị:
Giáo viên: Giáo án, lưu đồ thuật giải, bài giải hoàn chỉnh.
Học sinh: Xem bài trước. Sách giáo khoa.
Phương pháp: Đàm thoại kết hợp trực quan sinh động.
Dụng cụ, thiết bị: Đèn chiếu, máy tính, lưu đồ, giáo án. Máy có cài sẵn Turbo
Pascal.
III/ Nội dung lên lớp:
Hoạt động 1: On định lớp.
Hoạt động 2: Kiểm tra bài cũ.
1/ Hãy cho biết tác dụng của lệnh lặp với số lần biết trước?
Ví dụ: SGK.Trang 67
Điều kiện dừng: Có người nhấc máy.
1
Giáo án Dự
điều kiện để kết
thúc hoạt động gọi
điện thoại của Long
cho Trang.
-Đưa thêm một số
ví dụ trong cuôc
sống tương tự ví dụ
1. Yêu cầu HS xác
định điều kiện
dừng.
* Yêu cầu HS đọc
ví dụ 2.
-Đặt câu hỏi cho
HS: "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 ta
phải làm gì?". Kiểm
tra đáp án của HS.
-Yêu cầu HS xây
dựng thuật toán của
ví dụ này một cách
cụ thể bằng ngôn
ngữ tự nhiên. Kiểm
tra và chỉnh sửa lại
=1,
T2=1+2, T3=1+2+3,… tăng dần. Cần
cộng bao nhiêu số tự nhiên đầu tiên để ta
nhận được tổng Tn nhỏ nhất lớn hơn
1000?
-Câu hỏi: 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 ta phải làm gì?
-Đáp án: Từng bước kiểm tra tổng đã lớn
hơn 1000 hay chưa.
Thuật toán: Kí hiệu S là tổng cần tìm
Bước 1: S0, n0.
Bước 2: nếu S<=1000, nn+1; Ngược
lại, chuyển tới bước 4.
Bước 3: SS+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.
Để giải bài toán trên ta thực hiện lặp đi
lặp lại với số lần chưa biết trước, phụ
thuộc vào điều kiện (S<=1000) và chỉ
dừng lại khi điều kiện đó sai.
2
Điều kiện
Câu lệnh
Sai
Đúng
Giáo án Dự
* Chuyển sang nội
dung thứ 2 của bài.
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à một câu lệnh đơn hay
câu lệnh ghép.
Cách thực hiện:
Kiểm tra điều kiện.
Nếu điều kiện sai, câu lệnh sẽ
được 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 buớc 1.
Chương trình Ví dụ 2:
Program Vidu2;
Uses crt;
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>1000 la
',n,': ');
Writeln(' Tong dau tien la: ',S);
Readln;
trình.
* Đọc ví dụ 5, suy
nghĩ.
-Thực hiện theo
yêu cầu của GV.
-Thực hiện chuyển
đổi.
-Chú ý lắng nghe,
ghi chép.
Ví dụ 5.Trang 69(SGK)
Để viết chương trình tính tổng
T=1+1/2+1/3+…+1/100 với lệnh lặp
for…do
Với For:
Program Vidu5;
Uses crt;
Var T,i:Integer;
Begin
T:=0;
For i:=1 to 100 do
T:=T+1/I;
Writeln(T);
Readln;
End.
Với while:
Program Vidu5;
Uses crt;
Var T,i:Integer;
Begin
T:=0;
trả lời các yêu cầu
của giáo viên.
-Chú ý theo dõi,
ghi chép bài.
Begin
A:=5;
While a<6 do
Writeln('A');
End;
Giá trị biến a luôn luôn bằng 5 điều
kiện a<6 luôn luôn đúng cho nên chương
trình luôn được thực hiện. Đây là lỗi lặp
vô hạn lần.
Khắc phục: điểu kiện trong câu lệnh
phải được thay đổi từ đúng sang sai. Chí
có thế chương trình mới không rơi vào
những vòng lặp vô tận.
Hoạt động 4: Củng cố:
Yêu cầu Hs trình bày ý nghĩa lệnh lặp với số lần chưa biết được.
Yêu cầu HS trình bày lệnh lặp While…do.
Hoạt động 5: Hướng dẫn về nhà
Huớng dẫn trả lời câu1, câu2 trang 71.
Hướng dẫn bài 3,4,5 SGK.
IV/ Rút kinh nghiệm tiết dạy:
Ưu điểm:
Khuyết điểm:
GVHD
5