Giáo án Tin học 8 - Tiết 45+46, Bài 8: Lặp với số lần chưa biết trước - Năm học 2015-2016

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

 - Biết vận dụng để làm bài tập

 3. Thái độ

 - Hình thành hoạt động theo nhóm, có ý thức tự chủ trong học tập

II. CHUẨN BỊ

1. Giáo viên: Giáo án, SGK. SGV, phòng máy.

2. HS: Học bài cũ ở nhà, SGK, chuẩn bị dụng cụ học tập

II. CHUẨN BỊ:

 - GV: SGK, máy chiếu, máy tính, hình vẽ các ví dụ

 - HS: Xem trước bài ở nhà

III. TIẾN TRÌNH:

1. Ổn định lớp: (1’) Kiểm tra sĩ số

2. Kiểm tra bài cũ: (5’)

* Câu 1: Hãy nêu một số ví dụ về câu lệnh lặp với số lần chưa biết trước?

 * Đặt vấn đề: (1’)

 Từ các VD bạn nêu trên vậy cú pháp, hoạt động của câu lệnh lặp đó như thế nào cô cùng các em đi nghiên cứu vào bài hôm nay.

 

doc7 trang | Chia sẻ: xuannguyen98 | Lượt xem: 705 | Lượt tải: 0download
Bạn đang xem nội dung tài liệu Giáo án Tin học 8 - Tiết 45+46, Bài 8: Lặp với số lần chưa biết trước - Năm học 2015-2016, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
Ngày soạn: 12/02/2016 Ngày dạy: 15/02/2016 Dạy lớp: 8A
 Ngày soạn: 14/02/2016	 17/02/2016 Dạy lớp: 8B
 Tiết 45,46
BÀI 8: LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC(t1)
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
 - Biết các công cụ dùng để vẽ hình
 3. Thái độ
 - Hình thành hoạt động theo nhóm, có ý thức tự chủ trong học tập
II. CHUẨN BỊ
1. Giáo viên: Giáo án, SGK. SGV, phòng máy.
2. HS: Học bài cũ ở nhà, SGK, chuẩn bị dụng cụ học tập.
III. TIẾN TRÌNH:
1. Ổn định lớp: (1’) Kiểm tra sĩ số
2. Kiểm tra bài cũ: (5’)
 * Câu 1: Viết thuật toán tính tổng 100 số tự nhiên đầu tiên 1,2,3,,99,100
Trả lời 
Bước 1. SUM ¬ 0; i ¬ 0.
Bước 2. i ¬ i + 1.
Bước 3. Nếu i ≤ 100, thì SUM ¬ SUM + i và quay lại bước 2.
Bước 4. Thông báo kết quả và kết thúc thuật toán.
* Đặt vấn đề: (1’)
	Với bài toán trên, trong TP ta sử dụng vòng lặp fortodo thì sẽ thực hiện dễ dàng . Nhưng nếu ta thay số 100 bởi n ( tính tổng n số tự nhiên đầu tiên ) thì ta sẽ gặp nhiều khó khăn trong việc sử dụng vòng lặp fortodo bởi lúc này số lần lặp không biết trước. Vậy ta phải làm như thế nào ? Giới thiệu bài mới .
3. Bài mới
Hoạt động của giáo viên và HS
Ghi bảng
+ G : y/c hs đọc ví dụ 1sgk/67
+ Hs : 2-3 hs đọc ví dụ sgk
+ G : Phân tích ví dụ 
+ Hs : Chú ý lắng nghe
+ G : y/c hs đọc ví dụ 1sgk/67
+ Hs : 2-3 hs đọc ví dụ sgk
+ G : Phân tích ví dụ 
+ Hs : chú ý lắng nghe 
+ G : Hướng dẫn hs xây dựng thuật toán
+ Hs : Nghe giáo viên hướng dẫn, sau đó tự xây dựng thuật toán
+ G : Chạy tay cho học sinh xem ( Chỉ nên chạy tay thử từ 1 đến 10 )
+ Hs : Chú ý nghe .
 Hs ghi vở ví dụ 2
+ G : Giới thiệu sơ đồ khối
+ G : Nêu nhận xét 
+ G : 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 ta xét câu lệnh và ví dụ trong TP
1. Các hoạt động lặp với số lần chưa biết trước: (30’)
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 Tn 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 :
* 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
4. Củng cố, luyện tập: (5’)
 - Củng cố lại kiến thức đã học 
5. Hướng dẫn HS về nhà (3’)
 - Về nhà học bài cũ
 - Làm các bài tập 1, 2 trong SGK.
 - Xem trước bài mới mục 2, 3 để tiết sau học tiếp.
*. RÚT KINH NGHIỆM
 ....................................................................................................................................
 .....................................................................................................................................
 ..................................................................................................................................... 
	---------------------------------------------
 Ngày soạn: 13/02/2016 Ngày dạy: 16/02/2016 Dạy lớp: 8A
 Ngày soạn: 21/02/2016	 24/02/2016 Dạy lớp: 8B
Tiết 45,46
 BÀI 8: LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC(t2)
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
 - Biết vận dụng để làm bài tập
 3. Thái độ
 - Hình thành hoạt động theo nhóm, có ý thức tự chủ trong học tập
II. CHUẨN BỊ
1. Giáo viên: Giáo án, SGK. SGV, phòng máy.
2. HS: Học bài cũ ở nhà, SGK, chuẩn bị dụng cụ học tập
II. CHUẨN BỊ:
 - GV: SGK, máy chiếu, máy tính, hình vẽ các ví dụ 
 - HS: Xem trước bài ở nhà
III. TIẾN TRÌNH:
1. Ổn định lớp: (1’) Kiểm tra sĩ số
2. Kiểm tra bài cũ: (5’)
* Câu 1: Hãy nêu một số ví dụ về câu lệnh lặp với số lần chưa biết trước?
 * Đặt vấn đề: (1’)
 Từ các VD bạn nêu trên vậy cú pháp, hoạt động của câu lệnh lặp đó như thế nào cô cùng các em đi nghiên cứu vào bài hôm nay.
3. Bài mới
Hoạt động của GV và HS
Ghi bảng
GV: đưa ra chương trình để HS nghiên cứu, dựa vào chương trình đó GV giới thiệu cú pháp hoạt động của câu lệnh while...do
GV: Em nhìn vào chương trình ai có thể đưa ra cú pháp của câu lệnh while ..do
+ G : Giới thiệu cú pháp lệnh
while  do .;
+ hs : chú ý nghe và ghi chép 
+ GV: giải thích hoạt động, ý nghĩa của chương trình vừa nêu
2. Ví dụ về lệnh lặp với số lần chưa biết trước (20’)
Ví dụ 1.
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.
Trong Pascal câu lệnh lặp với số lần chưa biết trước có dạng:
while do ;
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.
+ G : Y/c hs nhắc lại cú pháp câu lệnh lặp với số lần chưa biết trước 
+ H : trả lời 
+ G : ta tiếp tục xét các ví dụ mà trong chương trình có câu lệnh với số lần lặp chưa biết trước
- GV: dựa vào câu lệnh for hãy viết chương trình cho bài toán này
- HS; trả lời
- GV: Nếu sử dụng câu lệnh while .. do thì sao?
- HS suy nghĩ để làm
- GV giải thích
+ G : Giới thiệu phần 3
+ G : 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 
+ G : Chẳng hạn, chương trình dưới đây sẽ lặp lại vô tận:
+ Hs : Quan sát 
+ G : 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, 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".
+ Hs : Chú ý nghe 
Ví dụ 2: 
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.
3. Lặp vô hạn lần – Lỗi lập trình cần tránh: (10’)
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. 
var a:integer;
begin
a:=5;
while a<6 do writeln('A');
end.
4. Củng cố, luyện tập: (5’)
 - Chuyển các VD trên lớp sang câu lệnh for.
 - Củng cố lại kiến thức đã học.
5. Hướng dẫn HS về nhà (3’)
 - Về nhà học bài cũ 
 - Làm bài tập 3, 4 bài 5 SGK
 - Đọc trước bài mới.
*. RÚT KINH NGHIỆM
 ....................................................................................................................................
 .....................................................................................................................................
 ..................................................................................................................................... 

File đính kèm:

  • docBai_8_Lap_voi_so_lan_chua_biet_truoc.doc