I.Mục tiêu:
1. Kiến thức:
- Biết 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:
- Lấy được các ví dụ cụ thể về câu lệnh lặp với số lần chưa biết trước.
3. Thái độ:
- Nghiêm túc trong quá trình hcọ tập và rèn luyện.
II. Chuẩn bị
1.Giáo viên: SGK, giáo án, máy tính
2. Học sinh: SGK, đồ dùng học tập
III. Tiến trình bài dạy
1. Ổn định:
2. Kiểm tra bài cũ:
Trong quá trình học
Ngày soạn: ......................................... Ngày giảng: .....................................................
Tiết 50:
Bài 8: LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC
(Tiếp theo)
I.Mục tiêu:
1. Kiến thức:
- Biết 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:
- Lấy được các ví dụ cụ thể về câu lệnh lặp với số lần chưa biết trước.
3. Thái độ:
- Nghiêm túc trong quá trình hcọ tập và rèn luyện.
II. Chuẩn bị
1.Giáo viên: SGK, giáo án, máy tính
2. Học sinh: SGK, đồ dùng học tập
III. Tiến trình bài dạy
1. Ổn định:
2. Kiểm tra bài cũ:
Trong quá trình học
3. Bài mới
HOẠT ĐỘNG CỦA GV VÀ HS
KIẾN THỨC CẦN ĐẠT
GV: Cho học sinh đọc lại phần mô tả thuật toán của ví dụ 2.
Gv: Cho HS quan sát chương trình và nêu ý nghĩa của từng câu lệnh
HS: Làm việc theo nhóm, đại diện một nhóm lên nêu ý nghĩa còn các nhóm khác nhận xét và bổ sung
GV: Nhận xét và bổ sung.
GV: Cho HS ghi chương trình
GV: Đưa chương trình lên máy tính và chay kết quả cho HS quan sát
HS: Quan sát
GV : Chạy chương trình này, ta nhận được giá trị như thế nào?
HS : Nếu chạy chương trình này ta sẽ nhận được n = 45 và tổng đầu tiên lớn hơn 1000 là 1034.
GV : Cho HS đọc ví dụ 5 và nêu yêu cầu của bài toán.
HS: Đọc và nêu yêu cầu
GV: Yêu cầu HS so sánh đoạn chương trinh dùng lệnh For ...do và đoạn chương trình dùng lệnh While ...do
HS: Đều cho một kết quả
GV: Cho HS hoạt động theo nhóm làm hoàn chỉnh hai chương trình của ví dụ và đại diện hai nhóm lên viết chương trình các nhóm khác bổ sung
HS: Hoạt động theo nhóm
GV: Chạy chương đã chuẩn bị sẳn trên máy tính cho học sinh quan sát và sửa lỗi.
HS: Quan sát và sửa lỗi
GV: So sánh kết quả khi chạy hai chương trình
HS : Kết quả bằng nhau
Ví dụ 4. Chương trình Pascal dưới đây thể hiện thuật toán tính số n trong ví dụ 2:
var S,n: integer;
begin
S:=0; n:=1;
while S<=1000 do
begin
n:=n+1;
S:=S+n;
end;
writeln('So n nho nhat de tong > 1000 la ',n);
writeln('Tong dau tien > 1000 la ',S);
end.
Ví dụ 5. Viết chương trình tính tổng
Giải :
Để viết chương trình tính tổng ta có thể sử dụng lệnh lặp với số lần lặp biết trước fordo:
T:=0;
for i:=1 to 100 do T:=T+1/i;
writeln(T);
Nếu sử dụng lệnh lặp whiledo, đoạn chương trình dưới đây cũng cho cùng một kết quả:
T:=0;
i:=1;
while i<=100 do begin T:=T+1/i; i:=i+1 end;
writeln(T);
* Nhận xét : Ví dụ này cho thấy rằng chúng ta có thể sử dụng câu lệnh whiledo thay cho câu lệnh fordo.
GV : Khi viết chương trình sử dụng cấu trúc lặp cần chú ý tránh tạo nên vòng lặp không bao giờ kết thúc
HS: Chú ý nghe
GV : Cho HS quan sát kết quả khi chạy ví dụ trên máy tính (GV chuẩn bị sẳn)
HS : Quan sát
GV: Trong chương trình trên, giá trị của biến a luôn luôn bằng 5, điều kiện a<6 luôn luôn đúng nên lệnh writeln('A') luôn được thực hiện.
Do vậy,
HS : Chú ý nghe
3. Lặp vô hạn lần – Lỗi lập trình cần tránh
Khi viết chương trình sử dụng cấu trúc lặp cần chú ý tránh tạo nên vòng lặp không bao giờ kết thúc.
Ví dụ:
Với chương trình này khi chạy sẽ cho kết quả lặp vô tận.
var a:integer;
begin
a:=5;
while a<6 do writeln('A');
end.
- khi thực hiện vòng lặp, điều kiện trong câu lệnh phải được thay đổi để sớm hay muộn giá trị của điều kiện được chuyển từ đúng sang sai. - Chỉ như thế chương trình mới không "rơi" vào những "vòng lặp vô tận".
4. Củng cố:
- Nhắc lại kiến thức cơ bàn của vòng lặp cho học sinh nắm
5. Dặn dò:
- Học lại bài, làm bài tập và đọc bài thực hành
IV. RÚT KINH NGHIỆM :
*****&*****
Tài liệu đính kèm: